Экстраполяция вектора движения для перекодировки видеопоследовательности
Иллюстрации
Показать всеИзобретение относится к способу перекодировки принимаемой видеопоследовательности с использованием экстраполированной информации движения, полученной из принимаемой видеопоследовательности. Техническим результатом является разработка способа, который позволяет минимизировать или исключить оценку движения из процесса перекодировки. Технический результат достигается тем, что способ перекодировки осуществляется путем приема первого битового потока сжатых данных изображения, имеющих те или иные параметры кодировки. Эти параметры могут относиться к ГК-структуре кадров изображений, размеру кадров изображений, к тому, являются ли кадры, представляемые во входном битовом потоке, полукадрами изображений или полными кадрами изображений, и/или образуют ли кадры изображений, представляемые во входном битовом потоке, прямую или перемежающуюся последовательность. Из входного битового потока получают первый и второй векторы движения и с приложением к ним весовых коэффициентов используют их для экстраполяции третьего вектора движения для выходного битового потока сжатых данных изображения. Выходной битовый поток, отличающийся от входного битового потока одним или несколькими параметрами, выводят в качестве перекодированного выходного сигнала. 2 н. и 20 з.п. ф-лы, 4 ил.
Реферат
Правительство Соединенных Штатов имеет оплаченную лицензию на это изобретение и право в определенных обстоятельствах требовать от патентовладельца лицензировать других в приемлемые сроки, предусмотренные сроками контракта номер 70NANB5H1171, выданного Национальным институтом стандартов и технологии.
Область техники, к которой относится изобретение
Настоящее изобретение относится к оценке движения при перекодировке преобразования кода видеопоследовательности и, в частности, к способу перекодировки принимаемой видеопоследовательности с использованием экстраполированной информации движения из принимаемой видеопоследовательности, который позволяет минимизировать или исключить оценку движения из процесса перекодировки.
Уровень техники
Способы сжатия данных позволяют передавать большие объемы данных в сравнительно узких полосах частот. Алгоритмы, используемые в системе сжатия, зависят от имеющейся полосы частот или емкости памяти, особенностей, вытекающих из варианта применения и возможностей аппаратного обеспечения, необходимого для осуществления алгоритма сжатия (кодера, а также декодера). Стандарт сжатия движущегося изображения группы экспертов по движущимся изображениям типа МПЕГ 2 (MPEG2), приведенный здесь в качестве ссылки, является общеизвестным способом сжатия видеоданных. Оценку движения, представляющего собой процесс, который используется в видеокодерах для вычисления векторов движения, обычно считают самым дорогостоящим этапом процесса кодировки. Аналогично, оценка движения, скорее всего, является самым дорогостоящим этапом процесса перекодировки, в котором видеопоследовательность декодируют, а затем вновь кодируют с новыми параметрами. С появлением телевидения высокой четкости (ТВВЧ) этот момент приобретает особое значение, поскольку телевизионным студиям приходится перекодировать битовые потоки стандарта MPEG-2 кадровых данных из одного формата в другой. Например, телевизионные студии, работающие в стандарте ТВВЧ, должны быть способны перекодировать битовый поток MPEG-2 из одной структуры группы кадров изображений (ГК-структуры) в другую, от одного размера кадра к другому и/или от одной скорости передачи битов к другой. Бывают случаи, когда этим студиям приходится перекодировать кадры MPEG-2 из полукадров изображений в полные кадры изображений или из полных кадров изображений в полукадры изображений. Бывают и такие случаи, когда студиям нужно перекодировать кадры MPEG-2 из чередующейся последовательности в прямую последовательность или из прямой последовательности в чередующуюся последовательность.
Перекодировка может также использоваться для осуществления функции “обрезки”, входной сигнал которой представляет главное изображение, а перекодированный выходной сигнал представляет фрагмент изображения в главном изображении.
Сущность изобретения
Таким образом, цель настоящего изобретения состоит в разработке способа перекодировки видеопоследовательности, который позволяет минимизировать или исключить оценку движения.
Другая цель состоит в разработке способа перекодировки видеопоследовательности, согласно которому информацию движения из входного битового потока используют для генерирования векторов движения для перекодированного выходного битового потока.
Еще одна цель состоит в разработке способа оценки движения для процесса перекодировки, который поддерживает все режимы предсказания MPEG-2.
Принципы настоящего изобретения позволяют достичь этих и других целей посредством разработки способа перекодировки, согласно которому принимают первый битовый поток сжатых данных изображения, имеющий те или иные параметры кодирования. Эти параметры могут относиться к ГК-структуре кадров изображений, представленных в первом битовом потоке, размеру кадров изображений, представленных в первом битовом потоке, к тому, являются ли кадры, представленные в первом битовом потоке, полукадрами изображений или полными кадрами изображений, и/или образуют ли кадры изображений, представленные в первом битовом потоке, прямую или чередующуюся последовательность. Из первого битового потока получают первую информацию движения и используют ее для экстраполяции второй информации движения для второго битового потока сжатых данных изображения. В качестве перекодированного выходного сигнала выводят второй битовый поток, отличающийся от первого битового потока по одному или нескольким параметрам.
Краткое описание чертежей
Чтобы полностью оценить данное изобретение и его многочисленные дополнительные достоинства, надлежит обратиться к нижеследующему подробному описанию, приведенному со ссылкой на прилагаемые чертежи, на которых:
фиг.1 иллюстрирует основные принципы экстраполяции вектора движения,
фиг.2 иллюстрирует систему перекодировки, построенную в соответствии с принципами настоящего изобретения,
фиг.3 иллюстрирует процесс перекодировки кадров изображений из одной ГК-структуры в другую в соответствии с принципами настоящего изобретения, и
фиг.4 иллюстрирует общий случай экстраполяции вектора движения и может быть использован для лучшего понимания экстраполяции вектора движения в применении к перекодировке.
Подробное описание изобретения
Фиг.1 иллюстрирует основные принципы экстраполяции вектора движения. В общем случае экстраполяция вектора движения является способом оценки движения для изображения в видеопоследовательности, когда где-либо в последовательности движение известно. На фиг.1, квадрат на изображении В, выделенный утолщенной линией, представляет отдельный блок пикселей (согласно терминологии Американской ассоциации связи (ААС), пэлов) в видеокадре изображений. Предполагается, что каждый блок в кадре занимает фиксированное положение. Согласно MPEG-2, эти блоки именуются “макроблоками”, и каждый из них состоит из блока пикселей 16х16. Сплошной стрелкой на фиг.1 показано известное движение блока, выделенного утолщенной линией, по мере того, как блок перемещается из кадра А изображений в кадр В изображений. В действительности, перемещаются изображения в блоке, но не сам блок, занимающий фиксированное положение. Это известное движение, заданное вектором движения, используется для экстраполяции движения блока, когда он перемещается из кадра В в кадр С. Пунктирной стрелкой на фиг.1 обозначен экстраполированный вектор движения. Стрелки на фиг.1, в действительности, указывают в направлении, противоположном движению, поскольку фиг.1 (как и другие прилагаемые чертежи) используют более общее копировочное соглашение, согласно которому вектор, связанный с блоком, указывает на “источник” этого блока в опорном кадре изображений. На практике данный вектор движения представляют в виде набора координат х и у, которые, соответственно, указывают горизонтальное и вертикальное движение блока между двумя кадрами изображений. При экстраполяции обычно принимают, что движение однородно по времени и “гладко” в пространстве. Соответственно, ожидается, что блок в кадре В переместится в положение, показанное в кадре С, и ожидается, что все перекрываемые им блоки имеют приблизительно такое же движение.
На фиг.2 изображена система перекодировки, построенная согласно принципам настоящего изобретения. Согласно фиг.2, система 200 перекодировки принимает входной битовый поток 201 данных изображения, сжатых согласно стандарту по MPEG-2. Этот входной битовый поток 201, который характеризуется определенной скоростью передачи битов, представляет кадры данного размера и ГК-структуры. Кадровые данные входного битового потока 201 могут состоять из полукадров изображений или полных кадров изображений и могут представлять прямую или чередующуюся последовательность. MPEG-2-декодер 2, известный из уровня техники, принимает входной битовый поток 201 и декодирует его с целью генерирования выходного сигнала в виде распакованных цифровых данных изображения 203. Декодер 202 также выдает информацию движения (т.е. векторы движения) из входного битового потока 201 в качестве отдельного выходного сигнала 204. Цифровые данные изображения 203 поступают на модуль 205 промежуточной обработки, который работает на пиксельном домене и способен известным образом изменять размер кадров изображений, представляемых цифровыми данными изображения 203. Помимо изменения размера кадра, модуль промежуточной обработки 205 может выполнять известную функцию обрезки, изолируя фрагмент изображения в главном изображении, представляемом цифровыми данными изображения 203, и выдавая выходной сигнал в виде данных, представляющих фрагмент изображения. Модуль промежуточной обработки 205 также способен осуществлять известные операции чередования и снятия чередования, которые необходимы при перекодировке прямой последовательности кадров в перемежающуюся последовательность кадров и при перекодировке чередующейся последовательности кадров в прямую последовательность кадров. Модуль 205 промежуточной обработки осуществляет свои операции по внешнему входному сигналу 206, который указывает, какую (если есть) операцию обработки надлежит выполнять, а также указывает параметры, которые надлежит использовать при такой обработке. С учетом того, что операции модуля 205 промежуточной обработки являются необязательными, если изменение размера изображения, обрезка, чередование и снятие чередования кадра в данном варианте применения перекодировки не осуществляют, то модуль 205 промежуточной обработки работает просто как модуль ретрансляции и выдает выходной сигнал в виде цифровых данных изображения 207 без какой-либо обработки пиксельного домена. В этом случае, цифровые данные изображения 207 и цифровые данные изображения 203, с очевидностью, совпадают. Альтернативно, если данный вариант применения перекодировки предусматривает осуществление одной или нескольких вышеупомянутых операций обработки, то модуль 205 промежуточной обработки осуществляет операцию(и) обработки пиксельного домена и выдает выходной сигнал в виде обработанных цифровых данных изображения 207. Цифровые данные изображения 207, обработанные или не обработанные на модуле 205 промежуточной обработки, поступают на MPEG-2-кодер 208, который повторно кодирует принятые данные изображения 207 с новыми параметрами, указанными посредством внешнего входного сигнала 209. Например, кодер 208 может кодировать цифровые данные изображения 207 с целью представления кадров с ГК-структурой изображений, отличной от ГК-структуры кадров изображений, представляемых входным битовым потоком 201, и/или может регулировать скорость передачи битов. Кодер 208 может также кодировать цифровые данные изображения 207 в виде полукадров или полных кадров. Для осуществления процесса кодирования, кодер 208 использует информацию движения, содержащуюся в выходном сигнале 204 декодера 202, с целью экстраполяции векторов движения для повторно кодированных кадров. После этого, повторно кодированные кадры выводят из системы перекодировки 200 в качестве выходного битового потока 210, состоящего из цифровых данных изображения, сжатых по MPEG-2.
Согласно указанному выше, этот выходной битовый поток 210 может представлять размер кадра и ГК-структуру кадров изображений, отличные от размера и ГК-структуры входного битового потока 201, и скоростью передачи битов выходного битового потока 210 можно управлять так, чтобы она отличалась от скорости передачи битов входного битового потока 201. Кроме того, выходной битовый поток 210 может представлять полукадры, тогда как входной битовый поток 201 представляет полные кадры, или же выходной битовый поток 210 может представлять полные кадры, тогда как входной битовый поток 201 представляет полукадры. Аналогично, выходной битовый поток 210 может представлять чередующуюся последовательность, тогда как входной битовый поток 201 представляет прямую последовательность, или же выходной битовый поток 210 может представлять прямую последовательность, тогда как входной битовый поток 201 представляет чередующуюся последовательность. Кроме того, выходной битовый поток 210 может представлять “обрезанную” версию входного битового потока 201. В сущности, система 200 перекодировки принимает входной битовый поток 201, имеющий определенные параметры, и перекодирует входной битовый поток 201 с целью генерирования выходного битового потока 210, отличающегося от входного битового потока 201 одним или несколькими параметрами. Эта система 200 перекодировки уникальна тем, что использует информацию движения из входного битового потока 201 для экстраполяции информации движения для выходного битового потока 210.
Фиг.3 иллюстрирует процесс перекодировки изображений от одной ГК-структуры кадров изображений в другую, согласно принципам настоящего изобретения. Согласно фиг.3, входной битовый поток представляет кадры, имеющие ГК-структуру, состоящую из независимо кодированного кадра (“I-кадра”), кадра, кодированного с двунаправленным предсказанием (“В-кадра”), В - кадра и кадра, кодированного с предсказанием (“Р-кадра”).
Таким образом, входной битовый поток представляет ГК-структуру “IBBP”. Согласно фиг.3, два следующих друг за другом В-кадра входного битового потока обозначены для ясности как В1 и В2. Этот входной битовый поток аналогичен входному битовому потоку 201 на фиг.2. В ходе процесса перекодировки, входной битовый поток, имеющий ГК-структуру “IBBP”, преобразуют в выходной битовый поток, имеющий ГК-структуру “IPPP”. Согласно фиг.3, три следующих друг за другом Р-кадра выходного битового потока обозначаются для ясности P1, P2 и Р3. Этот выходной битовый поток аналогичен выходному битовому потоку 210 по фиг.2. Чтобы не загромождать чертеж, на фиг.3 не изображены макроблоки, составляющие отдельные кадры изображений. Для осуществления процесса перекодировки, векторы движения I-P и Р-В2 из входного битового потока используют для экстраполяции векторов движения для выходного битового потока. Например, согласно фиг.3, вектор движения I-P из входного битового потока можно использовать для оценки вектора движения Р1-Р2 для выходного битового потока. Аналогично, вектор движения Р-В2 из входного битового потока можно использовать для оценки вектора движения Р2-Р3 для выходного битового потока.
Теперь рассмотрим процесс экстраполяции вектора движения более подробно со ссылкой на фиг.4, где изображены четыре кадра видеопоследовательности. В принципе, эти четыре кадра будут присутствовать в выходном битовом патоке, как и во входном битовом потоке, и так обычно происходит на практике.
В любом случае на фиг.4 кадр Т - это “конечный” кадр, движение которого относительно кадра R подлежит определению. Оба эти кадра будут присутствовать в выходном битовом потоке. Кадры KR и КТ - это кадры, относительное движение которых известно из входного битового потока. Согласно принципам настоящего изобретения, известное движение между кадрами KR и КТ можно использовать для экстраполяции векторов движения для выходного битового потока. Кадры KR и КТ именуются “базовой парой”, а кадры R и Т именуются “текущей парой”. Для оценки движения текущей пары можно использовать несколько базовых пар. В общем случае, для этой цели потенциально пригодна любая базовая пара, близкая по времени к текущей паре.
В ходе процесса перекодировки, бывает так, что некоторые блоки в кадре Т не принимают информацию экстраполяции движения. Это значит, что может случиться так, что некоторые блоки в кадре Т не перекрываются движением никаких блоков в близлежащих базовых парах. Такие блоки в кадре Т можно просто независимо кодировать или вычислять их движение общепринятым способом. Альтернативно, движение таких блоков можно выводить или интерполировать из близлежащих блоков. Однако в большинстве случаев несколько блоков в базовых парах будут перекрывать большинство блоков в кадре Т, и тогда надлежит выбирать наилучший вектор движения среди нескольких пригодных векторов движения. Каждый перекрывающий блок из базовой пары обеспечивает один пригодный вектор движения. При выборе из множества пригодных векторов движения полезно сопоставлять каждому вектору движения весовой коэффициент (вес) и выбирать вектор движения с наивысшим весовым коэффициентом. Используя в качестве примера кадры, представленные на фиг.4, весовой коэффициент для каждого пригодного вектора движения (MV) можно вычислять следующим образом:
Полный вес (MV)=(Вес перекрытия)·(Вес кадра)·(Вес округления), (1)
где Вес перекрытия=(число пикселей в блоке кадра КТ, которые перекрывают пиксели в соответствующем блоке кадра Т) (2)
Вес кадра=I/[1+abs (Временной вес)], (3)
где Временной вес=(tKT-tKR)·[(tKR+tKT)-(tT+tR)] (4)
и
Вес округления=[1-(ошибка округления по горизонтали)]·[1 - (ошибка округления по вертикали)] (5)
В вышеприведенных уравнениях (1) - (5) tKR, tKT, tR и tT обозначают моменты времени отображения кадров, соответственно, KR, КТ, R и Т. Обозначения · и abs представляют, соответственно, оператор умножения и оператор взятия абсолютного значения. Ошибки округления по вертикали и горизонтали возникают, когда экстраполированный вектор округляют до ближайшего полупикселя, и, соответственно, каждая из них принимает значения от нуля (0) до одной второй (1/2). Хотя уравнения (1)-(5) приведены в применении к кадрам, представленным на фиг.4, ясно, что эти общие уравнения можно применять к другим кадровым конфигурациям.
Помимо способа простого выбора пригодного вектора движения, имеющего наибольший весовой коэффициент, настоящее изобретение предусматривает и другие способы получения наилучшего(их) вектора(ов) движения для данного блока. Согласно альтернативному варианту реализации, можно вычислять взвешенное среднее, в котором весовые коэффициенты вычисляют с использованием вышеприведенных уравнений (1)-(5). С помощью этих весовых коэффициентов можно вычислить наилучший вектор движения по составляющим путем умножения весовых коэффициентов на х- и у-составляющие соответствующих векторов движения, с целью генерирования взвешенных составляющих, суммирования взвешенных составляющих, и деления суммы взвешенных составляющих на сумму весовых коэффициентов.
Вышеописанный способ взвешенного среднего можно также осуществлять по “кластерам”. Это значит, что если на векторной диаграмме пригодных векторов движения образуется более одного кластера (т.е. замкнутой группировки) векторов движения, то можно вычислять наилучший вектор движения для каждого кластера. Это будет центроид или “центр масс” кластера. После этого можно производить окончательный выбор наилучшего вектора движения из наилучших векторов отдельных кластеров.
Следует заметить, что наилучший вектор движения можно также выбирать среди совокупности пригодных векторов движения, вовсе не используя весовые коэффициенты. Например, для выявления наилучшего вектора движения можно производить расчеты среднеквадратической ошибки (СКО) или среднего абсолютного отклонения (САО), представляющие пиксельные разности между блоками. Использование расчетов СКО и САО, конечно, хорошо известно специалистам в данной области техники.
Следующий алгоритм, представленный в таблице 1, заключает в себе этапы нахождения наилучшего вектора движения для каждого возможного режима предсказания конечного кадра (например, кадра Т по фиг.4). Эти этапы, представленные псевдокодом, можно программировать на любом языке программирования, известном специалистам в данной области.
Таблица 1 Псевдокод для нахождения наилучшего вектора движения
- для каждого режима предсказания, подлежащего рассмотрению для конечного кадра (текущей пары),
- для каждого полукадра или кадра применимого режима (верхний полукадр, нижний полукадр, кадр),
- инициализировать таблицу, индексируемую блоками в конечном кадре,
- для каждой базовой пары, признанной пригодной для текущей пары (например, базовая пара обычно считается “пригодной”, если она близка по времени в пределах заранее установленного диапазона),
- для каждого вектора движения каждого независимо кодированного блока в конечном кадре базовой пары,
- определить, куда вектор перемещает блок в конечном кадре,
- вычислить весовой коэффициент вектора или оценить степень его совпадения (например, СКО, САО),
- сохранить информацию в ячейках таблицы соответствующих блоков конечного кадра,
- для каждого блока в конечном кадре,
- определить наилучший вектор движения для полукадра или кадра,
- для каждого блока в конечном кадре,
- определить наилучший режим предсказания и соответствующий(е) вектор(ы) движения.
Заметим, что в некоторых режимах предсказания, например, предсказания полукадра для полных кадров и двух штрихов для Р-кадров, с данным блоком связаны множественные векторы движения. Кроме того, для В-кадров, кодер должен принимать решение для каждого блока, использовать ли прямое предсказание, обратное предсказание или оба предсказания. В некоторых случаях приемлемых результатов не дает ни один из режимов предсказания. Это происходит тогда, когда не существует ни одного пригодного вектора движения или, когда наилучший вектор движения, определяемый согласно одному из вышеизложенных способов, недостаточно пригоден для данного варианта применения. Кроме того, бывают случаи, когда кодер может просто использовать векторы движения (не изменяя их) из входной последовательности для выходной последовательности.
На фиг.4 отражена ситуация, когда для полных кадров используют предсказание полного кадра, без изменения размера. Пусть с блоком в кадре КТ связан вектор vK, тогда вектор v, связанный с одним или несколькими блоками в кадре Т, будет иметь следующий вид:
v=Tv·vK (6)
где Tv=(tT-tR)/(tKT-tKR) (7)
Здесь, Tv - это временной масштабный коэффициент для векторов, a tKR, tKT, tR и tT обозначают моменты времени отображения, соответственно, кадров KR, КТ, R и Т. В случае полных кадров, полукадры которых отображают в разные моменты времени, возникает неопределенность в моментах времени отображения. В таких случаях нужно брать усредненные моменты времени по соответствующим полукадрам. Чтобы отследить движение блока из кадра КТ в кадр Т, рассмотрим точку в верхнем левом углу отдельного блока. Применительно к фиг.4, это - точка qK в кадре КТ и точка q в кадре Т. Движение точки q задается следующим образом:
g=qK-(Tb·vK), (8)
где Tb=(tT-tKT)/(tKT-tKR) (9)
В процессе перекодировки, предусматривающем изменение размера кадров, кадры KR и КТ не будут иметь тот же размер, что и кадры R и Т. Изменение размера учитывается следующим образом. Пусть Rx и Ry представляют собой коэффициенты увеличения кадров, соответственно, по вертикали и по горизонтали.
Это значит:
Rx=(ширина кадра Т)/(ширина кадра КТ) (10)
и
Ry=(высота кадра Т)/(высота кадра КТ) (11)
С учетом изменения размера кадров уравнения (6) и (8) приобретают вид:
v=R(Tv·vK) (12)
и
q=R(qK-(Tb·vK)) (13)
В вышеприведенных уравнениях использована форма записи:
R(V)=(Vx·Rx, Vy·Ry), (14)
где V - это точка (пиксель) или вектор с двумя составляющими. Заметим, что R относится к различным размерам кадра, но не к различным размерам блока.
Изменение размера применяют не только к кадрам измененного размера, но также к соответствующим полукадрам и полным кадрам и к соответствующим предсказаниям полукадра и полного кадра. Чтобы учесть предсказание полукадра (применительно к полукадру и к полному кадру),заметим, что нижние полукадры на 0.5 пикселя ниже, чем указывают их координаты. Вектор смещения, dX, полукадра или полного кадра задают следующим образом:
dX=(0,0), если Х - это верхний полукадр или полный кадр (15)
и
dX=(0,05), если Х - это нижний полукадр. (16)
Применяя это к уравнениям (12) и (13), получаем новые уравнения для v и q:
v=RTv[vK+dKR-dKT)+dT-dR (17)
и
q=R(qK+dKT-[Tb(vK+dKR-dKT)])-dT (18)
Наконец, пусть модуль 205 промежуточной обработки, изображенный на фиг.2, обрезает изображения. Вышеприведенные уравнения можно применять следующим образом. Положим, что кадры R и Т имеют тот же размер, что исходный, при этом выходные изображения внедрены в них в надлежащем месте. Это место задает интересующую нас область. Для экстраполяции используются только те блоки, которые перекрывают интересующую нас область. Тогда фиг.1-4, а также выведенные из них уравнения применяют к этому случаю.
Вышеприведенное изложение может создать впечатление однородности: если кадр Т является полным кадром, использующим предсказание на основе полного кадра, то кадр КТ также является полным кадром, использующим предсказание на основе полукадра. Однако рассмотренные выше формулы являются более общими, о чем свидетельствуют нижеприведенные примеры.
Пусть кадр Т использует предсказание на основе полного кадра, а кадр КТ использует предсказание на основе полукадра. Согласно настоящему изобретению, неважно, является ли кадр КТ полукадром или полным кадром. В любом случае, векторы движения кадра КТ основаны на полукадре, так что Ry=2 и Rx=1. Если кадр КТ является полным кадром, то его блоки составляют 16×8; однако, это ясно из приведенных выше математических формул. Если блок использует предсказание 16×8, то две его половины должны обрабатываться как два отдельных блока.
Предположим теперь, что и кадр Т, и кадр КТ использует предсказание на основе полукадра. В данном случае, поскольку векторы в обоих кадрах относятся к изображениям одного и того же размера, изменение размера не требуется, и Rx=Ry=l. Таким образом, при осуществлении настоящего изобретения для уравнений не имеет значения, используются ли сочетание полукадров и полных кадров или предсказаний полукадра и полного кадра.
Как явствует из вышеприведенного изложения, если блок в кадре КТ использует два штриха, то два его вектора применяются по отдельности, возможно, с различными весовыми коэффициентами. Кроме того, оценивание кадра Т для двух штрихов весьма напоминает его оценивание для двунаправленной интерполяции. То есть, каждый вектор оценивают по отдельности, после чего оценивают их комбинацию. Соответственно, настоящее изобретение поддерживает все режимы предсказания MPEG-2: предсказание полного кадра, полукадра и два штриха для полных кадров; и предсказание полукадра, два штриха и 16×8 для полукадров.
Заметим, что приведенные здесь уравнения, в общем случае, применимы к равномерному прямолинейному движению, а не к неравномерному движению. Неравномерное движение может быть обусловлено, например, дрожанием камеры или постоянным ускорением объектов в кадрах. В таких случаях неравномерного движения можно выходить из положения следующим образом. Что касается неравномерного движения, связанного с дрожанием камеры, целесообразно сначала выносить за скобки общее движение, а затем сравнивать движение блоков. С этой целью можно использовать известные расчеты СКО и САО. Что касается движения, связанного с постоянным ускорением объектов, то это движение можно экстраполировать с использованием не двух, а трех кадров.
Хотя выше были проиллюстрированы и описаны варианты реализации настоящего изобретения, рассматриваемые как преимущественные, специалистам в данной области ясно, что оно предусматривает различные изменения и модификации, а также замены его элементов эквивалентными им элементами, не выходящими за пределы истинного объема настоящего изобретения. Кроме того, оно допускает многочисленные модификации, не противоречащие его сущности. Поэтому предусматривается, что настоящее изобретение не ограничивается отдельными вариантами его реализации, изложенными здесь в качестве наилучшего режима осуществления изобретения, и что настоящее изобретение включает в себя все варианты реализации, охватываемые объемом патентной защиты прилагаемой формулы изобретения.
1. Способ перекодировки данных изображения, согласно которому принимают входной битовый поток сжатых данных изображения, имеющих первую структуру группы кадров изображений, получают первый вектор движения из входного битового потока сжатых данных изображения, формируют выходной битовый поток сжатых данных изображения на основе указанных входных данных изображения, отличающийся тем, что получают второй вектор движения из входного битового потока сжатых данных изображения, прикладывают весовые коэффициенты к первому и второму вектору движения, используют упомянутый первый вектор движения для экстраполяции третьего вектора движения для указанного выходного битового потока сжатых данных изображения, если весовой коэффициент упомянутого первого вектора движения больше, чем весовой коэффициент упомянутого второго вектора движения, при этом выходной битовый поток сжатых данных изображения имеет вторую структуру группы кадров изображений, отличную от первой структуры группы кадров изображений.
2. Способ по п.1, отличающийся тем, что дополнительно управляют скоростью передачи битов выходного битового потока сжатых данных изображения таким образом, чтобы скорость передачи битов входного битового потока отличалась от скорости передачи битов выходного битового потока.
3. Способ по п.1, отличающийся тем, что дополнительно регулируют размер кадров изображений, представляемых входным битовым потоком сжатых данных изображения таким образом, чтобы кадры изображений, представляемые выходным битовым потоком сжатых данных изображения, имели размер, отличный от размера кадров изображений, представляемых входным битовым потоком сжатых данных изображения.
4. Способ по п.2, отличающийся тем, что дополнительно регулируют размер кадров изображений, представляемых входным битовым потоком сжатых данных изображения, с тем, чтобы кадры изображений, представляемые выходным битовым потоком сжатых данных изображения, имели размер, отличный от размера кадров изображений, представляемых входным битовым потоком.
5. Способ по п.4, отличающийся тем, что дополнительно кодируют кадры изображений, представляемые выходным битовым потоком сжатых данных изображения, как полукадры изображений, когда кадры изображений, представляемые входным битовым потоком сжатых данных изображения, кодированы как полные кадры изображений.
6. Способ по п.4, отличающийся тем, что дополнительно кодируют кадры изображений, представляемые выходным битовым потоком сжатых данных изображения, как полные кадры изображений, когда кадры изображений, представляемые входным битовым потоком сжатых данных изображения, кодированы как полукадры изображений.
7. Способ по п.4, отличающийся тем, что дополнительно чередуют кадры изображений, представляемые входным битовым потоком сжатых данных изображения, когда кадры изображений, представляемые входящим битовым потоком сжатых данных изображения, принимают в прямой последовательности, с тем, чтобы кадры изображений, представляемые выходным битовым потоком сжатых данных изображения, вывести в чередующейся последовательности.
8. Способ по п.4, отличающийся тем, что дополнительно снимают чередование кадров изображений, представляемых входным битовым потоком сжатых данных изображения, когда кадры изображений, представляемые входным битовым потоком сжатых данных изображения, принимают в чередующейся последовательности, с тем, чтобы кадры изображений, представляемые выходным битовым потоком сжатых данных изображения, вывести в прямой последовательности.
9. Способ по п.1, отличающийся тем, что дополнительно кодируют кадры изображений, представляемые выходным битовым потоком сжатых данных изображения, как полукадры изображений, когда кадры изображений, представляемые входным битовым потоком сжатых данных изображения, кодированы как полные кадры изображений.
10. Способ по п.1, отличающийся тем, что дополнительно кодируют кадры изображений, представляемые выходным битовым потоком сжатых кадров изображения, как полные кадры изображений, когда кадры изображений, представляемые входным битовым потоком сжатых кадров изображения, кодированы как полукадры изображений.
11. Способ по п.1, отличающийся тем, что дополнительно чередуют кадры изображений, представляемые входным битовым потоком сжатых данных изображения, когда кадры изображений, представляемые входным битовым потоком сжатых данных изображений, принимают в прямой последовательности, с тем, чтобы кадры изображений, представляемые выходным битовым потоком сжатых данных изображения, вывести в чередующейся последовательности.
12. Способ по п.1, отличающийся тем, что дополнительно имеют чередование кадров изображений, представляемых входным битовым потоком сжатых данных изображения, когда кадры изображений, представляемые входным битовым потоком сжатых данных изображения, принимают в чередующейся последовательности, с тем, чтобы кадры изображений, представляемые выходным битовым потоком сжатых данных изображения, вывести в прямой последовательности.
13. Способ по п.1, отличающийся тем, что указанный входной битовый поток сжатых данных изображения представляет главное изображение, при этом выходной битовый поток сжатых данных изображения представляет часть главного изображения.
14. Способ по п.1, отличающийся тем, что при получении первого и второго вектора движения определяют, находится ли проверяемый вектор движения в заранее определенном временном диапазоне, и получают проверенный вектор движения, если определяют, что проверяемый вектор движения находится в заранее определенном временном диапазоне.
15. Способ по п.1, отличающийся тем, что при взвешивании первого и второго вектора движения вычисляют, по меньшей мере, один из следующих параметров: вес перекрытия, временной вес и вес округления для выбранного вектора движения, и получают взвешенное значение для выбранного вектора движения на основании, по меньшей мере, одного из вычисленных весов.
16. Способ перекодировки данных изображения, согласно которому принимают входной битовый поток сжатых данных изображения, имеющих входной параметр кодировки, получают первый вектор движения из входного битового потока сжатых данных изображения, формируют выходной битовый поток сжатых данных изображения на основе указанных входных данных изображения, отличающийся тем, что получают второй вектор движения из входного битового потока сжатых данных изображения, прикладывают весовые коэффициенты к первому и второму вектору движения, используют упомянутый первый вектор движения для экстраполяции третьего вектора движения для указанного выходного битового потока сжатых данных изображения, если весовой коэффициент упомянутого первого вектора движения больше, чем весовой коэффициент второго вектора движения, при этом выходной битовый поток имеет выходной параметр кодировки, который отличается от входного параметра кодировки входного битового потока.
17. Способ по п.16, отличающийся тем, что при получении первого и второго векторов движения определяют, находится ли проверяемый вектор движения в заранее определенном временном диапазоне, и получают проверенный вектор движения, если определяют, что проверяемый вектор движения находится в заранее определенном временном диапазоне.
18. Способ по п.16, отличающийся тем, что при взвешивании первого и второго векторов движения вычисляют, по меньшей мере, один из нижеследующих параметров: вес перекрытия, временной вес и вес округления для выбранного вектора движения, и получают взвешенное значение для выбранного вектора движения на основании, по меньшей мере, одного из вычисленных весов.
19. Способ по п.16, отличающийся тем, что при взвешивании первого и второго векторов движения вычисляют, по меньшей мере, один из нижеследующих параметров: вес перекрытия, временной вес и вес округления для выбранного вектора движения, и получают взвешенные значения для х- и у-составляющих выбранного вектора движения на основании, по меньшей мере, одного из вычисленных весов.
20. Способ по п.16, отличающийся тем, что входной параметр кодировки представляет собой, по меньшей мере, один из параметров: структура группы кадров изображений, размер кадра изображений, скорость передачи битов, формат полного кадра изображений, формат полукадра изображений, прямая последовательность и чередующаяся последовательность.
21. Способ по п.16, отличающийся тем, что выходной параметр кодировки предст