Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится к устройству кодирования движущихся изображений, устройству декодирования движущихся изображений, способу кодирования движущихся изображений и способу декодирования движущихся изображений, которые используются для технологии кодирования со сжатием изображения, технологии передачи сжатых данных изображения и т.д.
Уровень техники
[0002] Например, в системе кодирования видео по международным стандартам, таким как MPEG (стандарт экспертной группы по движущимся изображениям) или "ITU-T H.26x", используется способ задания блочных данных (называемых далее "макроблоком"), которые представляют собой комбинацию из 16×16 пикселей для сигнала яркости и 8×8 пикселей для каждого из цветоразностных сигналов, которые соответствуют 16×16 пикселям сигнала яркости, в качестве одной единицы и сжатия данных изображений на основе технологии компенсации движения и технологии ортогонального преобразования/квантования коэффициентов преобразования. В процессах компенсации движения, выполняемых посредством устройства кодирования движущихся изображений и устройства декодирования движущихся изображений, обращаются к последующей картинке или предшествующей картинке, и обнаружение вектора движения и генерирование изображения предсказания выполняется для каждого макроблока. В это время, картинка, к которой обращается только одна картинка и в отношении которой выполняется межкадровое (inter) кодирование с предсказанием, упоминается как P-картинка, а картинка, к которой одновременно обращаются две картинки и в отношении которой выполняется межкадровое (inter) кодирование с предсказанием, упоминается как B-картинка.
[0003] В AVC/H.264, которая является системой по международным стандартам (ISO/IEC 14496-10|ITU-T H.264), режим кодирования, называемый прямым режимом, может быть выбран при кодировании B-картинки (например, см. непатентную ссылку 1). Более конкретно, макроблок, который должен быть кодирован, не имеет кодированных данных вектора движения, и режим кодирования, в котором можно генерировать вектор движения макроблока, который должен быть кодирован, может быть выбран в предопределенном арифметическом процессе с использованием вектора движения макроблока другой уже кодированной картинки и вектора движения смежного макроблока.
[0004] Этот прямой режим включает в себя следующие два типа режимов: временной прямой режим и пространственный прямой режим. Во временном прямом режиме, посредством обращения к вектору движения другого уже кодированной картинки и затем выполнения процесса масштабирования для масштабирования вектора движения согласно разности во времени между другим уже кодированной картинкой изображением и картинкой, которая является целью, которая должна быть кодирована, генерируется вектор движения макроблока, который должен быть кодирован. В пространственном прямом режиме, посредством обращения к вектору движения по меньшей мере одного уже кодированного макроблока, расположенного около макроблока, который должен быть кодирован, вектор движения макроблока, который должен быть кодирован, генерируется из вектора движения. В этом прямом режиме любой из временного прямого режима и пространственного прямого режима может быть выбран для каждого слайса посредством использования "direct_spatial_mv_pred_flag", который является флагом, расположенным в каждом заголовке слайса. Режим из прямых режимов, в котором коэффициенты преобразования не кодируются, упоминается как режим пропуска. Далее, режим пропуска также включается в прямой режим, который описывается ниже.
[0005] Фиг. 11 является принципиальной схемой, показывающей способ генерирования вектора движения во временном прямом режиме. На фиг. 11, "P" обозначает P-картинку, а "B" обозначает B-картинку. Дополнительно, выраженные цифрами числа 0-3 обозначают порядок, в котором отображаются картинки, соответственно, обозначенные посредством выраженных цифрами чисел, и показывают изображения, которые отображаются в моменты времени T0, T1, T2 и T3, соответственно. Предполагается, что процесс кодирования для картинок выполняется в порядке P0, P3, B1 и B2.
[0006] Например, далее рассматривается случай, в котором макроблок MB1 в картинке B2 кодируется во временном прямом режиме. В этом случае, вектор MV движения макроблока MB2, который является вектором движения картинки P3, ближайшего к картинке B2, из уже кодированных картинок, расположенных раньше относительно картинки B2 на временной оси, и который пространственно находится в позиции, идентичной позиции макроблока MB1. Этот вектор MV движения обращается к картинке P0, и векторы MVL0 и MVL1 движения, которые используются при кодировании макроблока MB1, вычисляются согласно следующему уравнению (1).
[0007] Фиг. 12 является принципиальной схемой, показывающей способ генерирования вектора движения в пространственном прямом режиме. На фиг. 12, текущий MB обозначает макроблок, который должен быть кодирован. В это время, когда вектор движения уже кодированного макроблока A слева от макроблока, который должен быть кодирован, выражается как MVa, вектор движения уже кодированного макроблока B сверху от макроблока, который должен быть кодирован, выражается как MVb, и вектор движения уже кодированного макроблока C сверху справа от макроблока, который должен быть кодирован, выражается как MVc, вектор MV движения макроблока, который должен быть кодирован, может быть вычислен посредством определения среднего этих векторов MVa, MVb и MVc движения, как показано в следующем уравнении (2).
MV=median(MVa, MVb, MVc)
Вектор движения определяется для каждого из последующих и предшествующих картинок в пространственном прямом режиме, и векторы движения для обоих из них могут быть определены посредством использования вышеуказанного способа.
[0008] Опорное изображение, которое используется для генерирования изображения предсказания, управляется в качестве списка опорных изображений для каждого вектора, который используется для обращения (ссылки). Когда используются два вектора, списки опорных изображений упоминаются как список 0 и список 1, соответственно. Опорные изображения сохраняются в списках опорных изображений в обратном хронологическом порядке, соответственно, и, в общем случае, список 0 показывает последующее опорное изображение, а список 1 показывает предшествующее опорное изображение. В качестве альтернативы, список 1 может показывать последующее опорное изображение, а список 0 может показывать предшествующее опорное изображение, или каждый из списков 0 и 1 может показывать последующее опорное изображение и предшествующее опорное изображение. Дополнительно, списки опорных изображений не обязательно должны совмещаться в обратном хронологическом порядке. Например, следующая непатентная ссылка 1 описывает, что списки опорных изображений могут упорядочиваться для каждого слайса.
Документы предшествующего уровня техники
Непатентные ссылки
[0009] Непатентная ссылка 1. Стандарты MPEG-4 AVC (ISO/IEC 14496-10)/H.ITU-T 264
Сущность изобретения
Задачи, которые должны быть решены изобретением
[0010] Поскольку традиционное устройство кодирования изображений имеет такую структуру, как указано выше, традиционное устройство кодирования изображений может переключаться между временным прямым режимом и пространственным прямым режимом для каждого слайса посредством простого обращения к "direct_spatial_mv_pred_flag", который является флагом, расположенным в каждом заголовке слайса. Тем не менее, поскольку традиционное устройство кодирования изображений не может переключаться между временным прямым режимом и пространственным прямым режимом для каждого макроблока, даже если оптимальный прямой режим для макроблока, принадлежащего слайсу, представляет собой пространственный прямой режим, например, традиционное устройство кодирования изображений должно использовать временной прямой режим для макроблока, когда прямой режим, соответствующий слайсу, определяется как временной прямой режим, и, следовательно, не может выбирать оптимальный прямой режим. В таком случае, поскольку традиционное устройство кодирования изображений не может выбирать оптимальный прямой режим, традиционное устройство кодирования изображений должно кодировать необязательный вектор движения, и возникает проблема увеличения объема кода.
[0011] Настоящее изобретение осуществлено, чтобы разрешать вышеуказанную проблему, и, следовательно, цель настоящего изобретения заключается в том, чтобы предоставлять устройство кодирования движущихся изображений, устройство декодирования движущихся изображений, способ кодирования движущихся изображений и способ декодирования движущихся изображений, допускающие выбор оптимального прямого режима для каждой предопределенной единицы блоков, тем самым позволяя уменьшать объем кода.
Средство для решения задач
[0012] В соответствии с настоящим изобретением, предусмотрено устройство кодирования движущихся изображений, включающее в себя: модуль управления кодированием для определения максимального размера блока, который должен быть кодирован, который является единицей, которая должна быть обработана, когда выполняется процесс предсказания, а также определения максимальной глубины иерархии, когда блок, который должен быть кодирован, имеющий максимальный размер, разделяется иерархически, и для выбора режима кодирования, который определяет способ кодирования для кодирования каждого блока, который должен быть кодирован, из одного или более доступных режимов кодирования; и модуль разделения на блоки для разделения введенного изображения на блоки, которые должны быть кодированы, имеющие предопределенный размер, а также разделения каждого из вышеуказанных блоков, которые должны быть кодированы, иерархически, при этом когда режим внешнего кодирования (взаимного кодирования), который представляет собой прямой режим, выбирается посредством модуля управления кодированием в качестве режима кодирования, соответствующего одному из блоков, которые должны быть кодированы, на которые разделяется введенное изображение посредством модуля разделения на блоки, модуль предсказания с компенсацией движения выбирает вектор движения, подходящий для генерирования изображения предсказания, из одного или более выбираемых векторов движения, а также выполняет процесс предсказания с компенсацией движения для вышеуказанного блока, который должен быть кодирован, чтобы генерировать изображение предсказания посредством использования вектора движения, и выводит информацию индекса, показывающую вектор движения, в модуль кодирования с переменной длиной кода, и модуль кодирования с переменной длиной кода осуществляет кодирование с переменной длиной кода информации индекса.
Преимущества изобретения
[0013] Поскольку устройство кодирования движущихся изображений в соответствии с настоящим изобретением имеет такую структуру, что устройство кодирования движущихся изображений включает в себя: модуль управления кодированием для определения максимального размера блока, который должен быть кодирован, который является единицей, которая должна быть обработана, когда выполняется процесс предсказания, а также определения максимальной глубины иерархии, когда блок, который должен быть кодирован, имеющий максимальный размер, разделяется иерархически, и для выбора режима кодирования, который определяет способ кодирования для кодирования каждого блока, который должен быть кодирован, из одного или более доступных режимов кодирования; и модуль разделения на блоки для разделения введенного изображения на блоки, которые должны быть кодированы, имеющие предопределенный размер, а также разделения каждого из вышеуказанных блоков, которые должны быть кодированы, иерархически, и когда режим внешнего кодирования, который представляет собой прямой режим, выбирается посредством модуля управления кодированием в качестве режима кодирования, соответствующего одному из блоков, которые должны быть кодированы, на которые разделяется введенное изображение посредством модуля разделения на блоки, модуль предсказания с компенсацией движения выбирает вектор движения, подходящий для генерирования изображения предсказания, из одного или более выбираемых векторов движения, а также выполняет процесс предсказания с компенсацией движения для вышеуказанного блока, который должен быть кодирован, чтобы генерировать изображение предсказания посредством использования вектора движения, и выводит информацию индекса, показывающую вектор движения, в модуль кодирования с переменной длиной кода, и модуль кодирования с переменной длиной кода осуществляет кодирование с переменной длиной кода информации индекса, предоставляется преимущество возможности выбирать оптимальный прямой режим для каждой предварительно определенной единицы блоков и уменьшать объем кода.
Краткое описание чертежей
[0014] Фиг. 1 является блок-схемой, показывающей устройство кодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения;
Фиг. 2 является блок-схемой, показывающей часть 5 предсказания с компенсацией движения устройства кодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения;
Фиг. 3 является блок-схемой, показывающей часть 23 генерирования прямого вектора, которая составляет часть 5 предсказания с компенсацией движения;
Фиг. 4 является блок-схемой, показывающей часть 33 определения прямого вектора, которая составляет часть 23 генерирования прямого вектора;
Фиг. 5 является блок-схемой, показывающей устройство декодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения;
Фиг. 6 является блок-схемой, показывающей часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения;
Фиг. 7 является блок-схемой последовательности операций способа, показывающей обработку, выполняемую посредством устройства кодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения;
Фиг. 8 является блок-схемой последовательности операций способа, показывающей обработку, выполняемую посредством устройства декодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения;
Фиг. 9 является пояснительным чертежом, показывающим состояние, в котором каждый блок, который должен быть кодирован, имеющий максимальный размер, иерархически разделяется на множество блоков, которые должны быть кодированы;
Фиг. 10(a) является пояснительным чертежом, показывающим распределение сегментов, на которые разделяется блок, который должен быть кодирован, и фиг. 10(b) является пояснительным чертежом, показывающим состояние, в котором режим m(Bn) кодирования назначается каждому из сегментов после того, как разделение на иерархические уровни выполняется посредством использования графа в виде дерева квадрантов;
Фиг. 11 является принципиальной схемой, показывающей способ генерирования вектора движения во временном прямом режиме;
Фиг. 12 является принципиальной схемой, показывающей способ генерирования вектора движения в пространственном прямом режиме;
Фиг. 13 является принципиальной схемой, показывающей способ генерирования пространственного прямого вектора из вариантов A1-An, B1-Bn, C, D и E для предсказания по среднему;
Фиг. 14 является принципиальной схемой, показывающей способ генерирования пространственного прямого вектора посредством выполнения масштабирования согласно расстоянию во временном направлении;
Фиг. 15 является пояснительным чертежом, показывающим пример вычисления оцененного значения на основе степени подобия между последующим изображением предсказания и предшествующим изображением предсказания;
Фиг. 16 является пояснительным чертежом, показывающим уравнение оценки с использованием дисперсии векторов движения;
Фиг. 17 является пояснительным чертежом, показывающим пространственные векторы MV_A, MV_B и MV_C и временные векторы MV_1-MV_8;
Фиг. 18 является пояснительным чертежом, показывающим генерирование одного вектора-кандидата из множества уже кодированных векторов;
Фиг. 19 является пояснительным чертежом, показывающим пример вычисления оцененного значения SAD только из комбинации изображений, расположенных раньше во времени;
Фиг. 20 является пояснительным чертежом, показывающим поиск изображения, аналогичного L-образному шаблону;
Фиг. 21 является пояснительным чертежом, показывающим пример, в котором размер блока Bn, который должен быть кодирован, составляет Ln=kMn;
Фиг. 22 является пояснительным чертежом, показывающим пример разделения, удовлетворяющего (Ln+1, Mn+1)=(Ln/2, Mn/2);
Фиг. 23 является пояснительным чертежом, показывающим пример, в котором может быть выбрано разделение, показанное на фиг. 21 или на фиг. 22;
Фиг. 24 является пояснительным чертежом, показывающим пример, в котором единица размера блока преобразования имеет иерархическую структуру;
Фиг. 25 является блок-схемой, показывающей часть 5 предсказания с компенсацией движения устройства кодирования движущихся изображений в соответствии с вариантом 3 осуществления настоящего изобретения;
Фиг. 26 является блок-схемой, показывающей часть 25 генерирования прямого вектора, которая составляет часть 5 предсказания с компенсацией движения;
Фиг. 27 является блок-схемой, показывающей часть 34 генерирования начального вектора, которая составляет часть 25 генерирования прямого вектора;
Фиг. 28 является блок-схемой, показывающей часть 73 определения начального вектора, которая составляет часть 34 генерирования начального вектора;
Фиг. 29 является блок-схемой, показывающей часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений в соответствии с вариантом 3 осуществления настоящего изобретения;
Фиг. 30 является пояснительным чертежом, показывающим процесс поиска вектора движения;
Фиг. 31 является блок-схемой, показывающей часть 5 предсказания с компенсацией движения устройства кодирования движущихся изображений в соответствии с вариантом 4 осуществления настоящего изобретения;
Фиг. 32 является блок-схемой, показывающей часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений в соответствии с вариантом 4 осуществления настоящего изобретения;
Фиг. 33 является пояснительным чертежом, показывающим индекс кандидата прямого вектора, в котором описываются выбираемый вектор движения и информация индекса, показывающая вектор движения;
Фиг. 34 является пояснительным чертежом, показывающим пример кодирования только информации индекса, показывающей один вектор;
Фиг. 35 является блок-схемой, показывающей часть 26 генерирования прямого вектора, которая составляет часть 5 предсказания с компенсацией движения;
Фиг. 36 является блок-схемой, показывающей часть 5 предсказания с компенсацией движения устройства кодирования движущихся изображений в соответствии с вариантом 5 осуществления настоящего изобретения;
Фиг. 37 является блок-схемой, показывающей часть 27 генерирования прямого вектора, которая составляет часть 5 предсказания с компенсацией движения;
Фиг. 38 является блок-схемой, показывающей часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений в соответствии с вариантом 5 осуществления настоящего изобретения;
Фиг. 39 является блок-схемой, показывающей часть 26 генерирования прямого вектора, которая составляет часть 5 предсказания с компенсацией движения;
Фиг. 40 является пояснительным чертежом, показывающим корреляцию со смежным блоком;
Фиг. 41 является пояснительным чертежом списка, показывающего один или более выбираемых векторов движения для каждого из размеров блока, предоставляемых для блоков, которые должны быть кодированы;
Фиг. 42 является пояснительным чертежом, показывающим пример списка, максимальный размер блока которого составляет "128";
Фиг. 43 является пояснительным чертежом списка, показывающего один или более выбираемых векторов движения для каждого из шаблонов разделения, предоставляемых для блоков, которые должны быть кодированы;
Фиг. 44 является блок-схемой последовательности операций способа, показывающей процесс передачи информации списка в устройстве кодирования движущихся изображений;
Фиг. 45 является блок-схемой последовательности операций способа, показывающей процесс приема информации списка в устройстве декодирования движущихся изображений;
Фиг. 46 является пояснительным чертежом, показывающим пример кодирования активированного флага изменения и информации списка, показывающей измененный список, поскольку "временной" в списке изменяется с выбираемого на невыбираемый;
Фиг. 47 является пояснительным чертежом, показывающим пример изменения текущего сохраненного списка, поскольку флаг изменения активирован;
Фиг. 48 является пояснительным чертежом, показывающим пример подготовки флага изменения для каждого размера блока и кодирования только информации списка, связанной с размером блока, для которого изменяются выбираемые векторы движения; и
Фиг. 49 является пояснительным чертежом, показывающим пример поиска блока, который внешне кодируется из целевого блока, и задания всех векторов, включенных в блок, в качестве кандидатов пространственных векторов.
Подробное описание вариантов осуществления изобретения
[0015] Далее подробнее поясняются предпочтительные варианты осуществления настоящего изобретения со ссылкой на чертежи.
Вариант 1 осуществления
В этом варианте 1 осуществления поясняются устройство кодирования движущихся изображений, которое вводит каждое кадровое изображение видео, выполняет кодирование с переменной длиной кода для кадрового изображения после выполнения процесса сжатия с ортогональным преобразованием и квантованием для разностного сигнала предсказания, который устройство кодирования движущихся изображений получает посредством выполнения предсказания с компенсацией движения между смежными кадрами, чтобы генерировать поток битов, и устройство декодирования движущихся изображений, которое декодирует поток битов, выведенный из устройства кодирования движущихся изображений.
[0016] Устройство кодирования движущихся изображений в соответствии с этим вариантом 1 осуществления отличается тем, что устройство кодирования движущихся изображений адаптируется к локальному изменению видеосигнала в пространственном и временном направлениях, чтобы разделять видеосигнал на области различных размеров, и выполняет внутрикадровое (intra) и межкадровое адаптивное кодирование. В общем, видеосигнал имеет характеристику локального варьирования своей сложности в пространстве и времени. Может возникать случай, когда шаблон, имеющий равномерную характеристику сигналов в относительно большой области изображения, такого как изображение неба или картинка стены, либо шаблон, имеющий сложный шаблон текстуры в небольшой области изображения, такого как изображение человека или изображение, включающее в себя мелкозернистую структуру, также сосуществует в некотором видеокадре с точки зрения пространства. Также с точки зрения времени, относительно большая область изображения, такого как изображение неба или изображение стены, имеет небольшое локальное изменение во временном направлении в своем шаблоне, в то время как изображение движущегося человека или объекта имеет большее временное изменение, поскольку его контур имеет перемещение твердого тела и перемещение нетвердого тела относительно времени.
[0017] Хотя в процессе кодирования выполняется процесс генерирования разностного сигнала предсказания, имеющего небольшую мощность сигнала и небольшую энтропию, посредством использования временного и пространственного предсказания, тем самым уменьшая совокупный объем кода, объем кода для параметра, используемого для предсказания, может быть уменьшен при условии, что параметр может применяться равномерно к максимально возможно большой области сигнала изображения. С другой стороны, поскольку величина ошибок, возникающих при предсказании, увеличивается, когда идентичный параметр предсказания применяется к шаблону сигнала изображения, имеющему большое изменение во времени и пространстве, не может быть уменьшен объем кода разностного сигнала предсказания. Следовательно, желательно уменьшать размер области, которая подвергается процессу предсказания при выполнении процесса предсказания для шаблона сигнала изображения, имеющего большое изменение во времени и пространстве, тем самым сокращая энергию и энтропию разностного сигнала предсказания, даже если увеличивается объем данных параметра, который используется для предсказания. Чтобы выполнять кодирование, которое приспособлено для таких типичных характеристик видеосигнала, устройство кодирования движущихся изображений в соответствии с этим вариантом 1 осуществления иерархически разделяет каждую область, имеющую предопределенный максимальный размер блока видеосигнала, на блоки и выполняет процесс предсказания и процесс кодирования для кодирования разности предсказания для каждого из блоков, на которые разделяется каждая область.
[0018] Видеосигнал, который должен быть обработан посредством устройства кодирования движущихся изображений в соответствии с этим вариантом 1 осуществления, может быть произвольным видеосигналом, в котором каждый видеокадр состоит из последовательности цифровых выборок (пикселей) в двух измерениях, горизонтальном и вертикальном, таким как YUV-сигнал, который состоит из сигнала яркости и двух цветоразностных сигналов, сигналом цветного видеоизображения в произвольном цветовом пространстве, таким как RGB-сигнал, выведенный из датчика цифровых изображений, сигналом монохромного изображения или сигналом инфракрасного изображения. Градация каждого пиксела может быть 8-битовой, 10-битовой или 12-битовой. В нижеприведенном пояснении, введенный видеосигнал является YUV-сигналом, если не указано иное. Дополнительно предполагается, что две цветоразностных компоненты U и V являются сигналами, имеющими формат 4:2:0, которые субдискретизируются относительно компоненты Y сигнала яркости. Единица данных, которая должна быть обработана, которая соответствует каждому кадру видеосигнала, упоминается как "картинка". В этом варианте 1 осуществления "картинка" поясняется в качестве сигнала видеокадра, для которого выполняется построчное сканирование. Когда видеосигнал является чересстрочным сигналом, "картинка" альтернативно может быть сигналом полевого изображения, который является единицей, которая составляет видеокадр.
[0019] Фиг. 1 является блок-схемой, показывающей устройство кодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения. Ссылаясь на фиг. 1, часть 1 управления кодированием выполняет процесс определения максимального размера каждого из блоков, которые должны быть кодированы, которые являются единицей, которая должна быть обработана в момент, когда выполняются процесс предсказания с компенсацией движения (процесс межкадрового предсказания) или процесс внутреннего предсказания (процесс внутрикадрового предсказания), а также определения верхнего предела по числу иерархических уровней, т.е. максимальной глубины иерархии в иерархии, в которой каждый из блоков, которые должны быть кодированы, имеющих максимальный размер, иерархически разделяется на блоки. Часть 1 управления кодированием также выполняет процесс выбора режима кодирования, подходящего для каждого из блоков, которые должны быть кодированы, на которые иерархически разделяется каждый блок, который должен быть кодирован, имеющий максимальный размер, из одного или более доступных режимов кодирования (одного или более режимов внутреннего кодирования и одного или более режимов внешнего кодирования (включающих в себя режим внешнего кодирования, который представляет собой прямой режим)). Часть 1 управления кодированием составляет модуль управления кодированием.
[0020] Часть 2 разделения на блоки выполняет процесс, при приеме видеосигнала, показывающего введенное изображение, разделения введенного изображения, показанного посредством видеосигнала, на блоки, которые должны быть кодированы, имеющие максимальный размер, определенный посредством части 1 управления кодированием, а также разделения каждого из блоков, которые должны быть кодированы, на блоки иерархически до тех пор, пока число иерархических уровней не достигнет верхнего предела по числу иерархических уровней, который определяется посредством части 1 управления кодированием. Часть 2 разделения на блоки составляет модуль разделения на блоки.
[0021] Переключатель 3 выбора выполняет процесс, когда режим кодирования, выбранный посредством части 1 управления кодированием для блока, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, представляет собой режим внутреннего кодирования, вывода блока, который должен быть кодирован, в часть 4 внутреннего предсказания, и когда режим кодирования, выбранный посредством части 1 управления кодированием для блока, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, представляет собой режим внешнего кодирования, вывода блока, который должен быть кодирован, в часть 5 предсказания с компенсацией движения. Часть 4 внутреннего предсказания выполняет процесс, при приеме блока, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, из переключателя 3 выбора, выполнения процесса внутреннего предсказания для блока, который должен быть кодирован, посредством использования параметров внутреннего предсказания, выведенных из части 1 управления кодированием, чтобы генерировать изображение предсказания. Модуль внутреннего предсказания состоит из переключателя 3 выбора и части 4 внутреннего предсказания.
[0022] Часть 5 предсказания с компенсацией движения выполняет процесс, когда режим внешнего кодирования, который представляет собой прямой режим, выбирается посредством части 1 управления кодированием в качестве режима кодирования, подходящего для блока, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, генерирования пространственного прямого вектора в пространственном прямом режиме из вектора движения уже кодированного блока, расположенного около блока, который должен быть кодирован, а также генерирования временного прямого вектора во временном прямом режиме из вектора движения уже кодированной картинки, к которой можно обращаться посредством блока, который должен быть кодирован, выбора прямого вектора, который предоставляет более высокую корреляцию между опорными изображениями, из пространственного прямого вектора и временного прямого вектора, и выполнения процесса предсказания с компенсацией движения для блока, который должен быть кодирован, посредством использования выбранного прямого вектора, чтобы генерировать изображение предсказания. Напротив, когда режим внешнего кодирования, отличный от прямого режима, выбирается посредством части 1 управления кодированием в качестве режима кодирования, подходящего для блока, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, часть 5 предсказания с компенсацией движения выполняет процесс поиска в блоке, который должен быть кодирован, и опорном изображении, сохраненном в запоминающем устройстве 12 кадров предсказания с компенсацией движения, на предмет вектора движения, и выполнения процесса предсказания с компенсацией движения для блока, который должен быть кодирован, посредством использования вектора движения, чтобы генерировать изображение предсказания. Модуль предсказания с компенсацией движения состоит из переключателя 3 выбора и части 5 предсказания с компенсацией движения.
[0023] Часть 6 вычитания выполняет процесс вычитания изображения предсказания, сгенерированного посредством части 4 внутреннего предсказания или части 5 предсказания с компенсацией движения, из блока, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, чтобы генерировать разностное изображение (=блок, который должен быть кодирован – изображение предсказания). Часть 6 вычитания составляет модуль генерирования разностного изображения. Часть 7 преобразования/квантования осуществляет процесс выполнения процесса ортогонального преобразования (например, процесса DCT (дискретного косинусного преобразования) или ортогонального преобразования, такого как KL-преобразование, в котором основания рассчитываются для конкретной последовательности обучения заранее) на разностном сигнале, сгенерированном посредством части 6 вычитания, в единицах блока, имеющего размер блока преобразования, включенный в параметры кодирования разности предсказания, выведенные в нее из части 1 управления кодированием, а также квантования коэффициентов преобразования разностного изображения посредством использования параметра квантования, включенного в параметры кодирования разности предсказания, чтобы выводить коэффициенты преобразования, квантованные, в качестве сжатых данных разностного изображения. Часть 7 преобразования/квантования составляет модуль сжатия изображения.
[0024] Часть 8 обратного преобразования/обратного квантования выполняет процесс обратного квантования сжатых данных, выведенных из части 7 преобразования/квантования, посредством использования параметра квантования, включенного в параметр прогнозирующего разностного кодирования, выведенный из части 1 управления кодированием, и выполнения процесса обратного преобразования (например, процесса обратного DCT (обратного дискретного косинусного преобразования) или обратного преобразования, такого как обратное KL-преобразование) в отношении сжатых данных, обратно квантованных, чтобы выводить сжатые данные, для которых часть обратного преобразования/обратного квантования выполняет процесс обратного преобразования, в качестве локального декодированного разностного сигнала предсказания.
[0025] Часть 9 суммирования выполняет процесс суммирования локального декодированного разностного сигнала предсказания, выведенного из части 8 обратного преобразования/обратного квантования, и сигнала предсказания, показывающего изображение предсказания, сгенерированное посредством части 4 внутреннего предсказания или части 5 предсказания с компенсацией движения, чтобы генерировать сигнал локального декодированного изображения, показывающий локальное декодированное изображение. Запоминающее устройство 10 для внутреннего предсказания является носителем записи, таким как RAM, для сохранения локального декодированного изображения, показанного посредством сигнала локального декодированного изображения, сгенерированного посредством части 9 суммирования, в качестве изображения, которое часть 4 внутреннего предсказания использует при выполнении процесса внутреннего предсказания в следующий раз.
[0026] Часть 11 контурного фильтра выполняет процесс компенсации искажения при кодировании, включенного в сигнал локального декодированного изображения, сгенерированный посредством части 9 суммирования, и вывода локального декодированного изображения, показанного посредством сигнала локального декодированного изображения, для которого часть контурного фильтра выполняет компенсацию искажений при кодировании, в запоминающее устройство 12 кадров предсказания с компенсацией движения в качестве опорного изображения. Запоминающее устройство 12 кадров предсказания с компенсацией движения является носителем записи, таким как RAM, для сохранения локального декодированного изображения, для которого часть 11 контурного фильтра выполняет процесс фильтрации, в качестве опорного изображения, которое использует часть 5 предсказания с компенсацией движения при выполнении процесса предсказания с компенсацией движения в следующий раз.
[0027] Часть 13 кодирования с переменной длиной кода выполняет процесс кодирования с переменной длиной кода сжатых данных, выведенных из части 7 преобразования/квантования, режима кодирования и параметров кодирования разности предсказания, которые выводятся в нее из части 1 управления кодированием, и параметров внутреннего предсказания, выведенных из части 4 внутреннего предсказания, или параметров внешнего предсказания, выведенных из части 5 предсказания с компенсацией движения, чтобы генерировать поток битов, в который мультиплексируются кодированные данные сжатых данных, кодированные данные режима кодирования, кодированные данные параметров кодирования разности предсказания и кодированные данные параметров внутреннего предсказания или параметров внешнего предсказания. Часть 13 кодирования с переменной длиной кода составляет модуль кодирования с переменной длиной кода.
[0028] Фиг. 2 является блок-схемой, показывающей часть 5 предсказания с компенсацией движения устройства кодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения. Ссылаясь на фиг. 2, переключатель 21 выбора выполняет процесс вывода блока, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, в часть 22 поиска вектора движения, когда режим кодирования, выбранный посредством части 1 управления кодированием, представляет собой внешний режим, отличный от прямых режимов, и вывода блока, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, в часть 23 генерирования прямого вектора, когда режим кодирования представляет собой внешний режим, который представляет собой прямой режим. Поскольку часть 23 генерирования прямого вектора не использует блок, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, при генерировании прямого вектора, переключатель выбора не должен выводить блок, который должен быть кодирован, в часть 23 генерирования прямого вектора.
[0029] Часть 22 поиска вектора движения выполняет процесс поиска оптимального вектора движения во внешнем режиме при обращении как к блоку, который должен быть кодирован, выведенному из переключателя 21 выбора, так и к опорному изображению, сохраненному в запоминающем устройстве 12 кадров предсказания с компенсацией движения, и вывода вектора движения в часть 24 обработки компенсации движения. Часть 23 генерирования прямого вектора выполняет процесс генерирования пространственного прямого вектора в пространственном прямом режиме из вектора движения уже кодированного блока, расположенного около блока, который должен быть кодирован, а также генерирования временного прямого вектора во временном прямом режиме из вектора движения уже кодированной картинки, к которой можно обращаться посредством блока, который должен быть кодирован, и выбора прямого вектора, который предоставляет более высокую корреляцию между опорными изображениями, из пространственного прямого вектора и временного прямого вектора.
[0030] Часть 24 обработки компенсации движения осуществляет процесс выполнения процесса предсказания с компенсацией движения на основе параметров внешнего предсказания, выведенных из части 1 управления кодированием, посредством использования как вектора движения, поиск которого выполняется посредством части 22 поиска вектора движения, или прямого вектора, который выбирается посредством части 23 генерирования прямого вектора, так и одного или более кадров опорных изображений, сохраненных в запоминающем устройстве 12 кадров предсказания с компенсацией движения, чтобы генерировать изображение предсказания. Часть 24 обработки компенсации движения выводит параметры внешнего предсказания, которые использует часть обработки компенсации движения при выполнении процесса предсказания с компенсацией движения, в часть 13 кодирования с переменной длиной кода. Когда режим кодирования, выбранный посредством части 1 управления кодированием, представляет собой внешний режим, отличный от прямых режимов, часть обработки компенсации движения включает вектор движения, поиск которого выполняется посредством части 22 поиска вектора движения, в параметры внешнего предсказания и выводит эти параметры внешнего предсказания в часть 13 кодирования с переменной длиной кода.
[0031] Фиг. 3 является блок-схемой, показывающей часть 23 генерирования прямого вектора, которая составляет часть 5 предсказания с компенсацией движения. Ссылаясь на фиг. 3, часть 31 генерирования пространственного прямого вектора выполняет процесс считывания вектора движения уже кодированного блока, расположенного около блока, который должен быть кодирован, из числа векторов движения уже кодированных блоков (векторы движения уже кодированных блоков сохраняются в непоказанном запоминающем устройстве векторов движения или внутреннем запоминающем устройстве части 5 предсказания с компенсацией движения), чтобы генерировать пространственный прямой вектор в пространственном прямом режиме из вектора движения. Часть 32 генерирования временного прямого вектора выполняет процесс считывания вектора движения блока, расположенного пространственно в позиции, идентичной позиции блока, который должен быть кодирован, который является вектором движения уже кодированной картинки, к которой можно обращаться посредством блока, который должен быть кодирован, из числа векторов движения уже кодированных блоков, чтобы генерировать временной прямой вектор во временном прямом режиме из вектора движения.
[0032] Часть 33 определения прямого вектора выполняет процесс вычисления оцененного значения в пространственном прямом режиме посредством использования пространственного прямого вектора, сгенерированного посредством части 31 генерирования пространственного прямого вектора, а также вычисления оцененного значения во временном прямом режиме посредством использования временного прямого вектора, сгенерированного посредством части 32 генерирования временного прямого вектора, и сравнения оцененного значения в пространственном прямом режиме с оцененным значением во временном прямом режиме, чтобы выбирать любой из пространственного прямого вектора и временного прямого вектора.
[0033] Фиг. 4 является блок-схемой, показывающей часть 33 определения прямого вектора, которая составляет часть 23 генерирования прямого вектора. Ссылаясь на фиг. 4, часть 41 компенсации движения выполняет процесс генерирования изображения предсказания из списка 0 в пространственном прямом режиме (например, последующего изображения предсказания в пространственном прямом режиме) и изображения предсказания из списка 1 в пространственном прямом режиме (например, предшествующего изображения предсказания в пространственном прямом режиме) посредством использования пространственного прямого вектора, сгенерированного посредством части 31 генерирования пространственного прямого вектора, а также генерирования изображения предсказания из списка 0 во временном прямом режиме (например, последующего изображения предсказания во временном прямом режиме) и изображения предсказания из списка 1 во временном прямом режиме (например, предшествующего изображения предсказания во временном прямом режиме) посредством использования временного прямого вектора, сгенерированного посредством части 32 генерирования временного прямого вектора.
[0034] Часть 42 вычисления подобия выполняет процесс вычисления степени подобия между изображением предсказания из списка 0 в пространственном прямом режиме (последующим изображением предсказания) и изображением предсказания из списка 1 в пространственном прямом режиме (предшествующим изображением предсказания) в качестве оцененного значения в пространственном прямом режиме, а также вычисления степени подобия между изображением предсказания из списка 0 во временном прямом режиме (последующим изображением предсказания) и изображением предсказания из списка 1 во временном прямом режиме (предшествующим изображением предсказания) в качестве оцененного значения во временном прямом режиме. Выбирающая прямой вектор часть 43 выполняет процесс сравнения степени подобия между изображением предсказания из списка 0 в пространственном прямом режиме (последующим изображением предсказания) и изображением предсказания из списка 1 в пространственном прямом режиме (предшествующим изображением предсказания), которая вычисляется посредством части 42 вычисления подобия, со степенью подобия между изображением предсказания из списка 0 во временном прямом режиме (последующим изображением предсказания) и изображением предсказания из списка 1 во временном прямом режиме (предшествующим изображением предсказания), которая вычисляется посредством части 42 вычисления подобия, чтобы выбирать прямой вектор в одном прямом режиме, который предоставляет более высокую степень подобия между изображением предсказания из списка 0 (последующим изображением предсказания) и изображением предсказания из списка 1 (предшествующим изображением предсказания), из пространственного прямого вектора и временного прямого вектора.
[0035] Фиг. 5 является блок-схемой, показывающей устройство декодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения. Ссылаясь на фиг. 5, часть 51 декодирования с переменной длиной кода выполняет процесс декодирования с переменной длиной кода кодированных данных, мультиплексированных в поток битов, чтобы получать сжатые данные, режим кодирования, параметры кодирования разности предсказания и параметры внутреннего предсказания или параметры внешнего предсказания, которые связаны с каждым блоком кодирования, на которые иерархически разделяется каждый видеокадр, и вывода сжатых данных и параметров кодирования разности предсказания в часть 55 обратного преобразования/обратного квантования, а также вывода режима кодирования и параметров внутреннего предсказания или параметров внешнего предсказания в переключатель выбора 52. Часть 51 декодирования с переменной длиной кода составляет модуль декодирования с переменной длиной кода.
[0036] Переключатель выбора 52 выполняет процесс, когда режим кодирования, связанный с блоком кодирования, который выводится из части 51 декодирования с переменной длиной кода, представляет собой режим внутреннего кодирования, вывода параметров внутреннего предсказания, выведенных в нее из части 51 декодирования с переменной длиной кода, в часть 53 внутреннего предсказания, а когда режим кодирования представляет собой режим внешнего кодирования, вывода параметров внешнего предсказания, выведенных в нее из части 51 декодирования с переменной длиной кода, в часть 54 предсказания с компенсацией движения. Часть 53 внутреннего предсказания осуществляет процесс выполнения процесса внутреннего предсказания для блока кодирования посредством использования параметров внутреннего предсказания, выведенных в нее из переключателя 52 выбора, чтобы генерировать изображение предсказания. Модуль внутреннего предсказания состоит из переключателя 52 выбора и части 53 внутреннего предсказания.
[0037] Часть 54 предсказания с компенсацией движения выполняет процесс, когда режим кодирования, связанный с блоком кодирования, который выводится в нее из части 51 декодирования с переменной длиной кода, представляет собой режим внешнего кодирования, который представляет собой прямой режим, генерирования пространственного прямого вектора в пространственном прямом режиме из вектора движения уже декодированного блока, расположенного около блока кодирования, а также генерирования временного прямого вектора во временном прямом режиме из вектора движения уже декодированной картинки, к которой можно обращаться посредством блока кодирования, выбора одного прямого вектора, который предоставляет более высокую корреляцию между опорными изображениями, из пространственного прямого вектора и временного прямого вектора, и выполнения процесса предсказания с компенсацией движения для блока кодирования посредством использования выбранного прямого вектора, чтобы генерировать изображение предсказания. Часть 54 предсказания с компенсацией движения также осуществляет процесс выполнения процесса предсказания с компенсацией движения для блока кодирования посредством использования вектора движения, включенного в параметры внешнего предсказания, выведенные в нее из части 51 декодирования с переменной длиной кода, чтобы генерировать изображение предсказания, когда режим кодирования, связанный с блоком кодирования, который выводится в нее из части 51 декодирования с переменной длиной кода, представляет собой режим внешнего кодирования, отличный от прямых режимов. Модуль предсказания с компенсацией движения состоит из переключателя 52 выбора и части 54 предсказания с компенсацией движения.
[0038] Часть 55 обратного преобразования/обратного квантования выполняет процесс обратного квантования сжатых данных, связанных с блоком кодирования, который выводится в нее из части 51 декодирования с переменной длиной кода, посредством использования параметра квантования, включенного в параметры кодирования разности предсказания, выведенные в нее из части 51 декодирования с переменной длиной кода, и выполнения процесса обратного преобразования (например, процесса обратного DCT (обратного дискретного косинусного преобразования) или обратного преобразования, такого как обратное KL-преобразование) на сжатых данных, обратно квантованных, в единицах блока, имеющего размер блока преобразования, включенный в параметры кодирования разности предсказания, и вывода сжатых данных, для которых часть обратного преобразования/обратного квантования выполняет процесс обратного преобразования, в качестве декодированного разностного сигнала предсказания (сигнала, показывающего предварительно сжатое разностное изображение). Часть 55 обратного преобразования/обратного квантования составляет модуль генерирования разностного изображения.
[0039] Часть 56 суммирования выполняет процесс суммирования декодированного разностного сигнала предсказания, выведенного в нее из части 55 обратного преобразования/обратного квантования, и сигнала предсказания, показывающего изображение предсказания, сгенерированное посредством части 53 внутреннего предсказания или части 54 предсказания с компенсацией движения, чтобы генерировать сигнал декодированного изображения, показывающий декодированное изображение. Часть 56 суммирования составляет модуль генерирования декодированного изображения. Запоминающее устройство 57 для внутреннего предсказания является носителем записи, таким как RAM, для сохранения декодированного изображения, показанного посредством сигнала декодированного изображения, сгенерированного посредством части 56 суммирования, в качестве изображения, которое часть 53 внутреннего предсказания использует при выполнении процесса внутреннего предсказания в следующий раз.
[0040] Часть 58 контурного фильтра выполняет процесс компенсации искажения при кодировании, включенного в сигнал декодированного изображения, сгенерированный посредством части 56 суммирования, и вывода декодированного изображения, показанного посредством сигнала декодированного изображения, для которого часть контурного фильтра выполняет компенсацию искажений при кодировании, в запоминающее устройство 59 кадров предсказания с компенсацией движения в качестве опорного изображения. Запоминающее устройство 59 кадров предсказания с компенсацией движения является носителем записи, таким как RAM, для сохранения декодированного изображения, для которого часть 58 контурного фильтра выполняет процесс фильтрации, в качестве опорного изображения, которое часть 54 предсказания с компенсацией движения использует при выполнении процесса предсказания с компенсацией движения в следующий раз.
[0041] Фиг. 6 является блок-схемой, показывающей часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения. Ссылаясь на фиг. 6, переключатель выбора 61 выполняет процесс, когда режим кодирования, связанный с блоком кодирования, который выводится в нее из части 51 декодирования с переменной длиной кода, представляет собой внешний режим, отличный от прямых режимов, вывода параметров внешнего предсказания (включающих в себя вектор движения), выведенных в нее из части 51 декодирования с переменной длиной кода, в часть 63 обработки компенсации движения, а когда режим кодирования представляет собой внешний режим, который представляет собой прямой режим, вывода параметров внешнего предсказания, выведенных в нее из части 51 декодирования с переменной длиной кода, в часть 62 генерирования прямого вектора.
[0042] Часть 62 генерирования прямого вектора выполняет процесс генерирования пространственного прямого вектора в пространственном прямом режиме из вектора движения уже декодированного блока, расположенного около блока кодирования, а также генерирует временной прямой вектор во временном прямом режиме из вектора движения уже декодированной картинки, к которой можно обращаться посредством блока кодирования, и выбора одного прямого вектора, который предоставляет более высокую корреляцию между опорными изображениями, из пространственного прямого вектора и временного прямого вектора. Часть 62 генерирования прямого вектора также выполняет процесс вывода параметров внешнего предсказания, выведенных в нее из переключателя 61 выбора, в часть 63 обработки компенсации движения. Внутренняя структура части 62 генерирования прямого вектора является идентичной части 23 генерирования прямого вектора, показанной на фиг. 2.
[0043] Часть 63 обработки компенсации движения осуществляет процесс выполнения процесса предсказания с компенсацией движения на основе параметров внешнего предсказания, выведенных в нее из части 62 генерирования прямого вектора, посредством использования как вектора движения, включенного в параметры внешнего предсказания, выведенные в нее из переключателя 61 выбора, или прямого вектора, выбранного посредством части 62 генерирования прямого вектора, так и опорного изображения одного кадра, сохраненного в запоминающем устройстве 59 кадров предсказания с компенсацией движения, чтобы генерировать изображение предсказания.
[0044] В примере по фиг. 1, часть 1 управления кодированием, часть 2 разделения на блоки, переключатель 3 выбора, часть 4 внутреннего предсказания, часть 5 предсказания с компенсацией движения, часть 6 вычитания, часть 7 преобразования/квантования, часть 8 обратного преобразования/обратного квантования, часть 9 суммирования, часть 11 контурного фильтра и часть 13 кодирования с переменной длиной кода, которые являются компонентами устройства кодирования движущихся изображений, могут состоять из элементов аппаратного обеспечения для монопольного использования (например, интегральных схем, в каждой из которых установлен CPU, однокристальных микрокомпьютеров и т.п.), соответственно. В качестве альтернативы, устройство кодирования движущихся изображений может состоять из компьютера, и программа, в которой описываются процессы, выполняемые посредством части 1 управления кодированием, части 2 разделения на блоки, переключателя 3 выбора, части 4 внутреннего предсказания, части 5 предсказания с компенсацией движения, части 6 вычитания, части 7 преобразования/квантования, части 8 обратного квантования/обратного преобразования, части 9 суммирования, части 11 контурного фильтра и части 13 кодирования с переменной длиной кода, может быть сохранена в запоминающем устройстве компьютера, и CPU компьютера может быть выполнен с возможностью исполнять программу, сохраненную в запоминающем устройстве. Фиг. 7 является блок-схемой последовательности операций способа, показывающей обработку, выполняемую посредством устройства кодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения.
[0045] В примере по фиг. 5, часть 51 декодирования с переменной длиной кода, переключатель выбора 52, часть 53 внутреннего предсказания, часть 54 предсказания с компенсацией движения, часть 55 обратного преобразования/обратного квантования, часть 56 суммирования и часть 58 контурного фильтра, которые являются компонентами устройства декодирования движущихся изображений, могут состоять из элементов аппаратного обеспечения для монопольного использования (например, интегральных схем, в каждой из которых установлен CPU, однокристальных микрокомпьютеров и т.п.), соответственно. В качестве альтернативы, устройство декодирования движущихся изображений может состоять из компьютера, и программа, в которой описываются процессы, выполняемые посредством части 51 декодирования с переменной длиной кода, переключателя 52 выбора, части 53 внутреннего предсказания, части 54 предсказания с компенсацией движения, части 55 обратного преобразования/обратного квантования, части 56 суммирования и части 58 контурного фильтра, может быть сохранена в запоминающем устройстве компьютера, и CPU компьютера может быть выполнен с возможностью исполнять программу, сохраненную в запоминающем устройстве. Фиг. 8 является блок-схемой последовательности операций способа, показывающей обработку, выполняемую посредством устройства декодирования движущихся изображений в соответствии с вариантом 1 осуществления настоящего изобретения.
[0046] Далее поясняется работа устройства кодирования движущихся изображений и работа устройства декодирования движущихся изображений. Во-первых, поясняется обработка, выполняемая посредством устройства кодирования движущихся изображений, показанного на фиг. 1. Во-первых, часть 1 управления кодированием определяет максимальный размер каждого из блоков, которые должны быть кодированы, который является единицей, которая должна быть обработана в момент, когда выполняется процесс предсказания с компенсацией движения (процесс межкадрового предсказания) или процесс внутреннего предсказания (процесс внутрикадрового предсказания), а также определяет верхний предел по числу иерархических уровней в иерархии, в которой каждый из блоков, которые должны быть кодированы, имеющих максимальный размер, иерархически разделяется на блоки (этап ST1 по фиг. 7).
[0047] В качестве способа определения максимального размера каждого из блоков, которые должны быть кодированы, например, рассматривается способ определения максимального размера для всех картинок согласно разрешению введенного изображения. Дополнительно, может рассматриваться способ количественного определения изменения сложности локального перемещения введенного изображения в качестве параметра и затем определения небольшого размера для картинки, имеющей большое и интенсивное перемещение, при определении большого размера для картинки, имеющей небольшое перемещение. В качестве способа определения верхнего предела по числу иерархических уровней, например, может рассматриваться способ увеличения глубины иерархии, т.е. числа иерархических уровней, чтобы позволять обнаруживать более точное перемещение по мере того, как введенное изображение имеет большее и более интенсивное перемещение, или снижения глубины иерархии, т.е. числа иерархических уровней по мере того, как введенное изображение имеет меньшее перемещение.
[0048] Часть 1 управления кодированием также выбирает режим кодирования, подходящий для каждого из блоков, которые должны быть кодированы, на которые иерархически разделяется каждый блок, который должен быть кодирован, имеющий максимальный размер, из одного или более доступных режимов кодирования (M режимов внутреннего кодирования и N режимов внешнего кодирования (включающих в себя режим внешнего кодирования, который представляет собой прямой режим)) (этап ST2). Хотя опускается подробное пояснение способа выбора режима кодирования для использования в части 1 управления кодированием, поскольку способ выбора является известной технологией, предусмотрен способ выполнения процесса кодирования для блока, который должен быть кодирован, посредством использования произвольного доступного режима кодирования, например, чтобы анализировать эффективность кодирования и выбирать режим кодирования, имеющий самый высокий уровень эффективности кодирования, из множества доступных режимов кодирования.
[0049] При приеме видеосигнала, показывающего введенное изображение, часть 2 разделения на блоки разделяет введенное изображение, показанное посредством видеосигнала, на блоки, которые должны быть кодированы, имеющие максимальный размер, определенный посредством части 1 управления кодированием, а также разделяет каждый из блоков, которые должны быть кодированы, на блоки иерархически до тех пор, пока число иерархических уровней не достигает верхнего предела по числу иерархических уровней, который определяется посредством части 1 управления кодированием. Фиг. 9 является пояснительным чертежом, показывающим состояние, в котором каждый блок, который должен быть кодирован, имеющий максимальный размер, иерархически разделяется на множество блоков, которые должны быть кодированы. В примере по фиг. 9, каждый блок, который должен быть кодирован, имеющий максимальный размер, является блоком B0, который должен быть кодирован, на нулевом иерархическом уровне, и его компонента сигнала яркости имеет размер (L0, M0). Дополнительно, в примере по фиг. 9, посредством выполнения иерархического разделения, когда этот блок B0, который должен быть кодирован, имеющий максимальный размер, задается как начальная точка, до тех пор пока глубина иерархии не достигает предопределенной глубины, которая задается отдельно согласно структуре в виде дерева квадрантов, могут быть получены блоки Bn, которые должны быть кодированы.
[0050] На глубине n каждый блок Bn, который должен быть кодирован, является областью изображения, имеющей размер (Ln, Mn). В этом примере, хотя Mn может быть идентичным или отличаться от Ln, случай Ln=Mn показан на фиг. 4. Далее, размер каждого блока Bn, который должен быть кодирован, задается как размер (Ln, Mn) в компоненте сигнала яркости блока Bn, который должен быть кодирован.
[0051] Поскольку часть 2 разделения на блоки выполняет разделение на дерево квадрантов, (Ln+1, Mn+1)=(Ln/2, Mn/2) всегда устанавливается. В случае сигнала цветного видеоизображения (формат 4:4:4), в котором все цветовые компоненты имеют идентичное число выборок, к примеру, RGB-сигнала, все цветовые компоненты имеют размер (Ln, Mn), в то время как в случае обработки формата 4:2:0, соответствующий цветоразностный компонент имеет размер блока кодирования (Ln/2, Mn/2). Далее, режим кодирования, выбираемый для каждого блока Bn, который должен быть кодирован, на n-ном иерархическом уровне, выражается как m(Bn).
[0052] В случае цветового видеосигнала, который состоит из множества цветовых компонентов, режим m(Bn) кодирования может генерироваться таким образом, что отдельный режим используется для каждой цветовой компоненты. Далее, пояснение приводится посредством допущения того, что режим m(Bn) кодирования указывает режим для компоненты сигнала яркости каждого блока, который должен быть кодирован, имеющего формат 4:2:0, в YUV-сигнале, если не указано иное. Режим m(Bn) кодирования может представлять собой режим из одного или более режимов внутреннего кодирования (в общем, называемых "INTRA") и одного или более режимов внешнего кодирования (в общем, называемых "INTER"), и часть 1 управления кодированием выбирает, в качестве режима m(Bn) кодирования, режим кодирования с наибольшей степенью эффективности кодирования для каждого блока Bn, который должен быть кодирован, из всех режимов кодирования, доступных в текущем обрабатываемой картинки, или из поднабора этих режимов кодирования, как упомянуто выше.
[0053] Каждый блок Bn, который должен быть кодирован, дополнительно разделяется на одну или более единиц предсказания (сегментов) посредством части разделения на блоки, как показано на фиг. 9. Далее, каждый сегмент, принадлежащий каждому блоку Bn, который должен быть кодирован, выражается как Pin (i показывает номер сегмента на n-ном иерархическом уровне). То, как выполняется разделение каждого блока Bn, который должен быть кодирован, на сегменты Pin, принадлежащие блоку Bn, который должен быть кодирован, включается в качестве информации в режим m(Bn) кодирования. Хотя процесс предсказания выполняется для каждого из всех сегментов Pin согласно режиму m(Bn) кодирования, отдельный параметр предсказания может быть выбран для каждого сегмента Pin.
[0054] Часть 1 управления кодированием генерирует такое состояние разделения на блоки, как показано, например, на фиг. 10 для блока, который должен быть кодирован, имеющего максимальный размер, и затем определяет блоки Bn, которые должны быть кодированы. Заштрихованные части, показанные на фиг. 10(a), показывают распределение сегментов, на которые разделяется каждый блок, который должен быть кодирован, имеющий максимальный размер, и фиг. 10(b) показывает случай, в котором режимы m(Bn) кодирования, соответственно, назначаются сегментам, сгенерированным через разделение на иерархические уровни посредством использования графа в виде дерева квадрантов. Каждая часть, заключенная в, показанную на фиг. 10(b), представляет собой часть (блок, который должен быть кодирован), которому назначается режим m(Bn) кодирования.
[0055] Когда часть 1 управления кодированием выбирает оптимальный режим m(Bn) кодирования для каждого сегмента Pin каждого блока Bn, который должен быть кодирован, и режим m(Bn) кодирования представляет собой режим внутреннего кодирования (этап ST3), переключатель 3 выбора выводит сегмент Pin блока Bn, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, в часть 4 внутреннего предсказания. Напротив, когда режим m(Bn) кодирования представляет собой режим внешнего кодирования (этап ST3), переключатель выбора выводит сегмент Pin блока Bn, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, в часть 5 предсказания с компенсацией движения.
[0056] При приеме сегмента Pin блока Bn, который должен быть кодирован, из переключателя 3 выбора часть 4 внутреннего предсказания выполняет процесс внутреннего предсказания для сегмента Pin блока Bn, который должен быть кодирован, посредством использования параметров внутреннего предсказания, соответствующих режиму m(Bn) кодирования, выбранному посредством части 1 управления кодированием, чтобы генерировать изображение Pin внутреннего предсказания (этап ST4). Часть 4 внутреннего предсказания выводит изображение Pin внутреннего предсказания в часть 6 вычитания и часть 9 суммирования после генерирования изображения Pin внутреннего предсказания при выводе параметров внутреннего предсказания в часть 13 кодирования с переменной длиной кода, чтобы предоставлять возможность устройству декодирования движущихся изображений, показанному на фиг. 5, генерировать идентичное изображение Pin внутреннего предсказания. Хотя процесс внутреннего предсказания, показанный в этом варианте 1 осуществления, не ограничивается процессом согласно алгоритму, определенному в стандартах AVC/H.264 (ISO/IEC 14496-10), параметры внутреннего предсказания должны включать в себя информацию, требуемую для устройства кодирования движущихся изображений и устройства декодирования движущихся изображений, чтобы генерировать полностью идентичное изображение внутреннего предсказания.
[0057] При приеме сегмента Pin блока Bn, который должен быть кодирован, из переключателя 3 выбора, и когда режим m(Bn) кодирования, выбранный посредством части 1 управления кодированием, представляет собой режим внешнего кодирования, который представляет собой прямой режим, часть 5 предсказания с компенсацией движения генерирует пространственный прямой вектор в пространственном прямом режиме из вектора движения уже кодированного блока, расположенного около сегмента Pin блока Bn, который должен быть кодирован, а также генерирует временной прямой вектор во временном прямом режиме из вектора движения уже кодированной картинки, к которой можно обращаться посредством блока Bn, который должен быть кодирован. Часть 5 предсказания с компенсацией движения затем выбирает один прямой вектор, который предоставляет более высокую корреляцию между опорными изображениями, из пространственного прямого вектора и временного прямого вектора и выполняет процесс предсказания с компенсацией движения для сегмента Pin блока Bn, который должен быть кодирован, посредством использования прямого вектора, выбранного посредством него, и параметров внешнего предсказания, соответствующих режиму m(Bn) кодирования, чтобы генерировать изображение предсказания (этап ST5).
[0058] Напротив, когда режим m(Bn) кодирования, выбранный посредством части 1 управления кодированием, представляет собой режим внешнего кодирования, отличный от прямых режимов, часть 5 предсказания с компенсацией движения выполняет поиск в сегменте Pin блока Bn, который должен быть кодирован, и опорном изображении, сохраненном в запоминающем устройстве 12 кадров предсказания с компенсацией движения, на предмет вектора движения и выполняет процесс предсказания с компенсацией движения для сегмента Pin блока Bn, который должен быть кодирован, посредством использования вектора движения и параметров внешнего предсказания, соответствующих режиму m(Bn) кодирования, чтобы генерировать изображение предсказания (этап ST5). Часть 5 предсказания с компенсацией движения выводит изображение Pin внешнего предсказания в часть 6 вычитания и часть 9 суммирования после генерирования изображения Pin внешнего предсказания при выводе параметров внешнего предсказания в часть 13 кодирования с переменной длиной кода, чтобы предоставлять возможность устройству декодирования движущихся изображений, показанному на фиг. 5, генерировать идентичное изображение Pin внешнего предсказания. Параметры внешнего предсказания, используемые для генерирования изображения внешнего предсказания, включают в себя:
- Информацию режима, в которой описывается разделение блока Bn, который должен быть кодирован, на сегменты;
- Вектор движения каждого сегмента;
- Информацию индекса индикатора опорного изображения, показывающую то, какое опорное изображение используется для выполнения предсказания, когда запоминающее устройство 12 кадров предсказания с компенсацией движения сохраняет множество опорных изображений;
- Информацию индекса, показывающую то, какое предсказанное значение вектора движения выбирается и используется, когда существует множество кандидатов предсказанного значения вектора движения;
- Информацию индекса, показывающую то, какой фильтр выбирается и используется, когда существует множество интерполяционных фильтров компенсации движения; и
- Информацию выбора, показывающую то, какая точность в пикселях используется, когда вектор движения текущего обрабатываемого сегмента может демонстрировать множество степеней точности в пикселях (полупиксель, 1/4 пикселя, 1/8 пикселя и т.д.).
Параметры внешнего предсказания мультиплексируются в поток битов посредством части 13 кодирования с переменной длиной кода, чтобы предоставлять возможность устройству декодирования движущихся изображений генерировать полностью идентичное изображение внешнего предсказания. Основные принципы процесса, выполняемого посредством части 5 предсказания с компенсацией движения, являются такими, как упомянуто выше, и ниже упоминаются подробности процесса.
[0059] После того, как часть 4 внутреннего предсказания или часть 5 предсказания с компенсацией движения генерирует изображение предсказания (изображение Pin внутреннего предсказания или изображение Pin внешнего предсказания), часть 6 вычитания вычитает изображение предсказания (изображение Pin внутреннего предсказания или изображение Pin внешнего предсказания), сгенерированное посредством части 4 внутреннего предсказания или части 5 предсказания с компенсацией движения, из сегмента Pin блока Bn, который должен быть кодирован, который генерируется через разделение посредством части 2 разделения на блоки, чтобы генерировать разностное изображение, и выводит сигнал ein разности предсказания, показывающий разностное изображение, в часть 7 преобразования/квантования (этап ST6).
[0060] При приеме сигнала ein разности предсказания, показывающего разностное изображение, из части 6 вычитания, часть 7 преобразования/квантования выполняет процесс преобразования (например, процесс DCT (дискретного косинусного преобразования) или ортогонального преобразования, такого как KL-преобразование, в котором основания рассчитываются для конкретной последовательности обучения заранее) для разностного изображения, в единицах блока, имеющего размер блока преобразования, включенный в параметры кодирования разности предсказания, выведенные в нее из части 1 управления кодированием, и квантует коэффициенты преобразования разностного изображения посредством использования параметра квантования, включенного в параметры кодирования разности предсказания, и выводит коэффициенты преобразования, квантованные, в часть 8 обратного преобразования/обратного квантования и часть 13 кодирования с переменной длиной кода в качестве сжатых данных разностного изображения (этап ST7).
[0061] При приеме сжатых данных разностного изображения из части 7 преобразования/квантования часть 8 обратного преобразования/обратного квантования обратно квантует сжатые данные разностного изображения посредством использования параметра квантования, включенного в параметры кодирования разности предсказания, выведенные в нее из части 1 управления кодированием, выполняет процесс обратного преобразования (например, процесс обратного DCT (обратного дискретного косинусного преобразования) или обратного преобразования, такого как обратное KL-преобразование) на сжатых данных, обратно квантованных таким образом, в единицах блока, имеющего размер блока преобразования, включенный в параметры кодирования разности предсказания, и выводит сжатые данные, на которых часть обратного преобразования/обратного квантования выполняет процесс обратного преобразования, в качестве локального декодированного сигнала ein "шляпка" разности предсказания ("^", присоединенный к букве алфавита, выражается как "шляпка" по причинам ограничений в электронных приложениях) (этап ST8).
[0062] При приеме локального декодированного сигнала ein "шляпка" разности предсказания из части 8 обратного преобразования/обратного квантования часть 9 суммирования суммирует локальный декодированный сигнал ein "шляпка" разности предсказания и сигнал предсказания, показывающий изображение предсказания (изображение Pin внутреннего предсказания или изображение Pin внешнего предсказания), сгенерированное посредством части 4 внутреннего предсказания или части 5 предсказания с компенсацией движения, чтобы генерировать локальное декодированное изображение, которое является локальным декодированным изображением Pin "шляпка" сегмента, или локальное декодированное изображение блока, который должен быть кодирован, которое является группой локальных декодированных изображений сегментов (этап ST9). После генерирования локального декодированного изображения часть 9 суммирования сохраняет сигнал локального декодированного изображения, показывающий локальное декодированное изображение, в запоминающем устройстве 10 для внутреннего предсказания, а также выводит сигнал локального декодированного изображения в часть 11 контурного фильтра.
[0063] Устройство кодирования движущихся изображений многократно выполняет процессы этапов ST3-ST9 до тех пор, пока устройство кодирования движущихся изображений не завершает обработку для всех блоков Bn, которые должны быть кодированы, на которые иерархически разделяется введенное изображение, и при завершении обработки для всех блоков Bn, которые должны быть кодированы, переходит к процессу этапа ST12 (этапы ST10 и ST11).
[0064] Часть 13 кодирования с переменной длиной кода энтропийно кодирует сжатые данные, выведенные в нее из части 7 преобразования/квантования, режим кодирования (включающий в себя информацию, показывающую состояние разделения на блоки, которые должны быть кодированы), и параметры кодирования разности предсказания, которые выводятся в нее из части 1 управления кодированием, и параметры внутреннего предсказания, выведенные в нее из части 4 внутреннего предсказания, или параметры внешнего предсказания, выведенные в нее из части 5 предсказания с компенсацией движения. Часть 13 кодирования с переменной длиной кода мультиплексирует кодированные данные, которые являются кодированными результатами энтропийного кодирования сжатых данных, режима кодирования, параметров кодирования разности предсказания и параметров внутреннего предсказания или параметров внешнего предсказания, чтобы генерировать поток битов (этап ST12).
[0065] При приеме сигнала локального декодированного изображения из части 9 суммирования часть 11 контурного фильтра компенсирует искажение при кодировании, включенное в сигнал локального декодированного изображения, и сохраняет локальное декодированное изображение, показанное посредством сигнала локального декодированного изображения, для которого часть контурного фильтра выполняет компенсацию искажений при кодировании, в запоминающем устройстве 12 кадров предсказания с компенсацией движения в качестве опорного изображения (этап ST13). Часть 11 контурного фильтра может выполнять процесс фильтрации для каждого блока, который должен быть кодирован, имеющего максимальный размер сигнала локального декодированного изображения, выведенного в нее из части 9 суммирования, или для каждого блока, который должен быть кодирован. В качестве альтернативы, после того, как выводится сигнал локального декодированного изображения, соответствующий всем макроблокам одного экрана, часть контурного фильтра может выполнять процесс фильтрации для всех макроблоков одного экрана одновременно.
[0066] Далее подробнее поясняется обработка, выполняемая посредством части 5 предсказания с компенсацией движения. Когда режим m(Bn) кодирования, выбранный посредством части 1 управления кодированием, представляет собой внешний режим, отличный от прямых режимов, переключатель 21 выбора части 5 предсказания с компенсацией движения выводит каждый из сегментов Pin, на которые блок Bn, который должен быть кодирован, разделяется посредством части 2 разделения на блоки, в часть 22 поиска вектора движения. Напротив, когда режим m(Bn) кодирования представляет собой внешний режим, который представляет собой прямой режим, переключатель выбора выводит каждый из сегментов Pin, на которые блок Bn, который должен быть кодирован, разделяется посредством части 2 разделения на блоки, в часть 23 генерирования прямого вектора. В этом случае, поскольку часть 23 генерирования прямого вектора не использует каждый из сегментов Pin блока Bn, который должен быть кодирован, для генерирования прямого вектора, часть генерирования прямого вектора не должна выводить каждый из сегментов Pin блока Bn, который должен быть кодирован, в часть 23 генерирования прямого вектора, даже если режим m(Bn) кодирования представляет собой внешний режим, который представляет собой прямой режим.
[0067] При приеме каждого из сегментов Pin блока Bn, который должен быть кодирован, из переключателя 21 выбора часть 22 поиска вектора движения части 5 предсказания с компенсацией движения выполняет поиск оптимального вектора движения во внешнем режиме при обращении к сегменту Pin и опорному изображению, сохраненному в запоминающем устройстве 12 кадров предсказания с компенсацией движения, и выводит вектор движения в часть 24 обработки компенсации движения. Поскольку процесс поиска оптимального вектора движения во внешнем режиме является известной технологией, далее опускается подробное пояснение процесса.
[0068] Когда режим m(Bn) кодирования представляет собой прямой режим, часть 23 генерирования прямого вектора части 5 предсказания с компенсацией движения генерирует как пространственный прямой вектор в пространственном прямом режиме, так и временной прямой вектор во временном прямом режиме для каждого из сегментов Pin блока Bn, который должен быть кодирован, и выводит любой из пространственного прямого вектора и временного прямого вектора в часть 24 обработки компенсации движения в качестве вектора движения. Поскольку информация, показывающая состояние разделения на сегменты Pin, принадлежащие блоку Bn, который должен быть кодирован, включается в режим m(Bn) кодирования, как упомянуто выше, часть 23 генерирования прямого вектора может указывать каждый из сегментов Pin блока Bn, который должен быть кодирован, посредством обращения к режиму m(Bn) кодирования.
[0069] Более конкретно, часть 31 генерирования пространственного прямого вектора части 23 генерирования прямого вектора считывает вектор движения уже кодированного блока, расположенного около каждого из сегментов Pin блока Bn, который должен быть кодирован, из числа векторов движения уже кодированных блоков, сохраненных в непоказанном запоминающем устройстве векторов движения или непоказанном внутреннем запоминающем устройстве, чтобы генерировать пространственный прямой вектор в пространственном прямом режиме из вектора движения. Дополнительно, часть 32 генерирования временного прямого вектора части 23 генерирования прямого вектора считывает вектор движения блока, расположенного пространственно в позиции, идентичной позиции каждого из сегментов Pin блока Bn, который должен быть кодирован, который является вектором движения уже кодированной картинки, к которой можно обращаться посредством блока Bn, который должен быть кодирован, из числа векторов движения уже кодированных блоков, чтобы генерировать временной прямой вектор во временном прямом режиме из вектора движения.
[0070] Фиг. 11 является принципиальной схемой, показывающей способ генерирования вектора движения (временного прямого вектора) во временном прямом режиме. Например, в качестве примера рассматривается случай, в котором блок MB1 в картинке B2 является сегментом Pin, который является целью, которая должна быть кодирована, и блок MB1 кодируется во временном прямом режиме. В этом примере, часть генерирования временного прямого вектора использует вектор MV движения блока MB2, который является вектором движения картинки P3, ближайшей к картинке B2, из уже кодированных картинок, расположенных раньше относительно картинки B2 на временной оси, и который пространственно находится в позиции, идентичной позиции блока MB1. Этот вектор MV движения обращается к картинке P0, и векторы MVL0 и MVL1 движения, которые используются при кодировании блока MB1, вычисляются согласно следующему уравнению (3).
[0071]
После вычисления векторов MVL0 и MVL1 движения часть 32 генерирования временного прямого вектора выводит векторы MVL0 и MVL1 движения в часть 33 определения прямого вектора в качестве временных прямых векторов во временном прямом режиме. Хотя в качестве способа генерирования временного прямого вектора, который использует часть 32 генерирования временного прямого вектора, может быть использован способ H.264, как показано на фиг. 11, этот вариант осуществления не ограничивается этим способом, и альтернативно может быть использован другой способ.
[0072] Фиг. 12 является принципиальной схемой, показывающей способ генерирования вектора движения (пространственного прямого вектора) в пространственном прямом режиме. На фиг. 12, currentMB обозначает сегмент Pin, который является блоком, который должен быть кодирован. В это время, когда вектор движения уже кодированного блока A слева от блока, который должен быть кодирован, выражается как MVa, вектор движения уже кодированного блока B сверху от блока, который должен быть кодирован, выражается как MVb, а вектор движения уже кодированного блока C сверху справа от блока, который должен быть кодирован, выражается как MVc, часть генерирования пространственного прямого вектора может вычислять вектор MV движения блока, который должен быть кодирован, посредством определения среднего этих векторов MVa, MVb и MVc движения, как показано посредством следующего уравнения (4).
MV=median(MVa, MVb, MVc)
[0073] В пространственном прямом режиме часть генерирования пространственного прямого вектора определяет вектор движения для каждого из списка 0 и списка 1. В этом случае, часть генерирования пространственного прямого вектора может определять вектор движения для обоих из списков посредством использования вышеуказанного способа. После вычисления вектора MV движения как для списка 0, так и для списка 1 вышеуказанным способом, часть 31 генерирования пространственного прямого вектора выводит вектор MV движения из списка 0 и вектор MV движения из списка 1 в часть 33 определения прямого вектора в качестве пространственных прямых векторов в пространственном прямом режиме. Хотя в качестве способа генерирования пространственного прямого вектора, который использует часть 31 генерирования пространственного прямого вектора, может быть использован способ H.264, как показано на фиг. 12, этот вариант осуществления не ограничивается этим способом, и альтернативно может быть использован другой способ.
[0074] Например, как показано на фиг. 13, часть генерирования пространственного прямого вектора может выбирать три вектора движения из группы блоков A1-An, группы блоков B1-Bn и группы блоков C, D и E в качестве кандидатов для предсказания по среднему, соответственно, чтобы генерировать пространственный прямой вектор. Дополнительно, в случае ref_Idx, в котором варианты для MV, которые используются для генерирования пространственного прямого вектора, отличаются друг от друга, часть генерирования пространственного прямого вектора может выполнять масштабирование согласно расстоянию во временном направлении, как показано на фиг. 14.
,
где scaled_MV обозначает масштабированный вектор, MV обозначает вектор движения, который должен быть масштабирован, и d(x) обозначает временное расстояние до x. Дополнительно, Xr обозначает опорное изображение, показанное посредством блока, который должен быть кодирован, и Yr обозначает опорное изображение, показанное посредством каждой из позиций A-D блоков, которые являются целью для масштабирования.
[0075] После того, как часть 31 генерирования пространственного прямого вектора генерирует пространственные прямые векторы, часть 33 определения прямого вектора части 23 генерирования прямого вектора вычисляет оцененное значение в пространственном прямом режиме посредством использования пространственных прямых векторов. После того, как часть 32 генерирования временного прямого вектора генерирует временные прямые векторы, часть 33 определения прямого вектора вычисляет оцененное значение во временном прямом режиме посредством использования временных прямых векторов. Часть 33 определения прямого вектора сравнивает оцененное значение в пространственном прямом режиме с оцененным значением во временном прямом режиме и выбирает прямой вектор в прямом режиме из пространственного прямого вектора и временного прямого вектора посредством использования части определения, который упоминается ниже, и выводит прямой вектор в часть 24 обработки компенсации движения.
[0076] Далее конкретно поясняется обработка, выполняемая посредством части 33 определения прямого вектора. После того, как часть 31 генерирования пространственного прямого вектора генерирует пространственные прямые векторы MVL0 и MVL1, часть 41 компенсации движения части 33 определения прямого вектора генерирует изображение предсказания из списка 0 в пространственном прямом режиме посредством использования пространственного прямого вектора MVL0, а также генерирует изображение предсказания из списка 1 в пространственном прямом режиме посредством использования пространственного прямого вектора MVL1. Фиг. 15 является пояснительным чертежом, показывающим пример вычисления оцененного значения посредством использования степени подобия между последующим изображением предсказания и предшествующим изображением предсказания. В примере, показанном на фиг. 15, часть компенсации движения генерирует последующее изображение fspatial предсказания в качестве изображения предсказания из списка 0 в пространственном прямом режиме, а также генерирует предшествующее изображение gspatial предсказания в качестве изображения предсказания из списка 1 в пространственном прямом режиме.
[0077] После того, как часть 32 генерирования временного прямого вектора генерирует временные прямые векторы, которые являются векторами MV движения из списка 0 и списка 1, часть 41 компенсации движения дополнительно генерирует изображение предсказания из списка 0 во временном прямом режиме посредством использования временного прямого вектора, который является последующим вектором MV движения, а также генерирует изображение предсказания из списка 1 во временном прямом режиме посредством использования временного прямого вектора, который является предшествующим вектором MV движения. В примере, показанном на фиг. 15, часть компенсации движения генерирует последующее изображение ftemporal предсказания во временном прямом режиме в качестве изображения предсказания из списка 0 во временном прямом режиме, а также генерирует предшествующее изображение gtemporal предсказания в качестве изображения предсказания из списка 1 во временном прямом режиме.
[0078] Хотя в этом примере часть компенсации движения генерирует последующее изображение предсказания в качестве изображения предсказания из списка 0 посредством использования списка 0 опорных изображений, показывающего опорное изображение в прямом направлении, а также генерирует предшествующее изображение предсказания в качестве изображения предсказания из списка 1 посредством использования списка 1 опорных изображений, показывающего опорное изображение в обратном направлении, часть компенсации движения альтернативно может генерировать предшествующее изображение предсказания в качестве изображения предсказания из списка 0 посредством использования списка 0 опорных изображений, показывающего опорное изображение в обратном направлении, а также генерировать последующее изображение предсказания в качестве изображения предсказания из списка 1 посредством использования списка 1 опорных изображений, показывающего опорное изображение в прямом направлении. В качестве альтернативы, часть компенсации движения может генерировать последующие изображения предсказания в качестве изображения предсказания из списка 0 и изображения предсказания из списка 1 посредством использования списка 0 опорных изображений, показывающего опорное изображение в прямом направлении, и списка 1 опорных изображений, показывающего опорное изображение в прямом направлении, соответственно (этот процесс подробно упоминается ниже).
[0079] После того, как часть компенсации движения генерирует изображение предсказания из списка 0 и изображение предсказания из списка 1 в пространственном прямом режиме, часть 42 вычисления подобия части 33 определения прямого вектора вычисляет оцененное значение SADspatial в пространственном прямом режиме, как показано в следующем уравнении (6). Для простоты изображение предсказания из списка 0 в пространственном прямом режиме является последующим изображением fspatial предсказания, а изображение предсказания из списка 1 в пространственном прямом режиме является предшествующим изображением gspatial предсказания в уравнении (6).
[0080] Дополнительно, после того, как часть компенсации движения генерирует изображение предсказания из списка 0 и изображение предсказания из списка 1 во временном прямом режиме, часть 42 вычисления подобия вычисляет оцененное значение SADtemporal во временном прямом режиме, как показано в следующем уравнении (7). Для простоты изображение предсказания из списка 0 во временном прямом режиме является последующим изображением ftemporal предсказания, а изображение предсказания из списка 1 в пространственном прямом режиме является предшествующим изображением gtemporal предсказания в уравнении (7).
[0081] Чем больше разность между последующим изображением предсказания и предшествующим изображением предсказания, тем ниже степень подобия между двумя изображениями (оцененное значение SAD, показывающее сумму абсолютных разностей между двумя изображениями, становится большим), и ниже временная корреляция между ними. В отличие от этого, чем меньше разность между последующим изображением предсказания и предшествующим изображением предсказания, тем выше степень подобия между двумя изображениями (оцененное значение SAD, показывающее сумму абсолютных разностей между двумя изображениями, становится небольшим), и выше временная корреляция между ними. Дополнительно, изображение, которое предсказывается из прямого вектора, должно быть изображением, которое является аналогичным блоку, который должен быть кодирован. Следовательно, когда изображения предсказания генерируются посредством использования двух векторов, соответственно, изображения, которые предсказываются, соответственно, из векторов, предположительно должны напоминать блок, который должен быть кодирован, и это означает то, что между двумя опорными изображениями существует высокая корреляция. Следовательно, посредством выбора прямого вектора, имеющего меньшее оцененное значение SAD, из пространственного прямого вектора и временного прямого вектора, часть определения прямого вектора может выбирать режим, который предоставляет высокую корреляцию между опорными изображениями, и, следовательно, может повышать точность прямого режима.
[0082] После того, как часть 42 вычисления подобия вычисляет как оцененное значение SADspatial в пространственном прямом режиме, так и оцененное значение SADtemporal во временном прямом режиме, выбирающая прямой вектор часть 43 части 33 определения прямого вектора сравнивает степень подобия между последующим изображением fspatial предсказания и предшествующим изображением gspatial предсказания в пространственном прямом режиме со степенью подобия между последующим изображением ftemporal предсказания и предшествующим изображением gtemporal предсказания во временном прямом режиме посредством сравнения оцененного значения SADspatial с оцененным значением SADtemporal.
[0083] Когда степень подобия между последующим изображением fspatial предсказания и предшествующим изображением gspatial предсказания в пространственном прямом режиме равна или выше степени подобия между последующим изображением ftemporal предсказания и предшествующим изображением gtemporal предсказания во временном прямом режиме (SADspatial≤SADtemporal), выбирающая прямой вектор часть 43 выбирает пространственный прямой вектор, сгенерированный посредством части 31 генерирования пространственного прямого вектора, и выводит пространственный прямой вектор в часть 24 обработки компенсации движения в качестве вектора движения. Напротив, когда степень подобия между последующим изображением ftemporal предсказания и предшествующим изображением gtemporal предсказания во временном прямом режиме выше степени подобия между последующим изображением fspatial предсказания и предшествующим изображением gspatial предсказания в пространственном прямом режиме (SADspatial>SADtemporal), часть выбора прямых векторов выбирает временной прямой вектор, сгенерированный посредством части 32 генерирования временного прямого вектора, и выводит временной прямой вектор в часть 24 обработки компенсации движения в качестве вектора движения.
[0084] Когда режим m(Bn) кодирования не представляет собой прямой режим, и часть 24 обработки компенсации движения принимает вектор движения из части 22 поиска вектора движения, часть 24 обработки компенсации движения выполняет процесс предсказания с компенсацией движения на основе параметров внешнего предсказания, выведенных в нее из части 1 управления кодированием, посредством использования как вектора движения, так и одного кадра опорного изображения, сохраненного в запоминающем устройстве 12 кадров предсказания с компенсацией движения, чтобы генерировать изображение предсказания. Напротив, когда режим m(Bn) кодирования представляет собой прямой режим, и часть 24 обработки компенсации движения принимает вектор движения (т.е. прямой вектор, выбранный посредством части 43 выбора прямого вектора) из части 23 генерирования прямого вектора, часть 24 обработки компенсации движения выполняет процесс предсказания с компенсацией движения на основе параметров внешнего предсказания, выведенных в нее из части 1 управления кодированием, посредством использования как вектора движения, так и одного кадра опорного изображения, сохраненного в запоминающем устройстве 12 кадров предсказания с компенсацией движения, чтобы генерировать изображение предсказания. Поскольку процесс предсказания с компенсацией движения, выполняемый посредством части 24 обработки компенсации движения, является известной технологией, далее опускается подробное пояснение процесса предсказания с компенсацией движения.
[0085] Хотя показывается пример, в котором часть 42 вычисления подобия вычисляет оцененное значение SAD, которое является суммой абсолютных разностей между двумя изображениями как во временном прямом режиме, так и в пространственном прямом режиме, и выбирающая прямой вектор часть 43 сравнивает оцененное значение SAD во временном прямом режиме с оцененным значением SAD в пространственном прямом режиме, часть 42 вычисления подобия альтернативно может вычислять сумму SSE квадратов разностей между последующим изображением предсказания и предшествующим изображением предсказания как во временном прямом режиме, так и в пространственном прямом режиме в качестве оцененных значений, и выбирающая прямой вектор часть 43 может сравнивать сумму SSE квадратов разностей во временном прямом режиме с суммой SSE квадратов разностей в пространственном прямом режиме. Хотя использование SSE повышает объем информации, которая должна быть обработана, степень подобия может быть вычислена более корректно.
[0086] Далее поясняется обработка, выполняемая посредством устройства декодирования изображений, показанного на фиг. 5. При приеме потока битов, выведенного в него из устройства кодирования изображений по фиг. 1, часть 51 декодирования с переменной длиной кода выполняет процесс декодирования с переменной длиной кода на потоке битов, чтобы декодировать размер кадра в единицах последовательности, которая состоит из одного или более кадров картинок, или в единицах картинок (этап ST21 по фиг. 8). Часть 51 декодирования с переменной длиной кода определяет максимальный размер каждого из блоков кодирования, который является единицей, которая должна быть обработана в момент, когда выполняется процесс предсказания с компенсацией движения (процесс межкадрового предсказания) или процесс внутреннего предсказания (процесс внутрикадрового предсказания) согласно процедуре, идентичной процедуре, которую использует часть 1 управления кодированием, показанная на фиг. 1, а также определяет верхний предел по числу иерархических уровней в иерархии, в которой каждый из блоков кодирования, имеющих максимальный размер, иерархически разделяется на блоки (этап ST22). Например, когда максимальный размер каждого из блоков кодирования определяется согласно разрешению введенного изображения в устройстве кодирования изображений, часть декодирования с переменной длиной кода определяет максимальный размер каждого из блоков кодирования на основе размера кадра, который часть декодирования с переменной длиной кода декодировала ранее. Когда информация, показывающая как максимальный размер каждого из блоков кодирования, так и верхний предел по числу иерархических уровней, мультиплексируется в поток битов, часть декодирования с переменной длиной кода обращается к информации, которая получается посредством декодирования потока битов.
[0087] Поскольку информация, показывающая состояние разделения каждого из блоков B0 кодирования, имеющих максимальный размер, включается в режим m(B0) кодирования блока B0 кодирования, имеющего максимальный размер, который мультиплексируется в поток битов, часть 51 декодирования с переменной длиной кода указывает каждый из блоков Bn кодирования, на которые иерархически разделяется изображение, посредством декодирования потока битов, чтобы получать режим m(B0) кодирования блока B0 кодирования, имеющего максимальный размер, который мультиплексируется в поток битов (этап ST23). После указания каждого из блоков Bn кодирования часть 51 декодирования с переменной длиной кода декодирует поток битов, чтобы получать режим m(Bn) кодирования блока Bn кодирования, чтобы указывать каждый сегмент Pin, принадлежащий блоку Bn кодирования, на основе информации относительно сегмента Pin, принадлежащего режиму m(Bn) кодирования. После указания каждого сегмента Pin, принадлежащего блоку Bn кодирования, часть 51 декодирования с переменной длиной кода декодирует кодированные данные, чтобы получать сжатые данные, режим кодирования, параметры кодирования разности предсказания и параметры внутреннего предсказания/параметры внешнего предсказания для каждого сегмента Pin (этап ST24).
[0088] Когда режим m(Bn) кодирования сегмента Pin, принадлежащего блоку Bn кодирования, который указывается посредством части 51 декодирования с переменной длиной кода, представляет собой режим внутреннего кодирования (этап ST25), переключатель выбора 52 выводит параметры внутреннего предсказания, выведенные в него из части 51 декодирования с переменной длиной кода, в часть 53 внутреннего предсказания. Напротив, когда режим m(Bn) кодирования сегмента Pin представляет собой режим внешнего кодирования (этап ST25), переключатель выбора выводит параметры внешнего предсказания, выведенные в него из части 51 декодирования с переменной длиной кода, в часть 54 предсказания с компенсацией движения. При приеме параметров внутреннего предсказания из переключателя 52 выбора часть 53 внутреннего предсказания выполняет процесс внутреннего предсказания для сегмента Pin блока Bn кодирования посредством использования параметров внутреннего предсказания, чтобы генерировать изображение Pin внутреннего предсказания (этап ST26).
[0089] При приеме параметров внешнего предсказания из переключателя 52 выбора, когда режим m(Bn) кодирования, выведенный в него из части 51 декодирования с переменной длиной кода, представляет собой режим внешнего кодирования, который представляет собой прямой режим, часть 54 предсказания с компенсацией движения генерирует пространственный прямой вектор в пространственном прямом режиме и временной прямой вектор во временном прямом режиме, аналогично части 5 предсказания с компенсацией движения, показанному на фиг. 1. После генерирования пространственного прямого вектора в пространственном прямом режиме и временного прямого вектора во временном прямом режиме, часть 54 предсказания с компенсацией движения выбирает один прямой вектор, который предоставляет более высокую корреляцию между опорными изображениями, из пространственного прямого вектора и временного прямого вектора, аналогично части 5 предсказания с компенсацией движения, показанной на фиг. 1, и выполняет процесс предсказания с компенсацией движения для сегмента Pin блока Bn кодирования посредством использования прямого вектора, выбранного посредством него, и параметров внешнего предсказания, чтобы генерировать изображение Pin внешнего предсказания (этап ST27).
[0090] Напротив, когда режим m(Bn) кодирования, выведенный в него из части 51 декодирования с переменной длиной кода, представляет собой режим внешнего кодирования, отличный от прямых режимов, часть 63 обработки компенсации движения части 54 предсказания с компенсацией движения выполняет процесс предсказания с компенсацией движения для сегмента Pin блока Bn кодирования посредством использования вектора движения, включенного в параметры внешнего предсказания, выведенные в нее из переключателя 52 выбора, чтобы генерировать изображение Pin внешнего предсказания (этап ST27).
[0091] Часть 55 обратного преобразования/обратного квантования обратно квантует сжатые данные, связанные с блоком кодирования, которые выводятся в нее из части 51 декодирования с переменной длиной кода, посредством использования параметра квантования, включенного в параметры кодирования разности предсказания, выведенные в нее из части 51 декодирования с переменной длиной кода, и выполняет процесс обратного преобразования (например, процесс обратного DCT (обратного дискретного косинусного преобразования) или обратного преобразования, такого как обратное KL-преобразование) для сжатых данных, обратно квантованных, в единицах блока, имеющего размер блока преобразования, включенный в параметры кодирования разности предсказания, и выводит сжатые данные, для которых часть обратного преобразования/обратного квантования выполняет процесс обратного преобразования, в часть 56 суммирования в качестве декодированного разностного сигнала предсказания (сигнала, показывающего предварительно сжатое разностное изображение) (этап ST28).
[0092] При приеме декодированного разностного сигнала предсказания из части 55 обратного преобразования/обратного квантования часть 56 суммирования генерирует декодированное изображение посредством суммирования декодированного разностного сигнала предсказания и сигнала предсказания, показывающего изображение предсказания, сгенерированное посредством части 53 внутреннего предсказания или части 54 предсказания с компенсацией движения, и сохраняет сигнал декодированного изображения, показывающий декодированное изображение, в запоминающем устройстве 57 для внутреннего предсказания, а также выводит сигнал декодированного изображения в часть 58 контурного фильтра (этап ST29).
[0093] Устройство декодирования движущихся изображений многократно выполняет процессы этапов ST23-ST29 до тех пор, пока устройство декодирования движущихся изображений не завершает обработку на всех блоках Bn кодирования, на которые иерархически разделяется изображение (этап ST30). При приеме сигнала декодированного изображения из части 56 суммирования часть 58 контурного фильтра компенсирует искажение при кодировании, включенное в сигнал декодированного изображения, и сохраняет декодированное изображение, показанное посредством сигнала декодированного изображения, для которого часть контурного фильтра выполняет компенсацию искажений при кодировании, в запоминающем устройстве 59 кадров предсказания с компенсацией движения в качестве опорного изображения (этап ST31). Часть 58 контурного фильтра может выполнять процесс фильтрации для каждого блока кодирования, имеющего максимальный размер сигнала локального декодированного изображения, выведенного в нее из части 56 суммирования, или каждого блока кодирования. В качестве альтернативы, после того, как выводится сигнал локального декодированного изображения, соответствующий всем макроблокам одного экрана, часть контурного фильтра может выполнять процесс фильтрации на всех макроблоках одного экрана одновременно.
[0094] Как можно видеть из вышеприведенного описания, устройство кодирования движущихся изображений в соответствии с этим вариантом 1 осуществления имеет такую структуру, что устройство кодирования движущихся изображений включает в себя: часть 1 управления кодированием для определения максимального размера каждого из блоков, которые должны быть кодированы, который является единицей, которая должна быть обработана в момент, когда выполняется процесс предсказания, а также определения верхнего предела на иерархическое число касательно числа иерархических уровней в иерархии, в которой каждый из блоков, которые должны быть кодированы, имеющих максимальный размер, иерархически разделяется на блоки, и для выбора режима кодирования, подходящего для каждого из блоков, которые должны быть кодированы, на которые иерархически разделяется каждый блок, который должен быть кодирован, имеющий максимальный размер, из одного или более доступных режимов кодирования; и часть 2 разделения на блоки для разделения введенного изображения на блоки, которые должны быть кодированы, имеющие максимальный размер, определенный посредством части 1 управления кодированием, а также разделения каждого из блоков, которые должны быть кодированы, иерархически до тех пор, пока их иерархическое число не достигнет верхнего предела на иерархическое число, определенного посредством части 1 управления кодированием, и когда режим внешнего кодирования, который представляет собой прямой режим, выбирается посредством части 1 управления кодированием в качестве режима кодирования, подходящего для одного из блоков, которые должны быть кодированы, на которые разделяется введенное изображение посредством части 2 разделения на блоки, часть 5 предсказания с компенсацией движения генерирует пространственный прямой вектор в пространственном прямом режиме из вектора движения уже кодированного блока, расположенного около блока, который должен быть кодирован, а также генерирует временной прямой вектор во временном прямом режиме из вектора движения уже кодированной картинки, к которой можно обращаться посредством блока, который должен быть кодирован, выбирает один прямой вектор, который предоставляет более высокую корреляцию между опорными изображениями, из пространственного прямого вектора и временного прямого вектора и выполняет процесс предсказания с компенсацией движения для блока, который должен быть кодирован, посредством использования прямого вектора, чтобы генерировать изображение предсказания. Следовательно, предоставляется преимущество возможности выбирать оптимальный прямой режим для каждой предопределенной единицы блоков и уменьшать объем кода.
[0095] Дополнительно, устройство декодирования движущихся изображений в соответствии с этим вариантом 1 осуществления имеет такую структуру, что устройство декодирования движущихся изображений включает в себя часть 51 декодирования с переменной длиной кода для декодирования с переменной длиной кода кодированных данных, чтобы получать сжатые данные и режим кодирования, связанный с каждым из блоков кодирования, на которые иерархически разделяется изображение, из кодированных данных, мультиплексированных в поток битов, и когда режим кодирования, связанный с блоком кодирования, декодированным с переменной длиной посредством части 51 декодирования с переменной длиной кода, представляет собой режим внешнего кодирования, который представляет собой прямой режим, часть 54 предсказания с компенсацией движения генерирует пространственный прямой вектор в пространственном прямом режиме из вектора движения уже декодированного блока, расположенного около блока кодирования, а также генерирует временной прямой вектор во временном прямом режиме из вектора движения уже декодированной картинки, к которой можно обращаться посредством блока кодирования, выбирает один прямой вектор, который предоставляет более высокую корреляцию между опорными изображениями, из пространственного прямого вектора и временного прямого вектора и выполняет процесс предсказания с компенсацией движения на блоке кодирования посредством использования прямого вектора, чтобы генерировать изображение предсказания. Следовательно, предоставляется преимущество обеспечения возможности устройству декодирования движущихся изображений декодировать кодированные данные, которые предоставляют выбор оптимального прямого режима для каждой фиксированной единицы блоков.
[0096] Вариант 2 осуществления
В вышеуказанном варианте 1 осуществления показывается пример, в котором каждая из частей 5 и 54 предсказания с компенсацией движения (конкретно, часть 42 вычисления подобия) вычисляет степень подобия между последующим изображением fspatial предсказания и предшествующим изображением gspatial предсказания в пространственном прямом режиме в качестве оцененного значения SADspatial в пространственном прямом режиме при вычислении степени подобия между последующим изображением ftemporal предсказания и предшествующим изображением gtemporal предсказания во временном прямом режиме в качестве оцененного значения SADtemporal во временном прямом режиме, каждая из частей предсказания с компенсацией движения альтернативно может вычислять дисперсию σ (пространственную) векторов движения уже кодированных блоков (декодированных блоков), расположенных около блока Bn, который должен быть кодирован, в качестве оцененного значения в пространственном прямом режиме при вычислении дисперсии σ (временной) векторов движения уже кодированных блоков (декодированных блоков), расположенных около блока, расположенного пространственно в позиции, идентичной позиции блока Bn, который должен быть кодирован, в кодированной картинке (декодированной картинке), к которой можно обращаться посредством блока Bn, который должен быть кодирован, в качестве оцененного значения во временном прямом режиме. Этот вариант осуществления может предоставлять преимущества, идентичные преимущества, предоставляемым посредством вышеуказанного варианта 1 осуществления.
[0097] Более конкретно, часть 42 вычисления подобия вычисляет дисперсию σ (пространственную) векторов движения уже кодированных блоков (декодированных блоков), расположенных около блока Bn, который должен быть кодирован, в качестве оцененного значения SADspatial в пространственном прямом режиме (см. следующее уравнение (8)), как показано на фиг. 16(a), вместо вычисления степени подобия между последующим изображением fspatial предсказания и предшествующим изображением gspatial предсказания в пространственном прямом режиме. Дополнительно, часть 42 вычисления подобия вычисляет дисперсию σ (временную) векторов движения уже кодированных блоков (декодированных блоков), расположенных около блока, расположенного пространственно в позиции, идентичной позиции блока Bn, который должен быть кодирован, в кодированной картинке (декодированной картинке), к которой можно обращаться посредством блока Bn, который должен быть кодирован, в качестве оцененного значения SADtemporal во временном прямом режиме (см. следующее уравнение (8)), как показано на фиг. 16(b), вместо вычисления степени подобия между последующим изображением ftemporal предсказания и предшествующим изображением gtemporal предсказания во временном прямом режиме.
[0098] ,
где является вектором движения смежного блока, и
является средним векторов движения смежных блоков.
Дополнительно, m является символом, показывающим пространственный или временной.
[0099] Выбирающая прямой вектор часть 43 сравнивает дисперсию σ (временную) векторов движения с дисперсией σ (пространственной) векторов движения, и когда дисперсия σ (временная) векторов движения равна или превышает дисперсию σ (пространственную) векторов движения, определяет то, что надежность вектора движения в пространственном прямом режиме (пространственного прямого вектора) является низкой, и выбирает вектор движения во временном прямом режиме (временной прямой вектор). Напротив, когда дисперсия σ (пространственная) векторов движения превышает дисперсию σ (временную) векторов движения, часть выбора прямых векторов определяет то, что надежность вектора движения во временном прямом режиме (временного прямого вектора) является низкой, и выбирает вектор движения в пространственном прямом режиме (пространственный прямой вектор).
[0100] Хотя в вышеуказанном варианте 1 осуществления показывается пример, в котором каждая из частей предсказания с компенсацией движения генерирует как временной прямой вектор, так и пространственный прямой вектор и выбирает любой из прямых векторов, каждая из частей предсказания с компенсацией движения может добавлять другой вектор, в качестве вектора-кандидата, в дополнение к временному прямому вектору и пространственному прямому вектору, и выбирать один прямой вектор из этих векторов-кандидатов. Например, каждая из частей предсказания с компенсацией движения может добавлять пространственные векторы MV_A, MV_B и MV_C и временные векторы MV_1-MV_8, как показано на фиг. 17, к векторам-кандидатам и выбирать один прямой вектор из этих пространственных векторов и временных векторов. Дополнительно, как показано на фиг. 18, каждая из частей предсказания с компенсацией движения может генерировать один вектор из множества уже кодированных векторов и добавлять упомянутый вектор к векторам-кандидатам. Хотя такое увеличение числа векторов-кандидатов повышает объем информации, которая должна быть обработана, может быть повышена точность прямого вектора, и, следовательно, может быть повышена эффективность кодирования.
[0101] Хотя нет конкретного упоминания в вышеуказанном варианте 1 осуществления, кандидаты для прямого вектора могут быть определены для каждого слайса. Информация, показывающая то, какие векторы должны быть выбраны в качестве кандидатов, мультиплексируется в каждый заголовок слайса. Например, может рассматриваться способ, поскольку эффект временного вектора является низким в видео, которое получается посредством панорамирования камеры, удаления временных векторов из кандидатов выбора для такого видео, и поскольку эффект пространственного вектора является большим в видео, которое получается посредством стационарной камеры, суммирования пространственных векторов с кандидатами выбора для такого видео.
[0102] Хотя чем больше число векторов-кандидатов, тем ближе к исходному изображению может быть сгенерировано изображение предсказания, баланс между объемом информации, которая должна быть обработана, и эффективностью кодирования может достигаться посредством определения кандидатов с учетом локальности видео, к примеру, исключения неэффективных векторов из кандидатов заранее, чтобы не допускать существенного повышения объема информации, которая должна быть обработана, вследствие увеличения числа векторов-кандидатов. Переключение вектора между кандидатом и не кандидатом достигается посредством использования, например, способа предоставления флага активации/деактивации для каждого вектора и задания только вектора, флаг которого активирован, в качестве кандидата. Вектор движения, который может быть кандидатом выбора, может быть переключен между кандидатом и не кандидатом посредством использования каждого заголовка слайса или каждого заголовка на верхнем уровне, такого как каждый заголовок последовательности или каждый заголовок картинки. Дополнительно, может быть подготовлен один или более наборов векторов движения, каждый из которых может быть кандидатом выбора, и может быть кодирован индекс, показывающий каждый из наборов кандидатов.
[0103] Дополнительно, вектор может быть переключен между кандидатом и не кандидатом для каждого макроблока или каждого блока, который должен быть кодирован. Переключение вектора между кандидатом и не кандидатом для каждого макроблока или каждого блока, который должен быть кодирован, может обеспечивать локальность для макроблока или блока, который должен быть кодирован, и предоставляет преимущество повышения эффективности кодирования. Дополнительно, кандидаты выбора могут быть определены уникально для каждого размера блока сегментов. Поскольку пространственная корреляция, в общем, становится слабой, когда размер блока становится небольшим, можно ожидать, что снижается предсказательная точность вектора, определенного через предсказание по среднему. Чтобы разрешать эту проблему, посредством удаления вектора движения, определенного через предсказание по среднему, из кандидатов, например, объем информации, которая должна быть обработана, может быть уменьшен без снижения эффективности кодирования.
[0104] Хотя в вышеуказанном варианте 1 осуществления пояснение приводится посредством допущения случая, в котором существуют как временной прямой вектор, так и пространственный прямой вектор, возникает случай, в котором вектора движения не существует, когда процесс внутреннего кодирования выполняется для блока Bn, который должен быть кодирован. В этом случае, может рассматриваться способ задания нулевого вектора в качестве вектора движения, способ, на котором не включают вектор движения в кандидаты и т.д. Хотя эффективность кодирования может быть повышена, поскольку кандидаты увеличиваются численно, когда нулевой вектор задается как вектор движения, возрастает объем информации, которая должна быть обработана. Когда вектор движения не включается в кандидаты для прямого вектора, может быть уменьшен объем информации, которая должна быть обработана.
[0105] Хотя в вышеуказанном варианте 1 осуществления показывается пример генерирования прямого вектора, прямой вектор может быть использован в качестве предсказанного вектора, который используется для кодирования обычного вектора движения. Хотя объем информации, которая должна быть обработана, возрастает, когда прямой вектор используется в качестве предсказанного вектора, эффективность кодирования может быть повышена, поскольку повышается точность предсказания.
[0106] Хотя в вышеуказанном варианте 1 осуществления показывается пример вычисления оцененного значения SAD из комбинации изображения, расположенного раньше блока Bn, который должен быть кодирован, во времени, и изображения, расположенного позже блока Bn, который должен быть кодирован, во времени (см. фиг. 15), оцененное значение SAD альтернативно может быть вычислено только из комбинации изображений, расположенных раньше блока Bn, который должен быть кодирован, во времени, как показано на фиг. 19. В качестве альтернативы, оцененное значение SAD может быть вычислено только из комбинации изображений, расположенных позже блока Bn, который должен быть кодирован, во времени. В этом случае, временные векторы выражаются посредством следующих уравнений (9) и (10).
[0107] ,
где является вектором из списка 0, и является вектором из списка 1.
В вышеприведенных уравнениях d обозначает временное расстояние, d0 обозначает временное расстояние опорного изображения из списка 0, и d1 обозначает временное расстояние опорного изображения из списка 0. Дополнительно, vco1 и dco1 обозначают вектор блока, пространственно расположенного в позиции в опорном изображении, идентичной позиции блока, который должен быть кодирован, и временное расстояние опорного изображения, показанного посредством вектора, соответственно.
[0108] Даже в случае, если два списка опорных изображений указывают идентичное опорное изображение, способ, идентичный способу, показанному на фиг. 19 может применяться, когда каждый из списков имеет два или более опорных изображения.
[0109] Хотя в вышеуказанном варианте 1 осуществления предполагается случай, в котором каждый из двух списков опорных изображений имеет два или более опорных изображения, может рассматриваться случай, в котором только одно опорное изображение включается в каждый из двух списков опорных изображений. В этом случае, когда идентичное опорное изображение задано в двух списках опорных изображений, может возникать случай, когда определение может быть выполнено посредством использования только пространственного вектора вообще без использования временного вектора.
Когда различные опорные изображения заданы в двух списках опорных изображений, соответственно, определение может обрабатываться посредством использования вышеуказанного способа.
[0110] Хотя предполагается, что в вышеуказанном варианте 1 осуществления выполняется процесс предсказания из двух направлений, альтернативно может быть выполнен процесс предсказания только в одном направлении. Когда выполняется предсказание из вектора в одном направлении, кодируется и передается информация, показывающая то, какой вектор используется. Как результат, может разрешаться такая проблема, как затемнение, и может быть внесен вклад в повышение предсказательной точности.
[0111] Хотя в прямом режиме, показанном в вышеуказанном варианте 1 осуществления, предполагается, что выполняется предсказание с использованием двух векторов, число векторов может составлять три или более. В этом случае, например, может рассматриваться способ генерирования изображения предсказания посредством использования всех векторов-кандидатов, каждый из которых предоставляет оцененное значение SAD, равное или меньшее порогового значения Th, из множества векторов-кандидатов. Дополнительно, может быть сохранено число списков опорных изображений, число которых равно числу векторов. Дополнительно, вместо использования всех кандидатов, каждый из которых предоставляет оцененное значение SAD, равное или меньшее порогового значения Th, максимум числа векторов, которые используются, может предварительно устанавливаться для каждого заголовка слайса и т.п., и изображение предсказания может быть сгенерировано посредством использования максимального числа векторов, каждый из которых предоставляет меньшее оцененное значение. Общеизвестно, что производительность дополнительно повышается с увеличением числа опорных изображений, используемых для генерирования изображения предсказания. Следовательно, хотя объем информации, которая должна быть обработана, возрастает, может быть внесен вклад в повышение эффективности кодирования.
[0112] Вектор определяется из оценки между опорными изображениями в вышеуказанном варианте 1 осуществления. Эта оценка может выполняться в результате сравнения между уже кодированным изображением, которое является пространственно смежным с блоком, который должен быть кодирован, и опорным изображением. В этом случае, может рассматриваться способ выполнения оценки посредством использования такого L-образного изображения, как показано на фиг. 20. Дополнительно, когда используется уже кодированное изображение, которое является пространственно смежным с блоком, который должен быть кодирован, имеется вероятность того, что уже кодированное изображение не синхронизировано для сравнения вследствие конвейерной обработки. В этом случае, может рассматриваться способ использования изображения предсказания вместо уже кодированного изображения.
[0113] Хотя в вышеуказанном варианте 1 осуществления показывается пример, в котором размер блока Bn, который должен быть кодирован, составляет Ln=Mn, как показано на фиг. 9, размер блока Bn, который должен быть кодирован, может составлять Ln≠Mn. Например, может рассматриваться случай, в котором размер блока Bn, который должен быть кодирован, составляет Ln=kMn, как показано на фиг. 21. В этом случае, (Ln+1, Mn+1) становится равным (Ln, Mn) в следующем разделении, и последующие разделения могут быть выполнены аналогично тому, как показано на фиг. 9, или таким образом, что (Ln+1, Mn+1) становится равным (Ln/2, Mn/2) (см. фиг. 22). В качестве альтернативы, может быть выбран один из процесса разделения, показанного на фиг. 21, и процесса разделения, показанного на фиг. 22, как показано на фиг. 23. В случае если может быть выбран один из процесса разделения, показанного на фиг. 21, и процесса разделения, показанного на фиг. 22, кодируется флаг, показывающий то, какой процесс разделения выбирается. Поскольку этот случай может быть реализован посредством использования способа соединения блоков, каждый из которых состоит из 16x16 элементов, друг с другом в горизонтальном направлении, такого как H.264, раскрытый посредством непатентной ссылки 1, может поддерживаться совместимость с существующим способом. Хотя в вышеуказанном пояснении показывается случай, в котором размер блока Bn, который должен быть кодирован, составляет Ln=kMn, разумеется, разделения могут быть выполнены на основе идентичного принципа, даже если блоки соединяются друг с другом в вертикальном направлении, как в случае kLn=Mn.
[0114] Хотя часть 7 преобразования/квантования и узлы 8 и 55 обратного преобразования/обратного квантования выполняют процессы преобразования (процессы обратного преобразования) в единицах блока, имеющего размер блока преобразования, включенный в параметры кодирования разности предсказания, в вышеуказанном варианте 1 осуществления, каждая единица размера блока преобразования может быть определена уникально посредством части обработки преобразования или может генерироваться так, что она имеет иерархическую структуру, как показано на фиг. 24. В этом случае, кодируется флаг, показывающий то, выполняется или нет разделение для каждого иерархического уровня. Вышеуказанное разделение может быть выполнено для каждого сегмента или каждого блока, который должен быть кодирован. Хотя предполагается, что вышеуказанное преобразование выполняется в единицах квадратного блока, преобразование альтернативно может быть выполнено в единицах четырехугольного блока, такого как прямоугольный блок.
[0115] Вариант 3 осуществления
Хотя в вышеуказанном варианте 1 осуществления показывается пример, в котором каждая из частей 23 и 62 генерирования прямого вектора частей 5 и 54 предсказания с компенсацией движения генерирует как пространственный прямой вектор, так и временной прямой вектор, каждая из частей генерирования прямого вектора альтернативно может определять начальную точку поиска при генерировании как пространственного прямого вектора, так и временного прямого вектора и выполнять поиск в окрестности начальной точки поиска, чтобы определять прямой вектор.
[0116] Фиг. 25 является блок-схемой, показывающей часть 5 предсказания с компенсацией движения устройства кодирования движущихся изображений в соответствии с вариантом 3 осуществления настоящего изобретения. На чертеже, поскольку ссылки с номерами, идентичные ссылкам с номерами, показанным на фиг. 2, обозначают идентичные компоненты или аналогичные компоненты, пояснение компонентов далее опускается. Часть 25 генерирования прямого вектора выполняет процесс генерирования как пространственного прямого вектора, так и временного прямого вектора.
[0117] Фиг. 26 является блок-схемой, показывающей часть 25 генерирования прямого вектора, которая составляет часть 5 предсказания с компенсацией движения. Ссылаясь на фиг. 26, часть 34 генерирования начального вектора выполняет процесс генерирования начального вектора из вектора движения уже кодированного блока. Часть 35 поиска вектора движения выполняет процесс поиска в окрестности начальной точки поиска, показанной посредством начального вектора, сгенерированного посредством части 34 генерирования начального вектора, чтобы определять прямой вектор.
[0118] Фиг. 27 является блок-схемой, показывающей часть 34 генерирования начального вектора, которая составляет часть 25 генерирования прямого вектора. Ссылаясь на фиг. 27, часть 71 генерирования пространственного вектора выполняет процесс генерирования пространственного вектора из вектора движения уже кодированного блока посредством использования, например, способа, идентичного способу, который использует часть 31 генерирования пространственного прямого вектора, показанную на фиг. 3. Часть 72 генерирования временного вектора выполняет процесс генерирования временного вектора из вектора движения уже кодированного блока посредством использования, например, способа, идентичного способу, который использует часть 32 генерирования временного прямого вектора, показанная на фиг. 3. Часть 73 определения начального вектора выполняет процесс выбора любого из пространственного вектора, сгенерированного посредством части 71 генерирования пространственного вектора, и временного вектора, сгенерированного посредством части 72 генерирования временного вектора, в качестве начального вектора.
[0119] Фиг. 28 является блок-схемой, показывающей часть 73 определения начального вектора, которая составляет часть 34 генерирования начального вектора. Ссылаясь на фиг. 28, часть 81 компенсации движения выполняет процесс генерирования изображения предсказания из списка 0 в пространственном прямом режиме, изображения предсказания из списка 1 в пространственном прямом режиме, изображения предсказания из списка 0 во временном прямом режиме и изображения предсказания из списка 1 во временном прямом режиме посредством использования способа, идентичного способу, который использует часть 41 компенсации движения, показанная на фиг. 4.
[0120] Часть 82 вычисления подобия выполняет процесс вычисления степени подобия между изображением предсказания из списка 0 и изображением предсказания из списка 1 в пространственном прямом режиме в качестве пространственного оцененного значения, а также вычисления степени подобия между изображением предсказания из списка 0 и изображением предсказания из списка 1 во временном прямом режиме в качестве временного оцененного значения посредством использования способа, идентичного способу, который использует часть 42 вычисления подобия, показанную на фиг. 4. Часть 83 определения начального вектора выполняет процесс проведения сравнения между пространственным оцененным значением и временным оцененным значением, которые вычисляются посредством части 82 вычисления подобия, чтобы выбирать пространственный вектор или временной вектор согласно результату сравнения.
[0121] Фиг. 29 является блок-схемой, показывающей часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений в соответствии с вариантом 3 осуществления настоящего изобретения. На чертеже, поскольку ссылки с номерами, идентичные ссылкам с номерами, показанным на фиг. 6, обозначают идентичные компоненты или аналогичные компоненты, пояснение компонентов далее опускается. Часть 64 генерирования прямого вектора выполняет процесс генерирования как пространственного прямого вектора, так и временного прямого вектора. Внутренняя структура части 64 генерирования прямого вектора является идентичной части 25 генерирования прямого вектора, показанной на фиг. 25.
[0122] Далее поясняется работа устройства кодирования движущихся изображений и работа устройства декодирования движущихся изображений. Поскольку устройство кодирования движущихся изображений и устройство декодирования движущихся изображений согласно этому варианту осуществления имеют структуры, идентичные структурам согласно вышеуказанному варианту 1 осуществления, за исключением того, что части 23 и 62 генерирования прямого вектора частей 5 и 54 предсказания с компенсацией движения согласно вышеуказанному варианту 1 осуществления заменяются посредством частей 25 и 64 генерирования прямого вектора, по сравнению с вышеуказанным вариантом 1 осуществления, далее поясняются только процессы, выполняемые посредством каждой из частей 25 и 64 генерирования прямого вектора. Поскольку процесс, выполняемый посредством части 25 генерирования прямого вектора, является идентичным процессу, выполняемому посредством части 64 генерирования прямого вектора, далее поясняется процесс, выполняемый посредством части 25 генерирования прямого вектора.
[0123] Часть 34 генерирования начального вектора части 25 генерирования прямого вектора генерирует начальный вектор MV_first из вектора движения уже кодированного блока. Более конкретно, часть 71 генерирования пространственных векторов части 34 генерирования начального вектора генерирует пространственный вектор из вектора движения уже кодированного блока посредством использования, например, способа, идентичного способу, который использует часть 31 генерирования пространственного прямого вектора, показанную на фиг. 3. В качестве альтернативы, часть генерирования пространственных векторов может генерировать пространственный вектор посредством использования другого способа. Часть 72 генерирования временного вектора части 34 генерирования начального вектора генерирует временной вектор из вектора движения уже кодированного блока посредством использования, например, способа, идентичного способу, который использует часть 32 генерирования временного прямого вектора, показанную на фиг. 3. В качестве альтернативы, часть генерирования временного вектора может генерировать временной вектор посредством использования другого способа.
[0124] После того, как часть 71 генерирования пространственного вектора генерирует пространственный вектор, и часть 72 генерирования временного вектора генерирует временной вектор, часть 73 определения начального вектора части 34 генерирования начального вектора выбирает один вектор в качестве начального вектора MV_first из пространственного вектора и временного вектора. Более конкретно, часть 81 компенсации движения части 73 определения начального вектора генерирует изображение предсказания из списка 0 в пространственном прямом режиме, изображение предсказания из списка 1 в пространственном прямом режиме, изображение предсказания из списка 0 во временном прямом режиме и изображение предсказания из списка 1 во временном прямом режиме посредством использования способа, идентичного способу, который использует часть 41 компенсации движения, показанная на фиг. 4.
[0125] Часть 82 вычисления подобия части 73 определения начального вектора вычисляет степень подобия между изображением предсказания из списка 0 и изображением предсказания из списка 1 в пространственном прямом режиме в качестве пространственного оцененного значения, а также вычисляет степень подобия между изображением предсказания из списка 0 и изображением предсказания из списка 1 во временном прямом режиме в качестве временного оцененного значения посредством использования способа, идентичного способу, который использует часть 42 вычисления подобия, показанная на фиг. 4. Часть 83 определения начального вектора части 73 определения начального вектора обращается к результату сравнения между пространственным оцененным значением и временным оцененным значением, которые вычисляются посредством части 82 вычисления подобия, и выбирает один вектор, который предоставляет более высокую степень подобия между изображениями предсказания, из пространственного вектора и временного вектора.
[0126] После того, как часть 34 генерирования начального вектора генерирует начальный вектор MV_first, часть 35 поиска векторов движения части 25 генерирования прямого вектора выполняет поиск в диапазоне ±n, центрированном в начальной точке поиска (блоке), показанной посредством начального вектора MV_first, как показано на фиг. 30, чтобы определять прямой вектор. Часть поиска векторов движения может выполнять оценку во время поиска посредством выполнения, например, процесса, идентичного процессу, выполняемого посредством части 82 вычисления подобия, показанной на фиг. 28. В этом случае, когда позиция, показанная посредством начального вектора, выражается как v, часть поиска вектора движения вычисляет оцененное значение SAD во время поиска, как показано в следующем уравнении (11).
В этом случае, диапазон поиска n может быть фиксированным или может быть определен для каждого заголовка на верхнем уровне, такого как каждый заголовок слайса. Дополнительно, хотя предполагается, что диапазон (диапазон поиска) точки поиска является квадратом, диапазон альтернативно может быть прямоугольником или четырехугольником, таким как ромб.
[0127] После вычисления оцененного значения SAD во время поиска часть 35 поиска вектора движения выводит вектор движения в диапазоне поиска, который предоставляет наименьшее оцененное значение SAD, в часть 24 обработки компенсации движения в качестве прямого вектора.
[0128] Хотя в вышеуказанном варианте 3 осуществления показывается пример, в котором каждая из частей предсказания с компенсацией движения генерирует как временной прямой вектор, так и пространственный прямой вектор и выбирает любой из прямых векторов, каждая из частей предсказания с компенсацией движения может добавлять другой вектор, в качестве вектора-кандидата, в дополнение к временному прямому вектору и пространственному прямому вектору и выбирать прямой вектор из этих векторов-кандидатов. Например, каждая из частей предсказания с компенсацией движения может добавлять пространственные векторы MV_A, MV_B и MV_C и временные векторы MV_1-MV_8, как показано на фиг. 17, к векторам-кандидатам и выбирать прямой вектор из этих пространственных векторов и временных векторов. Дополнительно, каждая из частей предсказания с компенсацией движения может генерировать один вектор из множества кодированных векторов и добавлять вектор к векторам-кандидатам, как показано на фиг. 18. Хотя такое увеличение числа векторов-кандидатов повышает объем информации, которая должна быть обработана, может быть повышена точность прямого вектора, и, следовательно, может быть повышена эффективность кодирования.
[0129] В этом варианте 3 осуществления кандидаты для прямого вектора могут быть определены для каждого слайса. Информация, показывающая то, какие векторы должны быть выбраны в качестве кандидатов, мультиплексируется в каждый заголовок слайса. Например, может рассматриваться способ, поскольку эффект временного вектора является низким в видео, которое получается посредством панорамирования камеры, удаления временных векторов из кандидатов выбора для такого видео, и поскольку эффект пространственного вектора является большим в видео, которое получается посредством стационарной камеры, суммирования пространственных векторов с кандидатами выбора для такого видео.
[0130] Хотя чем больше число векторов-кандидатов, тем ближе к исходному изображению может быть сгенерировано изображение предсказания, баланс между объемом информации, которая должна быть обработана, и эффективностью кодирования может достигаться посредством определения кандидатов с учетом локальности видео, к примеру, исключения неэффективных векторов из кандидатов заранее, чтобы не допускать существенного повышения объема информации, которая должна быть обработана, вследствие увеличения числа векторов-кандидатов. Переключение вектора между кандидатом и не кандидатом достигается посредством использования, например, способа предоставления флага активации/деактивации для каждого вектора и задания только вектора, флаг которого активирован, в качестве кандидата. Вектор движения, который может быть кандидатом выбора, может быть переключен между кандидатом и не кандидатом посредством использования каждого заголовка слайса или каждого заголовка на верхнем уровне, такого как каждый заголовок последовательности или каждый заголовок картинки. Дополнительно, может быть подготовлен один или более наборов векторов движения, каждый из которых может быть кандидатом выбора, и может быть кодирован индекс, показывающий каждый из наборов кандидатов.
[0131] Дополнительно, вектор может быть переключен между кандидатом и не кандидатом для каждого макроблока или каждого блока, который должен быть кодирован. Переключение вектора между кандидатом и не кандидатом для каждого макроблока или каждого блока, который должен быть кодирован, может обеспечивать локальность для макроблока или блока, который должен быть кодирован, и предоставляет преимущество повышения эффективности кодирования. Дополнительно, кандидаты выбора могут быть определены уникально для каждого размера блока сегментов. Поскольку пространственная корреляция, в общем, становится слабой, когда размер блока становится небольшим, можно ожидать, что снижается предсказательная точность вектора, определенного через предсказание по среднему. Чтобы разрешать эту проблему, посредством удаления вектора движения, определенного через предсказание по среднему, из кандидатов, например, объем информации, которая должна быть обработана, может быть уменьшен без снижения эффективности кодирования.
[0132] Хотя в этом варианте 3 осуществления пояснение приводится посредством допущения случая, в котором существуют как временной прямой вектор, так и пространственный прямой вектор, возникает случай, в котором вектора движения не существует, когда процесс внутреннего кодирования выполняется для блока Bn, который должен быть кодирован. В этом случае, может рассматриваться способ задания нулевого вектора в качестве вектора движения, способ, на котором не включают вектор движения в кандидаты и т.д. Хотя эффективность кодирования может быть повышена, поскольку кандидаты увеличиваются численно, когда нулевой вектор задается как вектор движения, возрастает объем информации, которая должна быть обработана. Когда вектор движения не включается в кандидаты для прямого вектора, может быть уменьшен объем информации, которая должна быть обработана.
[0133] Хотя в этом варианте 3 осуществления показывается пример генерирования прямого вектора, прямой вектор может быть использован в качестве предсказанного вектора, который используется для кодирования обычного вектора движения. Хотя объем информации, которая должна быть обработана, возрастает, когда прямой вектор используется в качестве предсказанного вектора, эффективность кодирования может быть повышена, поскольку повышается точность предсказания.
[0134] Хотя в этом варианте 3 осуществления показывается пример вычисления оцененного значения SAD из комбинации изображения, расположенного раньше блока Bn, который должен быть кодирован, во времени, и изображения, расположенного позже блока Bn, который должен быть кодирован, во времени (см. фиг. 15), оцененное значение SAD альтернативно может быть вычислено только из комбинации изображений, расположенных раньше блока Bn, который должен быть кодирован, во времени, как показано на фиг. 19. В качестве альтернативы, оцененное значение SAD может быть вычислено только из комбинации изображений, расположенных позже блока Bn, который должен быть кодирован, во времени. В этом случае, временные векторы выражаются посредством следующих уравнений (12) и (13).
[0135] ,
где является вектором из списка 0, и является вектором из списка 1.
В вышеприведенных уравнениях d обозначает временное расстояние, d0 обозначает временное расстояние опорного изображения из списка 0, и d1 обозначает временное расстояние опорного изображения из списка 0. Дополнительно, vco1 и dco1 обозначают вектор блока, пространственно расположенного в позиции в опорном изображении, идентичной позиции блока, который должен быть кодирован, и временное расстояние опорного изображения, показанного посредством вектора, соответственно.
[0136] Даже в случае, если два списка опорных изображений указывают идентичное опорное изображение, может применяться способ, идентичный способу, показанному на фиг. 19.
[0137] Хотя в этом варианте 3 осуществления предполагается случай, в котором каждый из двух списков опорных изображений имеет два или более опорных изображения, может рассматриваться случай, в котором только одно опорное изображение включается в каждый из двух списков опорных изображений. В этом случае, когда идентичное опорное изображение задано в двух списках опорных изображений, может возникать случай, когда определение может быть выполнено посредством использования только пространственного вектора вообще без использования временного вектора. Когда различные опорные изображения заданы в двух списках опорных изображений, соответственно, определение может обрабатываться посредством использования вышеуказанного способа.
[0138] Хотя предполагается, что в этом варианте осуществления 3 выполняется процесс предсказания из двух направлений, альтернативно может быть выполнен процесс предсказания только в одном направлении. Когда выполняется предсказание из вектора в одном направлении, кодируется и передается информация, показывающая то, какой вектор используется. Как результат, может разрешаться такая проблема, как затемнение, и может быть внесен вклад в повышение предсказательной точности.
[0139] Хотя в этом варианте 3 осуществления предполагается, что выполняется предсказание с использованием двух векторов, число векторов может составлять три или более. В этом случае, например, может рассматриваться способ генерирования изображения предсказания посредством использования всех векторов-кандидатов, каждый из которых предоставляет оцененное значение SAD, равное или меньшее порогового значения Th, из множества векторов-кандидатов. Дополнительно, вместо использования всех кандидатов, каждый из которых предоставляет оцененное значение SAD, равное или меньшее порогового значения Th, максимум числа векторов, которые используются, может предварительно устанавливаться для каждого заголовка слайса и т.п., и изображение предсказания может быть сгенерировано посредством использования максимального числа векторов, каждый из которых предоставляет меньшее оцененное значение.
[0140] Вектор определяется из оценки между опорными изображениями в этом варианте 3 осуществления. Эта оценка может выполняться в результате сравнения между уже кодированным изображением, которое является пространственно смежным с блоком, который должен быть кодирован, и опорным изображением. В этом случае, может рассматриваться способ выполнения оценки посредством использования такого L-образного изображения, как показано на фиг. 20. Дополнительно, когда используется уже кодированное изображение, которое является пространственно смежным с блоком, который должен быть кодирован, имеется вероятность того, что уже кодированное изображение не синхронизировано для сравнения вследствие конвейерной обработки. В этом случае, может рассматриваться способ использования изображения предсказания вместо уже кодированного изображения.
[0141] Хотя в этом варианте 3 осуществления показывается пример поиска вектора движения после определения начального вектора, то, выполнять или нет поиск вектора движения посредством использования флага, может быть определено для каждого слайса. В этом случае, в то время как эффективность кодирования уменьшается, предоставляется преимущество возможности значительно уменьшать объем информации, которая должна быть обработана. Флаг может предоставляться для каждого слайса или может быть определен для каждой последовательности, каждой картинки и т.п. на верхнем уровне. Когда флаг находится в деактивированном состоянии, и не выполняется поиск движения, выполняется операция, идентичная операции согласно вышеуказанному варианту 1 осуществления.
[0142] Хотя в этом варианте 3 осуществления предполагается, что каждая из частей 25 и 64 генерирования прямого вектора выполняет процесс генерирования векторов независимо от размера блока, этот процесс может быть ограничен случаем, в котором размер блока равен или меньше предопределенного размера блока. Флаг, показывающий то, ограничивать или нет процесс случаем, в котором размер блока равен или меньше предопределенного размера блока, и информация, показывающая предопределенный размер блока, могут быть мультиплексированы в каждый заголовок на верхнем уровне, такой как каждый заголовок слайса. Флаг и информация могут быть изменены согласно максимальному размеру CU. Существует тенденция становления низкой корреляции между опорными изображениями и становления большими ошибок, когда размер блока становится небольшим. Следовательно, существует много случаев, в которых независимо от того, какой вектор выбран, производительность фактически не затрагивается, и предоставляется преимущество уменьшения объема информации, которая должна быть обработана, без снижения производительности кодирования посредством деактивации процессов с использованием больших размеров блока.
[0143] Вариант 4 осуществления
В вышеуказанном варианте 1 осуществления показывается пример, в котором каждая из частей 5 и 54 предсказания с компенсацией движения генерирует пространственный прямой вектор в пространственном прямом режиме из вектора движения уже кодированного блока (уже декодированного блока), расположенного около блока, который должен быть кодирован, а также генерирует временной прямой вектор во временном прямом режиме из вектора движения уже кодированной картинки (уже декодированного блока), к которой можно обращаться посредством блока, который должен быть кодирован, и выбирает один прямой вектор, который предоставляет более высокую корреляцию между опорными изображениями, из пространственного прямого вектора и временного прямого вектора. Часть 5 предсказания с компенсацией движения устройства кодирования движущихся изображений альтернативно может выбирать вектор движения, подходящий для генерирования изображения предсказания, и выполнять процесс предсказания с компенсацией движения для блока, который должен быть кодирован, чтобы генерировать изображение предсказания посредством использования вектора движения, и также может выводить информацию индекса, показывающую вектор движения, в часть 13 кодирования с переменной длиной кода. С другой стороны, часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений альтернативно может выполнять процесс предсказания с компенсацией движения для блока кодирования, чтобы генерировать изображение предсказания посредством использования вектора движения, показанного посредством информации индекса, которая мультиплексируется в поток битов.
[0144] Фиг. 31 является блок-схемой, показывающей часть 5 предсказания с компенсацией движения устройства кодирования движущихся изображений в соответствии с вариантом 4 осуществления настоящего изобретения. На чертеже, поскольку ссылки с номерами, идентичные ссылкам с номерами, показанным на фиг. 2, обозначают идентичные компоненты или аналогичные компоненты, пояснение компонентов далее опускается. Часть 26 генерирования прямого вектора выполняет процесс обращения к индексу кандидата прямого вектора, в котором описываются выбираемый вектор движения и информация индекса, указывающая вектор движения, чтобы выбирать вектор движения, подходящий для генерирования изображения предсказания, из одного или более выбираемых векторов движения, и вывода вектора движения, выбранного посредством него, в часть 24 обработки компенсации движения в качестве прямого вектора, а также вывода информации индекса, показывающей вектор движения, в часть 13 кодирования с переменной длиной кода. При кодировании с переменной длиной кода сжатых данных, режима кодирования и т.д. часть 13 кодирования с переменной длиной кода включает информацию индекса в параметры внешнего предсказания и затем осуществляет кодирование с переменной длиной кода этих параметров внешнего предсказания.
[0145] Фиг. 32 является блок-схемой, показывающей часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений в соответствии с вариантом 4 осуществления настоящего изобретения. На чертеже, поскольку ссылки с номерами, идентичные ссылкам с номерами, показанным на фиг. 6, обозначают идентичные компоненты или аналогичные компоненты, пояснение компонентов далее опускается. Часть 65 генерирования прямого вектора выполняет процесс приема индекса кандидата прямого вектора, в котором описываются выбираемый вектор движения и информация индекса, показывающая выбираемый вектор движения, считывания вектора движения, показанного посредством информации индекса, включенной в параметры внешнего предсказания, из индекса кандидата прямого вектора и вывода вектора движения в часть 63 обработки компенсации движения в качестве прямого вектора.
[0146] Далее поясняется работа устройства кодирования движущихся изображений и работа устройства декодирования движущихся изображений. Поскольку устройство кодирования движущихся изображений и устройство кодирования движущихся изображений согласно этому варианту осуществления имеют структуры, идентичные структурам согласно вышеуказанному варианту 1 осуществления, за исключением того, что части 23 и 62 генерирования прямого вектора частей 5 и 54 предсказания с компенсацией движения согласно вышеуказанному варианту 1 осуществления заменяются посредством частей 26 и 65 генерирования прямого вектора, по сравнению с вышеуказанным вариантом 1 осуществления, далее поясняется только обработка, выполняемая посредством каждой из частей 26 и 65 генерирования прямого вектора.
[0147] Часть 26 генерирования прямого вектора части 5 предсказания с компенсацией движения генерирует прямой вектор для каждого сегмента Pin блока Bn, который должен быть кодирован, когда режим m(Bn) кодирования блока представляет собой прямой режим. Более конкретно, часть 26 генерирования прямого вектора выбирает вектор движения, подходящий для генерирования изображения предсказания, из одного или более выбираемых векторов движения посредством обращения к индексу кандидата прямого вектора, как показано на фиг. 33. Хотя пять векторов движения перечисляются в качестве одного или более выбираемых векторов движения в примере, показанном на фиг. 33, индекс 0 назначается "среднему" в пространственном предсказании, поскольку "среднее" выбирается наиболее часто в пространственном предсказании.
[0148] При выборе вектора движения, подходящего для генерирования изображения предсказания, часть 26 генерирования прямого вектора вычисляет затраты R из изображения предсказания, которое получается из каждого из выбираемых векторов движения, искажения исходного изображения и объема кода для генерирования индекса каждого из выбираемых векторов движения, как показано в следующем уравнении (14), и выбирает вектор движения, затраты R которого являются наименьшими, из множества векторов движения.
,
где D является остаточным сигналом между изображением предсказания и исходным изображением, i является индексом, является множителем Лагранжа, и является объемом кода члена в круглых скобках.
[0149] После выбора вектора движения, затраты R которого являются наименьшими, из множества векторов движения, часть 26 генерирования прямого вектора выводит вектор движения в часть 24 обработки компенсации движения в качестве прямого вектора, а также выводит информацию индекса, указывающую вектор движения, в часть 13 кодирования с переменной длиной кода. Например, при выборе "среднего" в качестве вектора движения, затраты R которого являются наименьшими, часть генерирования прямого вектора выводит индекс 0 в часть 13 кодирования с переменной длиной кода, тогда как при выборе "MV_A" в качестве вектора движения, затраты R которого являются наименьшими, часть генерирования прямого вектора выводит индекс 1 в часть 13 кодирования с переменной длиной кода. При приеме информации индекса из части 26 генерирования прямого вектора часть 13 кодирования с переменной длиной кода включает информацию индекса в параметры внешнего предсказания и затем осуществляет кодирование с переменной длиной кода этих параметров внешнего предсказания при кодировании с переменной длиной кода сжатых данных, режима кодирования и т.д.
[0150] Когда режим m(Bn) кодирования блока Bn кодирования представляет собой прямой режим, часть 65 генерирования прямого вектора части 54 предсказания с компенсацией движения генерирует прямой вектор для каждого сегмента Pin блока Bn кодирования. Более конкретно, часть 65 генерирования прямого вектора принимает индекс кандидата прямого вектора (например, индекс кандидата прямого вектора, показанный на фиг. 33), идентичный индексу, который принимает часть 26 генерирования прямого вектора, показанный на фиг. 31. При приеме параметров внешнего предсказания, включающих в себя информацию индекса, из переключателя 61 выбора, часть 65 генерирования прямого вектора считывает вектор движения, показанный посредством информации индекса из индекса кандидата прямого вектора, и выводит этот вектор движения в часть 63 обработки компенсации движения в качестве прямого вектора. Например, когда информация индекса является индексом 0, часть генерирования прямого вектора выводит "среднее" в качестве прямого вектора, тогда как, когда информация индекса является индексом 1, часть генерирования прямого вектора выводит "MV_A" в качестве прямого вектора.
[0151] Как можно видеть из вышеприведенного описания, поскольку устройство кодирования движущихся изображений в соответствии с этим вариантом осуществления 4 имеет такую структуру, чтобы выбирать вектор движения, подходящий для генерирования изображения предсказания, из одного или более выбираемых векторов движения и выполнять процесс предсказания с компенсацией движения для блока, который должен быть кодирован, чтобы генерировать изображение предсказания посредством использования вектора движения, а также выводить информацию индекса, показывающую вектор движения, в часть 13 кодирования с переменной длиной кода, предоставляется преимущество возможности выбирать оптимальный прямой режим для каждой предопределенной единицы блоков, тем самым позволяя уменьшать объем кода, как в случае вышеуказанного варианта 1 осуществления.
[0152] Хотя в этом варианте осуществления 4 пояснение приводится посредством допущения случая, в котором вектор движения существует в выбираемой позиции, возникает случай, в котором вектора движения не существует, когда процесс внутреннего кодирования выполняется для блока Bn, который должен быть кодирован. В этом случае, может рассматриваться способ задания нулевого вектора в качестве вектора движения, способ, на котором не включают вектор движения в кандидаты и т.д. Хотя эффективность кодирования может быть повышена, поскольку кандидаты увеличиваются численно, когда нулевой вектор задается как вектор движения, возрастает объем информации, которая должна быть обработана. Когда вектор движения не включается в кандидаты для прямого вектора, может быть уменьшен объем информации, которая должна быть обработана.
[0153] Хотя в этом варианте осуществления 4 показывается пример генерирования прямого вектора, вектор может быть использован в качестве предсказанного вектора, который используется для кодирования обычного вектора движения. Хотя объем информации, которая должна быть обработана, возрастает, когда прямой вектор используется в качестве предсказанного вектора, эффективность кодирования может быть повышена, поскольку повышается точность предсказания.
[0154] Хотя кандидаты для выбираемых векторов движения являются фиксированными в этом варианте 4 осуществления, кандидаты для выбираемых векторов движения альтернативно могут быть определены для каждого слайса. Информация, показывающая то, какие векторы должны быть выбраны в качестве кандидатов, мультиплексируется в каждый заголовок слайса. Например, существует способ, поскольку эффект временного вектора является низким в видео, которое получается посредством панорамирования камеры, удаления временных векторов из кандидатов выбора для такого видео, и поскольку эффект пространственного вектора является большим в видео, которое получается посредством стационарной камеры, суммирования пространственных векторов с кандидатами выбора для такого видео.
[0155] Хотя чем больше число векторов-кандидатов, тем ближе к исходному изображению может быть сгенерировано изображение предсказания, баланс между объемом информации, которая должна быть обработана, и эффективностью кодирования может достигаться посредством определения кандидатов с учетом локальности видео, к примеру, исключения неэффективных векторов из кандидатов заранее, чтобы не допускать существенного повышения объема информации, которая должна быть обработана, вследствие увеличения числа векторов-кандидатов. Переключение вектора между кандидатом и не кандидатом достигается посредством использования, например, способа предоставления флага активации/деактивации для каждого вектора и задания только вектора, флаг которого активирован, в качестве кандидата. Вектор движения, который может быть кандидатом выбора, может быть переключен между кандидатом и не кандидатом посредством использования каждого заголовка слайса или каждого заголовка на верхнем уровне, такого как каждый заголовок последовательности или каждый заголовок картинки. Дополнительно, может быть подготовлен один или более наборов векторов движения, каждый из которых может быть кандидатом выбора, и может быть кодирован индекс, показывающий каждый из наборов кандидатов. Дополнительно, вектор может быть переключен между кандидатом и не кандидатом для каждого макроблока или каждого блока, который должен быть кодирован. Переключение вектора между кандидатом и не кандидатом для каждого макроблока или каждого блока, который должен быть кодирован, может обеспечивать локальность для макроблока или блока, который должен быть кодирован, и предоставляет преимущество повышения эффективности кодирования.
[0156] Хотя порядок индексов является фиксированным в этом варианте осуществления 4, порядок индексов альтернативно может быть изменен для каждого слайса. Когда выбор вектора, который выполняется для каждого слайса, имеет смещение, индексная таблица изменяется таким образом, что меньший код назначается вектору, имеющему более высокую частоту выбора, тем самым обеспечивая повышение эффективности кодирования. Кодирование информации, показывающей изменение, может быть выполнено посредством кодирования порядка каждого вектора или посредством подготовки множества наборов индексов и информации кодирования, показывающей то, какой набор индексов используется. Дополнительно, может рассматриваться способ предопределения только настройки по умолчанию, подготовки флага, показывающего то, использовать или нет настройку, отличающуюся от настройки по умолчанию, и обновления набора индексов и переключения на настройку только тогда, когда флаг задается.
[0157] Хотя выше показывается пример изменения порядка индексов для каждого слайса, разумеется, порядок индексов альтернативно определен для каждой последовательности, каждой картинки и т.п. на верхнем уровне. В качестве альтернативы, порядок индексов может быть изменен по каждому блоку сегментов или по каждому блоку, который должен быть кодирован. Изменение порядка индексов для каждого макроблока или по каждому блоку, который должен быть кодирован, может обеспечивать локальность для каждого макроблока или блока, который должен быть кодирован, и может обеспечивать повышение эффективности кодирования.
[0158] Дополнительно, кандидаты выбора могут быть определены уникально для каждого размера блока сегментов. Поскольку пространственная корреляция, в общем, становится слабой, когда размер блока становится небольшим, считается, что снижается предсказательная точность вектора, определенного через предсказание по среднему. Чтобы разрешать эту проблему, посредством изменения порядка индексов, который определяется через предсказание по среднему, может обеспечиваться повышение эффективности кодирования.
[0159] Хотя индексы кандидатов прямых векторов, соответственно, указывающие пять выбираемых векторов движения, подготовленных заранее, показаны в этом варианте осуществления 4, шесть или более векторов движения или четыре или менее векторов движения могут быть подготовлены в качестве векторов-кандидатов. Например, такие векторы рядом с временным вектором, как показано на фиг. 17, и такой вектор, возникающей в результате взвешенной суммы векторов около блока, который должен быть кодирован, как показано на фиг. 18, могут добавляться в качестве векторов-кандидатов.
[0160] Хотя предполагается, что в этом варианте осуществления 4 выполняется процесс предсказания из двух направлений, альтернативно может быть выполнен процесс предсказания только в одном направлении. Когда выполняется предсказание из вектора в одном направлении, кодируется и передается информация, показывающая то, какой вектор используется. Как результат, может разрешаться такая проблема, как затемнение, и может быть внесен вклад в повышение предсказательной точности.
[0161] Хотя в этом варианте осуществления 4 предполагается, что выполняется двунаправленное предсказание с использованием двух векторов, число векторов может составлять три или более. В этом случае, например, может быть кодирована информация индекса, показывающая все выбранные векторы. В отличие от этого, может быть кодирована информация индекса, показывающая векторы, которые не выбраны. В качестве альтернативы, может рассматриваться способ кодирования только информации индекса, показывающей один вектор, и использования изображения рядом с опорным изображением, показанным посредством вектора, как показано на фиг. 34.
[0162] Хотя в этом варианте осуществления 4 показывается пример выбора вектора движения, затраты R которого являются наименьшими, из множества векторов движения, оцененное значение SADk может быть вычислено согласно следующему уравнению (15), и может быть выбран вектор движения, оцененное значение SADk которого равно или меньше порогового значения Th.
,
где findex обозначает опорное изображение, показанное посредством вектора, информация индекса которого кодируется, а gk обозначает опорное изображение, показанное посредством вектора MV_k.
[0163] Хотя выше показывается пример использования оцененного значения SADk, разумеется, что оценка выполняется посредством использования другого способа, к примеру, SSE.
[0164] Информация, показывающая число используемых векторов, может быть мультиплексирована в каждый заголовок на верхнем уровне, такой как каждый заголовок слайса. Хотя эффективность кодирования повышается с увеличением числа векторов, существует компромиссное соотношение между эффективностью кодирования и объемом информации, которая должна быть обработана, поскольку объем информации, которая должна быть обработана, увеличивается с увеличением числа векторов. В качестве альтернативы, информация, показывающая число используемых векторов, может быть мультиплексирована не в каждый слайс, а в каждую меньшую единицу, такую как каждый блок, который должен быть кодирован, или каждый сегмент. В этом случае, может достигаться баланс между объемом информации, которая должна быть обработана, и эффективностью кодирования согласно локальности изображения.
[0165] Хотя в этом варианте осуществления 4 показывается пример выбора вектора движения, подходящего для генерирования изображения предсказания, из множества выбираемых векторов движения, вектор движения, который используется в качестве начального вектора, может быть выбран из множества выбираемых векторов движения, и после этого конечный вектор движения может быть определен посредством поиска в окрестности начального вектора, как в случае вышеуказанного варианта 3 осуществления. В этом случае, часть 26 генерирования прямого вектора имеет структуру, как показано на фиг. 35. Часть 36 генерирования начального вектора, показанная на фиг. 35, соответствует части 34 генерирования начального вектора, показанной на фиг. 26.
[0166] Вариант 5 осуществления
Каждая из частей 5 и 54 предсказания с компенсацией движения в соответствии с этим вариантом осуществления 5 имеет функции согласно вышеуказанному варианту 1 осуществления (либо варианту 2 или 3 осуществления) и функции согласно вышеуказанному варианту 4 осуществления, может переключаться между функциями согласно вышеуказанному варианту 1 осуществления (либо варианту 2 или 3 осуществления) и функциями согласно вышеуказанному варианту 4 осуществления для каждого слайса и может использовать любые из функций согласно вышеуказанному варианту 1 осуществления (либо варианту 2 или 3 осуществления) и функций согласно вышеуказанному варианту 4 осуществления, чтобы генерировать изображение предсказания.
[0167] Фиг. 36 является блок-схемой, показывающей часть 5 предсказания с компенсацией движения устройства кодирования движущихся изображений в соответствии с вариантом 5 осуществления настоящего изобретения. На чертеже, поскольку ссылки с номерами, идентичные ссылкам с номерами, показанным на фиг. 31, обозначают идентичные компоненты или аналогичные компоненты, пояснение компонентов далее опускается. Часть 27 генерирования прямого вектора выполняет процесс, когда флаг переключения прямого режима показывает, что информация индекса не передается, генерирования прямого вектора посредством использования способа, идентичного способу, который использует часть 23 генерирования прямого вектора, показанный на фиг. 2 (или часть 25 генерирования прямого вектора, показанный на фиг. 25), а когда флаг переключения прямого режима показывает, что информация индекса передается, генерирования прямого вектора, а также вывода информации индекса, показывающей прямой вектор, в часть 13 кодирования с переменной длиной кода посредством использования способа, идентичного способу, который использует часть 26 генерирования прямого вектора, показанную на фиг. 31. Часть 27 генерирования прямого вектора также выполняет процесс вывода флага переключения прямого режима в часть 13 кодирования с переменной длиной кода.
[0168] Фиг. 37 является блок-схемой, показывающей часть 27 генерирования прямого вектора, которая составляет часть 5 предсказания с компенсацией движения. Ссылаясь на фиг. 37, переключатель выбора 91 выполняет процесс, когда флаг переключения прямого режима показывает, что информация индекса не передается, вывода каждого сегмента Pin блока Bn, который должен быть кодирован, в часть, соответствующую части 23 генерирования прямого вектора, показанной на фиг. 2 (или части 25 генерирования прямого вектора, показанной на фиг. 25), а когда флаг переключения прямого режима показывает, что информация индекса передается, вывода каждого сегмента Pin блока Bn, который должен быть кодирован, в часть, соответствующую части 26 генерирования прямого вектора, показанной на фиг. 31.
[0169] Фиг. 38 является блок-схемой, показывающей часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений в соответствии с вариантом 5 осуществления настоящего изобретения. На чертеже, поскольку ссылки с номерами, идентичные ссылкам с номерами, показанным на фиг. 32, обозначают идентичные компоненты или аналогичные компоненты, пояснение компонентов далее опускается. Часть 66 генерирования прямого вектора выполняет процесс, когда флаг переключения прямого режима, включенный в параметры внешнего предсказания, показывает, что информация индекса не передается, генерирования прямого вектора посредством использования способа, идентичного способу, который использует часть 62 генерирования прямого вектора, показанная на фиг. 6 (или часть 64 генерирования прямого вектора, показанная на фиг. 29), а когда флаг переключения прямого режима показывает, что информация индекса передается, генерирования прямого вектора посредством использования способа, идентичного способу, который использует часть 65 генерирования прямого вектора, показанную на фиг. 32.
[0170] Далее поясняется работа устройства кодирования движущихся изображений и работа устройства декодирования движущихся изображений. Часть 27 генерирования прямого вектора части 5 предсказания с компенсацией движения имеет функции части 23 генерирования прямого вектора, показанного на фиг. 2 (или части 25 генерирования прямого вектора, показанного на фиг. 25), и функции части 26 генерирования прямого вектора, показанного на фиг. 31, и когда флаг переключения прямого режима, введенный в нее из-за пределов части генерирования прямого вектора, показывает, что информация индекса не передается, генерирует прямой вектор посредством использования способа, идентичного способу, который использует часть 23 генерирования прямого вектора, показанная на фиг. 2 (или часть 25 генерирования прямого вектора, показанная на фиг. 25), и выводит прямой вектор в часть 24 обработки компенсации движения. Часть 27 генерирования прямого вектора также выводит флаг переключения прямого режима в часть 13 кодирования с переменной длиной кода.
[0171] Когда флаг переключения прямого режима показывает, что информация индекса передается, часть 27 генерирования прямого вектора генерирует прямой вектор посредством использования способа, идентичного способу, который использует часть 65 генерирования прямого вектора, показанная на фиг. 32, и выводит прямой вектор в часть 24 обработки компенсации движения. Часть 27 генерирования прямого вектора также выводит флаг переключения прямого режима и информацию индекса в часть 13 кодирования с переменной длиной кода.
[0172] При приеме флага переключения прямого режима из части 27 генерирования прямого вектора часть 13 кодирования с переменной длиной кода включает флаг переключения прямого режима в параметры внешнего предсказания и осуществляет кодирование с переменной длиной кода этих параметров внешнего предсказания при кодировании с переменной длиной кода сжатых данных, режима кодирования и т.д. При приеме флага переключения прямого режима и информации индекса из части 27 генерирования прямого вектора, часть 13 кодирования с переменной длиной кода включает флаг переключения прямого режима и информацию индекса в параметры внешнего предсказания и осуществляет кодирование с переменной длиной кода этих параметров внешнего предсказания при кодировании с переменной длиной кода сжатых данных, режима кодирования и т.д.
[0173] При приеме параметров внешнего предсказания, декодированных посредством части 51 декодирования с переменной длиной кода, часть 66 генерирования прямого вектора части 54 предсказания с компенсацией движения генерирует прямой вектор посредством использования способа, идентичного способу, который использует часть 62 генерирования прямого вектора, показанную на фиг. 6 (или часть 64 генерирования прямого вектора, показанную на фиг. 29), когда флаг переключения прямого режима, включенный в параметры внешнего предсказания, показывает, что информация индекса не передается. Напротив, когда флаг переключения прямого режима показывает, что информация индекса передается, часть генерирования прямого вектора генерирует прямой вектор посредством использования способа, идентичного способу, который использует часть 65 генерирования прямого вектора, показанная на фиг. 32.
[0174] В общем, дополнительная информация возрастает в режиме, в котором передается информация индекса, по сравнению с режимом, в котором не передается информация индекса. Следовательно, когда процентное отношение дополнительной информации в полном объеме кода является большим, к примеру, когда скорость передачи является низкой, производительность в режиме, в котором не передается информация индекса, выше производительности в режиме, в котором передается информация индекса. Напротив, когда процентное отношение дополнительной информации в полном объеме кода является небольшим, к примеру, когда скорость передачи является высокой, предполагается, что эффективность кодирования дополнительно повышается посредством добавления информации индекса и использования оптимального прямого вектора.
[0175] Хотя в этом варианте осуществления 5 показывается пример, в котором флаг переключения прямого режима включается в параметры внешнего предсказания, флаг переключения прямого режима может быть мультиплексирован в каждый заголовок слайса, каждую картинку или каждый заголовок последовательности.
[0176] Дополнительно, может рассматриваться способ определения переключения согласно размеру сегмента. В общем, процентное отношение дополнительной информации, такой как вектор движения, становится небольшим относительно с увеличением размера сегмента. Следовательно, может рассматриваться структура выбора режима, в котором передается информация индекса, когда размер сегмента равен или превышает некоторый размер, и когда размер сегмента меньше некоторого размера, выбора режима, в котором не передается информация индекса. При использовании способа определения переключения согласно размеру сегмента, как упомянуто выше, флаг, показывающий то, какой режим используется для каждого размера блока кодирования, может быть мультиплексирован в каждый заголовок на верхнем уровне, такой как каждый заголовок слайса.
[0177] Хотя в этом варианте осуществления 4 показывается пример переключения между функциями согласно вышеуказанному варианту 1 осуществления и функциями согласно вышеуказанному варианту 4 осуществления согласно флагу переключения прямого режима, альтернативно может быть выполнено переключение между функциями согласно вышеуказанному варианту 2 осуществления и функциями согласно вышеуказанному варианту 4 осуществления или переключение между функциями согласно вышеуказанному варианту 3 осуществления и функциями согласно вышеуказанному варианту 4 осуществления. В качестве альтернативы, может быть выполнено переключение между функциями согласно вышеуказанному варианту 1 осуществления и функциями согласно вышеуказанному варианту 2 осуществления, переключение между функциями согласно вышеуказанному варианту 1 осуществления и функциями согласно вышеуказанному варианту 3 осуществления или переключение между функциями согласно вышеуказанному варианту 2 осуществления и функциями согласно вышеуказанному варианту 3 осуществления. В качестве альтернативы, произвольные функции могут быть выбраны из числа функций согласно вышеуказанному варианту 1-4 осуществления.
[0178] Хотя в этом варианте осуществления 5 показывается пример переключения между функциями согласно вышеуказанному варианту 1 осуществления и функциями согласно вышеуказанному варианту 4 осуществления согласно флагу переключения прямого режима, флаг активации/деактивации может предоставляться вместо переключения между функциями согласно вышеуказанному варианту 1 осуществления и функциями согласно вышеуказанному варианту 4 осуществления согласно флагу переключения прямого режима. Например, может рассматриваться способ предоставления флага активации/деактивации, показывающего то, использовать или нет вариант 1 осуществления, и когда флаг задается, выполнения как варианта 1 осуществления, так и варианта 4 осуществления для того, чтобы выбирать один режим, который предоставляет более высокую степень эффективности кодирования, из режимов и кодировать информацию. Этот способ предоставляет преимущество возможности переключаться между прямыми режимами согласно локальности изображения и вносить вклад в повышение эффективности кодирования.
[0179] Хотя в вышеуказанном примере предоставляется флаг для активации или деактивации варианта 1 осуществления, альтернативно может быть предоставлен флаг для активации или деактивации варианта 4 осуществления. В качестве альтернативы, варианты 2 и 4 осуществления или варианты 3 и 4 осуществления могут быть комбинированы.
[0180] Хотя в этом варианте осуществления 5 показывается пример выбора вектора движения, подходящего для генерирования изображения предсказания, из множества выбираемых векторов движения, вектор движения, который используется в качестве начального вектора, может быть выбран из множества выбираемых векторов движения, и после этого конечный вектор движения может быть определен посредством поиска в окрестности начального вектора, как в случае вышеуказанного варианта 3 осуществления. В этом случае, часть 27 генерирования прямого вектора имеет структуру, как показано на фиг. 39. Часть 37 генерирования начального вектора, показанная на фиг. 39, соответствует части 34 генерирования начального вектора, показанной на фиг. 26.
[0181] Хотя изобретение описано в предпочтительных вариантах осуществления, следует понимать, что может осуществляться произвольная комбинация двух или более из вышеуказанных вариантов осуществления, различные изменения могут быть внесены в произвольный компонент согласно любому из вышеуказанных вариантов осуществления, и произвольный компонент согласно любому из вышеуказанных вариантов осуществления может опускаться в пределах объема изобретения.
[0182] Хотя выше описывается, что, например, определяется максимальный размер, и также определяется верхний предел на иерархическое число касательно числа иерархических уровней в иерархии, в которой каждый из блоков, которые должны быть кодированы, имеющих максимальный размер, иерархически разделяется на блоки, и режим кодирования, который является подходящим для каждого из блоков, которые должны быть кодированы, на которые разделяется каждый блок, который должен быть кодирован, имеющий максимальный размер, иерархически выбирается из одного или более доступных режимов кодирования, любое или все из максимального размера, верхнего предела на иерархическое число и режима кодирования альтернативно может быть определено заранее.
[0183] Вариант 6 осуществления
Хотя в вышеуказанном варианте 4 осуществления показывается пример, в котором часть 26 генерирования прямого вектора части 5 предсказания с компенсацией движения в устройстве кодирования движущихся изображений выясняет один или более выбираемых векторов движения посредством обращения к индексу кандидата прямого вектора, как показано на фиг. 33, часть 1 управления кодированием альтернативно может генерировать список из одного или более выбираемых векторов движения согласно размеру блока для блока, который должен быть кодирован, и обращаться к списку кандидатов прямых векторов, показывающему один или более выбираемых векторов движения и индекс кандидата прямого вектора, чтобы определять вектор прямого режима. Конкретно, часть управления кодированием согласно этому варианту осуществления работает следующим образом.
[0184] Как упомянуто выше, в то время как один или более выбираемых векторов движения могут быть определены уникально для каждого из размеров блока для сегмента, например, существует высокая корреляция между сегментом, который является блоком, который должен быть кодирован, и смежным блоком, когда сегмент имеет большой размер блока, тогда как существует низкая корреляция между сегментом, который является блоком, который должен быть кодирован, и смежным блоком, когда сегмент имеет небольшой размер блока, как показано на фиг. 40. Следовательно, число кандидатов для одного или более выбираемых векторов движения может сокращаться со снижением размера блока сегмента.
[0185] С этой целью, часть 1 управления кодированием перечисляет один или более выбираемых векторов движения заранее для каждого из размеров блока, доступных для сегмента, который является блоком, который должен быть кодирован, как показано на фиг. 41. Как можно видеть из фиг. 41, часть управления кодированием сокращает число кандидатов для одного или более выбираемых векторов движения со снижением размера блока сегмента. Например, в то время как число выбираемых векторов движения составляет "4" для сегмента, размер блока которого составляет "64", число выбираемых векторов движения составляет "2" для сегмента, размер блока которого составляет "8". "Среднее", "MV_A", "MV_B", "MV_C" и "временной", показанные на фиг. 42, соответствуют "среднему", "MV_A", "MV_B", "MV_C" и "временному", показанным на фиг. 33, соответственно.
[0186] При определении одного или более выбираемых векторов движения часть 1 управления кодированием обращается, например, к списку, показанному на фиг. 41, указывает один или более векторов движения, соответствующих размеру блока сегмента, который является целью, которая должна быть кодирована, и выводит список кандидатов прямых векторов, показывающий один или более векторов движения, в часть 5 предсказания с компенсацией движения. Например, когда размер блока сегмента составляет "64", часть управления кодированием определяет "MV_A", "MV_B", "MV_C" и "временной" в качестве одного или более выбираемых векторов движения. Дополнительно, когда размер блока сегмента составляет "8", часть управления кодированием определяет "среднее" и "временной" в качестве одного или более выбираемых векторов движения.
[0187] При приеме списка кандидатов прямых векторов из части 1 управления кодированием часть 26 генерирования прямого вектора части 5 предсказания с компенсацией движения выбирает вектор движения, подходящий для генерирования изображения предсказания, из одного или более векторов движения, показанных посредством списка кандидатов прямых векторов, к примеру, аналогично вышеуказанному варианту 4 осуществления. В этом случае, например, поскольку число кандидатов для одного или более выбираемых векторов движения является небольшим, когда размер блока сегмента является небольшим, число вычислений оцененного значения SADk, как показано в вышеуказанном уравнении (15) и т.д., сокращается, и уменьшается нагрузка по обработке на часть 5 предсказания с компенсацией движения.
[0188] В случае если часть 1 управления кодированием устройства кодирования движущихся изображений определяет один или более выбираемых векторов движения таким образом, устройство декодирования движущихся изображений также должно иметь список из одного или более выбираемых кандидатов прямых векторов, которые являются полностью идентичными выбираемым кандидатами прямых векторов в устройстве кодирования движущихся изображений. Когда режим m(Bn) кодирования представляет собой прямой режим для каждого сегмента Pin блока Bn кодирования, часть 51 декодирования с переменной длиной кода устройства декодирования движущихся изображений выводит размер блока сегмента в часть 54 предсказания с компенсацией движения, а также выводит информацию индекса, которую часть декодирования с переменной длиной кода получает посредством декодирования с переменной длиной кода потока битов (т.е. информацию, показывающую вектор движения, который используется посредством части 5 предсказания с компенсацией движения устройства кодирования движущихся изображений), в часть 54 предсказания с компенсацией движения.
[0189] При приеме размера блока сегмента из части 51 декодирования с переменной длиной кода часть 65 генерирования прямого вектора части 54 предсказания с компенсацией движения принимает индекс прямого вектора и выводит вектор движения, который используется для прямого режима, из списка из одного или более векторов-кандидатов движения, который предопределяется согласно размеру блока, к примеру, аналогично вышеуказанному варианту 4 осуществления. Более конкретно, часть 65 генерирования прямого вектора перечисляет один или более выбираемых векторов движения для каждого из размеров блока, доступных для сегмента заранее (см. фиг. 41), и, при определении одного или более выбираемых векторов движения, обращается к списку, показанному на фиг. 41, и к индексу прямого вектора и выводит один или более векторов движения, соответствующих размеру блока сегмента, который должен быть декодирован в этот раз.
[0190] Например, в случае, если размер блока сегмента составляет "8", часть генерирования прямого вектора выводит "среднее" в качестве прямого вектора, когда информация индекса является индексом 0, и выводит "временной" в качестве прямого вектора, когда информация индекса является индексом 1.
[0191] Как можно видеть из вышеприведенного описания, поскольку часть управления кодированием в соответствии с этим вариантом осуществления 6 имеет такую структуру, чтобы определять один или более выбираемых векторов движения согласно размеру блока сегмента, который является блоком, который должен быть кодирован, вектор движения, отличный от векторов движения, подходящих для генерирования изображения предсказания, может удаляться из кандидатов для сегмента, имеющего низкую корреляцию между блоками сегментов и смежными блоками. Следовательно, предоставляется преимущество возможности уменьшать объем информации, которая должна быть обработана.
[0192] Дополнительно, поскольку часть управления кодированием в соответствии с этим вариантом осуществления 6 имеет такую структуру, чтобы, при определении одного или более выбираемых векторов движения, сокращать число кандидатов для одного или более выбираемых векторов движения со снижением размера блока сегмента, вектор движения, отличный от векторов движения, подходящих для генерирования изображения предсказания, может удаляться из кандидатов. Следовательно, предоставляется преимущество возможности уменьшать объем информации, которая должна быть обработана.
[0193] Хотя в этом варианте осуществления 6 показывается пример, в котором размер блока сегмента, который является блоком, который должен быть кодирован, имеет максимум в "64", размер блока альтернативно может иметь максимум, больший 64 или меньший 64. Фиг. 42 показывает пример списка, максимальный размер блока которого составляет "128". Хотя максимальный размер блока каждого из списков, сохраненных посредством части 1 управления кодированием и части 54 предсказания с компенсацией движения, составляет "128" в примере по фиг. 42, к части, в которой размеры блоков равны или меньше "32" в вышеуказанном списке, следует обращаться только тогда, когда максимум размера блока фактического сегмента составляет "32".
[0194] Дополнительно, хотя в этом варианте осуществления 6 показывается пример определения одного или более выбираемых векторов движения согласно размеру блока сегмента, который является блоком, который должен быть кодирован, один или более выбираемых векторов движения альтернативно могут быть определены согласно шаблону разделения блока, который должен быть кодирован, и могут предоставляться идентичные преимущества. Фиг. 43 является пояснительным чертежом списка, показывающего один или более выбираемых векторов движения, которые определяются для каждого из шаблонов разделения, доступных для блока, который должен быть кодирован. Например, в то время как "MV_A", "MV_B", "MV_C" и "временной" определяются в качестве одного или более выбираемых векторов движения, когда сегмент, который является блоком, который должен быть кодирован, представляет собой 2partH1, имеется высокая вероятность того, что когда сегмент, который является блоком, который должен быть кодирован, представляет собой 2partH2, его перемещение отличается от перемещения для 2partH1, который является блоком, расположенным слева от 2partH2. Следовательно, "MV_A", который является вектором движения блока, расположенного слева от 2partH2, удаляется из одного или более векторов движения, выбираемых для 2partH2, и "MV_B", "MV_C" и "временной" определяются в качестве одного или более векторов движения, выбираемых для 2partH2.
[0195] Дополнительно, хотя в этом варианте осуществления 6 используется вектор во временном направлении, размер данных вектора при сохранении в запоминающем устройстве может сжиматься, чтобы уменьшать объем запоминающего устройства, используемый для сохранения вектора. Например, когда минимальный размер блока составляет 4x4, хотя вектор во временном направлении типично сохраняется для каждого блока, имеющего размер 4x4, рассматривается способ сохранения вектора во временном направлении для каждого блока, имеющего больший размер.
[0196] Проблема вышеуказанного способа сохранения вектора во временном направлении при сжатии размера данных вектора состоит в том, что при выполнении обработки в единицах блока, имеющего размер блока меньше единицы для сохранения сжатых векторных данных, позиция, по которой следует обращаться, не указывает корректную позицию. Чтобы разрешать эту проблему, может быть выполнен процесс не использования векторов во временном направлении в момент, когда блок имеет размер меньше единицы для сохранения сжатых векторных данных. Посредством удаления вектора, имеющего небольшую степень точности, из кандидатов, предоставляется преимущество уменьшения объема информации, которая должна быть обработана, и объема кода для генерирования индекса.
[0197] Дополнительно, хотя вектор прямого режима описывается в этом варианте осуществления 6, идентичный способ может использоваться для определения предсказанного вектора, который используется для обычного кодирования вектора движения. Посредством использования этого способа, предоставляется преимущество предоставления как уменьшения объема информации, которая должна быть обработана, так и повышения эффективности кодирования.
[0198] Дополнительно, этот вариант 6 осуществления имеет такую структуру, что когда ref_Idx прямого вектора или вектора, который должен быть предсказан, отличается от ref_Idx любого их множества векторов-кандидатов, которые используются для генерирования прямого вектора или определения предсказанного вектора (картинка, которая является опорным назначением прямого вектора или вектора, который должен быть предсказан, отличается от изображения любого вектора-кандидата), процесс масштабирования согласно расстоянию во временном направлении выполняется для каждого из векторов-кандидатов, как показано на фиг. 14. Когда ref_Idx прямого вектора или вектора, который должен быть предсказан, является идентичным ref_Idx одного из множества векторов-кандидатов, процесс масштабирования согласно расстоянию во временном направлении не выполняется.
,
где scaled_MV обозначает масштабированный вектор, MV обозначает вектор движения, который должен быть масштабирован, и d(x) обозначает временное расстояние до x. Дополнительно, Xr обозначает опорное изображение, показанное посредством блока, который должен быть кодирован, и Yr обозначает опорное изображение, показанное посредством каждой из позиций A-D блоков, которые являются целями для масштабирования.
[0199] Дополнительно, этот вариант осуществления имеет такую структуру, что выполняется поиск блока, который внешне кодируется, из целевых блоков, и все векторы, включенные в блок, используются в качестве кандидатов пространственных векторов, как показано на фиг. 49. Может возникать случай, в котором опорная картинка, которая должна указываться посредством прямого вектора или вектора, который должен быть предсказан, является идентичным таковой, указываемой посредством одного из этих векторов-кандидатов, и случай, в котором опорная картинка, которая должна указываться посредством прямого вектора или вектора, который должен быть предсказан, отличается от таковой, указываемой посредством любого из этих векторов-кандидатов, как упомянуто выше. В первом случае, этот вариант осуществления может иметь такую структуру, что только кандидаты векторов, указывающие идентичную опорную картинку, используются в качестве кандидатов. Во втором случае, этот вариант осуществления может иметь такую структуру, что выполняется процесс коррекции осуществления процесса масштабирования, чтобы инструктировать одному из векторов-кандидатов указывать идентичное опорной картинке. Первый случай предоставляет преимущество удаления вектора, имеющего низкую степень точности, из кандидатов без повышения объема информации, которая должна быть обработана. Второй случай предоставляет преимущество уменьшения объема кода, поскольку объем информации, которая должна быть обработана, увеличивается вследствие поиска, но число кандидатов выбора может быть увеличено.
[0200] Дополнительно, в случае выполнения масштабирования, как показано в уравнении (16), кандидат вектора, ref_Idx которого отличается от ref_Idx прямого вектора или вектора, который должен быть предсказан, может масштабироваться во время выявления блока, который внешне кодируется (кандидат вектора, ref_Idx которого является идентичным ref_Idx прямого вектора или вектора, который должен быть предсказан, не масштабируется), или масштабирование может быть выполнено только тогда, когда отсутствует кандидат вектора, ref_Idx которого является идентичным ref_Idx прямого вектора или вектора, который должен быть предсказан, после того как выполнен поиск во всех блоках. Поскольку вектор, имеющий повышенную степень точности, может добавляться в кандидаты, хотя объем информации, которая должна быть обработана, возрастает, предоставляется преимущество уменьшения объема кода.
[0201] Вариант 7 осуществления
Хотя в вышеуказанном варианте 6 осуществления показывается пример, в котором часть 1 управления кодированием устройства кодирования движущихся изображений хранит список, показывающий выбираемые векторы движения, и часть 54 предсказания с компенсацией движения устройства декодирования движущихся изображений также хранит список, показывающий выбираемые векторы движения, часть 13 кодирования с переменной длиной кода устройства кодирования движущихся изображений может осуществлять кодирование с переменной длиной кода информации списка, показывающей список, и мультиплексировать кодированные данные относительно информации списка, например, в каждый заголовок слайса и передавать кодированные данные в устройство декодирования движущихся изображений. В этом случае, часть 51 декодирования с переменной длиной кода устройства декодирования движущихся изображений осуществляет декодирование с переменной длиной кода кодированных данных, которые мультиплексируются в каждый заголовок слайса, чтобы получать информацию списка, и выводит список, показанный посредством информации списка, в часть 65 генерирования прямого вектора части 54 предсказания с компенсацией движения.
[0202] Устройство кодирования движущихся изображений может передавать информацию списка, показывающую список, в устройство декодирования движущихся изображений по каждому слайсу (или по каждой последовательности, по каждой картинке и т.п.) таким образом. В качестве альтернативы, только тогда, когда изменяется текущий сохраненный посредством части 1 управления кодированием список, устройство кодирования движущихся изображений может передавать информацию списка, показывающую измененный список, в устройство декодирования движущихся изображений. Далее конкретно поясняются процессы. Фиг. 44 является блок-схемой последовательности операций способа, показывающей процесс передачи для передачи информации списка, который выполняется посредством устройства кодирования движущихся изображений согласно этому варианту осуществления, и фиг. 45 является блок-схемой последовательности операций способа, показывающей процесс приема для приема информации списка, который выполняется посредством устройства декодирования движущихся изображений согласно этому варианту осуществления.
[0203] Хотя часть 1 управления кодированием устройства кодирования движущихся изображений определяет один или более выбираемых векторов движения согласно размеру блока сегмента, который является блоком, который должен быть кодирован, к примеру, аналогично вышеуказанному варианту 6 осуществления, часть 1 управления кодированием проверяет то, изменяется или нет список, к которому часть управления кодированием обращается при определении одного или более векторов движения, и когда список является идентичным предыдущему списку (этап ST41 по фиг. 44), деактивирует флаг изменения, чтобы уведомлять устройство декодирования движущихся изображений относительно того, что список является идентичным предыдущему списку (этап ST42). Когда часть 1 управления кодированием деактивирует флаг изменения, часть 13 кодирования с переменной длиной кода кодирует деактивированный флаг изменения и передает кодированные данные флага изменения в устройство декодирования движущихся изображений (этап ST43).
[0204] Напротив, когда список отличается от предыдущего списка (этап ST41), часть 1 управления кодированием активирует флаг изменения, чтобы уведомлять устройство декодирования движущихся изображений относительно того, что список отличается от предыдущего списка (этап ST44). Когда часть 1 управления кодированием активирует флаг изменения, часть 13 кодирования с переменной длиной кода кодирует активированный флаг изменения и информацию списка, показывающую измененный список, и передает кодированные данные флага изменения и информацию списка в устройство декодирования движущихся изображений (этап ST45). Фиг. 46 показывает пример, в котором кодируются активированный флаг изменения и информация списка, показывающая измененный список, поскольку "временной" в списке изменяется с выбираемого на невыбираемый.
[0205] Часть 51 декодирования с переменной длиной кода устройства декодирования движущихся изображений декодирует кодированные данные, чтобы получать флаг изменения (этап ST51 по фиг. 45), и когда флаг изменения деактивирован (этап ST52), выводит деактивированный флаг изменения в часть 54 предсказания с компенсацией движения. При приеме деактивированного флага изменения из части 51 декодирования с переменной длиной кода часть 54 предсказания с компенсацией движения распознает то, что список является идентичным предыдущему списку, и задает текущий сохраненный список в качестве кандидатов для обращения (этап ST53). Следовательно, часть 54 предсказания с компенсацией движения определяет один или более векторов движения, соответствующих размеру блока сегмента, который должен быть декодирован в этот раз, посредством обращения к текущему сохраненному списку.
[0206] Напротив, когда флаг изменения активирован (этап ST52), часть 51 декодирования с переменной длиной кода устройства декодирования движущихся изображений декодирует кодированные данные, чтобы получать информацию списка, и выводит активированный флаг изменения и информацию списка в часть 54 предсказания с компенсацией движения (этап ST54). При приеме активированного флага изменения и информации списка из части 51 декодирования с переменной длиной кода, часть 54 предсказания с компенсацией движения распознает то, что список отличается от предыдущего списка, изменяет текущий сохраненный список согласно информации списка и задает список, измененный таким образом, в качестве кандидатов для обращения (этап ST55). Следовательно, часть 54 предсказания с компенсацией движения определяет один или более векторов движения, соответствующих размеру блока сегмента, который должен быть декодирован в этот раз, посредством обращения к измененному списку. Фиг. 47 показывает пример, в котором текущий сохраненный список изменяется, поскольку флаг изменения активирован.
[0207] Как можно видеть из вышеприведенного описания, поскольку устройство кодирования движущихся изображений в соответствии с этим вариантом осуществления 7 имеет такую структуру, чтобы только тогда, когда изменяется список, показывающий один или более выбираемых векторов движения, кодировать информацию списка, показывающую измененный список, с тем чтобы генерировать кодированные данные, предоставляется преимущество возможности устанавливать функцию подтверждения изменения списка без вызывания значительного увеличения объема кода.
[0208] Хотя в этом варианте осуществления 7 показывается пример, даже когда изменяется часть из одного или более выбираемых векторов движения, показанных посредством списка, кодирования информации списка, показывающей весь измененный список, флаг изменения может быть подготовлен для каждого размера блока, флаг изменения, подготовленный для размера блока, для которого изменяются один или более выбираемых векторов движения, может быть активирован, и только информация списка, связанная с размером блока, может быть кодирована, как показано на фиг. 48. Поскольку векторы движения в случае размера блока в "64" и векторы движения в случае размера блока в "8" не изменяются в примере, показанном на фиг. 48, их флаги изменения деактивированы, и информация списка, связанная с каждым из размеров блока, не кодируется. Напротив, поскольку векторы движения в случае размера блока в "32" и векторы движения в случае размера блока в "16" изменяются в примере, их флаги изменения активированы, и информация списка, связанная с каждым из размеров блока, кодируется. При условии, что флаг изменения одного из размеров блока активирован, может быть кодирован флаг изменения, подготовленный для каждого размера блока, а когда флаг изменения любого размера блока деактивирован, может быть кодирован только флаг изменения списка (деактивированный флаг изменения). В качестве альтернативы, вместо использования флага изменения для каждого списка, может быть кодирован только флаг изменения, подготовленный для каждого размера блока.
[0209] Хотя показывается пример возможности изменять выбираемые векторы движения для каждого размера блока, выбираемые векторы движения могут быть изменены для каждого шаблона разделения блока, который должен быть кодирован.
Промышленная применимость
[0210] Поскольку устройство кодирования движущихся изображений, устройство декодирования движущихся изображений, способ кодирования движущихся изображений и способ декодирования движущихся изображений в соответствии с настоящим изобретением позволяют выбирать оптимальный прямой режим для каждой предопределенной единицы блоков и уменьшать объем кода, они являются подходящими для использования в качестве устройства кодирования движущихся изображений, устройства декодирования движущихся изображений, способа кодирования движущихся изображений и способа декодирования движущихся изображений, которые используются для технологии кодирования со сжатием изображений, технология передачи сжатых данных изображений и т.д., соответственно.
Пояснение ссылок с номерами
[0211] 1 – часть управления кодированием (модуль управления кодированием), 2 – часть разделения на блоки (модуль разделения на блоки), 3 – переключатель выбора (модуль внутреннего предсказания и модуль предсказания с компенсацией движения), 4 – часть внутреннего предсказания (модуль внутреннего предсказания), 5 – часть предсказания с компенсацией движения (модуль предсказания с компенсацией движения), 6 – часть вычитания (модуль генерирования разностного изображения), 7 – часть преобразования/квантования (модуль сжатия изображения), 8 – часть обратного преобразования/обратного квантования, 9 – часть суммирования, 10 – запоминающее устройство для внутреннего предсказания, 11 – часть контурной фильтрации, 12 – запоминающее устройство кадров предсказания с компенсацией движения, 13 – часть кодирования с переменной длиной кода (модуль кодирования с переменной длиной кода), 21 – переключатель выбора, 22 – часть поиска вектора движения, 23 – часть генерирования прямого вектора, 24 – часть обработки компенсации движения, 25, 26 и 27 – часть генерирования прямого вектора, 31 – часть генерирования пространственного прямого вектора, 32 – часть генерирования временного прямого вектора, 33 – часть определения прямого вектора, 34, 36 и 37 – часть генерирования начального вектора, 35 – часть поиска вектора движения, 35 – часть компенсации движения, 42 – часть вычисления подобия, 43 – часть выбора прямого вектора, 31 – часть декодирования с переменной длиной кода (модуль декодирования с переменной длиной кода), 52 – переключатель выбора (модуль внутреннего предсказания и модуль предсказания с компенсацией движения), 53 – часть внутреннего предсказания (модуль внутреннего предсказания), 54 – часть предсказания с компенсацией движения (модуль предсказания с компенсацией движения), 55 – часть обратного преобразования/обратного квантования (модуль генерирования разностного изображения), 56 – часть суммирования (модуль генерирования декодированного изображения), 57 – запоминающее устройство для внутреннего предсказания, 11 – часть контурной фильтрации, 12 – запоминающее устройство кадров предсказания с компенсацией движения, 61 – переключатель выбора, 62 – часть генерирования прямого вектора, 63 – часть обработки компенсации движения, 64, 65 и 66 – часть генерирования прямого вектора, 71 – часть генерирования пространственного вектора, 72 – часть генерирования временного вектора, 73 – часть определения начального вектора, 35 – часть компенсации движения, 82 – часть вычисления подобия, 83 – часть определения начального вектора, 91 – переключатель выбора.
Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении объема кода. Устройство декодирования изображений содержит модуль декодирования с переменной длиной слова для получения сжатых данных, режима кодирования и информации индекса, каждое из которых связано с блоком кодирования, и для получения информации управления для изменения числа векторов движения – кандидатов для каждого слайса; модуль предсказания с компенсацией движения для генерирования изображения предсказания с использованием вектора движения, выбранного из одного или более выбираемого вектора движения - кандидата, и выбора вектора движения, указанного информацией индекса; модуль генерирования декодированного изображения посредством сложения разностного изображения и изображения предсказания; при этом модуль предсказания с компенсацией движения выбирает пространственный вектор движения, который получается из декодированного блока, расположенного около блока кодирования, или временной вектор движения, который получается из декодированной картинки, на которую может быть сделана ссылка блоком кодирования согласно информации индекса. 5 н.п. ф-лы, 49 ил.
1. Устройство декодирования изображений, содержащее:
модуль декодирования с переменной длиной слова для выполнения процесса декодирования с переменной длиной слова над кодированными данными, мультиплексированными в поток битов, для получения сжатых данных, режима кодирования и информации индекса, каждое из которых связано с блоком кодирования, и для получения информации управления для изменения числа векторов движения – кандидатов для каждого слайса, упомянутый блок кодирования получается посредством иерархического разделения входного изображения согласно максимальному размеру блока и верхнему предельному числу иерархических уровней;
модуль предсказания с компенсацией движения для выполнения процесса предсказания с компенсацией движения над упомянутым блоком кодирования, основываясь на упомянутом режиме кодирования, для генерирования изображения предсказания с использованием вектора движения, выбранного из одного или более выбираемого вектора движения - кандидата, упомянутый модуль предсказания с компенсацией движения выбирает упомянутый вектор движения, указанный упомянутой информацией индекса;
модуль генерирования декодированного изображения для генерирования данных декодированного изображения посредством сложения разностного изображения, которое получено декодированием упомянутых сжатых данных, и упомянутого изображения предсказания, сгенерированного упомянутым модулем предсказания с компенсацией движения; при этом
упомянутый модуль предсказания с компенсацией движения выбирает пространственный вектор движения, который получается из декодированного блока, расположенного около упомянутого блока кодирования, или временной вектор движения, который получается из декодированной картинки, на которую может быть сделана ссылка упомянутым блоком кодирования согласно упомянутой информации индекса.
2. Способ декодирования изображений, содержащий:
этап для выполнения процесса декодирования с переменной длиной слова над кодированными данными, мультиплексированными в поток битов, для получения сжатых данных, режима кодирования и информации индекса, каждое из которых связано с блоком кодирования, и для получения информации управления для изменения числа векторов движения – кандидатов для каждого слайса, упомянутый блок кодирования получается посредством иерархического разделения входного изображения согласно максимальному размеру блока и верхнему предельному числу иерархических уровней;
этап для выполнения процесса предсказания с компенсацией движения над упомянутым блоком кодирования, основываясь на упомянутом режиме кодирования, для генерирования изображения предсказания с использованием вектора движения, выбранного из одного или более выбираемого вектора движения - кандидата, упомянутый вектор движения выбирается согласно упомянутой информации индекса;
этап для генерирования данных декодированного изображения посредством сложения разностного изображения, которое получено декодированием упомянутых сжатых данных, и упомянутого изображения предсказания; при этом
упомянутый вектор движения - кандидат включает в себя по меньшей мере пространственный вектор движения, который получается из декодированного блока, расположенного около упомянутого блока кодирования, или временной вектор движения, который получается из декодированной картинки, на которую может быть сделана ссылка упомянутым блоком кодирования.
3. Устройство кодирования изображений, содержащее:
модуль предсказания с компенсацией движения для выполнения процесса предсказания с компенсацией движения над блоком кодирования для генерирования изображения предсказания с использованием вектора движения, выбираемого из одного или более векторов движения - кандидатов, упомянутый модуль предсказания с компенсацией движения подготавливает упомянутые векторы движения - кандидаты из пространственного вектора движения, который получается из одного или более кодируемых блоков, расположенных около упомянутого блока кодирования, и/или временного вектора движения, который получается из вектора движения кодируемой картинки, на которую может быть сделана ссылка упомянутым блоком кодирования; и
модуль кодирования с переменной длиной слова для генерирования информации индекса, которая точно определяет выбранный один из упомянутых векторов движения - кандидатов, при этом
упомянутый модуль предсказания с компенсацией движения подготавливает список упомянутых векторов движения - кандидатов из упомянутого пространственного вектора движения или упомянутого временного вектора движения, при этом упомянутые векторы движения - кандидаты заносятся в список в соответствии с предопределенным порядком, и
упомянутый модуль кодирования с переменной длиной слова генерирует информацию управления для изменения числа векторов движения – кандидатов для каждого слайса.
4. Способ кодирования изображений, содержащий:
этап для подготовки векторов движения - кандидатов из пространственного вектора движения, который получается из одного или более кодируемых блоков, расположенных около блока кодирования, и/или временного вектора движения, который получается из вектора движения кодируемой картинки, на которую может быть сделана ссылка упомянутым блоком кодирования;
этап для выполнения процесса предсказания с компенсацией движения над упомянутым блоком кодирования для генерирования изображения предсказания с использованием вектора движения, выбираемого из упомянутых векторов движения - кандидатов; и
этап для генерирования информации индекса, которая точно определяет выбранный один из упомянутых векторов движения - кандидатов, при этом
упомянутые векторы движения - кандидаты заносят в список в соответствии с предопределенным порядком, и
генерируют информацию управления для изменения числа векторов движения – кандидатов для каждого слайса.
5. Носитель, хранящий данные кодированного изображения, при этом
данные кодированного изображения включают в себя:
сжатые данные, сгенерированные из разности между изображением и изображением предсказания, сгенерированным посредством выполнения процесса предсказания с компенсацией движения над блоком кодирования;
информацию индекса, которая относится к вектору движения, используемому для выполнения процесса предсказания с компенсацией движения;
информацию управления для изменения числа векторов движения – кандидатов для каждого слайса;
при этом, когда упомянутый вектор движения выбирается из одного или более векторов движения - кандидатов, включающих в себя один или более пространственный вектор движения, который получается из одного или более кодируемых блоков, расположенных около упомянутого блока кодирования, и/или временной вектор движения, который получается из вектора движения кодируемой картинки, на которую может быть сделана ссылка упомянутым блоком кодирования, упомянутая информация индекса точно определяет выбранный один из упомянутых векторов движения - кандидатов.
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
СПОСОБ ТЕРМИЧЕСКОЙ ОБРАБОТКИ ЛИСТОВЫХ МАТЕРИАЛОВ ПРИ НАНЕСЕНИИ ПОКРЫТИЯ И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ | 1999 |
|
RU2164264C2 |
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
ВИДЕОДЕКОДЕР С ОБРАБОТКОЙ ПЕРЕМЕЖАЮЩИХСЯ ДАННЫХ | 1997 |
|
RU2204217C2 |
Авторы
Даты
2019-02-18—Публикация
2018-04-23—Подача