Предсказание движения при видеокодировании

Иллюстрации

Показать все

Изобретение относится к технологиям кодирования и декодирования видеоданных. Техническим результатом является снижение влияния ошибок округления при двунаправленном и многонаправленном предсказании за счет обеспечения регулировки точности сигналов предсказания. Предложен способ предсказания с компенсацией движения при видеокодировании. Способ включает в себя этап, на котором определяют блок пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность сигнала предсказания. Первая точность указывает количество битов, необходимых для представления значений упомянутых пикселей. Далее согласно способу определяют тип предсказания упомянутого блока. Определяют первое местоположение опорных пикселей в первом опорном блоке и второе местоположение опорных пикселей во втором опорном блоке. 3 н. и 20 з.п. ф-лы, 13 ил.

Реферат

Область техники

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

Предпосылки создания изобретения

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

Многие гибридные видеокодеки, например соответствующие стандартам H.263 и H.264 Международного союза электросвязи - Технического совета (ITU-T, International Telegraphic Union - Technical Board), кодируют видеоинформацию в два этапа. На первом этапе предсказывают значения пикселей в определенной области изображения или «блоке». Эти значения пикселей могут предсказываться, например, с помощью механизмов компенсации движения, в которых применяются поиск и указание на область в одном из ранее кодированных видеокадров (или в позднее кодируемом видеокадре), близко соответствующую кодируемому блоку. Кроме того, значения пикселей могут быть предсказаны с помощью пространственных механизмов, в которых применяются поиск и указание взаимосвязи пространственных областей, например, с использованием, заданным образом, значений пикселей вокруг кодируемого блока.

При этом подходы, в которых применяется предсказание с использованием видеоинформации из предыдущих или последующих изображений, могут называться способами внешнего предсказания (Inter prediction), тогда как подходы, в которых применяется предсказание с использованием видеоинформации внутри одного изображения, могут называться способами внутреннего предсказания (Intra prediction).

На втором этапе выполняют кодирование ошибки между предсказанным блоком пикселей и исходным блоком пикселей. Обычно это выполняется путем преобразования разности значений пикселей с использованием заданного преобразования. Для этого обычно используется дискретное косинусное преобразование (DCT, Discrete Cosine Transform) или его варианты. После преобразования разности выполняется квантование и энтропийное кодирование преобразованной разности.

Путем изменения точности процесса квантования кодер может управлять балансом между точностью представления пикселей (другими словами, качеством изображения) и размером результирующего представления кодированного видео (другими словами, размером файла или битовой скоростью передачи).

Один из примеров процедуры кодирования проиллюстрирован на фиг.1.

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

После применения процессов предсказания пикселей и декодирования ошибки декодер объединяет сигналы предсказания и ошибки предсказания (значения пикселей) для формирования выходного видеокадра.

Декодер (и кодер) может также применять дополнительный процесс фильтрации для повышения качества выходного видеосигнала перед его отображением и/или сохранением в качестве опорного для предсказания последующих кадров в видеопоследовательности.

Один из примеров процедуры декодирования проиллюстрирован на фиг.2.

Предсказание с компенсацией движения (Motion Compensated Prediction) представляет собой технологию, применяемую в стандартах сжатия видеоданных для уменьшения размера кодированного битового потока. В технологии МСР предсказание для текущего кадра формируют с использованием ранее кодированного кадра (кадров), при этом кодируют и передают в декодер только разность между исходным и предсказанным сигналами, представляющими текущий и предсказанный кадр. Сигнал предсказания, представляющий предсказанный кадр, формируют, сначала разбивая текущий кадр на блоки, например макроблоки, и затем находя наилучшее совпадение в опорном кадре для каждого блока. Таким образом определяют движение блока относительно опорного кадра, и информацию об этом движении кодируют в битовый поток в виде векторов движения. Декодер способен в точности реконструировать предсказанный кадр с помощью декодирования данных векторов движения, кодированных в битовом потоке.

Один из примеров структуры предсказания представлен на фиг.8. Прямоугольниками обозначены кадры, заглавные буквы внутри прямоугольников обозначают типы кодирования, числа внутри прямоугольников представляют номера кадров (в порядке декодирования), а стрелки указывают на зависимости в предсказании. В данном примере I-кадры представляют собой кадры внутреннего кодирования, для которых не применяются опорные изображения, и которые, следовательно, могут декодироваться независимо от декодирования остальных кадров. P-кадры представляют собой так называемые изображения с одинарным предсказанием, то есть они ссылаются на один опорный кадр, а B-кадры представляют собой кадры с двойным предсказанием, для которых в качестве опорных используются два других изображения, или два блока предсказания внутри одного опорного изображения. Другими словами, опорные блоки, связанные с B-кадром, могут находиться в одном опорном кадре (как показано двумя стрелками от кадра P7 к кадру B8 на фиг.8) или в двух различных опорных кадрах (как показано, например, стрелками от кадра P2 и кадра B3 к кадру B4 на фиг.8).

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

В некоторых системах кадры с одинарным предсказанием называются также кадрами с однонаправленным предсказанием, а кадры с двойным предсказанием называются кадрами с двунаправленным предсказанием.

Векторы движения не обязательно должны иметь точность до целого пикселя, но могут также иметь точность до дробной части пикселя. То есть векторы движения могут указывать на дробнопиксельные позиции/местоположения в опорном кадре, которые могут относиться, например, к местоположениям «между» пикселями изображения. Для получения отсчетов в дробнопиксельных местоположениях в процессе МСР могут применяться интерполяционные фильтры. Имеющиеся стандарты видеокодирования описывают, каким образом декодер может получать отсчеты с дробнопиксельной точностью с помощью задания интерполяционного фильтра. Например, в стандарте MPEG-2 максимальная точность векторов движения равна половине пикселя, при этом отсчеты в полупиксельных местоположениях получают простым усреднением соседних отсчетов в целопиксельных положениях. Стандарт видеокодирования H.264/AVC поддерживает векторы движения до четверть-пиксельной точности. Кроме того, в стандарте видеокодирования H.264/AVC полупиксельные отсчеты получают с применением симметричных и разделяемых 6-точечных фильтров, тогда как четверть-пиксельные отсчеты получают усреднением ближайших полупиксельных или целопиксельных отсчетов.

В типовых видеокодеках информация о движении указывается векторами движения, связанными с каждым блоком изображения с компенсацией движения. Каждый из этих векторов движения представляет смещение блока изображения на изображении, подлежащем кодированию (в кодере) или декодированию (в декодере), относительно исходного блока предсказания в одном из ранее кодированных или декодированных изображений (или кадров). Для эффективного представления векторов движения эти векторы обычно кодируются дифференциально по отношению к предсказанному вектору движения, специфичному для блока. В типовом видеокодеке предсказанные векторы движения создаются заранее заданным образом, например путем вычисления среднего для кодируемых или декодируемых векторов движения смежных блоков.

В типовых видеокодеках разностный сигнал предсказания после компенсации движения сначала преобразуют с использованием ядра преобразования (подобного DCT), а затем кодируют. Причина этого заключается в том, что в разностном сигнале часто имеется некоторая корреляция и преобразование во многих случаях позволяет уменьшить эту корреляцию и обеспечить более эффективное кодирование.

В типовых видеокодерах для нахождения оптимальных режимов кодирования, например, требуемого режима макроблока и связанных векторов движения, используется функция стоимости Лагранжа. Функция стоимости этого типа использует весовой коэффициент λ для связывания точного или оценочного искажения изображения, возникающего вследствие применения способов кодирования с потерями, и точного или оценочного объема информации, требуемого для представления значений пикселей в области изображения.

Она может быть представлена следующей формулой:

C = D + λ R , ( 1 )

где C - величина стоимости Лагранжа, которая должна быть минимизирована, D - искажение изображения (например, среднеквадратическая ошибка между значениями пикселей в блоке исходного изображения и блоке кодированного изображения) при использовании рассматриваемых в настоящий момент режима и векторов движения, λ - множитель Лагранжа и R - количество битов, необходимых для представления требуемых данных для реконструкции блока изображения в декодере (включая объем данных для представления возможных векторов движения).

В некоторых гибридных видеокодеках, например в H.264/AVC, для повышения эффективности кодирования используют двунаправленное предсказание с компенсацией движения. При двунаправленном предсказании сигнал предсказания для блока может формироваться путем объединения, например путем усреднения, двух блоков предсказания с компенсацией движения. Эта операция усреднения может также включать округление сверху или снизу, что может вносить ошибки округления.

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

На фиг.9 проиллюстрирован пример усреднения двух блоков предсказания с компенсацией движения при применении округления. Значения отсчетов первого опорного блока предсказания вводят (902) в первый фильтр (904), в котором для фильтрации используются значения двух или более целых пикселей вблизи точки, на которую указывает вектор движения. К фильтрованному значению может быть добавлено (906) смещение округления. Значение после фильтрации, сложенное со смещением округления, сдвигают вправо (908) на x битов, то есть делят на 2x, для получения первого сигнала P1 предсказания. Аналогичную операцию выполняют со вторым опорным блоком предсказания, что проиллюстрировано блоками 912, 914, 916 и 198, и получают второй сигнал P2 предсказания. Первый сигнал P1 предсказания и второй сигнал P2 предсказания объединяют, например, путем суммирования сигналов P1, P2 предсказания. К объединенному сигналу может быть добавлено (920) смещение округления, после чего результат сдвигают вправо на у битов, то есть делят на 2y. Округление может выполняться сверху, если смещение округления положительно, или снизу, если смещение округления отрицательно. Направление округления может быть всегда одинаковым или может изменяться время от времени, например, для каждого кадра. Направление округления может сигнализироваться в битовом потоке, чтобы в процессе декодирования использовалось то же направление округления.

Однако эти способы повышают сложность, поскольку при усреднении результатов двунаправленного предсказания необходимо записывать две отдельные ветви кода. Кроме того, процедуры оценки движения в кодере необходимо дублировать для случаев округления и усечения.

Сущность изобретения

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

В некоторых примерах осуществления настоящего изобретения более высокую точность сигналов предсказания используют до тех пор, пока эти сигналы предсказания не будут объединены для получения сигнала двунаправленного или многонаправленного предсказания. Точность сигнала двунаправленного или многонаправленного предсказания может затем быть понижена путем сдвига до точности, подходящей для последующей обработки. Соответственно, отсутствует необходимость включения указания на направление округления в битовый поток или считывания такого указания из битового потока.

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

определение блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;

определение типа упомянутого блока;

если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,

определение первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;

использование упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

использование упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

объединение упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и

понижение точности упомянутого объединенного предсказания до упомянутой первой точности.

В соответствии со вторым аспектом настоящего изобретения предлагается устройство, содержащее:

процессор и

блок памяти, функционально связанный с упомянутым процессором и содержащий:

компьютерный код, сконфигурированный для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;

компьютерный код, сконфигурированный для определения типа упомянутого блока;

компьютерный код, сконфигурированный, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,

для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;

для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и

для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.

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

определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;

определения типа упомянутого блока;

если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,

определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;

использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и

понижения точности упомянутого объединенного предсказания до упомянутой первой точности.

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

определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;

определения типа упомянутого блока;

если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков,

определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;

использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и

понижения точности упомянутого объединенного предсказания до упомянутой первой точности.

В соответствии с пятым аспектом настоящего изобретения предлагается устройство, содержащее:

входной модуль для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;

модуль определения для определения типа упомянутого блока; при этом, если это определение показывает, что упомянутый блок представляет собой блок, предсказанный с использованием двух или более опорных блоков, то упомянутый модуль определения сконфигурирован также для определения первого местоположения опорных пикселей в первом опорном блоке и второго местоположения опорных пикселей во втором опорном блоке;

первый модуль предсказания для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

второй модуль предсказания для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

модуль объединения для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и

модуль сдвига для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.

В соответствии с шестым аспектом настоящего изобретения предлагается устройство, содержащее:

средство для определения блока пикселей представления видеоданных, кодированного в битовом потоке, при этом значения упомянутых пикселей имеют первую точность;

средство для определения типа упомянутого блока;

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

средство для использования упомянутого первого местоположения опорных пикселей для получения первого предсказания, при этом упомянутое первое предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

средство для использования упомянутого второго местоположения опорных пикселей для получения второго предсказания, при этом упомянутое второе предсказание имеет вторую точность, которая выше, чем упомянутая первая точность;

средство для объединения упомянутого первого предсказания и упомянутого второго предсказания для получения объединенного предсказания и

средство для понижения точности упомянутого объединенного предсказания до упомянутой первой точности.

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

Краткое описание чертежей

Для понимания настоящего изобретения далее, в качестве примеров, будут осуществляться ссылки на приложенные чертежи.

На фиг.1 показана схема электронного устройства, в котором применяются некоторые варианты осуществления настоящего изобретения.

На фиг.2 показано пользовательское устройство, подходящее для применения некоторых вариантов осуществления настоящего изобретения.

На фиг.3 показаны электронные устройства, в которых применяются варианты осуществления настоящего изобретения и которые связаны с помощью беспроводных и проводных сетевых соединений.

На фиг.4a показана схема одного из вариантов осуществления настоящего изобретения, реализованного в кодере.

На фиг.4b показана схема одного из вариантов осуществления модуля внешнего предсказания в соответствии с некоторыми вариантами осуществления настоящего изобретения.

На фиг.5 показана блок-схема, иллюстрирующая работу одного из вариантов осуществления настоящего изобретения в отношении кодера, показанного на фиг.4a.

На фиг.6 показана схема декодера в соответствии с некоторыми вариантами осуществления настоящего изобретения.

На фиг.7 показана блок-схема алгоритма, иллюстрирующая работу одного из вариантов осуществления настоящего изобретения в отношении декодера, показанного на фиг.6.

На фиг.8 показан один из примеров структуры предсказания в видеопоследовательности.

На фиг.9 показан один из примеров битового потока изображения.

На фиг.10 показан один из примеров двунаправленного предсказания с использованием округления.

На фиг.11 показан один из примеров двунаправленного предсказания в соответствии с примером осуществления настоящего изобретения.

На фиг.12 показан один из примеров некоторых возможных направлений предсказания для вектора движения.

Подробное описание изобретения

Ниже более подробно описываются соответствующее устройство и возможные механизмы для уменьшения объема информации, передаваемой в системах видеокодирования, а также более оптимальные отображения кодовых слов в некоторых вариантах осуществления настоящего изобретения. В связи с этим рассмотрим сначала фиг.1, где показана структурная схема примеров устройства или электронного устройства 50, которое может включать кодек в соответствии с вариантом осуществления настоящего изобретения.

Электронное устройство 50 может являться, например, мобильным терминалом или пользовательским устройством системы беспроводной связи. Однако следует отметить, что варианты настоящего изобретения могут быть реализованы в рамках любого электронного устройства или устройства, для которого может потребоваться кодирование и/или декодирование видеоизображений.

Устройство 50 может содержать корпус 30 для размещения и защиты компонентов устройства. Устройство 50 может также содержать дисплей 32, выполненный в виде жидкокристаллического дисплея. В других вариантах осуществления настоящего изобретения дисплей может быть выполнен в соответствии с любой подходящей технологией для воспроизведения изображений или видео. Устройство 50 может также содержать клавиатуру 34. В других вариантах осуществления настоящего изобретения могут использоваться любые подходящие механизмы интерфейса ввода данных или пользовательского интерфейса. Например, пользовательский интерфейс может быть реализован в виде виртуальной клавиатуры или системы ввода данных, являющейся частью сенсорного экрана. Устройство может содержать микрофон 36 или любое подходящее средство ввода аудиосигнала, которое может являться средством ввода цифрового или аналогового сигнала. Устройство 50 может также содержать средство вывода аудиосигнала, которое в вариантах осуществления настоящего изобретения может представлять собой одно из следующих средств: наушники 38, динамик либо аналоговое или цифровое подключение к аудиовыходу. Устройство 50 может также содержать батарею 40 (или в других вариантах осуществления настоящего изобретения устройство может получать питание от любого подходящего мобильного источника энергии, такого как солнечный фотоэлемент, топливный элемент или аккумулятор часового механизма). Устройство может также содержать инфракрасный порт 42 для ближней связи с другими устройствами. В других вариантах осуществления настоящего изобретения устройство 50 может также содержать любое подходящее решение для ближней связи, такое как беспроводное соединение Bluetooth или проводное соединение USB/firewire.

Устройство 50 может включать контроллер 56 или процессор для управления устройством 50. Контроллер 56 может быть соединен с памятью 58, в которой согласно вариантам осуществления настоящего изобретения могут храниться данные изображения и аудиоданные и/или инструкции для выполнения контроллером 56. Контроллер 56 может быть также соединен со схемой 54 кодека, подходящей для выполнения кодирования и декодирования аудио и/или видео или участия в кодировании и декодировании, выполняемых контроллером 56.

Устройство 50 может также содержать считыватель 48 с карты и смарт-карту 46, например UICC, и считыватель UICC для предоставления пользовательской информации, которые подходят для предоставления аутентификационной информации для аутентификации и авторизации пользователя в сети.

Устройство 50 может содержать схему 52 радиоинтерфейса, соединенную с контроллером и позволяющую генерировать сигналы для беспроводной связи, например для связи с сетью сотовой связи, системой беспроводной связи или локальной сетью беспроводной связи. Устройство 50 также может включать антенну 44, соединенную со схемой 52 радиоинтерфейса для передачи и приема радиочастотных сигналов, сгенерированных в схеме 52 радиоинтерфейса, в другое устройство (или устройства), а также для приема радиочастотных сигналов от другого устройства (или устройств).

В некоторых вариантах осуществления настоящего изобретения устройство 50 содержит камеру, позволяющую записывать или обнаруживать отдельные кадры, которые затем передаются для обработки в кодек 54 или в контроллер. В других вариантах осуществления настоящего изобретения устройство может принимать для обработки данные видеоизображения от другого устройства перед передачей и/или сохранением этих данных. В других вариантах осуществления настоящего изобретения устройство 50 может принимать изображение для кодирования/декодирования по беспроводному или проводному соединению.

На фиг.3 показана система, в которой могут использоваться варианты осуществления настоящего изобретения. Система 10 содержит множество устройств связи, которые могут взаимодействовать друг с другом через одну или более сетей. Система 10 может включать любое объединение проводных или беспроводных сетей, включая, не ограничиваясь этим, беспроводную телефонную сотовую сеть (например, сеть GSM, UMTS, CDMA и т.д.), локальную беспроводную сеть (WLAN, wireless local area network), определенную, например, любым из стандартов IEEE 802.x, персональную сеть Bluetooth, локальную сеть Ethernet, кольцевую локальную сеть с маркерным доступом (token ring), глобальную сеть и Интернет.

Система 10 может содержать как проводные, так и беспроводные средства связи или устройства 50, подходящие для реализации вариантов настоящего изобретения.

Например, система, показанная на фиг.3, включает мобильную телефонную сеть 11 и Интернет 28. Соединение с Интернетом 28 может включать, не ограничиваясь этим, беспроводные соединения для дальней связи, беспроводные соединения для ближней связи и различные проводные соединения, включая, не ограничиваясь этим, телефонные линии, кабельные линии, линии электропитания и аналогичные тракты связи.

Примеры устройств связи, показанные в системе 10, могут включать, не ограничиваясь этим, электронное устройство или устройство 50, объединение персонального цифрового помощника (PDA, personal digital assistant) и мобильного телефона 14, PDA 16, интегрированное устройство 18 обмена сообщениями (IMD, integrated messaging device), настольный компьютер 20, ноутбук 22. Устройство 50 может быть стационарным или мобильным устройством, перемещаемым отдельным пользователем. Устройство 50 может также располагаться в транспортном средстве, включая, не ограничиваясь этим, легковой автомобиль, грузовик, такси, автобус, поезд, судно, самолет, велосипед, мотоцикл или любое аналогичное подходящее транспортное средство.

Некоторые устройства могут посылать и принимать вызовы и сообщения и осуществлять связь с провайдерами услуг через беспроводное соединение 25 с базовой станцией 24. Базовая станция 24 может соединяться с сетевым сервером 26, который позволяет выполнять связь между мобильной телефонной сетью 11 и Интернетом 28. Система может содержать дополнительные устройства связи и устройства связи различных типов.

Устройства связи могут осуществлять связь с использованием различных технологий передачи, включая, не ограничиваясь этим, множественный доступ с кодовым разделением каналов (CDMA, code division multiple access), глобальные системы мобильной связи (GSM, global system for mobile communications), универсальную систему мобильной связи (UMTS, universal mobile telecommunications system), множественный доступ с временным разделением каналов (TDMA, time divisional multiple access), множественный доступ с частотным разделением каналов (FDMA, frequency division multiple access), протокол управления передачей/Интернет-протокол (TCP-IP, transmission control protocol-internet protocol), службу обмена короткими сообщениями (SMS, short messaging service), службу обмена мультимедийными сообщениями (MMS, multimedia messaging service), электронную почту, службу мгновенного обмена сообщениями (IMS, instant messaging service), Bluetooth, IEEE 802.11 и любые другие аналогичные технологии беспроводной связи. Устройства связи, задействованные в реализации различных вариантов осуществления настоящего изобретения, могут осуществлять связь с использованием различных сред передачи, включая, не ограничиваясь этим, радиосоединения, инфракрасные, лазерные, кабельные соединения и любые другие подходящие соединения.

Различные варианты осуществления настоящего изобретения могут служить расширением традиционных двухэтапных алгоритмов с дробнопиксельной интерполяцией, например алгоритма, используемого в стандарте видеокодирования H.264/AVC, без увеличения сложности декодера. Следует отметить, что фиг.11 иллюстрирует только некоторые целопиксельные значения для пикселей, являющихся ближайшими соседями рассматриваемого блока пикселей, однако при интерполяции можно также использовать целопиксельные значения для пикселей, расположенных на большем расстоянии от рассматриваемого блока. Кроме того, настоящее изобретение не ограничено применением одномерной интерполяции, дробнопиксельные отсчеты могут формироваться с использованием более сложной интерполяции или фильтрации.

Следует отметить, что различные варианты осуществления настоящего изобретения могут быть реализованы с помощью или в сочетании с другими стандартами видеокодирования, помимо стандарта видеокодирования H.264/AVC.

На фиг.4 показана структурная схема видеокодера, подходящего для реализации настоящего изобретения. Кроме того, на фиг.5 подробно показано функционирование вариантов осуществления настоящего изобретения, относящихся к кодеру, в отношении использования более высокой точности при вычислении сигналов предсказания, как показано на блок-схеме.

На фиг.4a показан кодер, содержащий модуль 302 предсказания пикселей, кодер 303 ошибки предсказания и декодер 304 ошибки предсказания. На фиг.4a также показан один из вариантов осуществления модуля 302 предсказания пикселей, включающего модуль 306 внешнего предсказания, модуль 308 внутреннего предсказания, модуль 310 выбора режима, фильтр 316 и память 318 для опорных кадров. Модуль 310 выбора режима содержит процессор 381 блоков и модуль 382 вычисления функции стоимости. На фиг.4b также показан один из вариантов осуществления модуля 306 внешнего предсказания, содержащего модуль 360 выбора блока и модуль 361 задания векторов движения, который может быть реализован, например, в процессоре 362 предсказания. Модуль 306 внешнего предсказания может иметь доступ к памяти 404 для параметров. Модуль 310 выбора режима может также содержать модуль 384 квантования.

Модуль 302 предсказания пикселей принимает подлежащее кодированию изображение 300 как на входе модуля 306 внешнего предсказания (который определяет разность между кадром изображения и опорным кадром 318 с компенсацией движения), так и на входе модуля 308 внутреннего предсказания (который определяет предсказание для блока изображения исходя только из уже обработанных частей текущего кадра или изображения). Выходные сигналы модуля внешнего предсказания и модуля внутреннего предсказания подаются на модуль 310 выбора режима. Модуль 308 внутреннего предсказания может иметь более одного режима внутреннего предсказания. Следовательно, в каждом из этих режимов может осуществляться внутреннее предсказание, и в модуль 310 выбора режима может предоставляться предсказанный сигнал. Модуль 310 выбора режима также принимает копию изображения 300.

Процессор 381 блоков определяет, какой режим кодирования использовать для кодирования текущего блока. Если процессор 381 блоков принимает решение использовать режим внешнего предсказания, то он передает выходные данные модуля 306 внешнего предс