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

Иллюстрации

Показать все

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

Реферат

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

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

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

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

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

[0004] Многие гибридные видеокодеки, работающие, например, согласно стандартам кодирования сектора по стандартизации телекоммуникаций в составе Международного союза электросвязи (International Telecommunications Union Telecommunication Standardization Sector, ITU-T) H.263 и H.264, кодируют видеоинформацию в два этапа. На первом этапе предсказываются значения пикселей в некоторой области изображения или "блоке". Эти значения пикселей могут предсказываться, например, механизмами компенсации движения, которые включают нахождение и индикацию области в одном из ранее кодированных видеокадров (или позднее кодированном видеокадре), которая близко соответствует кодируемому блоку. Дополнительно, значения пикселей могут предсказываться с помощью пространственных механизмов, которые включают нахождение и индикацию пространственного соотношения области, например, с использованием значений пикселей вокруг блока, кодируемого заданным способом.

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

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

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

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

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

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

[0011] В некоторых видеокодеках, таких как кодеки по стандарту высокоэффективного кодирования видеоизображений, рабочий проект 4 (High Efficiency Video Coding Working Draft 4), видеоизображение может разделяться на блоки кодирования (Coding Units, CU), покрывающие область изображения. Блок кодирования состоит из одного или более блоков предсказания (Prediction Units, PU), определяющих процесс предсказания для отсчетов в пределах блока кодирования, и одного или более блоков преобразования (Transform Units, TU), определяющих процесс кодирования ошибки предсказания для отсчетов в блоке кодирования. Блок кодирования может состоять из квадратного блока отсчетов с размером, выбираемым из заранее заданного набора возможных размеров блока кодирования. Блок кодирования с максимально разрешенным размером может называться наибольшим блоком кодирования (Largest Coding Unit, LCU) и видеоизображение может разделяться на неперекрывающиеся наибольшие блоки кодирования. Наибольший блок кодирования далее может разбиваться на комбинацию меньших блоков кодирования, например, рекурсивным разбиением наибольшего блока кодирования и результирующих блоков кодирования. Каждый результирующий блок кодирования может иметь по меньшей мере один блок предсказания и по меньшей мере один блок преобразования, связанные с ним. Каждый блок предсказания и блок преобразования далее могут разбиваться на меньшие блоки предсказания и блоки преобразования, чтобы увеличить мелкозернистость процессов предсказания и кодирования ошибки предсказания, соответственно. Каждый блок предсказания может иметь связанную с ним информацию предсказания, определяющую, какой вид предсказания должен быть применен для пикселей в этом блоке предсказания (например, информацию о векторе движения для блоков предсказания, предсказываемых межкадровым предсказанием, и информацию о направленности внутрикадрового предсказания для блоков предсказания, предсказываемых внутрикадровым предсказанием). Точно так же каждый блок преобразования может быть связан с информацией, описывающей процесс декодирования ошибки предсказания для отсчетов в блоке преобразования (включая, например, информацию о коэффициентах дискретного косинусного преобразования (Discrete Cosine Transform, DCT)). На уровне блока кодирования может сигнализироваться, применяется ли кодирование ошибки предсказания для каждого блока кодирования. В случае, когда нет никакой остаточной ошибки предсказания, связанной с блоком кодирования, можно полагать, что нет никаких блоков преобразования для блока кодирования. Разделение изображения на блоки кодирования и разделение блоков кодирования на блоки предсказания и блоки преобразования может сигнализироваться в битовом потоке, что позволяет декодеру воспроизводить заранее заданную структуру этих блоков.

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

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

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

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

[0016] Некоторые видеокодеры применяют функции стоимости Лагранжа для поиска оптимальных режимов кодирования, например необходимого режима макроблока и связанных с ним векторов движения. Этот тип функции стоимости использует взвешивающий множитель А. для связывания вместе (точного или оцениваемого) искажения изображения, вызванного методами кодирования с потерями, и (точного или оцениваемого) количества информации, которое требуется для представления значений пикселей в области изображения:

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

[0017] Некоторые видеокодеки, такие как гибридные видеокодеки, могут генерировать список предсказаний вектора движения (Motion Vector Predictions, MVP), состоящий из векторов движения пространственно смежных блоков (пространственных MVP) и/или векторов движения блоков в ранее декодированном кадре (временных MVP). Один из возможных векторов движения в списке сигнализируется, чтобы использовать его в качестве предсказания вектора движения текущего блока. После того как список сгенерирован, некоторые из кандидатов для предсказания вектора движения могут иметь одинаковую информацию движения. В этом случае идентичные кандидаты для предсказания вектора движения могут быть удалены для уменьшения избыточности. Во время декодирования, если информация временного предсказания вектора движения недоступна, например, из-за потери опорного кадра, декодер может не знать, должен ли быть удален кандидат временного предсказания вектора движения в списке. Это может приводить к неопределенности для отображения декодируемого индекса кандидата для тех кандидатов, решение об удалении которых основывается на сравнении информации движения с временным предсказанием вектора движения. В результате может произойти ложное назначение кандидатов для предсказания вектора движения, что может приводить к ухудшению качества изображения и дрейфу ложной информации движения по всему процессу декодирования.

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

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

[0019] Согласно первому аспекту данного изобретения предлагается способ, включающий:

прием блока пикселей;

создание набора кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое создание набора включает:

проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;

если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор; если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.

[0020] Согласно второму аспекту данного изобретения предлагается способ, включающий:

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

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

проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;

если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор; и

если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.

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

принимать блок пикселей;

создавать набор кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое создание набора включает:

проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;

если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;

если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.

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

принимать кодированный блок пикселей;

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

проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;

если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;

если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.

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

приема блока пикселей;

создания набора кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое создание набора включает:

проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;

если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;

если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.

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

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

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

проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;

если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;

если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.

[0025] Согласно седьмому аспекту данного изобретения предлагается устройство, содержащее:

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

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

средство для проверки, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;

средство для включения кандидата для предсказания вектора движения в набор, если кандидат для предсказания вектора движения является временным предсказанием вектора движения;

средство для определения, включать ли кандидата для предсказания вектора движения в набор, если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения.

[0026] Согласно восьмому аспекту данного изобретения предлагается устройство, содержащее:

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

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

средство для проверки, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;

средство для включения кандидата для предсказания вектора движения в набор, если кандидат для предсказания вектора движения является временным предсказанием вектора движения;

средство для определения, включать ли кандидата для предсказания вектора движения в набор, если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения.

Описание чертежей

[0027] Для лучшего понимания данного изобретения для примера ниже будет сделана ссылка на прилагаемые чертежи, на которых:

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

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

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

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

[0032] На фиг. 4b схематично показана форма осуществления создания и модификации списка опорных значений предсказания согласно некоторым формам осуществления изобретения.

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

[0034] На фиг. 6а показан пример пространственного и временного предсказания блока предсказания.

[0035] На фиг. 6b показан другой пример пространственного и временного предсказания блока предсказания.

[0036] На фиг. 7 схематично показана форма осуществления изобретения как включенная в состав декодера.

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

Подробное описание

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

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

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

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

[0042] Устройство 50 может далее включать устройство 48 считывания с карты и смарт-карту 46, например, в виде универсальной микропроцессорной карты 3-го поколения (Universal Integrated Circuit Card, UICC) и устройство 48 считывания с карты UICC для предоставления информации пользователю и подходящее для предоставления информации аутентификации для аутентификации и авторизации пользователя в сети.

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

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

[0045] На фиг. 3 показан пример системы, в которой могут использоваться формы осуществления данного изобретения. Система 10 содержит множество устройств связи, которые могут осуществлять связь по одной или нескольким сетям. Система 10 может содержать любую комбинацию проводных или беспроводных сетей, включая, но не ограничиваясь этим, беспроводную сотовую телефонную сеть (такую как глобальная система связи с подвижными объектами (Global System Mobile, GSM), универсальная мобильная система связи (Universal Mobile Telecommunications System, UMTS), сеть на основе множественного доступа с кодовым разделением каналов (Code Division Multiple Access, CDMA) и т.д), беспроводную локальную сеть (Wireless Local Area Network, WLAN), такую как определенная любым стандартом Института инженеров по электротехнике и электронике (Institute of Electrical and Electronics Engineers, IEEE) IEEE 802.x, персональная локальная сеть Bluetooth, локальная сеть Ethernet, локальная сеть с маркерным кольцом, глобальная сеть и Интернет.

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

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

[0048] Примеры устройств связи, показанных в системе 10, могут содержать (но не ограничиваются этим) электронное устройство 50, комбинацию 14 персонального цифрового ассистента (Personal Digital Assistant, PDA) и мобильного телефона 14, PDA 16, интегрированное устройство 18 передачи сообщений и данных (Integrated Messaging Device, IMD), настольный компьютер 20, ноутбук 22 и т.д. Устройство связи может быть стационарным или мобильным (носимым пользователем, который перемещается). Устройства 50 также могут быть расположены в транспортном средстве, в том числе (но не ограничиваясь этим) в автомобиле, грузовике, такси, автобусе, поезде, судне, самолете, на велосипеде, мотоцикле или любом подобном подходящем виде транспорта.

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

[0050] Устройства связи могут осуществлять связь, используя различные технологии передачи, в том числе (но не ограничиваясь этим) доступ с кодовым разделением каналов (CDMA), глобальную систему мобильной связи (GSM), универсальную систему мобильной связи (UMTS), множественный доступ с временным разделением (Time Division Multiple Access, TDMA), множественный доступ с частотным разделением (Frequency Division Multiple Access FDMA), протокол управления передачей/Интернет-протокол (Transmission Control Protocol-Internet Protocol, TCP-IP), службу коротких сообщений (Short Messaging Service, SMS), службу мультимедийных сообщений (Multimedia Messaging Service, MMS), электронную почту, службу мгновенных сообщений (Instant Messaging Service, IMS), Bluetooth, доступ no стандарту IEEE 802.11 и аналогичные технологии беспроводной связи. Устройство связи, использующееся в реализации различных вариантов осуществления данного изобретения, может осуществлять связь с применением различных сред, в том числе (но не ограничиваясь этим) радиопередача, инфракрасное излучение, лазеры, кабельные соединения и любые подходящие соединения.

[0051] Ная фиг. 4а показана блок-схема видеокодера, подходящего для форм осуществления изобретения. Кроме того, на фиг. 5 показана в виде блок-схемы работа кодера, иллюстрирующая формы осуществления изобретения, а именно, относительно предсказания в режиме DC (Direct Current, постоянное значение).

[0052] На фиг. 4а показан кодер, содержащий предсказатель 302 пикселей, кодер 303 ошибки предсказания и декодер 304 ошибки предсказания. На фиг. 4а показана также форма осуществления предсказателя 302 пикселей, содержащего межкадровый предсказатель 306, внутрикадровый предсказатель 308, селектор 310 режима, фильтр 316 и память 318 опорных кадров. В этой форме осуществления изобретения селектор 310 режима включает процессор 381 блока и вычислитель 382 стоимости. Кодер может далее включать энтропийный кодер 330 для энтропийного кодирования битового потока.

[0053] На фиг. 4b изображена форма осуществления межкадрового предсказателя 306. Межкадровый предсказатель 306 содержит селектор 360 опорных кадров для выбора опорного кадра или кадров, определитель 361 вектора движения, модификатор 363 списка предсказаний и селектор 364 вектора движения. Эти элементы или некоторые из них могут быть частью процессора 362 предсказания, или они могут быть реализованы с использованием других средств.

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

[0055] Селектор 310 режима определяет, какой режим кодирования использовать для кодирования текущего блока. Если селектор 310 режима решает использовать режим межкадрового предсказания, он подаст выходной сигнал межкадрового предсказателя 306 на выход селектора 310 режима. Если селектор 310 режима решает использовать режим внутрикадрового предсказания (блоки 504-508), он подаст выходной сигнал, полученный в одном из режимов внутрикадрового предсказателя, на выход селектора 310 режима.

[0056] Выходной сигнал селектора режима передается на первое суммирующее устройство 321. Первое суммирующее устройство может вычитать выходной сигнал предсказателя 302 пикселей из изображения 300, чтобы создать первый сигнал 320 ошибки предсказания, который является входным сигналом для кодера 303 ошибки предсказания.

[0057] Предсказатель 302 пикселей далее принимает от предварительного реконструктора 339 сумму представления предсказания блока 312 изображения и выходного сигнала 338 декодера 304 ошибки предсказания. Предварительное восстановленное изображение 314 может подаваться на внутрикадровый предсказатель 308 и на фильтр 316. Фильтр 316, принимающий предварительное представление, может фильтровать предварительное представление и подавать на выход конечное восстановленное изображение 340, которое может сохраняться в памяти 318 опорных кадров. Память 318 опорных кадров может быть соединена с межкадровым предсказателем 306, чтобы использовать хранящиеся в нем данные в качестве опорного изображения, с которым будущее изображение 300 сравнивается в операциях межкадрового предсказания.

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

[0059] Предсказатель 302 пикселей может содержать также фильтр 385, чтобы фильтровать предсказанные значения перед их выводом из предсказателя 302 пикселей.

[0060] Работа кодера 302 ошибки предсказания и декодера 304 ошибки предсказания будет описана ниже более подробно. В следующих примерах кодер генерирует изображения в макроблоках 16×16 пикселей, которые образуют полное изображение или кадр. Таким образом, для следующих примеров предсказатель 302 пикселей подает на выход серию предсказанных макроблоков размером 16×16 пикселей, и первое суммирующее устройство 321 подает на выход серию макроблоков 16×16 пикселей данных остатка, которые могут представлять различие между первым макроблоком в изображении 300 и предсказанным макроблоком (выходной сигнал предсказателя 302 пикселей). Должно быть понятно, что могут использоваться макроблоки другого размера.

[0061] Кодер 303 ошибки предсказания включает блок 342 преобразования и квантователь 344. Блок преобразования 342 преобразует первый сигнал 320 ошибки предсказания в область преобразования. Преобразование является, например, дискретным косинусным преобразованием (DCT). Квантователь 344 квантует сигнал области преобразования, например, коэффициенты DCT, чтобы сформировать квантованные коэффициенты.

[0062] Декодер 304 ошибки предсказания принимает выходной сигнал от кодера 303 ошибки предсказания и выполняет процессы, обратные проц