Способ определения векторов движения в режиме прямого предсказания для в-кадра

Иллюстрации

Показать все

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

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение относится к способу кодирования движущегося изображения, а именно к способу получения векторов движения в режиме прямого предсказания для В-кадра (кадра двунаправленного предсказания), определенного в способе сжатия движущегося изображения следующего поколения.

Описание уровня техники

Для типового В-кадра используют пять видов режимов предсказания: режим предсказания вперед, режим обратного предсказания, режим двунаправленного предсказания, режим прямого предсказания и режим внутрикадрового предсказания. В режимах предсказания вперед, обратного предсказания и двунаправленного предсказания направления векторов движения можно понять по названиям режимов, так как информация о направлении отражена в самих названиях. В режиме прямого предсказания два вектора движения обоих направлений получают по движению смещенного блока в соседнем кадре на основе временной характеристики избыточности, при условии, что между двумя соседними кадрами постоянно поддерживается непрерывность движения. Режим прямого предсказания имеет преимущество с точки зрения эффективности кодирования, поскольку информация о движении не передается в декодер.

С другой стороны, В-кадр, предложенный в способе сжатия движущегося изображения следующего поколения, таком как Н.264 или MPEG-4, раздел 10, отличается тем, что он может быть использован в качестве опорного кадра, поскольку этот кадр можно сохранить в буфере опорных кадров. Этот В-кадр отличается также тем, что для него применяют пять режимов предсказания - режим предсказания перечня 0, режим предсказания перечня 1, режим двунаправленного предсказания, режим прямого предсказания и режим внутрикадрового предсказания.

Режим предсказания перечня 0 аналогичен обычному режиму предсказания вперед, а такие данные движения, как индекс опорного кадра и разность векторов движения обозначаются соответственно как ref_idx_10 и mvd_10. Режим предсказания перечня 1 также аналогичен обычному режиму обратного предсказания, а данные о движении, такие как индекс опорного кадра и разность векторов движения, обозначаются соответственно как ref_idx_11 и mvd_11. В режиме двунаправленного предсказания используются два опорных кадра, которые могут быть распределены во времени соответственно до и после В-кадра. В этом случае два индекса опорного кадра и две разности векторов движения обозначаются соответственно как ref_idx_10, ref_idx_11, mvd_10 и mvd_11, а каждый опорный кадр имеет порядковый номер кадра (РОС-picture order count), представляющий информацию о положении кадра во времени.

В режиме прямого предсказания векторы движения получают путем выбора любого способа - пространственного или временного. Пространственный способ в режиме прямого предсказания используют для получения индексов и векторов движения опорных кадров перечней 0 и 1 на основе соседних блоков кодируемого макроблока. Временной способ в режиме прямого предсказания используют для получения вектора движения MVF перечня 0 и вектора движения MVв перечня 1 посредством масштабирования вектора движения перечня 0 смещенного блока в опорном кадре перечня 1 для режима прямого предсказания аналогично обычному В-кадру. Под опорным кадром перечня 1 для режима прямого предсказания понимается кадр, в котором индекс для предсказания перечня 1 определен как 0, а опорным кадром перечня 0 для режима прямого предсказания является опорный кадр перечня 0, указываемый вектором движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

На фиг.1а-1с показаны индексы, используемые по умолчанию для предсказания перечней 0 и 1, а также опорные кадры перечня 1 для режима прямого предсказания соответствующих В-кадров в последовательности IBBBP, когда число имеющихся опорных кадров перечней 0 и 1 (или емкость буфера для краткосрочного хранения) составляет 6 соответственно. Индексы, используемые по умолчанию для предсказания перечней 0 и 1, зависят от порядка вывода (или порядкового номера кадра) ранее декодированного опорного кадра независимо от порядка декодирования. Как показано на фиг.1, все В-кадры используют Р-кадр, следующий по времени, в качестве опорного кадра перечня 1 для режима прямого предсказания.

На фиг.2а-2с показаны индексы, используемые по умолчанию для предсказания перечней 0 и 1, и опорные кадры перечня 1 для режима прямого предсказания соответствующих В-кадров в последовательности IBBB с использованием только В-кадров. Как показано на фиг.2а, если кодируемым В-кадром является кадр В8, предыдущий по времени кадр В5 с индексом 0 перечня 1 является опорным кадром перечня 1 для режима прямого предсказания. Как показано на рис.2b, опорным кадром перечня 1 для режима прямого предсказания кадра В7, подлежащего последующему декодированию, является следующий по времени кадр В8. Наконец, как показано на рис.2с, опорным кадром перечня 1 для режима прямого предсказания кадра В9, подлежащего последующему декодированию, является предыдущий по времени кадр В7.

Таким образом, как следует из фиг.1а-2с, опорным кадром перечня 1 для режима прямого предсказания может быть Р- или В-кадр, следующий по времени за В-кадром, подлежащим кодированию, или предыдущий по времени В-кадр.

На фиг.3а-3h показаны режимы, которые могут быть использованы для смещенного блока в опорном кадре перечня 1 для режима прямого предсказания, когда опорный кадр перечня 1 является следующим по времени за В-кадром. Поскольку в этом случае опорный кадр перечня 1 может быть Р- или В-кадром, смещенный блок для этого кадра имеет один или два вектора движения, что соответствует режиму внутрикадрового предсказания. Способ сжатия движущегося изображения следующего поколения, такой как Н.264 или MPEG-4, раздел 10, позволяет изменить порядок следования индексов опорных кадров на уровне разделов, поэтому индекс 0 для предсказания перечня 1 можно присвоить кадру, следующему сразу за В-кадром. То есть, поскольку опорный кадр перечня 1 может быть сразу за В-кадром, вектор движения смещенного блока может быть направлен вперед или назад.

На фиг.4a-4h показаны режимы, которые могут быть использованы для смещенного блока в опорном кадре перечня 1 для режима прямого предсказания, когда опорный кадр перечня 1 предшествует по времени В-кадру. В этом случае, как показано выше, смещенный блок имеет один или два вектора движения, что соответствует режиму внутрикадрового предсказания. Между опорным кадром перечня 1 и В-кадром могут присутствовать другие опорные кадры, поэтому вектор движения смещенного блока может быть направлен по времени вперед или назад.

Как следует из фиг.3а-4h, к опорному кадру перечня 1 для режима прямого предсказания можно применить различные режимы предсказания, что приводит к необходимости проанализировать способ определения векторов движения в режиме прямого предсказания с учетом возможных различных ситуаций.

КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

Настоящее изобретение было разработано с учетом указанных выше проблем. Целью настоящего изобретения является создание такого способа определения векторов движения в режиме прямого предсказания для В-кадра (кадра двунаправленного предсказания), определенного в способе сжатия движущегося изображения следующего поколения, в рамках которого предлагается способ получения векторов движения в режиме прямого предсказания В-кадра для повышения вероятности выбора режима прямого предсказания в качестве режима предсказания макроблока и, следовательно, повышения эффективности кодирования В-кадра.

В соответствии с одним из аспектов настоящего изобретения указанной выше цели и других целей можно достичь благодаря способу определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащему совокупность операций выбора (если смещенный блок в опорном кадре перечня 1 для режима прямого предсказания имеет два вектора движения) любого из двух векторов движения (вектора движения перечня 0 или перечня 1) и получения векторов движения В-кадра в режиме прямого предсказания на основе выбранного вектора движения.

Предпочтительно указанная выше совокупность операций может включать следующие операции: выбор одного из векторов движения перечней 0 и 1, направленного к кадру, который по времени ближе к опорному кадру перечня 1 для режима прямого предсказания, в качестве вектора движения для получения векторов движения в режиме прямого предсказания, выбор вектора движения перечня 0 в качестве вектора движения для получения векторов движения в режиме прямого предсказания, если два вектора движения направлены к одному и тому же опорному кадру; определение опорного кадра, на который указывает выбранный вектор движения, в качестве опорного кадра перечня 0 для режима прямого предсказания и получение векторов движения В-кадра в режиме прямого предсказания. В другом случае указанная выше совокупность операций может включать следующие операции: безусловный выбор вектора движения перечня 0 в качестве вектора движения для получения векторов движения в режиме прямого предсказания независимо от временного интервала, определение опорного кадра, на который указывает вектор движения перечня 0, в качестве опорного кадра перечня 0 для режима прямого предсказания и получение векторов движения В-кадра в режиме прямого предсказания.

В соответствии с другим аспектом настоящего изобретения предложен способ определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащий операцию выбора любого из векторов движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания в качестве вектора движения, используемого для получения векторов движения в режиме прямого предсказания независимо от режимов (режима предсказания перечня 0 и(или) режима предсказания перечня 1) векторов движения смещенного блока, операцию определения опорного кадра, на который указывает выбранный вектор движения, в качестве опорного кадра перечня 0 для режима прямого предсказания и операцию определения векторов движения В-кадра в режиме прямого предсказания. В известном способе получения векторы движения в режиме прямого предсказания получали по вектору движения перечня 0 смещенного блока. Если этот известный способ применить к ситуации, когда смещенный блок в опорном кадре перечня 1 имеет только один вектор движения перечня 1, все векторы движения в режиме прямого предсказания определяются как 0, поскольку вектор движения перечня 0 определен как 0. Однако настоящий способ позволяет устранить эту проблему.

В соответствии с еще одним аспектом настоящего изобретения предложен способ определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащий совокупность таких операций как определение смещенного блока как блока с нулевым перемещением, если смещенный блок в опорном кадре перечня 1 для режима прямого предсказания имеет только один вектор движения перечня 1, определение декодированного кадра, находящегося по времени непосредственно перед В-кадром, в качестве опорного кадра перечня 0 для режима прямого предсказания и получение векторов движения В-кадра в режиме прямого предсказания.

В соответствии с другим аспектом настоящего изобретения предложен способ определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащий, если смещенный блок в опорном кадре перечня 1 для режима прямого предсказания имеет только один вектор движения перечня 1, совокупность таких операций как использование вектора движения перечня 1 смещенного блока в качестве вектора движения для получения векторов движения в режиме прямого предсказания, определение декодированного кадра, размещенного по времени непосредственно перед В-кадром, в качестве опорного кадра перечня 0 для режима прямого предсказания и получение векторов движения В-кадра в режиме прямого предсказания.

В соответствии с еще одним аспектом настоящего изобретения предложен способ определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащий, если смещенный блок в опорном кадре перечня 1 для режима прямого предсказания имеет только один вектор движения перечня 1, совокупность таких операций как использование вектора движения перечня 1 смещенного блока в качестве вектора движения для получения векторов движения в режиме прямого предсказания, операцию определения опорного кадра, на который указывает вектор движения перечня 1 смещенного блока, в качестве опорного кадра перечня 0 для режима прямого предсказания и получение векторов движения В-кадра в режиме прямого предсказания.

В соответствии с другим аспектом настоящего изобретения предложен способ определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащий операцию установки самого последнего декодированного кадра в качестве опорного кадра перечня 1 для режима прямого предсказания, операцию масштабирования вектора движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания, чтобы получить вектор движения MVF перечня 0 и вектора движения MVB перечня 1, и операцию определения векторов движения В-кадра в режиме прямого предсказания.

В известном способе кадр, имеющий индекс 0 для предсказания перечня 1, определяют как опорный кадр перечня 1 для режима прямого предсказания. Если другой кадр декодируют между В-кадром и кадром с индексом 0, должна быть обеспечена информация о движении и опорном кадре для кадра с индексом 0, что потребует использования дополнительной памяти. Однако настоящий способ позволяет избежать использования дополнительной памяти.

В соответствии с еще одним аспектом настоящего изобретения предложен способ определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащий, если опорный кадр перечня 1 для режима прямого предсказания предшествует по времени В-кадру, следующую совокупность операций: масштабирование вектора движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания, чтобы получить вектор движения MVf перечня 0 и вектор движения MVB перечня 1, и определение векторов движения В-кадра в режиме прямого предсказания.

Если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме и опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, предпочтительно указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания следующим образом:

MVF=TDB×MV/TDD

MVB=(TDB-TDD)×MV/TDD

или

Z=TDB×256/TDDMVF=(Z×MV+128)≫8
W=Z-256MVB=(W×MV+128)≫8,

где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме и опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания следующим образом:

MVF=-TDB×MV/TDD

MVB=-(TDB+TDD)×MV/TDD

или

Z=-TDB×256/TDDMVF=(Z×MV+128)≫8
W=Z-256MVB=(W×MV+128)≫8,

где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в режиме поля и опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, указанная выше совокупность операций может также содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=TDB,i×MVi/TDD,i

MVB,i=(TDB,i-TDD,i)×MVi/TDD,i

или

Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)≫8
W=Z-256MVB,i=(W×MVi+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0, a MVi - вектор движения смещенного блока в опорном поле перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в режиме поля и опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=-TDB,i×MVi/TDD,i

MVB,i=-(TDB,i+TDD,i)×MVi/TDD,i

или

Z=-TDB,i×256/TDD,iMVF,i=(Z×MVi+128)≫8
W=Z-256MVB,i=(W×MVi+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0, a MVi - вектор движения смещенного блока в опорном поле перечня 1 для режима прямого предсказания.

Если макроблок В-кадра используется в режиме поля, смещенный макроблок указанного опорного кадра перечня 1 используется в покадровом режиме, а опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, указанная выше совокупность операций может также содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=TDB,i×MV/TDD

MVB,i=(TDB,i-TDD)×MV/TDD

или

Z=TDB,i×256/TDDMVF,i=(Z×MV+128)≫8
W=Z-256MVB,i=(W×MV+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра используется в режиме поля, смещенный макроблок указанного опорного кадра перечня 1 используется в покадровом режиме, а опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=-TDB,i×MV/TDD

MVB,i=-(TDB,i+TDD)×MV/TDD

или

Z=-TDB,i×256/TDDMVF,i=(Z×MV+128)≫8
W=Z-256MVB,i=(W×MV+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Если макроблок В-кадра используется в покадровом режиме, смещенный макроблок указанного опорного кадра перечня 1 используется в режиме поля, а опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, указанная выше совокупность операций может также содержать операцию расчета векторов движения MVF и MVB В-кадра по следующим уравнениям, в которых информация о движении смещенного блока в поле 1 опорного кадра перечня 1 используется для получения векторов движения в режиме прямого предсказания:

MVF=TDB×MV1/TDD,1

MVB=(TDB-TDD,1)×MV1/TDD,1

или

Z=TDB×256/TDD,1MVF=(Z×MV1+128)≫8
W=Z-256MVB=(W×MV1+128)≫8,

где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD,1 - временной интервал между полем 1 опорного кадра перечня 1 и опорным полем перечня 0, а MV1 - вектор движения смещенного блока в поле 1 опорного кадра перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра используется в покадровом режиме, смещенный макроблок указанного опорного кадра перечня 1 используется в режиме поля, а опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра по следующим уравнениям, в которых информация о движении смещенного блока в поле 1 опорного кадра перечня 1 используется для получения векторов движения в режиме прямого предсказания:

MVF=-TDB×MV1/TDD,1

MVB=-(TDB+TDD,1)×MV1/TDD,1

или

Z=-TDB×256/TDD,1MVF=(Z×MV1+128)≫8
W=Z-256MVB=(W×MV1+128)≫8,

где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD,1 - временной интервал между полем 1 опорного кадра перечня 1 и опорным полем перечня 0, а MV1 - вектор движения смещенного блока в поле 1 опорного кадра перечня 1 для режима прямого предсказания.

В соответствии с еще одним аспектом настоящего изобретения предложен способ определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащий в случае, если опорный кадр перечня 0 и опорный кадр перечня 1 для режима прямого предсказания следуют по времени за В-кадром, следующую совокупность операций: масштабирование вектора движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания в целях получения вектора движения MVF перечня 0 и вектора движения MVB перечня 1 и определение векторов движения В-кадра в режиме прямого предсказания.

Если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме и опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций предпочтительно может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания следующим образом:

MVF=TDB×MV/TDD

MVB=(TDB-TDD)×MV/TDD

или

Z=TDB×256/TDDMVF=(Z×MV+128)≫8
W=Z-256MVB=(W×MV+128)≫8,

где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме и опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания следующим образом:

MVF=-TDB×MV/TDD

MVB=-(TDB+TDD)×MV/TDD

или

Z=-TDB×256/TDDMVF=(Z×MV+128)≫8
W=Z-256MVB=(W×MV+128)≫8,

где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в режиме поля и опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций может также содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=TDB,i×MVi/TDD,i

MVB,i=(TDB,i-TDD,i)×MVi/TDD,i

или

Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)≫8
W=Z-256MVB,i=(W×MVi+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0, a MVi - вектор движения смещенного блока в опорном поле перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в режиме поля и опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=-TDB,i×MVi/TDD,i

MVB,i=-(TDB,I+TDD,i)×MVi/TDD,i

или

Z=-TDB,i×256/TDD,iMVF,i=(Z×MVi+128)≫8
W=Z-256MVB,i=(W×MVi+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0, а MVi - вектор движения смещенного блока в опорном поле перечня 1 для режима прямого предсказания.

Если макроблок В-кадра используется в режиме поля, смещенный макроблок указанного опорного кадра перечня 1 используется в покадровом режиме и опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций может также содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=TDB,i×MV/TDD

MVB,i=(TDB,i-TDD)×MV/TDD

или

Z=TDB,i×256/TDDMVF,i=(Z×MV+128)≫8
W=Z-256MVB,i=(W×MV+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра используется в режиме поля, смещенный макроблок указанного опорного кадра перечня 1 используется в покадровом режиме, а опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=-TDB,i×MV/TDD

MVB,i=-(TDB,I+TDD)×MVi/TDD

или

Z=-TDB,i×256/TDDMVF,i=(Z×MV+128)≫8
W=Z-256MVB,i=(W×MV+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, a MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Если макроблок В-кадра используется в покадровом режиме, смещенный макроблок указанного опорного кадра перечня 1 используется в режиме поля и опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций может также содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания по следующим уравнениям, в которых информация о движении смещенного блока в поле 0 опорного кадра перечня 1 используется для получения векторов движения в режиме прямого предсказания:

MVF=TDB×MV0/TDD,0

MVB=(TDB-TDD,0)×MV0/TDD,0

или

Z=TDB×256/TDD,0MVF=(Z×MV+128)≫8
W=Z-256MVB=(W×MV+128)≫8,

где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD,0 - временной интервал между полем 0 опорного кадра перечня 1 и опорным полем перечня 0, а MV0 - вектор движения смещенного блока в поле 0 опорного кадра перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра используется в покадровом режиме, смещенный макроблок указанного опорного кадра перечня 1 используется в режиме поля, а опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB для В-кадра в режиме прямого предсказания по следующим уравнениям, в которых информация о движении смещенного блока в поле 0 опорного кадра перечня 1 используется для получения векторов движения в режиме прямого предсказания:

MVF=-TDB×MV0/TDD,0

MVB=-(TDB+TDD,0)×MV0/TDD,0

или

Z=-TDB×256/TDD,0MVF=(Z×MV0+128)≫8
W=Z-256MVB=(W×MV0+128)≫8,

где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD.0 - временной интервал между полем 0 опорного кадра перечня 1 и опорным полем перечня 0, а MV0 - вектор движения смещенного блока в поле 0 опорного кадра перечня 1 для режима прямого предсказания.

В соответствии с еще одним аспектом настоящего изобретения предложен способ определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащий следующую совокупность операций: присваивание знака значению межкадрового временного интервала, масштабирование вектора движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания независимо от позиций опорных кадров перечней 0 и 1 для режима прямого предсказания, чтобы получить вектор движения MVF перечня 0 и вектор движения MVB перечня 1, и определение векторов движения В-кадра в режиме прямого предсказания.

Если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме, указанная выше совокупность операций предпочтительно может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания следующим образом:

MVF=TDB×MV/TDD

MVB=(TDB-TDD)×MV/TDD

или

Z=TDB×256/TDDMVF=(Z×MV+128)≫8
W=Z-256MVB=(W×MV+128)≫8,

где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-кадра, и отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от опорного кадра перечня 1, и отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в режиме поля, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=TDB,i×MVi/TDD,i

MVB,i=(TDB,i-TDD,i)×MVi/TDD,i

или

Z=TDB,i×256/TDD,iMVF,i=(Z×MVi+128)≫8
W=Z-256MVB,i=(W×MVi+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-поля, или отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от опорного поля перечня 1, или отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, a MV, - вектор движения смещенного блока в опорном поле перечня 1 для режима прямого предсказания.

Если макроблок В-кадра используется в режиме поля, а смещенный макроблок указанного опорного кадра перечня 1 - в покадровом режиме, указанная выше совокупность операций может также содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:

MVF,i=TDB,i×MV/TDD

MVB,i=(TDB,i-TDD)×MV/TDD

или

Z=TDB,i×256/TDDMVF,i=(Z×MV+128)≫8
W=Z-256MVB,i=(W×MV+128)≫8,

где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-поля, или отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от опорного кадра перечня 1, или отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.

Кроме того, если макроблок В-кадра используется в покадровом режиме, смещенный макроблок указанного опорного кадра перечня 1 используется в режиме поля, а опорный кадр перечня 1 след