Область техники, к которой относится изобретение
Настоящее изобретение относится к системам кодирования движущегося изображения, а именно к способам кодирования движущегося изображения, направленным на повышение эффективности кодирования с использованием удаленных по времени опорных кадров.
Описание уровня техники
Для обеспечения оптимального сжатия и кодирования последовательности движущихся изображений необходимо распознавать смену сцен в последовательности изображений. Это связано с тем, что во многих случаях применения видео, например, в передачах новостей, при трансляции спортивных соревнований, для диалогов по типу интервью с использованием съемки крупным планом и многопунктовых видеоконференций, приходится иметь дело с повторением смены сцен. Подобная смена сцены может происходить как по всему кадру, так и в определенной части кадра.
При обнаружении смены сцен способ кодирования цифровых изображений может быть скорректирован соответствующим образом. Например, поскольку сходство между кадром, в котором происходит смена сцены, и кадром в предыдущей сцене весьма мало, кадр со сменой сцены кодируют посредством режима внутрикадрового предсказания, согласно которому кодирование кадра осуществляют с использованием предсказания только по декодированным выборкам в пределах того же самого кадра, а не посредством режима межкадрового предсказания, в рамках которого кадр кодируют с компенсацией движения по ранее декодированным опорным кадрам.
На более детальном уровне кадр, в котором смена сцены происходит по всей площади изображения, представляет собой исходный кадр, кодирование которого осуществляют в режиме внутрикадрового предсказания по всем блокам. Если смена сцены происходит лишь на определенном участке кадра, то все блоки в пределах тех участков, где происходит смена сцены, кодируют в режиме внутрикадрового предсказания. Поскольку при использовании режима внутрикадрового предсказания генерируется большее число битов по сравнению с режимом межкадрового предсказания, то очень часто для последовательности, в которой происходят смены сцен, возникают непоправимые проблемы при передаче информации с низкой скоростью в бит/с.
Как правило, при использовании В-кадра в системе кодирования движущегося изображения порядок кодирования отличается от порядка воспроизведения.
На фиг.1 показан порядок отображения, при котором каждый кадр отображают с использованием двух В-кадров. Как видно из фиг.1, из всех кадров, подлежащих отображению, первым отображают исходный кадр I. Два В-кадра В1 и В2 отображают последовательно вслед за исходным кадром I. Р-кадр Р3 отображают после В-кадров. Далее выполняют следующие операции, как указано выше. Другими словами, четвертый и пятый В-кадры В4 и В5 отображают после Р-кадра Р3. Затем отображают Р-кадр Р6.
Однако очередность кодирования цифрового изображения не совпадает с очередностью их отображения. Другими словами, Р-кадр кодируют ранее В-кадра.
На фиг.2 представлена очередность кодирования, при которой каждый кадр отображают с использованием двух В-кадров. Как показано на фиг.2, если кодируют исходный кадр I, то Р-кадр Р3 будут кодировать перед двумя В-кадрами В1 и В2, которые отображаются до Р-кадра Р3. Затем последовательно кодируют кадры Р6, В4, В5, Р9, В7, В8, Р12, В10 и В11.
В данном случае для В-кадров используются пять режимов кодирования, а именно - режим внутрикадрового предсказания, режим предсказания вперед, режим обратного предсказания, режим двунаправленного предсказания и режим прямого предсказания. В режиме двунаправленного предсказания используют два опорных кадра, которые могут располагаться либо перед, либо после В-кадра, или же один из них может располагаться перед В-кадром, а второй - после В-кадра.
Следует отметить, что в режиме прямого предсказания для сохранения непрерывности движения при переходе между двумя соседними кадрами используют временную избыточность. Другими словами, в режиме прямого предсказания вектор движения вперед и вектор движения назад режима прямого предсказания для В-кадра определяют по вектору движения смещенного блока в следующем кадре, идущем сразу после В-кадра. Такой режим прямого предсказания не требует дополнительных битов информации, например, информации о движении, поэтому скорость передачи в бит/с может быть снижена.
В данном случае вектор движения вперед MVf и вектор движения назад MVb стандартного режима прямого предсказания получают посредством масштабирования вектора движения MV с учетом временного интервала между кадрами, где MV - вектор движения смещенного блока в следующем кадре. Другими словами, вектор движения вперед MVf и вектор движения назад MVb получают с использованием следующих уравнений 1 и 2:
Уравнение 1:
Уравнение 2:
где MV - вектор движения смещенного блока в следующем кадре, MVf - вектор движения вперед в режиме прямого предсказания для В-кадра, MVb - вектор движения назад в режиме прямого предсказания для В-кадра, TRd - временной интервал между следующим кадром и опорным кадром, указываемым вектором движения смещенного блока в следующем кадре, и TRb - временной интервал между В-кадром и опорным кадром, указываемым вектором движения смещенного блока в следующем кадре.
В результате режим прямого предсказания представляет собой режим кодирования для получения двух блоков с компенсацией движения с использованием двух векторов движения MVf и MVb и дает предсказываемый блок путем осреднения или интерполяционного вычисления по двум блокам с компенсацией движения.
КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Целью настоящего изобретения является создание такого способа кодирования движущегося изображения, который позволял бы в значительной степени устранить одну или несколько проблем, связанных с ограничениями и недостатками известных аналогичных средств.
Соответственно цель настоящего изобретения заключается в разработке способа кодирования движущегося изображения, позволяющего повысить эффективность кодирования в режиме прямого предсказания с использованием удаленного по времени опорного кадра для В-кадра.
Другой целью настоящего изобретения является разработка способа кодирования движущегося изображения, позволяющего на основе использования режима межкадрового предсказания снизить количество битов информации для кадра, в котором происходит смена сцены.
Дополнительные преимущества, цели и признаки настоящего изобретения отчасти будут рассмотрены в представленном ниже описании, а отчасти станут понятными для специалистов, после изучения представленных ниже материалов или в результате практической реализации данного изобретения. Цели и другие преимущества настоящего изобретения можно понять на основе анализа конкретной структурной схемы, представленной в описании и формуле изобретения, а также в прилагаемых чертежах.
Для достижения указанных целей и других преимуществ, а также в соответствии с назначением данного изобретения, осуществленного и подробно изложенного в настоящем описании, способ определения векторов движения в режиме прямого предсказания для В-кадра заключается в том, что в процессе кодирования каждого блока В-кадра с использованием режима прямого предсказания по-разному определяют векторы движения в режиме прямого предсказания для В-кадра в зависимости от типа базового буфера, в котором хранят опорный кадр, указанный вектором движения смещенного блока в заданном кадре.
Желательно, чтобы заданный кадр был одним из близких по времени опорных кадров, используемых при кодировании В-кадра.
Тип опорного кадра задают с помощью индекса опорного кадра, предварительно определенного для смещенного блока в заданном кадре.
Значение индекса опорного кадра сохраняют в системном буфере.
Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на удаленный по времени опорный кадр, то вектор движения вперед в режиме прямого предсказания для В-кадра будет являться вектором движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.
Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.
Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на близкий по времени опорный кадр, то векторы движения в режиме прямого предсказания для В-кадра определяют путем масштабирования вектора движения смещенного блока в заданном кадре с учетом временного интервала между кадрами.
Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.
В соответствии с другим аспектом настоящего изобретения способ определения векторов движения в режиме прямого предсказания для В-кадра заключается в том, что в процессе кодирования каждого блока В-кадра с использованием режима прямого предсказания определяют векторы движения в режиме прямого предсказания для В-кадра в зависимости от типа базового буфера, в котором хранится заданный кадр.
Базовый буфер включает базовый буфер удаленных по времени опорных кадров и базовый буфер близких по времени опорных кадров.
Желательно, чтобы заданный кадр был одним из опорных кадров, близких или удаленных по времени.
Если заданный кадр находится в базовом буфере удаленных по времени опорных кадров, вектор движения вперед в режиме прямого предсказания для В-кадра будет являться вектором движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.
Если заданный кадр находится в базовом буфере близких по времени опорных кадров, векторы движения в режиме прямого предсказания для В-кадра определяют в зависимости от типа базового буфера, в котором хранят опорный кадр, указанный вектором движения смещенного блока в заданном кадре.
Тип опорного кадра задают с помощью индекса опорного кадра, предварительно определенного для смещенного блока в заданном кадре.
Значение индекса опорного кадра хранят в системном буфере.
Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на удаленный по времени опорный кадр, то вектор движения вперед в режиме прямого предсказания для В-кадра будет являться вектором движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.
Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.
Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на близкий по времени опорный кадр, то векторы движения в режиме прямого предсказания для В-кадра определяют путем масштабирования вектора движения смещенного блока в заданном кадре с учетом временного интервала между кадрами.
Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.
В соответствии с другим аспектом настоящего изобретения способ кодирования Р-кадра движущегося изображения в режиме межкадрового предсказания заключается в том, что: (а) выявляют смену сцены в Р-кадре, и (b) если в Р-кадре происходит смена сцены, то Р-кадр кодируют с обращением к удаленному по времени опорному кадру.
Желательно, чтобы Р-кадр, в котором происходит смена сцены, был одним из кадров с полной сменой сцены или с частичной сменой сцены.
Если Р-кадр со сменой сцены является кадром с частичной сменой сцены, то блоки, находящиеся в пределах участка со сменой сцены, кодируют с использованием удаленного по времени опорного кадра.
Базовый буфер, в котором хранят удаленный по времени опорный кадр, является буфером для хранения кадра, закодированного до заданного времени.
Если Р-кадр со сменой сцены является кадром с частичной сменой сцены, то блоки, находящиеся в пределах того участка, где изменения сцены не происходит, кодируют с использованием близкого по времени опорного кадра.
Базовый буфер, в котором хранят близкий по времени опорный кадр, является буфером для хранения кадра, закодированного после заданного времени.
В соответствии с другим аспектом настоящего изобретения способ кодирования последовательности движущихся изображений в системе кодирования движущихся изображений заключается в том, что (а) выявляют смену сцены в Р-кадре, (b) если в Р-кадре происходит смена сцены, то Р-кадр кодируют в межкадровом режиме с обращением к удаленному по времени опорному кадру, (с) в процессе кодирования каждого блока в В-кадре с использованием режима прямого предсказания в соответствии с порядком кодирования определяют тип базового буфера, в котором хранят заданный кадр, и (d) определяют векторы движения в режиме прямого предсказания для В-кадра в соответствии с типом базового буфера и кодируют В-кадр в режиме прямого предсказания.
Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.
Если заданный кадр находится в базовом буфере удаленных по времени опорных кадров согласно операции (d), то вектор движения вперед в режиме прямого предсказания для В-кадра будет представлять собой вектор движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.
Если заданный кадр находится в базовом буфере близких по времени опорных кадров согласно операции (d), то векторы движения в режиме прямого предсказания для В-кадра определяют в зависимости от типа базового буфера, в котором хранят опорный кадр, указанный вектором движения смещенного блока в заданном кадре.
Тип опорного кадра задают с помощью индекса опорного кадра, предварительно определенного для смещенного блока в заданном кадре.
Значение индекса опорного кадра хранят в системном буфере.
Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на удаленный по времени опорный кадр, то вектор движения вперед в режиме прямого предсказания для В-кадра будет представлять собой вектор движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.
Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.
Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на близкий по времени опорный кадр, то векторы движения в режиме прямого предсказания для В-кадра определяют путем масштабирования вектора движения, определенного для смещенного блока в заданном кадре, с учетом временного интервала между кадрами.
Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.
Р-кадр, в котором происходит смена сцены, представляет собой один из кадров с полной или частичной сменой сцены.
Если Р-кадр со сменой сцены является кадром с частичной сменой сцены, то блоки, принадлежащие тому участку изображения, где происходит смена сцены, кодируют с использованием удаленного по времени опорного кадра.
Базовый буфер, в котором хранят удаленный по времени опорный кадр, представляет собой буфер для хранения кадра, закодированного до заданного времени.
Если Р-кадр со сменой сцены является кадром с частичной сменой сцены, то блоки, принадлежащие тому участку изображения, где не происходит смена сцены, кодируют с использованием близкого по времени опорного кадра.
Базовый буфер, в котором хранят близкий по времени опорный кадр, представляет собой буфер для хранения кадра, закодированного после заданного времени.
Базовый буфер близких по времени опорных кадров является буфером обратного магазинного типа.
Заданный кадр для кодирования в режиме прямого предсказания в В-кадре является одним из опорных кадров, используемых при кодировании В-кадра.
В соответствии с еще одним аспектом настоящего изобретения способ предсказания Р-кадра в режиме межкадрового предсказания заключается в том, что (а) считывают опорный кадр, предварительно декодированный в режиме межкадрового предсказания; и (b) предсказывают Р-кадр, применяя компенсацию движения по отношению к опорному кадру, при этом опорный кадр включает по меньшей мере удаленный по времени опорный кадр.
Опорный кадр включает близкий по времени опорный кадр.
Если в Р-кадре происходит полная или частичная смена сцены, то его кодируют с обращением к удаленному по времени опорному кадру.
Если Р-кадр, в котором происходит смена сцены, является кадром с частичной сменой сцены, блоки, принадлежащие участку, где не происходит изменение сцены, кодируют с использованием близкого по времени опорного кадра.
Если происходит смена сцены, блоки, принадлежащие участку, где происходит смена сцены, кодируют с использованием удаленных по времени опорных кадров.
В соответствии с еще одним аспектом настоящего изобретения способ определения вектора движения в режиме прямого предсказания заключается в том, что: (а) считывают смещенный блок в заданном кадре, при этом смещенный блок обусловливает вектор движения, который указывает на опорный кадр; и (b) определяют по меньшей мере один вектор движения в режиме прямого предсказания на основании типа опорного кадра, при этом тип опорного кадра включает удаленный по времени опорный кадр.
По меньшей мере один вектор движения приравнивают к вектору движения смещенного блока, если типом опорного кадра является удаленный по времени опорный кадр.
По меньшей мере один вектор движения приравнивают к нулю, если типом опорного кадра является удаленный по времени опорный кадр.
По меньшей мере один вектор движения является по меньшей мере одним вектором движения в режиме прямого предсказания для В-кадра.
Если типом опорного кадра является близкий по времени опорный кадр, по меньшей мере один вектор движения в режиме прямого предсказания получают путем масштабирования вектора движения, обусловленного смещенным блоком.
Следует понимать, что как предшествующее общее описание, так и последующее подробное описание настоящего изобретения, носят иллюстративный и пояснительный характер и предназначены для более глубокого понимания заявленного изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Прилагаемые чертежи, которые включены для облегчения понимания сути изобретения и являются неотъемлемой и составной частью настоящей заявки, иллюстрируют пример(ы) осуществления изобретения и вместе с описанием служат для пояснения принципа изобретения. В прилагаемых чертежах:
на фиг.1 показана очередность отображения, в которой каждый кадр отображается при использовании двух В-кадров;
на фиг.2 показана очередность кодирования, в которой каждый кадр отображается при использовании двух В-кадров;
на фиг.3А и 3В представлены блок-схемы, иллюстрирующие способ кодирования последовательности движущихся изображений в системе кодирования движущегося изображения в соответствии с предпочтительным примером осуществления настоящего изобретения;
на фиг.4 показан способ кодирования последовательности движущихся изображений, в которых происходит смена сцены, в соответствии с предпочтительным примером осуществления настоящего изобретения; и
на фиг.5 показан способ кодирования В-кадра в режиме прямого предсказания в соответствии с предпочтительным примером осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В данном описании подробно рассматриваются предпочтительные примеры осуществления настоящего изобретения, которые иллюстрируются с помощью прилагаемых чертежей. По возможности, для обозначения одних и тех же или похожих элементов на чертежах будут использоваться одинаковые номера позиций.
Прежде чем переходить к описанию примера осуществления настоящего изобретения, следует начать с пояснения терминов, а именно: кадр, в котором смена сцены происходит по всему изображению, определяется как кадр с полной сменой сцены, а кадр, в котором изменение сцены происходит лишь в некоторой части изображения, определяется как кадр с частичной сменой сцены.
На фиг.3А и 3В показаны блок-схемы, иллюстрирующие способ кодирования последовательности движущихся изображений в системе кодирования движущихся изображений в соответствии с предпочтительным примером осуществления настоящего изобретения. Как видно на фиг.3А и 3В, кадры один за другим вводят из последовательности движущихся изображений (S111).
Затем определяют тип кадров (S114). Другими словами, определяют, является ли вводимый кадр Р-кадром или В-кадром. В рассматриваемом примере осуществления настоящего изобретения предполагается, что кодирование по отношению к исходному изображению выполняют заранее.
Если кадр является Р-кадром, определяют, происходит ли в этом Р-кадре смена сцены (S117). В данном случае смену сцены определяют путем сравнения текущего Р-кадра с кадром (Р или В), отображенным непосредственно перед Р-кадром.
В результате определения, сделанного на шаге S117, если в Р-кадрах происходит полная смена сцен, то текущий Р-кадр является кадром с полной сменой сцены. Соответственно, если Р-кадр определяют как кадр с полной сменой сцены, то кодирование осуществляют с обращением к удаленному по времени опорному кадру (S120).
Если текущий Р-кадр не является кадром с полной сменой сцены, определяют, является ли этот кадр кадром с частичной сменой сцены (S123).
Если Р-кадр является кадром с частичной сменой сцены, то блоки, принадлежащие тому участку изображения, где происходит смена сцены, кодируют с обращением к удаленному по времени опорному кадру с возвратом к шагу S120 (S126).
Блоки на том участке изображения, в пределах которого смена сцены не происходит, кодируют с обращением к близкому по времени опорному кадру (S129, S132).
В данном случае удаленный по времени опорный кадр представляет собой кадр, который хранят в базовом буфере для удаленных по времени опорных кадров, а близкий по времени опорный кадр является кадром, который хранят в базовом буфере для близких по времени опорных кадров.
Базовый буфер для близких по времени опорных кадров является буфером обратного магазинного типа (FIFO), в котором кадр, вводимый первым, первым подается на выход, при этом кадры, закодированные до истечения сравнительно короткого отрезка времени, хранят в базовом буфере для близких по времени опорных кадров.
Кадры, закодированные до истечения сравнительно длительного промежутка времени, хранят в буфере для удаленных по времени опорных кадров. Первые кадры из соответствующих наборов сцен, а именно - исходный кадр, кадр с полной сменой сцены, кадр с частичной сменой сцены и тому подобное, хранят в базовом буфере для удаленных по времени опорных кадров.
Если в базовом буфере для удаленных по времени опорных кадров нет кадра с полной сменой сцены или кадра с частичной сменой сцены, то кадр со сменой сцены может быть сохранен дополнительно.
Соответственно, как показано на фиг.4, исходный кадр 10, который является первым кадром с полной сменой сцены в последовательности сцен А1, первый кадр с полной сменой сцены Р50 в последовательности сцен В1 и первый кадр с частичной сменой сцены Р120 можно хранить в базовом буфере для удаленных по времени опорных кадров. В данном случае последовательность сцен представляет собой последовательность аналогичных кадров. Например, при показе дискуссионной передачи на экране сначала появляется ведущий, затем появляется участник дискуссии А, затем опять появляется ведущий и вновь участник дискуссии А. Сцена, в которой ведущий появляется первый раз, относится к последовательности сцен А, а сцена, в которой затем появляется участник дискуссии А, относится к последовательности сцен В. Сцена, в которой ведущий появляется снова, относится к последовательности сцен А, а сцена, в которой вновь появляется участник дискуссии А, относится к последовательности сцен В. Как указано выше, когда происходит смена сцены, Р-кадр кодируют в режиме межкадрового предсказания с обращением к близкому или удаленному по времени опорному кадру вместо режима внутрикадрового предсказания. Такой подход позволяет снизить количество требуемых битов информации и, соответственно, повысить эффективность кодирования.
Описание шагов S117-S132 будет сделано со ссылкой на фиг.4. Как показано на фиг.4, если подлежащий кодированию Р-кадр Р200 представляет собой кадр с полной сменой сцены, принадлежащий последовательности сцен В2, то близкие по времени опорные кадры, хранящиеся в базовом буфере для близких по времени опорных кадров, не используют. По этой причине кадр с полной сменой сцены Р200 является первым кадром в последовательности сцен В2 и последовательность сцен для кадра с полной сменой сцены Р200 отличается от близких по времени опорных кадров, таких как Р199, Р198, Р197 и так далее, которые принадлежат к последовательности сцен А2. Таким образом, сходство кадра с полной сменой сцены Р200 с близкими по времени опорными кадрами, принадлежащими последовательности сцен А2, значительно снижается и точное кодирование по таким опорным кадрам становится невозможным.
В данном случае Р-кадр кодируют в режиме межкадрового предсказания с обращением к другим опорным кадрам Р50 и Р120, принадлежащим последовательности сцен В1, которая совпадает с последовательностью сцен В2.
С другой стороны, если в Р-кадре Р250 происходит частичное изменение сцены, то кодирование осуществляют иным образом в зависимости от двух условий. Иначе говоря, блоки, принадлежащие тому участку, где происходит частичная смена сцены, кодируют в режиме межкадрового предсказания с обращением к удаленным по времени опорным кадрам Р50 и Р120, хранящимся в базовом буфере для удаленных по времени опорных кадров. Блоки, принадлежащие тому участку, где смена сцены не происходит, кодируют в режиме межкадрового предсказания с обращением к близким по времени опорным кадрам Р249, Р248, Р247 и так далее, хранящимся в базовом буфере для близких по времени опорных кадров.
Как указано выше, после кодирования одного Р-кадра вводят следующий кадр (S159). Если этот кадр является В-кадром, то осуществляют тестирование пяти режимов предсказания (режима внутрикадрового предсказания, режима предсказания вперед, режима обратного предсказания, режима двунаправленного предсказания и режима прямого предсказания) и один из них выбирают в качестве оптимального режима кодирования (S135, S138). В данном описании будет рассматриваться, главным образом, режим прямого предсказания.
Сначала считывают один из блоков В-кадра (S141). Считывание остальных блоков может быть, конечно, выполнено последовательно. Затем проверяют тип базового буфера, в котором хранят заданный кадр.
Требуемый кадр выбирают из предшествующих кадров по отношению к данному В-кадру в очередности кодирования независимо от очередности отображения. Другими словами, заданный кадр является одним из опорных кадров, используемых для кодирования В-кадра. Поэтому заданный кадр может быть близким или удаленным по времени опорным кадром. Близкие по времени опорные кадры могут располагаться до или после В-кадра в порядке отображения, их хранят в базовом буфере для близких по времени опорных кадров. Удаленные по времени опорные кадры хранят в базовом буфере для удаленных по времени опорных кадров. Если заданный кадр является опорным кадром, удаленным по времени, то вектором движения вперед в режиме прямого предсказания для В-кадра будет являться вектор движения смещенного блока в заданном кадре. Вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю (S150). Однако если заданный кадр является близким по времени опорным кадром, то считывают индекс опорного кадра и вектор движения, определенный для смещенного блока в заданном кадре (S144). Упомянутые индекс опорного кадра и вектор движения определяют предварительно и хранят в системном буфере. В соответствии с индексом опорного кадра определяют, указывает ли вектор движения смещенного блока в заданном кадре на удаленный по времени опорный кадр (S147). Как уже отмечалось, опорные кадры хранят в базовом буфере, который включает в себя буфер для близких по времени опорных кадров и буфер для удаленных по времени опорных кадров.
Если вектор движения смещенного блока в заданном кадре указывает на удаленный по времени опорный кадр, В-кадр кодируют с использованием следующих выражений 3 и 4 (S150).
Выражение 3:
MVf=MV,
где MV - вектор движения смещенного блока в заданном кадре, a MVf - вектор движения вперед в режиме прямого предсказания для В-кадра.
Выражение 4:
MVb=0,
где MV - вектор движения смещенного блока в заданном кадре, а MVb - вектор движения назад в режиме прямого предсказания для В-кадра.
Другими словами, если вектор движения смещенного блока в заданном кадре указывает на удаленный по времени опорный кадр, то вектор движения вперед в режиме прямого предсказания для В-кадра будет представлять собой вектор движения смещенного блока в заданном кадре, а вектор движения назад будет равен нулю.
Как показано на фиг.5, на шаге S150, если вектор движения смещенного блока в заданном кадре Р200 указывает на удаленный по времени опорный кадр Р50, параметры TRd и TRb теряют смысл в стандартных формулах 1 и 2. Другими словами, поскольку параметры TRd и TRb характеризуют временной интервал (включая даже другую последовательность сцен А2) между заданным кадром Р200, принадлежащим последовательности сцен В2, и удаленным по времени опорным кадром Р50, принадлежащим к той же самой последовательности сцен В1, вектор движения вперед и вектор движения назад в режиме прямого предсказания не могут быть рассчитаны с использованием таких параметров, как TRd и TRb.
Обращаясь к фиг.5, следует более подробно отметить следующее. При введении двух В-кадров в последовательность движущихся изображений и их кодировании первым кодируют Р-кадр Р200, который стоит раньше кадров В1 и В2 в очередности кодирования. В данном случае, поскольку Р-кадр Р200 является кадром с полной сменой сцены, то этот кадр кодируют в межкадровом режиме по удаленному по времени опорному кадру Р50, хранящемуся в базовом буфере для удаленных по времени опорных кадров. В соответствии с очередностью кодирования следующим кадром, подлежащим кодированию, является кадр В1. Поскольку кадр В1 принадлежит последовательности сцен А2, большинство блоков кодируют в режиме предсказания вперед по близким по времени опорным кадрам, принадлежащим последовательности сцен А2, или в двунаправленном режиме предсказания, в котором оба опорных кадра принадлежат последовательности сцен А2. Однако режим внутрикадрового предсказания, режим обратного предсказания или режим двунаправленного предсказания по Р-кадру Р200, принадлежащему другой последовательности сцен В2, а также режим прямого предсказания, предназначенный для получения векторов движения режима прямого предсказания по смещенному блоку в Р-кадре Р200, вероятно не могут быть использованы как режимы кодирования для блоков кадра В1.
В противоположность этому, поскольку не только кадр В2, но также и заданный кадр Р200, используемый для определения векторов движения в режиме прямого предсказания для кадра В2, принадлежат к той же самой последовательности сцен В2, в качестве способа кодирования для большинства блоков кадра В2 выбирают режим прямого предсказания. Другими словами, после получения вектора движения каждого блока в заданном кадре Р200 в режиме межкадрового предсказания по удаленному по времени опорному кадру Р50, принадлежащему к той же самой последовательности сцен В2, векторы движения режима прямого предсказания для кадра В2 определяют по вектору движения смещенного блока в заданном кадре Р200. Поскольку кадр В2 и заданный кадр Р200 принадлежат к последовательности сцен В2, а удаленный по времени опорный кадр Р50 также принадлежит к последовательности сцен В1 и сходство между последовательностями сцен В1 и В2 очень высоко, для большинства блоков в кадре В2 в качестве способа кодирования может быть задан режим прямого предсказания. Эффективность кодирования для кадра В2, соответственно, возрастает.
С другой стороны, если вектор движения смещенного блока в заданном кадре указывает на близкий по времени опорный кадр, В-кадр кодируют с использованием стандартных выражений 1 и 2. В этом случае, поскольку близкий по времени опорный кадр, хранящийся в соответствующем базовом буфере, принадлежит к той же последовательности сцен, что и В-кадр, и другой последовательности сцен между заданным кадром и близким по времени опорным кадром не существует, вектор движения вперед и вектор движения назад режима прямого предсказания определяют с использованием стандартных выражений 1 и 2, связанных с параметрами TRd и TRb, представляющими собой временные интервалы.
Если кодируют один из блоков В-кадра, следующий блок В-кадра будут считывать и кодировать последовательно (S156). Аналогичные операции выполняют для всех блоков В-кадра. После завершения кодирования В-кадра следующий кадр вводят и кодируют так, чтобы обеспечить кодирование движущегося изображения (S159).
Как показано выше, согласно предложенному в настоящем изобретении способу кодирования движущегося изображения, вектор движения вперед и вектор движения назад в режиме прямого предсказания для В-кадра определяют по-разному на основе опорного кадра, указанного вектором движения смещенного блока в заданном кадре. Применительно к В-кадрам в качестве способа кодирования, обеспечивающего повышение эффективности кодирования в целом, используют, главным образом, режим прямого предсказания.
Согласно предложенному в настоящем изобретении способу кодирования движущегося изображения, Р-кадр, в котором происходит смена сцены, кодируют в режиме межкадрового предсказания с использованием компенсации движения по удаленным по времени опорным кадрам, чтобы снизить количество битов информации и повысить эффективность кодирования.
Для специалистов в данной области техники очевидно, что в настоящем изобретении возможны различные изменения и отклонения. Подразумевается, что настоящее изобретение включает возможные изменения и отклонения при условии, что они находятся в пределах объема прилагаемой формулы изобретения, в том числе с учетом эквивалентных признаков.
Изобретение относится к системам кодирования движущегося изображения, в частности, к способам кодирования движущегося изображения. Сущность способа кодирования и декодирования состоит в том, что осуществляют кодирование и декодирование Р-кадра исходя из смены сцены в Р-кадре, причем если происходит смена сцены, по меньшей мере, в части Р-кадра, кодируют или декодируют блок, относящийся, по меньшей мере, к части Р-кадра с обращением к удаленному по времени опорному кадру, хранящемуся в базовом буфере, в противном случае кодируют или декодируют блок Р-кадра с обращением к близкому по времени опорному кадру, хранящемуся в базовом буфере. Технический результат заключается в повышении эффективности кодирования последовательности движущихся изображений в режиме прямого предсказания с использованием удаленного по времени опорного кадра для В-кадра. 5 з.п. ф-лы, 6 ил.
Авторы
Даты
2006-12-10—Публикация
2004-11-17—Подача