Способ определения векторов движения в режиме прямого предсказания для в-кадра
Иллюстрации
Показать всеИзобретение относится к способу кодирования движущегося изображения. Техническим результатом является повышение эффективности кодирования кадра двунаправленного предсказания (В-кадра), используя различные способы получения векторов движения В-кадра, которые можно использовать в рамках стандарта Н.264. Технический результат достигается тем, что в качестве вектора движения для получения векторов движения в режиме прямого предсказания используют вектор движения перечня 1, если смещенный блок в опорном кадре перечня 1 имеет только вектор движения перечня 1 для режима прямого предсказания; полагают опорный кадр, указанный вектором движения перечня 1, опорным кадром перечня 0 и вычисляют векторы движения в режиме прямого предсказания, используя вектор движения перечня 1. 4 н. и 14 з.п. ф-лы, 13 ил.
Реферат
ПРЕДПОСЫЛКИ К СОЗДАНИЮ ИЗОБРЕТЕНИЯ
Область техники, к которой относится изобретение
Настоящее изобретение относится к способу кодирования движущегося изображения, а именно - к способу получения векторов движения в режиме прямого предсказания для В-кадра (кадра двунаправленного предсказания), определенного в способе сжатия движущегося изображения следующего поколения.
Описание уровня техники
Для типового В-кадра используют пять видов режимов предсказания: режим предсказания вперед, режим обратного предсказания, режим двунаправленного предсказания, режим прямого предсказания и режим внутрикадрового предсказания. В режимах предсказания вперед, обратного предсказания и двунаправленного предсказания направления векторов движения можно понять по названиям режимов, так как информация о направлении отражена в самих названиях. В режиме прямого предсказания два вектора движения обоих направлений получают по движению смещенного блока в соседнем кадре на основе временной характеристики избыточности, при условии, что между двумя соседними кадрами постоянно поддерживается непрерывность движения. Режим прямого предсказания имеет преимущество с точки зрения эффективности кодирования, поскольку информация о движении не передается в декодер.
С другой стороны, В-кадр, предложенный в способе сжатия движущегося изображения следующего поколения, таком как Н.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 и вектора движения MVB перечня 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 для режима прямого предсказания может быть Р- или В-кадр, следующий по времени за В-кадром, подлежащим кодированию, или предыдущий по времени В-кадр. На фиг.3a-3h показаны режимы, которые могут быть использованы для смещенного блока в опорном кадре перечня 1 для режима прямого предсказания, когда опорный кадр перечня 1 является следующим по времени за В-кадром. Поскольку в этом случае опорный кадр перечня 1 может быть Р- или В-кадром, смещенный блок для этого кадра имеет один или два вектора движения, что соответствует режиму внутрикадрового предсказания. Способ сжатия движущегося изображения следующего поколения, такой как Н.264 или MPEG-4, раздел 10, позволяет изменить порядок следования индексов опорных кадров на уровне разделов, поэтому индекс 0 для предсказания перечня 1 можно присвоить кадру, следующему сразу за В-кадром. То есть, поскольку опорный кадр перечня 1 может быть сразу за В-кадром, вектор движения смещенного блока может быть направлен вперед или назад.
На фиг.4a-4h показаны режимы, которые могут быть использованы для смещенного блока в опорном кадре перечня 1 для режима прямого предсказания, когда опорный кадр перечня 1 предшествует по времени В-кадру. В этом случае, как показано выше, смещенный блок имеет один или два вектора движения, что соответствует режиму внутрикадрового предсказания. Между опорным кадром перечня 1 и В-кадром могут присутствовать другие опорные кадры, поэтому вектор движения смещенного блока может быть направлен по времени вперед или назад.
Как следует из фиг.3a-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/TDD MVF=(Z×MV+128)≫8
W=Z-256 MVB=(W×MV+128)≫8,
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, a MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
Кроме того, если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме и опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания следующим образом:
MVF=-TDB×MV/TDD
MVB=-(TDB+TDD)×MV/TDD
или
Z=-TDB×256/TDD MVF=(Z×MV+128)≫8
W=Z-256 MVB=(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,i MVF,i=(Z×MVi+128)≫8
W=Z-256 MVB,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,i MVF,i=(Z×MVi+128)≫8
W=Z-256 MVB,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/TDD MVF,i=(Z×MV+128)≫8
W=Z-256 MVB,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/TDD MVF,i=(Z×MV+128)≫8
W=Z-256 MVB,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,1 MVF=(Z×MV1+128)≫8
W=Z-256 MVB=(W×MV1+128)≫8,
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD,1 - временной интервал между полем 1 опорного кадра перечня 1 и опорным полем перечня 0, a 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,1 MVF=(Z×MV1+128)≫8
W=Z-256 MVB=(W×MV1+128)≫8,
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD,1 - временной интервал между полем 1 опорного кадра перечня 1 и опорным полем перечня 0, a 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/TDD MVF=(Z×MV+128)≫8
W=Z-256 MVB=(W×MV+128)≫8,
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, a MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
Кроме того, если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме и опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания следующим образом:
MVF=-TDB×MV/TDD
MVB=-(TDB+TDD)×MV1/TDD
или
Z=-TDB×256/TDD MVF=(Z×MV+128)≫8
W=Z-256 MVB=(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,i MVF,i=(Z×MVi+128)≫8
W=Z-256 MVB,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,i MVF,i=(Z×MVi+128)≫8
W=Z-256 MVB,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/TDD MVF,i=(Z×MV+128)≫8
W=Z-256 MVB,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/TDD MVF,i=(Z×MV+128)≫8
W=Z-256 MVB,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,0 MVF=(Z×MV0+128)≫8
W=Z-256 MVB=(W×MV0+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,0 MVF=(Z×MV0+128)≫8
W=Z-256 MVB=(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/TDD MVF=(Z×MV+128)≫8
W=Z-256 MVB=(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,i MVF,i=(Z×MVi+128)≫8
W=Z-256 MVB,i=(W×MVi+128)≫8,
где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-поля, или отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от опорного поля перечня 1, или отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, a MVi - вектор движения смещенного блока в опорном поле перечня 1 для режима прямого предсказания.
Если макроблок В-кадра используется в режиме поля, а смещенный макроблок указанного опорного кадра перечня 1 - в покадровом режиме, указанная выше совокупность операций может также содержать операцию расчета векторов движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра следующим образом:
MVF,i=TDB,i×MV/TDD
MVB,i=(TDB,i-TDD)×MV/TDD
или
Z=TDB,i×256/TDD MVF,i=(Z×MV+128)≫8
W=Z-256 MVB,i=(W×MV+128)≫8,
где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-поля, или отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от опорного кадра перечня 1, или отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
Кроме того, если макроблок В-кадра используется в покадровом режиме, смещенный макроблок указанного опорного кадра перечня 1 используется в режиме поля, а опорный кадр перечня 1 следует по времени за В-кадром, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания по следующим уравнениям, в которых информация о движении смещенного блока в поле 0 опорного кадра перечня 1 используется для получения векторов движения в режиме прямого предсказания:
MVF=TDB×MV0/TDD,0
MVB=(TDB-TDD,0)×MV0/TDD,0
или
Z=TDB×256/TDD,0