Область техники, к которой относится изобретение
Настоящее изобретение относится к способу кодирования движущегося изображения, а именно к способу получения векторов движения в режиме прямого предсказания для В-кадра (кадра двунаправленного предсказания), определенного в способе сжатия движущегося изображения следующего поколения.
Описание уровня техники
Для типового В-кадра используют пять видов режимов предсказания: режим предсказания вперед, режим обратного предсказания, режим двунаправленного предсказания, режим прямого предсказания и режим внутрикадрового предсказания. В режимах предсказания вперед, обратного предсказания и двунаправленного предсказания направления векторов движения можно понять по названиям режимов, так как информация о направлении отражена в самих названиях. В режиме прямого предсказания два вектора движения обоих направлений получают по движению смещенного блока в соседнем кадре на основе временной характеристики избыточности, при условии, что между двумя соседними кадрами постоянно поддерживается непрерывность движения. Режим прямого предсказания имеет преимущество с точки зрения эффективности кодирования, поскольку информация о движении не передается в декодер.
С другой стороны, В-кадр, предложенный в способе сжатия движущегося изображения следующего поколения, таком как Н.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
или
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
Кроме того, если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме и опорный кадр перечня 0 для режима прямого предсказания следует по времени за опорным кадром перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания следующим образом:
MVF=-TDB×MV/TDD
MVB=-(TDB+TDD)×MV/TDD
или
где 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
или
где 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
или
где 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
или
где 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
или
где 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
или
где 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
или
где 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
или
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
Кроме того, если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме и опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания следующим образом:
MVF=-TDB×MV/TDD
MVB=-(TDB+TDD)×MV/TDD
или
где 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
или
где 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
или
где 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
или
где 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
или
где 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
или
где 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
или
где 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
или
где 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
или
где 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
или
где 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
или
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-кадра, или отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, TDD.0 - временной интервал между полем 0 опорного кадра перечня 1 и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от поля 0 опорного кадра перечня 1, или отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, а MV0 - вектор движения смещенного блока в поле 0 опорного кадра перечня 1 для режима прямого предсказания.
Кроме того, если макроблок В-кадра используется в покадровом режиме, смещенный макроблок указанного опорного кадра перечня 1 используется в режиме поля, а опорный кадр перечня 1 предшествует по времени В-кадру, указанная выше совокупность операций может содержать операцию расчета векторов движения MVF и MVB В-кадра в режиме прямого предсказания по следующим уравнениям, в которых информация о движении смещенного блока в поле 1 опорного кадра перечня 1 используется для получения векторов движения в режиме прямого предсказания:
MVF=TDB×MV1/TDD,1
MVB=(TDB-TDD,1)×MV1/TDD,1
или
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-кадра, или отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, TDD,i - временной интервал между полем 1 опорного кадра перечня 1 и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от поля 1 опорного кадра перечня 1, или отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, а MV1 - вектор движения смещенного блока в поле 1 опорного кадра перечня 1 для режима прямого предсказания.
В соответствии с еще одним аспектом настоящего изобретения предложен способ определения векторов движения В-кадра (кадра двунаправленного предсказания) в режиме прямого предсказания в системе кодирования движущегося изображения для получения векторов движения В-кадра в режиме прямого предсказания, содержащий в случае, если смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания используется во внутрикадровом режиме, следующую совокупность операций: предсказание и определение опорных кадров перечней 0 и 1 и векторов движения по соседним блокам макроблока В-кадра, подлежащего кодированию, на основе пространственной избыточности и определение векторов движения В-кадра в режиме прямого предсказания.
Если соседние блоки А, В и С макроблока, подлежащего кодированию, относятся к разным опорным кадрам, указанная выше совокупность операций предпочтительно может содержать операцию выбора опорного кадра с наименьшим индексом в качестве опорного кадра для каждого перечня.
Кроме того, если, по меньшей мере, два соседних блока макроблока, подлежащего кодированию, относятся к опорному кадру с одним и тем же индексом, указанная выше совокупность операций может содержать операцию выбора этого опорного кадра в качестве опорного кадра для каждого перечня.
Указанная выше совокупность операций может также содержать следующие операции: установку значения 0 для векторов движения перечней 0 и 1, если какой-либо один из соседних блоков А, В и С макроблока, подлежащего кодированию, используется в режиме внутрикадрового предсказания, выбор вектора движения, имеющего то же направление, что и направление опорного кадра по времени для каждого перечня из соседнего блока, и получение вектора движения для каждого перечня путем выполнения операции осреднения или выбор только одного из двух векторов движения из этого блока, если соседний блок имеет два вектора движения с одинаковыми направлениями, и получение вектора движения для каждого перечня путем выполнения операции осреднения с учетом выбранного вектора движения.
Кроме того, если невозможно получить действующий индекс опорного кадра для режима каждого перечня, указанная выше совокупность операций может включать установку значения 0 для индексов опорных кадров перечней 0 и 1, а также установку значения 0 для вектора движения в режиме каждого перечня.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Описанные выше и другие цели, признаки и другие преимущества настоящего изобретения будут лучше поняты при ознакомлении с приведенным ниже подробным описанием, сопровождаемым прилагаемыми чертежами.
На фиг.1а-1с показаны опорные кадры перечня 1 для режима прямого предсказания в общей последовательности IBBBP.
На фиг.2а-2с показаны опорные кадры перечня 1 для режима прямого предсказания в общей последовательности IBBB.
На фиг.3а-3h показаны случаи, когда опорный кадр перечня 1 для режима прямого предсказания следует по времени за В-кадром (L0 MV: вектор движения перечня 0 и L1 MV: вектор движения перечня 1).
На фиг.4а-4h показаны случаи, когда опорный кадр перечня 1 для режима прямого предсказания предшествует по времени В-кадру (L0 MV: вектор движения перечня 0 и L1 MV: вектор движения перечня 1).
На фиг.5 показано предсказание вектора движения блока Е с использованием векторов движения соседних блоков А, В и С с учетом общей пространственной избыточности.
На фиг.6а-6с показаны случаи, когда макроблок В-кадра и смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания используются в покадровом режиме, а опорный кадр перечня 1 следует по времени за В-кадром.
На фиг.7a-7d показаны случаи, когда макроблок В-кадра и смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания используются в режиме поля, а опорный кадр перечня 1 следует по времени за В-кадром.
На фиг.8а-8с показаны случаи, когда макроблок В-кадра находится в режиме поля, смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания используется в покадровом режиме, а опорный кадр перечня 1 следует по времени за В-кадром.
На фиг.9а-9с показаны случаи, когда макроблок В-кадра используется в покадровом режиме, смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания используется в режиме поля, а опорный кадр перечня 1 следует по времени за В-кадром.
На фиг.10а и 10b показаны случаи, когда макроблок В-кадра и смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания используются в покадровом режиме, а опорный кадр перечня 1 предшествует по времени В-кадру.
На фиг.11a-11d показаны случаи, когда макроблок В-кадра и смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания используются в режиме поля, а опорный кадр перечня 1 предшествует по времени В-кадру.
На фиг.12а и 12b показаны случаи, когда макроблок В-кадра используется в режиме поля, смещенный макроблок в опорном кадре перечня 1 для режима общего прямого предсказания используется в покадровом режиме, а опорный кадр перечня 1 предшествует по времени В-кадру, а также
на фиг.13а и 13b показаны случаи, когда макроблок В-кадра находится в покадровом режиме, смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания находится в режиме поля, а опорный кадр перечня 1 предшествует по времени В-кадру.
ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ПРИМЕРОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Настоящая группа изобретений представляет собой способ получения векторов движения в режиме прямого предсказания, когда смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания используется во внутрикадровом режиме, а также способ получения векторов движения в режиме прямого предсказания в случае, когда опорный кадр перечня 1 следует по времени за В-кадром или предшествует по времени В-кадру.
В настоящей группе изобретений предложен также способ определения векторов движения в режиме прямого предсказания независимо от позиций опорных кадров перечней 0 и 1 для режима прямого предсказания путем присваивания знака значению межкадрового временного интервала для упрощения алгоритмов, используемых для расчета векторов движения в режиме прямого предсказания.
С другой стороны, покадровый режим и режим поля переключаются на уровне кадра, так что В-кадр и опорный кадр перечня 1 можно закодировать в покадровом режиме или режиме поля. В результате макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 имеют четыре типа комбинаций, закодированных в покадровом режиме и режиме поля.
[1] ПРИМЕР ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ, В КОТОРОМ СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГО КАДРА ПЕРЕЧНЯ 1 ИСПОЛЬЗУЕТСЯ ВО ВНУТРИКАДРОВОМ РЕЖИМЕ
Как показано на фиг.3f и 4f, смещенный макроблок в опорном кадре перечня 1 для режима прямого предсказания может находиться во внутрикадровом режиме независимо от позиции опорного кадра по времени. Поскольку макроблок в этом режиме не содержит информации о движении, то известным способом устанавливают значение 0 для векторов движения в режиме прямого предсказания и определяют опорный кадр перечня 0 как последний декодированный кадр. Однако известный способ не может гарантировать высокую эффективность кодирования. Поэтому в настоящем изобретении предложен способ, позволяющий предсказать и рассчитать опорные кадры перечней 0 и 1 и векторы движения с использованием данных, полученных от блоков, соседних с макроблоком В-кадра, подлежащего кодированию, на основе пространственной избыточности.
Индекс опорного кадра для режима каждого перечня присваивается следующим образом. На фиг.5 показано предсказание вектора движения блока Е с использованием векторов движения соседних блоков А, В и С с учетом общей пространственной избыточности.
- Если соседние блоки А, В и С имеют разные индексы опорных кадров, наименьший из индексов опорных кадров принимают в качестве индекса опорного кадра для режима прямого предсказания.
- Если два соседних блока имеют одинаковый индекс опорного кадра, этот индекс принимают в качестве индекса опорного кадра для режима прямого предсказания.
- Если все соседние блоки имеют одинаковый индекс опорного кадра, этот индекс принимают в качестве индекса опорного кадра для режима прямого предсказания.
Кроме того, вектор движения для режима каждого перечня получают путем предсказания следующего вектора движения. Если при этом любой из соседних блоков А, В и С используется во внутри кадровом режиме, для его векторов движения перечней 0 и 1 устанавливается значение 0.
- Вектор движения, имеющий то же направление, что и направление во времени опорного кадра, полученного, как показано выше, для режима каждого перечня, выбирают по соседнему блоку, а вектор движения для режима каждого перечня получают при помощи операции осреднения.
- Если соседний блок имеет два вектора движения одинакового направления, только один из двух векторов движения выбирают в этом блоке и используют в операции осреднения.
С другой стороны, если ни один из действующих индексов опорных кадров перечней 0 и 1 невозможно получить на основе соседнего блока, для этих индексов устанавливаются значения 0 и для вектора движения для режима каждого перечня также устанавливается значение 0.
[2] ПРИМЕРЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ, В КОТОРЫХ ОПОРНЫЙ КАДР ПЕРЕЧНЯ 1 ДЛЯ РЕЖИМА ПРЯМОГО ПРЕДСКАЗАНИЯ СЛЕДУЕТ ПО ВРЕМЕНИ ЗА В-КАДРОМ
ПРИМЕР 1: МАКРОБЛОК В-КАДРА И СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГОКАДРА ПЕРЕЧНЯ 1 ИСПОЛЬЗУЮТСЯ В ПОКАДРОВОМ РЕЖИМЕ
Как следует из фиг.3а-3h, смещенный блок в опорном кадре перечня 1 может иметь один или два вектора движения. Согласно настоящему изобретению, если смещенный блок имеет два вектора движения, выбирается один (L0 MV или L1 MV) из двух векторов движения, а векторы движения в режиме прямого предсказания получают на основе выбранного вектора движения (это будет описано ниже на основе случая, когда выбирают вектор L0 MV (вектор движения перечня 0)).
Таким образом, фиг.3а и 3с можно просто изобразить как фиг.6а, фиг.3b, 3d и 3е - как фиг.6с, а фиг.3g и 3h - как фиг.6b соответственно.
Если опорный кадр перечня 0 и опорный кадр перечня 1 для режима прямого предсказания по времени расположены соответственно непосредственно до и после В-кадра (см. фиг.6а) или оба опорных кадра перечней 0 и 1 для режима прямого предсказания расположены по времени после В-кадра, а опорный кадр перечня 0 следует по времени за опорным кадром перечня 1 (см. фиг.6b), векторы движения MVF и MVB в режиме прямого предсказания рассчитывают следующим образом:
MVF=TDB×MV/TDD
MVB=(TDB-TDD)×MV/TDD
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, a TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0.
При применении побитовой операции для повышения удобства расчета векторов движения MVF и MVF указанные выше уравнения можно представить в следующем виде:
Если оба опорных кадра перечней 0 и 1 для режима прямого предсказания расположены по времени после В-кадра, а опорный кадр перечня 0 предшествует по времени опорному кадру перечня 1 (см. фиг.6с), векторы движения MVF и MVB в режиме прямого предсказания рассчитывают следующим образом:
MVF=-TDB×MV/TDD
MVB=-(TDB+TDD)×MV/TDD
Эти уравнения можно представить в следующем виде:
ПРИМЕР 2: МАКРОБЛОК В-КАДРА И СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГОКАДРА ПЕРЕЧНЯ 1 ИСПОЛЬЗУЮТСЯ В РЕЖИМЕ ПОЛЯ
На фиг.7a-7d показаны случаи, когда макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в режиме поля. Каждый вектор движения макроблока В-кадра получают на основе вектора движения смещенного блока в опорном поле перечня 1 той же четности.
Если опорные кадры перечней 0 и 1 для режима прямого предсказания расположены по времени перед и после В-кадра соответственно (см. фиг.7а) или оба опорных кадра перечней 0 и 1 для режима прямого предсказания расположены по времени после В-кадра, а опорный кадр перечня 0 следует по времени за опорным кадром перечня 1 (см. фиг.7b), векторы движения перечней 0 и 1 MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра (i=0 означает первое поле, а i=1 - второе поле) рассчитываются следующим образом:
MVF,i=TDB,i×MVi/TDD,i
MVB,i=(TDB,i-TDD,i)×MVi/TDD,i
где MVi - вектор движения смещенного блока поля i в опорном кадре перечня 1, TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0.
Указанные выше уравнения можно представить в следующем виде:
Если вследствие того, что смещенный блок поля i в опорном кадре перечня 1 имеет вектор движения, указывающий на поле в кадре, следующем по времени за В-кадром, оба опорных кадра перечней 0 и 1 для режима прямого предсказания следуют по времени за В-кадром и опорный кадр перечня 0 предшествует по времени опорному кадру перечня 1 (см. фиг.7с и 7d), векторы движения MVF,i и MVB,i перечней 0 и 1 для режима прямого предсказания рассчитываются следующим образом:
MVF,i=-TDB,i×MVi/TDD,i
MVB,i=-(TDB,i+TDD,i)×MVi/TDD,i
Указанные выше уравнения можно представить в следующем виде:
ПРИМЕР 3: МАКРОБЛОК В-КАДРА ИСПОЛЬЗУЕТСЯ В РЕЖИМЕ ПОЛЯ, А СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГОКАДРА ПЕРЕЧНЯ 1 - В ПОКАДРОВОМ РЕЖИМЕ
На фиг.8а-8с показаны случаи, когда макроблок В-кадра используется в режиме поля, а смещенный макроблок указанного опорного кадра перечня 1 - в покадровом режиме. В этом случае вертикальная координата текущего макроблока обозначается как ycurrent, а вертикальная координата смещенного макроблока опорного кадра перечня 1 - как yсо-located, а взаимосвязь между этими координатами определяется как yсо-located=2×ycurrent. Кроме того, опорные поля перечней 0 и 1 присутствуют в одинаковых четностях в опорных кадрах перечней 0 и 1 соответственно.
Если опорные кадры перечней 0 и 1 для режима прямого предсказания расположены по времени соответственно до и после В-кадра (см. фиг.8а) или оба опорных кадра перечней 0 и 1 для режима прямого предсказания расположены по времени после В-кадра, а опорный кадр перечня 0 следует по времени за опорным кадром перечня 1 (см. фиг.8b), векторы движения MVF,i и MVB,i перечней 0 и 1 в режиме прямого предсказания для каждого i-поля В-кадра рассчитывают следующим образом:
MVF,i=TDB,i×MV/TDD
MVB,i=(TDB,i-TDD)×MV/TDD
Указанные выше уравнения можно представить в следующем виде:
Если вследствие того, что смещенный блок в опорном кадре перечня 1 имеет вектор движения, указывающий на кадр, следующий по времени за В-кадром, оба опорных кадра перечней 0 и 1 для режима прямого предсказания следуют по времени за В-кадром и опорный кадр перечня 0 предшествует по времени опорному кадру перечня 1 (см. фиг.8с), векторы движения MVF,i и MVB,i перечней 0 и 1 в режиме прямого предсказания для каждого i-поля В-кадра рассчитывают следующим образом:
MVF,i=-TDB,i×MVi/TDD
MVB,i=-(TDB,i-TDD)×MV/TDD
Указанные выше уравнения можно представить в следующем виде:
где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
ПРИМЕР 4: МАКРОБЛОК В-КАДРА ИСПОЛЬЗУЕТСЯ В ПОКАДРОВОМ РЕЖИМЕ, А СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГО КАДРА ПЕРЕЧНЯ 1 - В РЕЖИМЕ ПОЛЯ
На фиг.9а-9с показаны случаи, когда макроблок В-кадра используется в покадровом режиме, а смещенный макроблок указанного опорного кадра перечня 1 - в режиме поля. В этом случае вертикальная координата текущего макроблока обозначается как ycurrent, а вертикальная координата смещенного макроблока опорного кадра перечня 1 - как yсо-locaied, а взаимосвязь между этими координатами определяется как yсо-located=ycurrent/2. Кроме того, поскольку поле 0 опорного кадра перечня 1 ближе по времени к В-кадру, чем поле 1, информация о движении смещенного блока поля 0 используется для расчета векторов движения в режиме прямого предсказания.
Если опорные кадры перечней 0 и 1 для режима прямого предсказания расположены по времени соответственно до и после В-кадра (см. фиг.9а) или оба опорных кадра перечней 0 и 1 для режима прямого предсказания расположены по времени после В-кадра, а опорный кадр перечня 0 следует по времени за опорным кадром перечня 1 (см. фиг.9b), векторы движения MVF и MVB перечней 0 и 1 В-кадра в режиме прямого предсказания рассчитывают следующим образом:
MVF=TDB×MV0/TDD,0
MVB=(TDB-TDD,0)×MV0/TDD,0
Указанные выше уравнения можно представить в следующем виде:
Если вследствие того, что смещенный блок поля 0 опорного кадра перечня 1 имеет вектор движения, указывающий на поле кадра, следующего по времени за В-кадром, оба опорных кадра перечней 0 и 1 для режима прямого предсказания следуют по времени за В-кадром и опорный кадр перечня 0 предшествует по времени опорному кадру перечня 1 (см. фиг.9с), векторы движения MVF и MVB перечней 0 и 1 в режиме прямого предсказания рассчитывают следующим образом:
MVF=-TDB×MV0/TDD,0
MVB=-(TDB-TDD,0)×MV0/TDD,0
Указанные выше уравнения можно представить в следующем виде:
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD,0 - временной интервал между полем 0 опорного кадра перечня 1 и опорным полем перечня 0, а MV0 - вектор движения смещенного блока в поле 0 опорного кадра перечня 1 для режима прямого предсказания.
[3] ПРИМЕРЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ, В КОТОРЫХ ОПОРНЫЙ КАДР ПЕРЕЧНЯ 1 ДЛЯ РЕЖИМА ПРЯМОГО ПРЕДСКАЗАНИЯ ПРЕДШЕСТВУЕТ ПО ВРЕМЕНИ В-КАДРУ
В этом случае оба опорных кадра перечней 0 и 1 всегда предшествуют В-кадру.
ПРИМЕР 1: МАКРОБЛОК В-КАДРА И СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГО КАДРА ПЕРЕЧНЯ 1 ИСПОЛЬЗУЮТСЯ В ПОКАДРОВОМ РЕЖИМЕ
Как следует из фиг.4а-4h, смещенный блок в опорном кадре перечня 1 может иметь один или два вектора движения. Согласно настоящему изобретению, если смещенный блок имеет два вектора движения, выбирают один (L0 MV или L1 MV) из двух векторов движения, а векторы движения в режиме прямого предсказания получают на основе выбранного вектора движения (это будет описано ниже на основе случая, когда выбирают вектор движения L0 MV (вектор движения перечня 0)).
Таким образом, фиг.4а, 4с, 4е, 4g и 4h можно просто изобразить как фиг.10а, а фиг.4b и 4d - как фиг.10b соответственно.
Если опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1 для режима прямого предсказания, векторы движения MVF и MVB в режиме прямого предсказания рассчитывают следующим образом (см. фиг.10а):
MVF=TDB×MV/TDD
MVB=(TDB-TDD)×MV/TDD,
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
Указанные выше уравнения можно представить в следующем виде:
Если опорный кадр перечня 0 следует по времени за опорным кадром перечня 1, векторы движения MVF и MVB в режиме прямого предсказания рассчитывают следующим образом (см. фиг.10b):
MVF=-TDB×MV/TDD
MVB=-(TDB-TDD)×MV/TDD
Эти уравнения можно представить в следующем виде:
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
ПРИМЕР 2: МАКРОБЛОК В-КАДРА И СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГО КАДРА ПЕРЕЧНЯ 1 ИСПОЛЬЗУЮТСЯ В РЕЖИМЕ ПОЛЯ
Если опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1 для режима прямого предсказания, векторы движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра рассчитывают следующим образом (см. фиг.11а и 11b):
MVF,i=TDB,i×MVi/TDD,i
MVB,i=(TDB,i-TDD,i)×MVi/TDD,i
Указанные выше уравнения можно представить в следующем виде:
где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0, a MVi - вектор движения смещенного блока в опорном поле перечня 1 для режима прямого предсказания.
Если вследствие того, что смещенный блок поля i в опорном кадре перечня 1 имеет вектор движения, указывающий на поле в следующем по времени кадре, опорный кадр перечня 0 предшествует по времени опорному кадру перечня 1, векторы движения MVF,i и MVB,i перечней 0 и 1 в режиме прямого предсказания рассчитывают следующим образом (см. фиг.11с и 11d):
MVF,i=-TDB,i×MVi/TDD,i
MVB,i=-(TDB,i-TDD,i)×MVi/TDD,i
Указанные выше уравнения можно представить в следующем виде:
где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0, a MVi - вектор движения смещенного блока в опорном поле перечня 1 для режима прямого предсказания.
ПРИМЕР 3: МАКРОБЛОК В-КАДРА ИСПОЛЬЗУЕТСЯ В РЕЖИМЕ ПОЛЯ, А СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГО КАДРА ПЕРЕЧНЯ 1 - В ПОКАДРОВОМ РЕЖИМЕ
Если опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1 для режима прямого предсказания, векторы движения MVF,i и MVB,i перечней 0 и 1 в режиме прямого предсказания для каждого i-поля В-кадра рассчитывают следующим образом (см. фиг.12а):
MVF,i=TDB,i×MV/TDD
MVB,i=(TDB,i-TDD)×MV/TDD
Указанные выше уравнения можно представить в следующем виде:
где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, a MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
Если вследствие того, что смещенный блок в опорном кадре перечня 1 имеет вектор движения, указывающий на следующий по времени кадр, опорный кадр перечня 0 следует по времени за опорным кадром перечня 1, векторы движения MVF,i и MVB,i перечней 0 и 1 в режиме прямого предсказания для каждого i-поля В-кадра рассчитывают следующим образом (см. фиг.12b):
MVF,i=-TDB,i×MV/TDD
MVB,i=-(TDB,i-TDD)×MV/TDD
Указанные выше уравнения можно представить в следующем виде:
где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
ПРИМЕР 4: МАКРОБЛОК В-КАДРА ИСПОЛЬЗУЕТСЯ В ПОКАДРОВОМ РЕЖИМЕ, А СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГО КАДРА ПЕРЕЧНЯ 1 - В РЕЖИМЕ ПОЛЯ
Поскольку поле 1 f1 опорного кадра перечня 1 ближе по времени к В-кадру, чем поле 0 f0, то для расчета векторов движения в режиме прямого предсказания используется информация о движении смещенного блока поля 1 f1.
Если опорный кадр перечня 0 для режима прямого предсказания предшествует по времени опорному кадру перечня 1 для режима прямого предсказания, векторы движения MVF и MVB перечней 0 и 1 для каждого i-поля В-кадра в режиме прямого предсказания рассчитывают следующим образом (см. фиг.13а):
MVF=TDB×MV1/TDD,1
MVB=(TDB-TDD,1)×MV1/TDD,1
Указанные выше уравнения можно представить в следующем виде:
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD,i - временной интервал между полем 1 опорного кадра перечня 1 и опорным полем перечня 0, а MV1 - вектор движения смещенного блока в поле 1 опорного кадра перечня 1 для режима прямого предсказания.
Если вследствие того, что смещенный блок поля 1 f1 опорного кадра перечня 1 имеет вектор движения, указывающий на поле следующего по времени кадра, опорный кадр перечня 0 следует по времени за опорным кадром перечня 1, векторы движения MVF и MVB перечней 0 и 1 в режиме прямого предсказания рассчитывают следующим образом (см. фиг.13b):
MVF=-TDB×MV1/TDD,1
MVB=-(TDB-TDD,1)×MV1/TDD,1
Указанные выше уравнения можно представить в следующем виде:
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, TDD,i - временной интервал между полем 1 опорного кадра перечня 1 и опорным полем перечня 0, а MVi - вектор движения смещенного блока в поле 1 опорного кадра перечня 1 для режима прямого предсказания.
[4] ПРИМЕРЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ, В КОТОРЫХ ВЕКТОРЫ ДВИЖЕНИЯ В РЕЖИМЕ ПРЯМОГО ПРЕДСКАЗАНИЯ РАССЧИТЫВАЮТ С ПРИСВАИВАНИЕМ ЗНАКА ВЕЛИЧИНЕ МЕЖКАДРОВОГО ВРЕМЕННОГО ИНТЕРВАЛА
Для тех случаев, когда опорный кадр перечня 1 для режима прямого предсказания расположен по времени до или после В-кадра, предусмотрены два разных алгоритма соответственно для каждого случая. Эти алгоритмы можно представить путем присваивания знака величине межкадрового временного интервала следующим образом.
ПРИМЕР 1: МАКРОБЛОК В-КАДРА И СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГОКАДРА ПЕРЕЧНЯ 1 ИСПОЛЬЗУЮТСЯ В ПОКАДРОВОМ РЕЖИМЕ
Если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в покадровом режиме, векторы движения MVF и MVB В-кадра в режиме прямого предсказания можно рассчитать следующим образом:
MVF=TDB×MV/TDD
MVB=(TDB-TDD)×MV/TDD
или
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-кадра, и отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от опорного кадра перечня 1, и отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, а MV - вектор движения смещенного блока в опорном кадре перечня 1 для режима прямого предсказания.
ПРИМЕР 2: МАКРОБЛОК В-КАДРА И СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГО КАДРА ПЕРЕЧНЯ 1 ИСПОЛЬЗУЮТСЯ В РЕЖИМЕ ПОЛЯ
Если макроблок В-кадра и смещенный макроблок указанного опорного кадра перечня 1 используются в режиме поля, векторы движения MVF,i и MVB,i для каждого i-поля В-кадра в режиме прямого предсказания можно рассчитать следующим образом:
MVF,i=TDB,i×MVi/TDD,1
MVB,i=(TDB,i-TDD,i)×MVi/TDD,i
или:
где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-поля, и отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, TDD,i - временной интервал между опорным полем перечня 1 и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от опорного поля перечня 1, и отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, a MVi - вектор движения смещенного блока в опорном поле перечня 1 для режима прямого предсказания.
ПРИМЕР 3: МАКРОБЛОК В-КАДРА ИСПОЛЬЗУЕТСЯ В РЕЖИМЕ ПОЛЯ, А СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГО КАДРА ПЕРЕЧНЯ 1 - В ПОКАДРОВОМ РЕЖИМЕ
Если макроблок В-кадра используется в режиме поля, а смещенный макроблок указанного опорного кадра перечня 1 - в покадровом режиме, векторы движения MVF,i и MVB,i в режиме прямого предсказания для каждого i-поля В-кадра рассчитывают следующим образом (см. фиг.12а):
MVF,i=TDB,i×MV/TDD
MVB,i=(TDB,i-TDD)×MV/TDD
или:
где TDB,i - временной интервал между текущим В-полем и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-поля, и отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, TDD - временной интервал между опорным кадром перечня 1 и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от опорного кадра перечня 1, и отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, a MV - вектор движения смещенного блока поля в опорном кадре перечня 1 для режима прямого предсказания.
ПРИМЕР 4: МАКРОБЛОК В-КАДРА ИСПОЛЬЗУЕТСЯ В ПОКАДРОВОМ РЕЖИМЕ, А СМЕЩЕННЫЙ МАКРОБЛОК УКАЗАННОГО ОПОРНОГО КАДРА ПЕРЕЧНЯ 1 - В РЕЖИМЕ ПОЛЯ
Если макроблок В-кадра используется в покадровом режиме, смещенный макроблок указанного опорного кадра перечня 1 используется в режиме поля и опорный кадр перечня 1 следует по времени за В-кадром, поле 0 опорного кадра перечня 1 по времени будет ближе к В-кадру, чем поле 1, поэтому для расчета векторов движения в режиме прямого предсказания используется информация о движении смещенного блока поля 0. В результате векторы движения MVF и MVB В-кадра в режиме прямого предсказания можно получить по приведенным ниже уравнениям, в которых информация о движении смещенного блока в поле 0 опорного кадра перечня 1 используется для расчета векторов движения в режиме прямого предсказания.
MVF=TDB×MV/TDD,0
MVB=(TDB-TDD,0)×MV0/TDD,0
или:
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-кадра, и отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, TDD,0 - временной интервал между полем 0 опорного кадра перечня 1 и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от поля 0 опорного кадра перечня 1, и отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, а MV0 - вектор движения смещенного блока в поле 0 опорного кадра перечня 1 для режима прямого предсказания.
Если опорный кадр перечня 1 предшествует по времени В-кадру, то поле 1 опорного кадра перечня 1 по времени ближе к В-кадру, чем поле 0, поэтому для расчета векторов движения в режиме прямого предсказания используется информация о движении смещенного блока поля 1. В результате векторы движения MVF и MVB В-кадра в режиме прямого предсказания можно рассчитать по приведенным ниже уравнениям, в которых информация о движении смещенного блока в поле 1 опорного кадра перечня 1 используется для расчета векторов движения в режиме прямого предсказания:
MVF=TDB×MV1/TDD,1
MVB=-(TDB-TDD,1)×MV1/TDD,1
или:
где TDB - временной интервал между текущим В-кадром и опорным кадром перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от В-кадра, и отрицательный знак (-), если этот интервал измеряется от опорного кадра перечня 0, TDD,1 - временной интервал между полем 1 опорного кадра перечня 1 и опорным полем перечня 0, которому присваивается положительный знак (+), если этот интервал измеряется от поля 1 опорного кадра перечня 1, и отрицательный знак (-), если этот интервал измеряется от опорного поля перечня 0, a MV1 - вектор движения смещенного блока в поле 1 опорного кадра перечня 1 для режима прямого предсказания.
Как следует из приведенного выше описания, согласно настоящему изобретению предложен способ определения векторов движения в режиме прямого предсказания для В-кадра (кадра двунаправленного предсказания), полученного в способе сжатия движущегося изображения следующего поколения. Предложен такой способ получения векторов движения В-кадра в режиме прямого предсказания, который повышает вероятность выбора режима прямого предсказания в качестве режима предсказания макроблока, что повышает эффективность кодирования В-кадра.
Несмотря на то, что предпочтительные примеры осуществления настоящего изобретения были раскрыты в целях иллюстрации, специалистам, компетентным в данной области техники, будет понятно, что возможны разнообразные модификации, дополнения и изменения предложенных способов, не выходящие за рамки объема и не нарушающие сущности настоящего изобретения, как раскрыто в приведенной ниже формуле изобретения.
Изобретение относится к способу кодирования движущегося изображения, а именно к способу определения вектора движения для получения векторов движения в режиме прямого предсказания для кадра двунаправленного предсказания. Сущность способа определения векторов движения состоит в том, что выбирают вектор движения перечня 0 смещенного блока в качестве вектора движения для получения векторов движения в режиме прямого предсказания для кадра двунаправленного предсказания независимо от того, включает ли смещенный блок вектор движения перечня 1. Техническим результатом является повышение вероятности выбора режима прямого предсказания и, следовательно, повышения эффективности кодирования кадра. 9 з.п. ф-лы, 46 ил.
СПОСОБЫ И УСТРОЙСТВА ОБРАБОТКИ НАБОРА КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ, СПОСОБЫ И УСТРОЙСТВА ОБРАТНОГО ОРТОГОНАЛЬНОГО ПРЕОБРАЗОВАНИЯ НАБОРА КОЭФФИЦИЕНТОВ ПРЕОБРАЗОВАНИЯ, СПОСОБЫ И УСТРОЙСТВА ДЛЯ УПЛОТНЕНИЯ И РАСШИРЕНИЯ СИГНАЛА ДВИЖУЩЕГОСЯ ИЗОБРАЖЕНИЯ, НОСИТЕЛЬ ЗАПИСИ УПЛОТНЕННОГО СИГНАЛА, ПРЕДСТАВЛЯЮЩЕГО ДВИЖУЩЕЕСЯ ИЗОБРАЖЕНИЕ | 1994 |
|
RU2119727C1 |
RU 2182727 C1, 20.05.2002 | |||
Прибор, замыкающий сигнальную цепь при повышении температуры | 1918 |
|
SU99A1 |
EP 0986261 A2, 15.03.2000 | |||
US 6215823 B1, 10.04.2001. |
Авторы
Даты
2006-11-20—Публикация
2005-03-18—Подача