способ кодирования движущегося изображения

Классы МПК:H04N7/36 с использованием временного прогноза
H04N5/937 размещением блоков элементов изображения в промежуточном запоминающем устройстве
Автор(ы):
Патентообладатель(и):Эл Джи Электроникс Инк. (KR)
Приоритеты:
подача заявки:
2006-05-18
публикация патента:

Изобретение относится к системам кодирования движущегося изображения, в частности к способам кодирования движущегося изображения в режиме межкадрового предсказания и в режиме прямого предсказания с использованием удаленного по времени опорного кадра. Сущность изобретения состоит в том, что Р-кадр кодируют в режиме межкадрового предсказания в соответствии со сменой сцены. Векторы движения в режиме прямого предсказания определяют и кодируют в соответствии с типом опорного кадра, указанного вектором движения смещенного блока в заданном кадре. Технический результат заключается в повышении эффективности кодирования последовательности движущихся изображений в режиме межкадрового предсказания и в режиме прямого предсказания для Р-кадра с использованием удаленного по времени опорного кадра. 2 н. и 7 з.п. ф-лы, 6 ил.

способ кодирования движущегося изображения, патент № 2335861 способ кодирования движущегося изображения, патент № 2335861 способ кодирования движущегося изображения, патент № 2335861 способ кодирования движущегося изображения, патент № 2335861 способ кодирования движущегося изображения, патент № 2335861 способ кодирования движущегося изображения, патент № 2335861

Формула изобретения

1. Способ предсказания Р-кадра в режиме межкадрового предсказания, заключающийся в том, что:

(a) считывают опорный кадр, предварительно декодированный в режиме межкадрового предсказания; и

(b) предсказывают Р-кадр,

при этом опорный кадр включает, по меньшей мере, удаленный по времени опорный кадр или близкий по времени опорный кадр.

2. Способ по п.1, в котором, если в Р-кадре происходит полная или частичная смена сцены, то его кодируют с обращением к удаленному по времени опорному кадру.

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

4. Способ по п.1, в котором, если происходит смена сцены, блоки, принадлежащие участку Р-кадра, где происходит смена сцены, кодируют с использованием удаленных по времени опорных кадров.

5. Способ определения вектора движения в режиме прямого предсказания, заключающийся в том, что:

(а) считывают смещенный блок в заданном кадре и определяют вектор движения смещенного блока, который указывает на опорный кадр; и

(b) определяют, по меньшей мере, один вектор движения в режиме прямого предсказания на основании типа опорного кадра,

при этом тип опорного кадра включает удаленный по времени опорный кадр или близкий по времени опорный кадр.

6. Способ по п.5, в котором, по меньшей мере, один вектор движения приравнивают к вектору движения смещенного блока, если типом опорного кадра является удаленный по времени опорный кадр.

7. Способ по п.5, в котором, по меньшей мере, один вектор движения приравнивают к нулю, если типом опорного кадра является удаленный по времени опорный кадр.

8. Способ по п.6 или 7, в котором, по меньшей мере, один вектор движения является, по меньшей мере, одним вектором движения в режиме прямого предсказания для В-кадра.

9. Способ по п.5, в котором, если типом опорного кадра является близкий по времени опорный кадр, по меньшей мере, один вектор движения в режиме прямого предсказания получают путем масштабирования вектора движения, обусловленного смещенным блоком.

Описание изобретения к патенту

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

[0001] Настоящее изобретение относится к системам кодирования движущегося изображения, а именно к способам кодирования движущегося изображения, направленным на повышение эффективности кодирования с использованием удаленных по времени опорных кадров.

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

[0002] Для обеспечения оптимального сжатия и кодирования последовательности движущихся изображений необходимо распознавать смену сцен в последовательности изображений. Это связано с тем, что во многих случаях применения видео, например в передачах новостей, при трансляции спортивных соревнований, для диалогов по типу интервью с использованием съемки крупным планом и многопунктовых видеоконференций, приходится иметь дело с повторением смены сцен. Подобная смена сцены может происходить как по всему кадру, так и в определенной части кадра.

[0003] При обнаружении смены сцен способ кодирования цифровых изображений может быть скорректирован соответствующим образом. Например, поскольку сходство между кадром, в котором происходит смена сцены, и кадром в предыдущей сцене весьма мало, кадр со сменой сцены кодируют посредством режима внутрикадрового предсказания, согласно которому кодирование кадра осуществляют с использованием предсказания только по декодированным выборкам в пределах того же самого кадра, а не посредством режима межкадрового предсказания, в рамках которого кадр кодируют с компенсацией движения по ранее декодированным опорным кадрам.

[0004] На более детальном уровне кадр, в котором смена сцены происходит по всей площади изображения, представляет собой исходный кадр, кодирование которого осуществляют в режиме внутрикадрового предсказания по всем блокам. Если смена сцены происходит лишь на определенном участке кадра, то все блоки в пределах тех участков, где происходит смена сцены, кодируют в режиме внутрикадрового предсказания. Поскольку при использовании режима внутрикадрового предсказания генерируется большее число битов по сравнению с режимом межкадрового предсказания, то очень часто для последовательности, в которой происходят смены сцен, возникают непоправимые проблемы при передаче информации с низкой скоростью в бит/с.

[0005] Как правило, при использовании В-кадра в системе кодирования движущегося изображения порядок кодирования отличается от порядка воспроизведения.

[0006] На фиг.1 показан порядок отображения, при котором каждый кадр отображают с использованием двух В-кадров. Как видно из фиг.1, из всех кадров, подлежащих отображению, первым отображают исходный кадр I. Два В-кадра В1 и В2 отображают последовательно вслед за исходным кадром I. Р-кадр Р3 отображают после В-кадров. Далее выполняют следующие операции, как указано выше. Другими словами, четвертый и пятый В-кадры В4 и В5 отображают после Р-кадра Р3. Затем отображают Р-кадр Р6.

[0007] Однако очередность кодирования цифрового изображения не совпадает с очередностью их отображения. Другими словами, Р-кадр кодируют ранее В-кадра.

[0008] На фиг.2 представлена очередность кодирования, при которой каждый кадр отображают с использованием двух В-кадров. Как показано на фиг.2, если кодируют исходный кадр I, то Р-кадр Р3 будут кодировать перед двумя В-кадрами В1 и В2, которые отображаются до Р-кадра Р3. Затем последовательно кодируют кадры Р6, В4, В5, Р9, В7, В8, Р12, В10 и В11.

[0009] В данном случае для В-кадров используются пять режимов кодирования, а именно режим внутрикадрового предсказания, режим предсказания вперед, режим обратного предсказания, режим двунаправленного предсказания и режим прямого предсказания. В режиме двунаправленного предсказания используют два опорных кадра, которые могут располагаться либо перед, либо после В-кадра, или же один из них может располагаться перед В-кадром, а второй - после В-кадра.

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

[0011] В данном случае вектор движения вперед MV f и вектор движения назад MVb стандартного режима прямого предсказания получают посредством масштабирования вектора движения MV с учетом временного интервала между кадрами, где MV - вектор движения смещенного блока в следующем кадре. Другими словами, вектор движения вперед MVf и вектор движения назад MVb получают с использованием следующих уравнений 1 и 2:

[0012] Уравнение 1:

способ кодирования движущегося изображения, патент № 2335861

[0013] Уравнение 2:

способ кодирования движущегося изображения, патент № 2335861

где MV - вектор движения смещенного блока в следующем кадре, MVf - вектор движения вперед в режиме прямого предсказания для В-кадра, MVb - вектор движения назад в режиме прямого предсказания для В-кадра, TRd - временной интервал между следующим кадром и опорным кадром, указываемым вектором движения смещенного блока в следующем кадре, и TRb - временной интервал между В-кадром и опорным кадром, указываемым вектором движения смещенного блока в следующем кадре.

[0014] В результате режим прямого предсказания представляет собой режим кодирования для получения двух блоков с компенсацией движения с использованием двух векторов движения MVf и MV b и дает предсказываемый блок путем осреднения или интерполяционного вычисления по двум блокам с компенсацией движения.

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

[0015] Целью настоящего изобретения является создание такого способа кодирования движущегося изображения, который позволял бы в значительной степени устранить одну или несколько проблем, связанных с ограничениями и недостатками известных аналогичных средств.

[0016] Соответственно, цель настоящего изобретения заключается в разработке способа кодирования движущегося изображения, позволяющего повысить эффективность кодирования в режиме прямого предсказания с использованием удаленного по времени опорного кадра для В-кадра.

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

[0018] Дополнительные преимущества, цели и признаки настоящего изобретения отчасти будут рассмотрены в представленном ниже описании, а отчасти станут понятными для специалистов после изучения представленных ниже материалов или в результате практической реализации данного изобретения. Цели и другие преимущества настоящего изобретения можно понять на основе анализа конкретной структурной схемы, представленной в описании и формуле изобретения, а также в прилагаемых чертежах.

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

[0020] Желательно, чтобы заданный кадр был одним из близких по времени опорных кадров, используемых при кодировании В-кадра.

[0021] Тип опорного кадра задают с помощью индекса опорного кадра, предварительно определенного для смещенного блока в заданном кадре.

[0022] Значение индекса опорного кадра сохраняют в системном буфере.

[0023] Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на удаленный по времени опорный кадр, то вектор движения вперед в режиме прямого предсказания для В-кадра будет являться вектором движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.

[0024] Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.

[0025] Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на близкий по времени опорный кадр, то векторы движения в режиме прямого предсказания для В-кадра определяют путем масштабирования вектора движения смещенного блока в заданном кадре с учетом временного интервала между кадрами.

[0026] Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.

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

[0028] Базовый буфер включает базовый буфер удаленных по времени опорных кадров и базовый буфер близких по времени опорных кадров.

[0029] Желательно, чтобы заданный кадр был одним из опорных кадров, близких или удаленных по времени.

[0030] Если заданный кадр находится в базовом буфере удаленных по времени опорных кадров, вектор движения вперед в режиме прямого предсказания для В-кадра будет являться вектором движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.

[0031] Если заданный кадр находится в базовом буфере близких по времени опорных кадров, векторы движения в режиме прямого предсказания для В-кадра определяют в зависимости от типа базового буфера, в котором хранят опорный кадр, указанный вектором движения смещенного блока в заданном кадре.

[0032] Тип опорного кадра задают с помощью индекса опорного кадра, предварительно определенного для смещенного блока в заданном кадре.

[0033] Значение индекса опорного кадра хранят в системном буфере.

[0034] Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на удаленный по времени опорный кадр, то вектор движения вперед в режиме прямого предсказания для В-кадра будет являться вектором движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.

[0035] Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.

[0036] Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на близкий по времени опорный кадр, то векторы движения в режиме прямого предсказания для В-кадра определяют путем масштабирования вектора движения смещенного блока в заданном кадре с учетом временного интервала между кадрами.

[0037] Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.

[0038] В соответствии с другим аспектом настоящего изобретения способ кодирования Р-кадра движущегося изображения в режиме межкадрового предсказания заключается в том, что: (а) выявляют смену сцены в Р-кадре, и (b) если в Р-кадре происходит смена сцены, то Р-кадр кодируют с обращением к удаленному по времени опорному кадру.

[0039] Желательно, чтобы Р-кадр, в котором происходит смена сцены, был одним из кадров с полной сменой сцены или с частичной сменой сцены.

[0040] Если Р-кадр со сменой сцены является кадром с частичной сменой сцены, то блоки, находящиеся в пределах участка со сменой сцены, кодируют с использованием удаленного по времени опорного кадра.

[0041] Базовый буфер, в котором хранят удаленный по времени опорный кадр, является буфером для хранения кадра, закодированного до заданного времени.

[0042] Если Р-кадр со сменой сцены является кадром с частичной сменой сцены, то блоки, находящиеся в пределах того участка, где изменения сцены не происходит, кодируют с использованием близкого по времени опорного кадра.

[0043] Базовый буфер, в котором хранят близкий по времени опорный кадр, является буфером для хранения кадра, закодированного после заданного времени.

[0044] В соответствии с другим аспектом настоящего изобретения способ кодирования последовательности движущихся изображений в системе кодирования движущихся изображений заключается в том, что (а) выявляют смену сцены в Р-кадре, (b) если в Р-кадре происходит смена сцены, то Р-кадр кодируют в межкадровом режиме с обращением к удаленному по времени опорному кадру, (с) в процессе кодирования каждого блока в В-кадре с использованием режима прямого предсказания в соответствии с порядком кодирования определяют тип базового буфера, в котором хранят заданный кадр, и (d) определяют векторы движения в режиме прямого предсказания для В-кадра в соответствии с типом базового буфера и кодируют В-кадр в режиме прямого предсказания.

[0045] Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.

[0046] Если заданный кадр находится в базовом буфере удаленных по времени опорных кадров согласно операции (d), то вектор движения вперед в режиме прямого предсказания для В-кадра будет представлять собой вектор движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.

[0047] Если заданный кадр находится в базовом буфере близких по времени опорных кадров согласно операции (d), то векторы движения в режиме прямого предсказания для В-кадра определяют в зависимости от типа базового буфера, в котором хранят опорный кадр, указанный вектором движения смещенного блока в заданном кадре.

[0048] Тип опорного кадра задают с помощью индекса опорного кадра, предварительно определенного для смещенного блока в заданном кадре.

[0049] Значение индекса опорного кадра хранят в системном буфере.

[0050] Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на удаленный по времени опорный кадр, то вектор движения вперед в режиме прямого предсказания для В-кадра будет представлять собой вектор движения смещенного блока в заданном кадре, а вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю.

[0051] Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.

[0052] Если вектор движения, определенный для смещенного блока в заданном кадре, указывает на близкий по времени опорный кадр, то векторы движения в режиме прямого предсказания для В-кадра определяют путем масштабирования вектора движения, определенного для смещенного блока в заданном кадре, с учетом временного интервала между кадрами.

[0053] Вектор движения, определенный для смещенного блока в заданном кадре, хранят в системном буфере.

[0054] Р-кадр, в котором происходит смена сцены, представляет собой один из кадров с полной или частичной сменой сцены.

[0055] Если Р-кадр со сменой сцены является кадром с частичной сменой сцены, то блоки, принадлежащие тому участку изображения, где происходит смена сцены, кодируют с использованием удаленного по времени опорного кадра.

[0056] Базовый буфер, в котором хранят удаленный по времени опорный кадр, представляет собой буфер для хранения кадра, закодированного до заданного времени.

[0057] Если Р-кадр со сменой сцены является кадром с частичной сменой сцены, то блоки, принадлежащие тому участку изображения, где не происходит смена сцены, кодируют с использованием близкого по времени опорного кадра.

[0058] Базовый буфер, в котором хранят близкий по времени опорный кадр, представляет собой буфер для хранения кадра, закодированного после заданного времени.

[0059] Базовый буфер близких по времени опорных кадров является буфером обратного магазинного типа.

[0060] Заданный кадр для кодирования в режиме прямого предсказания в В-кадре является одним из опорных кадров, используемых при кодировании В-кадра.

[0061] В соответствии с еще одним аспектом настоящего изобретения способ предсказания Р-кадра в режиме межкадрового предсказания заключается в том, что (а) считывают опорный кадр, предварительно декодированный в режиме межкадрового предсказания; и (b) предсказывают Р-кадр, применяя компенсацию движения по отношению к опорному кадру, при этом опорный кадр включает по меньшей мере удаленный по времени опорный кадр.

[0062] Опорный кадр включает близкий по времени опорный кадр.

[0063] Если в Р-кадре происходит полная или частичная смена сцены, то его кодируют с обращением к удаленному по времени опорному кадру.

[0064] Если Р-кадр, в котором происходит смена сцены, является кадром с частичной сменой сцены, блоки, принадлежащие участку, где не происходит изменение сцены, кодируют с использованием близкого по времени опорного кадра.

[0065] Если происходит смена сцены, блоки, принадлежащие участку, где происходит смена сцены, кодируют с использованием удаленных по времени опорных кадров.

[0066] В соответствии с еще одним аспектом настоящего изобретения способ определения вектора движения в режиме прямого предсказания заключается в том, что: (а) считывают смещенный блок в заданном кадре, при этом смещенный блок обусловливает вектор движения, который указывает на опорный кадр; и (b) определяют по меньшей мере один вектор движения в режиме прямого предсказания на основании типа опорного кадра, при этом тип опорного кадра включает удаленный по времени опорный кадр.

[0067] По меньшей мере один вектор движения приравнивают к вектору движения смещенного блока, если типом опорного кадра является удаленный по времени опорный кадр.

[0068] По меньшей мере один вектор движения приравнивают к нулю, если типом опорного кадра является удаленный по времени опорный кадр.

[0069] По меньшей мере один вектор движения является по меньшей мере одним вектором движения в режиме прямого предсказания для В-кадра.

[0070] Если типом опорного кадра является близкий по времени опорный кадр, по меньшей мере один вектор движения в режиме прямого предсказания получают путем масштабирования вектора движения, обусловленного смещенным блоком.

[0071] Следует понимать, что как предшествующее общее описание, так и последующее подробное описание настоящего изобретения носят иллюстративный и пояснительный характер и предназначены для более глубокого понимания заявленного изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0072] Прилагаемые чертежи, которые включены для облегчения понимания сути изобретения и являются неотъемлемой и составной частью настоящей заявки, иллюстрируют пример(ы) осуществления изобретения и вместе с описанием служат для пояснения принципа изобретения. В прилагаемых чертежах:

[0073] на фиг.1 показана очередность отображения, в которой каждый кадр отображается при использовании двух В-кадров;

[0074] на фиг.2 показана очередность кодирования, в которой каждый кадр отображается при использовании двух В-кадров;

[0075] на фиг.3А и 3В представлены блок-схемы, иллюстрирующие способ кодирования последовательности движущихся изображений в системе кодирования движущегося изображения в соответствии с предпочтительным примером осуществления настоящего изобретения;

[0076] на фиг.4 показан способ кодирования последовательности движущихся изображений, в которых происходит смена сцены, в соответствии с предпочтительным примером осуществления настоящего изобретения; и

[0077] на фиг.5 показан способ кодирования В-кадра в режиме прямого предсказания в соответствии с предпочтительным примером осуществления настоящего изобретения.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

[0078] В данном описании подробно рассматриваются предпочтительные примеры осуществления настоящего изобретения, которые иллюстрируются с помощью прилагаемых чертежей. По возможности, для обозначения одних и тех же или похожих элементов на чертежах будут использоваться одинаковые номера позиций.

[0079] Прежде чем переходить к описанию примера осуществления настоящего изобретения, следует начать с пояснения терминов, а именно: кадр, в котором смена сцены происходит по всему изображению, определяется как кадр с полной сменой сцены, а кадр, в котором изменение сцены происходит лишь в некоторой части изображения, определяется как кадр с частичной сменой сцены.

[0080] На фиг.3А и 3В показаны блок-схемы, иллюстрирующие способ кодирования последовательности движущихся изображений в системе кодирования движущихся изображений в соответствии с предпочтительным примером осуществления настоящего изобретения. Как видно на фиг.3А и 3В, кадры один за другим вводят из последовательности движущихся изображений (S111).

[0081] Затем определяют тип кадров (S114). Другими словами, определяют, является ли вводимый кадр Р-кадром или В-кадром. В рассматриваемом примере осуществления настоящего изобретения предполагается, что кодирование по отношению к исходному изображению выполняют заранее.

[0082] Если кадр является Р-кадром, определяют, происходит ли в этом Р-кадре смена сцены (S117). В данном случае смену сцены определяют путем сравнения текущего Р-кадра с кадром (Р или В), отображенным непосредственно перед Р-кадром.

[0083] В результате определения, сделанного на шаге S117, если в Р-кадрах происходит полная смена сцен, то текущий Р-кадр является кадром с полной сменой сцены. Соответственно, если Р-кадр определяют как кадр с полной сменой сцены, то кодирование осуществляют с обращением к удаленному по времени опорному кадру (S120).

[0084] Если текущий Р-кадр не является кадром с полной сменой сцены, определяют, является ли этот кадр кадром с частичной сменой сцены (S123).

[0085] Если Р-кадр является кадром с частичной сменой сцены, то блоки, принадлежащие тому участку изображения, где происходит смена сцены, кодируют с обращением к удаленному по времени опорному кадру с возвратом к шагу 8120 (8126).

[0086] Блоки на том участке изображения, в пределах которого смена сцены не происходит, кодируют с обращением к близкому по времени опорному кадру (8129, 8132).

[0087] В данном случае удаленный по времени опорный кадр представляет собой кадр, который хранят в базовом буфере для удаленных по времени опорных кадров, а близкий по времени опорный кадр является кадром, который хранят в базовом буфере для близких по времени опорных кадров.

[0088] Базовый буфер для близких по времени опорных кадров является буфером обратного магазинного типа (FIFO), в котором кадр, вводимый первым, первым подается на выход, при этом кадры, закодированные до истечения сравнительно короткого отрезка времени, хранят в базовом буфере для близких по времени опорных кадров.

[0089] Кадры, закодированные до истечения сравнительно длительного промежутка времени, хранят в буфере для удаленных по времени опорных кадров. Первые кадры из соответствующих наборов сцен, а именно исходный кадр, кадр с полной сменой сцены, кадр с частичной сменой сцены и тому подобное, хранят в базовом буфере для удаленных по времени опорных кадров.

[0090] Если в базовом буфере для удаленных по времени опорных кадров нет кадра с полной сменой сцены или кадра с частичной сменой сцены, то кадр со сменой сцены может быть сохранен дополнительно.

[0091] Соответственно, как показано на фиг.4, исходный кадр 10, который является первым кадром с полной сменой сцены в последовательности сцен А1, первый кадр с полной сменой сцены Р50 в последовательности сцен В1 и первый кадр с частичной сменой сцены Р120 можно хранить в базовом буфере для удаленных по времени опорных кадров. В данном случае последовательность сцен представляет собой последовательность аналогичных кадров. Например, при показе дискуссионной передачи на экране сначала появляется ведущий, затем появляется участник дискуссии А, затем опять появляется ведущий и вновь участник дискуссии А. Сцена, в которой ведущий появляется первый раз, относится к последовательности сцен А, а сцена, в которой затем появляется участник дискуссии А, относится к последовательности сцен В. Сцена, в которой ведущий появляется снова, относится к последовательности сцен А, а сцена, в которой вновь появляется участник дискуссии А, относится к последовательности сцен В. Как указано выше, когда происходит смена сцены, Р-кадр кодируют в режиме межкадрового предсказания с обращением к близкому или удаленному по времени опорному кадру вместо режима внутрикадрового предсказания. Такой подход позволяет снизить количество требуемых битов информации и, соответственно, повысить эффективность кодирования.

[0092] Описание шагов S117-S132 будет сделано со ссылкой на фиг.4. Как показано на фиг.4, если подлежащий кодированию Р-кадр Р200 представляет собой кадр с полной сменой сцены, принадлежащий последовательности сцен В2, то близкие по времени опорные кадры, хранящиеся в базовом буфере для близких по времени опорных кадров, не используют. По этой причине кадр с полной сменой сцены Р200 является первым кадром в последовательности сцен В2 и последовательность сцен для кадра с полной сменой сцены Р200 отличается от близких по времени опорных кадров, таких как Р199, Р198, Р197 и так далее, которые принадлежат к последовательности сцен А2. Таким образом, сходство кадра с полной сменой сцены Р200 с близкими по времени опорными кадрами, принадлежащими последовательности сцен А2, значительно снижается и точное кодирование по таким опорным кадрам становится невозможным.

[0093] В данном случае Р-кадр кодируют в режиме межкадрового предсказания с обращением к другим опорным кадрам Р50 и Р120, принадлежащим последовательности сцен В1, которая совпадает с последовательностью сцен В2.

[0094] С другой стороны, если в Р-кадре Р250 происходит частичное изменение сцены, то кодирование осуществляют иным образом в зависимости от двух условий. Иначе говоря, блоки, принадлежащие тому участку, где происходит частичная смена сцены, кодируют в режиме межкадрового предсказания с обращением к удаленным по времени опорным кадрам Р50 и Р120, хранящимся в базовом буфере для удаленных по времени опорных кадров. Блоки, принадлежащие тому участку, где смена сцены не происходит, кодируют в режиме межкадрового предсказания с обращением к близким по времени опорным кадрам Р249, Р248, Р247 и так далее, хранящимся в базовом буфере для близких по времени опорных кадров.

[0095] Как указано выше, после кодирования одного Р-кадра вводят следующий кадр (S159). Если этот кадр является В-кадром, то осуществляют тестирование пяти режимов предсказания (режима внутрикадрового предсказания, режима предсказания вперед, режима обратного предсказания, режима двунаправленного предсказания и режима прямого предсказания) и один из них выбирают в качестве оптимального режима кодирования (S135, S138). В данном описании будет рассматриваться, главным образом, режим прямого предсказания.

[0096] Сначала считывают один из блоков В-кадра (S141). Считывание остальных блоков может быть, конечно, выполнено последовательно. Затем проверяют тип базового буфера, в котором хранят заданный кадр.

[0097] Требуемый кадр выбирают из предшествующих кадров по отношению к данному В-кадру в очередности кодирования независимо от очередности отображения. Другими словами, заданный кадр является одним из опорных кадров, используемых для кодирования В-кадра. Поэтому заданный кадр может быть близким или удаленным по времени опорным кадром. Близкие по времени опорные кадры могут располагаться до или после В-кадра в порядке отображения, их хранят в базовом буфере для близких по времени опорных кадров. Удаленные по времени опорные кадры хранят в базовом буфере для удаленных по времени опорных кадров. Если заданный кадр является опорным кадром, удаленным по времени, то вектором движения вперед в режиме прямого предсказания для В-кадра будет являться вектор движения смещенного блока в заданном кадре. Вектор движения назад в режиме прямого предсказания для В-кадра принимают равным нулю (S150). Однако если заданный кадр является близким по времени опорным кадром, то считывают индекс опорного кадра и вектор движения, определенный для смещенного блока в заданном кадре (S144). Упомянутые индекс опорного кадра и вектор движения определяют предварительно и хранят в системном буфере. В соответствии с индексом опорного кадра определяют, указывает ли вектор движения смещенного блока в заданном кадре на удаленный по времени опорный кадр (S147). Как уже отмечалось, опорные кадры хранят в базовом буфере, который включает в себя буфер для близких по времени опорных кадров и буфер для удаленных по времени опорных кадров.

[0098] Если вектор движения смещенного блока в заданном кадре указывает на удаленный по времени опорный кадр, В-кадр кодируют с использованием следующих выражений 3 и 4 (S150).

[0099] Выражение 3:

MVf=MV,

где MV - вектор движения смещенного блока в заданном кадре, a MVf - вектор движения вперед в режиме прямого предсказания для В-кадра.

[0100] Выражение 4:

MVb=0,

где MV - вектор движения смещенного блока в заданном кадре, а MVb - вектор движения назад в режиме прямого предсказания для В-кадра.

[0101] Другими словами, если вектор движения смещенного блока в заданном кадре указывает на удаленный по времени опорный кадр, то вектор движения вперед в режиме прямого предсказания для В-кадра будет представлять собой вектор движения смещенного блока в заданном кадре, а вектор движения назад будет равен нулю.

[0102] Как показано на фиг.5, на шаге S150, если вектор движения смещенного блока в заданном кадре Р200 указывает на удаленный по времени опорный кадр Р50, параметры TRd и TR b теряют смысл в стандартных формулах 1 и 2. Другими словами, поскольку параметры TRd и TR b характеризуют временной интервал (включая даже другую последовательность сцен А2) между заданным кадром Р200, принадлежащим последовательности сцен В2, и удаленным по времени опорным кадром Р50, принадлежащим к той же самой последовательности сцен В1, вектор движения вперед и вектор движения назад в режиме прямого предсказания не могут быть рассчитаны с использованием таких параметров, как TRd и TR b.

[0103] Обращаясь к фиг.5, следует более подробно отметить следующее. При введении двух В-кадров в последовательность движущихся изображений и их кодировании первым кодируют Р-кадр Р200, который стоит раньше кадров В1 и В2 в очередности кодирования. В данном случае, поскольку Р-кадр Р200 является кадром с полной сменой сцены, то этот кадр кодируют в межкадровом режиме по удаленному по времени опорному кадру Р50, хранящемуся в базовом буфере для удаленных по времени опорных кадров. В соответствии с очередностью кодирования следующим кадром, подлежащим кодированию, является кадр В1. Поскольку кадр В1 принадлежит последовательности сцен А2, большинство блоков кодируют в режиме предсказания вперед по близким по времени опорным кадрам, принадлежащим последовательности сцен А2, или в двунаправленном режиме предсказания, в котором оба опорных кадра принадлежат последовательности сцен А2. Однако режим внутрикадрового предсказания, режим обратного предсказания или режим двунаправленного предсказания по Р-кадру Р200, принадлежащему другой последовательности сцен В2, а также режим прямого предсказания, предназначенный для получения векторов движения режима прямого предсказания по смещенному блоку в Р-кадре Р200, вероятно, не могут быть использованы как режимы кодирования для блоков кадра В1.

[0104] В противоположность этому, поскольку не только кадр В2, но также и заданный кадр Р200, используемый для определения векторов движения в режиме прямого предсказания для кадра В2, принадлежат к той же самой последовательности сцен В2, в качестве способа кодирования для большинства блоков кадра В2 выбирают режим прямого предсказания. Другими словами, после получения вектора движения каждого блока в заданном кадре Р200 в режиме межкадрового предсказания по удаленному по времени опорному кадру Р50, принадлежащему к той же самой последовательности сцен В2, векторы движения режима прямого предсказания для кадра В2 определяют по вектору движения смещенного блока в заданном кадре Р200. Поскольку кадр В2 и заданный кадр Р200 принадлежат к последовательности сцен В2, а удаленный по времени опорный кадр Р50 также принадлежит к последовательности сцен В1 и сходство между последовательностями сцен В1 и В2 очень высоко, для большинства блоков в кадре В2 в качестве способа кодирования может быть задан режим прямого предсказания. Эффективность кодирования для кадра В2, соответственно, возрастает.

[0105] С другой стороны, если вектор движения смещенного блока в заданном кадре указывает на близкий по времени опорный кадр, В-кадр кодируют с использованием стандартных выражений 1 и 2. В этом случае, поскольку близкий по времени опорный кадр, хранящийся в соответствующем базовом буфере, принадлежит к той же последовательности сцен, что и В-кадр, и другой последовательности сцен между заданным кадром и близким по времени опорным кадром не существует, вектор движения вперед и вектор движения назад режима прямого предсказания определяют с использованием стандартных выражений 1 и 2, связанных с параметрами TRd и TRb, представляющими собой временные интервалы.

[0106] Если кодируют один из блоков В-кадра, следующий блок В-кадра будут считывать и кодировать последовательно (S156). Аналогичные операции выполняют для всех блоков В-кадра. После завершения кодирования В-кадра следующий кадр вводят и кодируют так, чтобы обеспечить кодирование движущегося изображения (S159).

[0107] Как показано выше, согласно предложенному в настоящем изобретении способу кодирования движущегося изображения вектор движения вперед и вектор движения назад в режиме прямого предсказания для В-кадра определяют по-разному на основе опорного кадра, указанного вектором движения смещенного блока в заданном кадре. Применительно к В-кадрам в качестве способа кодирования, обеспечивающего повышение эффективности кодирования в целом, используют, главным образом, режим прямого предсказания.

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

[0109] Для специалистов в данной области техники очевидно, что в настоящем изобретении возможны различные изменения и отклонения. Подразумевается, что настоящее изобретение включает возможные изменения и отклонения при условии, что они находятся в пределах объема прилагаемой формулы изобретения, в том числе с учетом эквивалентных признаков.

Класс H04N7/36 с использованием временного прогноза

способы и устройство для кодирования видео с несколькими представлениями -  патент 2494569 (27.09.2013)
технологии прогнозирования для интерполяции при кодировании видео -  патент 2479941 (20.04.2013)
устройство и способ упрощенного поиска референсного кадра в видеокодировании -  патент 2404535 (20.11.2010)
адаптивная стабилизация изображения -  патент 2350036 (20.03.2009)
способ определения векторов движения в режиме прямого предсказания для в-кадра -  патент 2321966 (10.04.2008)
способ определения векторов движения в режиме прямого предсказания для в-кадра -  патент 2319318 (10.03.2008)
способ определения векторов движения в режиме прямого предсказания для в-кадра -  патент 2319317 (10.03.2008)
гибридное мелкозернистое масштабируемое видеокодирование с зависящим от времени отношением сигнал/шум -  патент 2294058 (20.02.2007)
способ кодирования движущегося изображения -  патент 2289216 (10.12.2006)
способ определения векторов движения в режиме прямого предсказания для в-кадра -  патент 2287908 (20.11.2006)

Класс H04N5/937 размещением блоков элементов изображения в промежуточном запоминающем устройстве

Наверх