Область техники
[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 ошибки предсказания и выполняет процессы, обратные процессам кодера 303 ошибки предсказания, чтобы создать декодированный сигнал 338 ошибки предсказания, который, когда объединяется с представлением предсказания блока 312 изображения во втором суммирующем устройстве 339, создает предварительно восстановленное изображение 314. Декодер ошибки предсказания можно считать содержащим деквантователь 346, который деквантует квантованные значения коэффициентов, например, коэффициенты DCT, чтобы восстановить сигнал преобразования, и блок 348 обратного преобразования, который применяет обратное преобразование к восстановленному сигналу преобразования, причем выходной сигнал блока 348 обратного преобразования содержит восстановленный блок(-и). Декодер ошибки предсказания может содержать также фильтр макроблока (не показанный), который может фильтровать восстановленный макроблок согласно дополнительной декодированной информации и параметрам фильтра.
[0063] Ниже работа примера осуществления межкадрового предсказателя 306 будет описана более подробно. Межкадровый предсказатель 306 принимает 504 текущий блок для межкадрового предсказания. Предполагается, что для текущего блока уже существует один или несколько смежных блоков, которые были кодированы, и векторы движения для них были определены. Например, такими блоками могут быть блок слева и/или блок выше текущего блока. Пространственные предсказания вектора движения для текущего блока можно формировать, например, с использованием векторов движения кодированных смежных блоков и/или несмежных блоков в том же самом слайсе или кадре, используя линейные или нелинейные функции предсказаний пространственного вектора движения, используя комбинацию различных пространственных предсказателей вектора движения с помощью линейных или нелинейных операций, или любые другие подходящие средства, которые не используют временную опорную информацию. Возможно также получать предсказатели вектора движения, объединяя информацию и пространственного, и временного предсказания одного или более кодированных блоков. Эти виды предсказателей вектора движения могут называться также пространственно-временными предсказателями вектора движения.
[0064] Опорные кадры, используемые при кодировании смежных блоков, были сохранены в памяти 404 опорных кадров. Опорные кадры могут быть краткосрочными опорными изображениями или долгосрочными опорными изображениями, и каждый опорный кадр может иметь однозначный индекс, который указывает на опорный кадр в памяти опорных кадров. Когда опорный кадр больше не используется как опорный кадр, он может быть удален из памяти опорных кадров или отмечен как не опорный кадр, при этом место в памяти этого опорного кадра может быть занято для нового опорного кадра. В дополнение к опорным кадрам смежных блоков селектор 360 опорных кадров может выбирать также один или несколько других кадров в качестве потенциальных опорных кадров и сохранять их в памяти опорных кадров.
[0065] Информация о векторе движения кодированных блоков также сохраняется в памяти, чтобы межкадровый предсказатель 306 был способен выбирать информацию о векторе движения при обработке кандидатов вектора движения для текущего блока.
[0066] В некоторых формах осуществления векторы движения сохраняются в одном или более списках. Например, векторы движения однонаправленно предсказываемых кадров (например, Р-кадров) могут сохраняться в списке, называемым list0. Для двунаправленно предсказываемых кадров (например, В-кадров) могут быть два списка (list0 и list1) и для кадров, предсказываемых с многими опорными изображениями, может быть больше чем два списка. Индексы опорных кадров, возможно связанных с векторами движения, также могут сохраняться в одном или более списках.
[0067] В некоторых формах осуществления изобретения могут использоваться две или более процедуры предсказания вектора движения, и каждая процедура может иметь свой собственный процесс создания набора кандидатов. В одной процедуре используются только значения вектора движения. В другой процедуре, которую можно назвать режим слияния, каждый возможный элемент может содержать: 1) информацию, "был ли блок предсказан однонаправленно, используя только list0" или "был ли блок предсказан однонаправленно, используя только list1", или "был ли блок предсказан двунаправленно, используя list0 и list1", 2) значение вектора движения для list0, 3) индекс опорного изображения в list0, 4) значение вектора движения для list1, 5) индекс опорного изображения в list1. Поэтому, всякий раз, когда необходимо сравнение двух кандидатов для предсказания, чтобы определить, соответствуют ли они друг другу или нет, сравниваются не только значения вектора движения, но также и пять значений, упомянутых выше.
[0068] Определитель 361 вектора движения определяет возможные векторы движения для текущего кадра, используя один или более векторов движения одного или более блоков, смежных с текущим блоком, и/или других блоков в том же кадре, и/или блоков, совмещенных с текущим блоком, и/или других блоков в одном или более других кадрах. Эти возможные векторы движения можно назвать набором предсказателей-кандидатов или набором предсказателей. Таки образом, каждый предсказатель-кандидат представляет вектор движения одного или более уже кодированных блоков. В некоторых формах осуществления изобретения вектор движения предсказателя-кандидата устанавливается равным вектору движения соседнего блока для того же самого списка, если текущий блок и смежный блок обращаются к одинаковым опорным кадрам для этого списка. Также для временного предсказания могут быть использованы один или несколько ранее кодированных кадров, причем векторы движения совмещенного блока или других блоков в ранее кодированном кадре могут выбираться как предсказатели-кандидаты для текущего блока. Кандидат для временного предсказателя вектора движения может генерироваться любыми средствами, которые используют другие кадры помимо текущего кадра.
[0069] Возможные векторы движения могут получаться также с использованием более одного вектора движения одного или более других блоков, таких как блоки, смежные с текущим блоком, и/или совмещенные блоки в одном или более других кадрах. Для примера, может использоваться любая комбинация вектора движения из блока слева от текущего блока, вектора движения из блока выше текущего блока и вектора движения из блока у верхнего правого угла текущего блока (то есть блок справа от блока выше текущего блока). Комбинация может быть медианным значением векторов движения или может рассчитываться с использованием других формул. Например, один или несколько векторов движения, которые используются в комбинации, могут масштабироваться масштабным коэффициентом, может добавляться смещение и/или может добавляться постоянный вектор движения. В некоторых формах осуществления изобретения комбинированный вектор движения основан как на временных, так и на пространственных векторах движения, например, на векторе движения одного или более блоков, смежных с текущим блоком, или другого блока текущего блока, и векторе движения совмещенного блока или другого блока в другом кадре.
[0070] Если смежный блок не имеет никакой информации о векторе движения, то вместо него может использоваться заданный по умолчанию вектор движения, такой как нулевой вектор движения.
[0071] Создание дополнительных или добавочных предсказаний вектора движения на основании ранее добавленных предсказателей может быть необходимо, когда текущее число кандидатов ограничено или недостаточно. Этот вид создания дополнительных кандидатов может выполняться посредством комбинирования двух предыдущих предсказаний и/или обработки одного предыдущего кандидата с помощью масштабирования или прибавления смещения, и/или прибавления нулевого вектора движения с различными ссылочными индексами. Следовательно, определитель 361 вектора движения 361 может проверить, сколько кандидатов вектора движения может быть определено, и сколько потенциально возможных векторов движения существует для текущего блока. Если число потенциальных кандидатов вектора движения меньше чем порог, то определитель 361 вектора движения может создавать дополнительные предсказания вектора движения.
[0072] В некоторых формах осуществления изобретения комбинированный вектор движения может быть основан на векторах движения в разных списках. Например, один вектор движения может быть определен посредством комбинирования одного вектора движения из списка list0 и одного вектора движения из списка list1, например, когда смежный или совмещенный блок является двунаправленно предсказанным блоком и существует один вектор движения в списке list0 и один вектор движения в списке list1 для двунаправленно предсказанного блока.
[0073] Чтобы отличать текущий блок от кодированных/декодированных блоков, векторы движения которых используются как возможные векторы движения, эти кодированные/декодированные блоки в данной заявке называются также опорными блоками.
[0074] В некоторых формах осуществления изобретения получают не только информацию о векторе движения опорного блока(-ов) (например, посредством копирования), но также и ссылочный индекс опорного блока в списке опорных изображений копируется в список кандидатов. Информация о том, был ли блок однонаправленно предсказан с использованием только list0 или блок был однонаправленно предсказан с использованием только list1, или блок был двунаправленно предсказан с использованием list0 и list1, также может быть скопирована. Список кандидатов можно назвать также набором кандидатов или набором кандидатов для предсказания вектора движения.
[0075] На фиг. 6а показан пример пространственного и временного предсказания блока предсказания. Там изображен текущий блок 601 в кадре 600 и смежный блок 602, который уже был кодирован. Определитель 361 вектора движения определил вектор 603 движения для соседнего блока 602, который указывает на блок 604 в предыдущем кадре 605. Этот вектор движения может использоваться как потенциальное пространственное предсказание 610 вектора движения для текущего блока. На фиг.6а изображено, что совмещенный блок 606 в предыдущем кадре 605, то есть блок в том же самом месте, что и текущий блок, но в предыдущем кадре, имеет вектор 607 движения, указывающий на блок 609 в другом кадре 608.
Этот вектор 607 движения может использоваться как потенциальное временное предсказание 611 вектора движения для текущего кадра.
[0076] На фиг. 6b показан другой пример пространственного и временного предсказания блока предсказания. В этом примере блок 606 предыдущего кадра 605 использует двунаправленное предсказание на основании блока 609 кадра, предшествующего кадру 605, и блока 612, следующего за текущим кадром 600. Временное предсказание вектора движения для текущего блока 601 может быть сформировано с использованием обоих векторов 607, 614 движения или любого из них.
[0077] Работа модификатора 363 списка предсказаний будет теперь описана более подробно со ссылкой на блок-схему фиг. 5. Модификатор 363 списка предсказаний инициализирует список предсказаний вектора движения значениями по умолчанию в блоке 500. Модификатор 363 списка предсказаний может также инициализировать индекс списка начальным значением, таким как ноль. Затем в блоке 502 модификатор списка предсказаний проверяет, есть ли какие-либо кандидаты вектора движения для обработки. Если есть по меньшей мере один кандидат для вектора движения в наборе предсказателей для обработки, то модификатор 363 списка предсказаний генерирует 504 следующего кандидата для вектора движения, который может быть временным вектором движения или пространственным вектором движения. Если модификатор списка предсказаний определяет в блоке 502, что нет никаких оставшихся кандидатов для вектора движения, модификация списка предсказаний вектора движения может быть закончена 506. После блока 504 обработка продолжается в блоке 508. Модификатор 363 списка предсказаний проверяет, является ли текущее предсказание вектора движения временным предсказанием вектора движения. Если оно является временным предсказанием вектора движения, то предсказание вектора движения вставляется 510 в список предсказаний и не выполняется никакое сравнение, которое использует временные данные, с ранее добавленными предсказаниями вектора движения. Добавленное предсказание вектора движения может снабжаться индексом списка, и индекс списка может увеличиваться на единицу или некоторую другую константу так, чтобы индекс списка указывал следующую позицию в списке предсказаний вектора движения. Если текущее предсказание вектора движения не является временным предсказанием вектора движения и не содержит никакой информации о векторе движения, которая основана на временных данных, модификатор 363 списка предсказаний сравнивает 512 вектор движения текущего предсказания вектора движения с информацией о векторе движения предсказаний вектора движения в списке. Те предсказания вектора движения, которые содержат информацию о временном предсказании вектора движения, исключаются из сравнения. Некоторые другие пространственные предсказатели вектора движения также могут быть исключены по различным причинам, например, для того, чтобы уменьшить сложность. Другими словами, те предсказания вектора движения, в которых информация о векторе движения содержит временную информацию, не берутся в сравнение, даже если предсказание вектора движения было частично основано на пространственных векторах движения. Такие ситуации могут возникнуть, например, когда предсказание вектора движения комбинируется из временных и пространственных векторов движения.
[0078] Сравнение может быть проверкой идентичности/ эквивалентности или сравнением (абсолютной) разности относительно порога или любого другого показателя подобия.
[0079] Если подобная информация о пространственном векторе движения найдена из списка, текущее предсказание вектора движения не добавляется в список. Добавляемое предсказание вектора движения может снабжаться индексом списка и индекс списка может увеличиваться на единицу или некоторую другую константу так, чтобы индекс списка указывал следующую позицию в списке предсказаний вектора движения. Затем процесс возвращается к блоку 502, чтобы проверить, было ли это последним возможным предсказанием вектора движения для обработки. В ином случае текущее предсказание вектора движения добавляется 510 в список, и процесс возвращается к блоку 502. Следовательно, когда существуют дублирующие предсказания пространственного вектора движения, предсказание пространственного вектора движения, которое имеет наименьший индекс в списке, может сохраняться в списке (самое раннее появление такого предсказания пространственного вектора движения в процессе построения списка), а дублирующие предсказания пространственного вектора движения, имеющие более высокие индексы, не добавляются в список.
[0080] Во время процесса удаления избыточных кандидатов сравнение между кандидатами предсказателя вектора движения может быть основано на любой другой информации, отличной от значений вектора движения. Например, оно может быть основано на линейных или нелинейных функциях значений вектора движения; видах кодирования или предсказания блоков, используемых для получения информации о движении; размере блока; пространственном местоположении в кадре/(наибольшем) блоке кодирования/макроблоке; информации, используют ли блоки совместно то же самое движение с блоком; информации, находятся ли блоки в том же самом блоке кодирования/предсказания, и т.д.
[0081] Как можно заключить из вышеизложенного, в способе не включают дублирующую информацию о векторе движения для предсказаний пространственного вектора движения и не удаляют дублирующую информацию о векторе движения для предсказаний временного вектора движения, если такие существуют среди кандидатов для предсказания вектора движения.
[0082] Может быть также более одного временного предсказателя вектора движения в списке предсказателей-кандидатов вектора движения. В этом случае все временные предсказатели вектора движения сохраняют в списке. Кроме того, во время процесса удаления избыточного пространственного предсказателя вектора движения ни один из временных предсказателей вектора движения не используется.
[0083] Описание примера изобретения для построения объединенного списка кандидатов выглядит следующим образом. А1, если имеется; В1, если имеется; ВО, если имеется; АО, если имеется; В2, если имеется; Col А1, В1, В0, А0, В2 и Col соответствуют всей информации поля движения для различных блоков (включающей в себя: 1) Информацию, "был ли блок предсказан однонаправленно, используя только list0" или "был ли блок предсказан однонаправленно, используя только list1", или "был ли блок предсказан двунаправленно, используя list0 и list1"; 2) Значение вектора движения для list0; 3) Индекс опорного изображения в list0; 4) Значение вектора движения для list1; 5) Индекс опорного изображения в list1). А1 соответствует самому нижнему блоку, смежному с левой стороной текущего блока, А0 соответствует блоку ниже блока А1, В1 соответствует крайнему справа блоку, смежному с верхней стороной текущего блока, В0 соответствует блоку справа от блока В1, В2 соответствует блоку у верхнего левого угла текущего блока, и Col соответствует блоку в другом кадре, совмещенному в нижнем правому углу или в центре с текущим блоком. Объединяемые списки кандидатов могут сливаться посредством удаления кандидатов, которые имеют одинаковые векторы движения и одинаковые ссылочные индексы, за исключением объединяемого кандидата, который имеет наименьший порядок в объединяемом списке кандидатов, и за исключением объединяемого кандидата Col.
[0084] В некоторых ситуациях временной предсказатель вектора движения может быть удален из списка кандидатов на основании информации, которая доступна, даже если опорный кадр, необходимый для генерирования временного предсказателя вектора движения, недоступен.
[0085] В некоторых формах осуществления изобретения местоположение временного предсказателя вектора движения в списке предсказателей-кандидатов вектора движения может быть скорректировано на любое из мест. Например, временной предсказатель вектора движения всегда может быть верхним или последним элементом в списке предсказателей-кандидатов вектора движения.
[0086] Для процесса генерирования списка предсказателей-кандидатов вектора движения каждый кандидат списка может содержать больше информации, чем только значение вектора движения, например, может содержать информацию об используемых опорных списках, опорных кадрах, используемых в каждом списке, и векторах движения для каждого списка.
[0087] Если во время создания нового предсказателя-кандидата вектора движения может использоваться информация, связанная с временным предсказателем вектора движения, то создание предсказателя кандидата вектора движения может модифицироваться так, что информация, связанная с временным предсказателем вектора движения, отбрасывается.
[0088] Если во время создания нового предсказателя-кандидата вектора движения используется информация, связанная с временным предсказателем вектора движения, то новый кандидат может быть отброшен.
[0089] Когда все кандидаты вектора движения проверены, выбирается один вектор движения для использования в качестве вектора движения для текущего блока. Селектор 364 вектора движения может проверять различные векторы движения в списке и определять, какой вектор движения обеспечивает самый эффективный результат кодирования, или же выбор вектора движения может быть основан также на других критериях. Информация выбранного вектора движения предоставляется селектору режима для кодирования и передачи в декодер или для сохранения, когда селектор режима решает использовать межкадровое предсказание для текущего блока. Эта информация может включать индекс вектора движения в списке и/или параметры вектора движения либо другую подходящую информацию.
[0090] Выбранный вектор движения и блок, относящийся к вектору движения, используются, чтобы генерировать представление предсказания блока 312 изображения, который предоставляется как выходной сигнал селектора режима. Выходной сигнал может использоваться первым суммирующим устройством 321, чтобы создавать первый сигнал 320 ошибки предсказания, как было описано выше.
[0091] Выбранный предсказатель-кандидат вектора движения может модифицироваться добавлением разности вектора движения или может использоваться непосредственно как вектор движения блока. Кроме того, после того, как компенсация движения выполнена с использованием выбранного предсказателя-кандидата вектора движения, остаточный сигнал блока может быть кодирован преобразованием или пропущен при кодировании.
[0092] Хотя выше были описаны формы осуществления изобретения в отношении размера макроблока 16×16 пикселей, должно быть понятно, что способы и описанное устройство могут быть сконфигурированы для обработки макроблоков различных размеров в пикселях.
[0093] Ниже работа примера осуществления декодера 600 рассматривается более подробно со ссылкой на фиг. 7.
[0094] На стороне декодера, чтобы восстановить блоки изображения, выполняются аналогичные операции. На фиг. 7 показана блок-схема видеодекодера 700, подходящего для использования форм осуществления изобретения, и на фиг. 8 показана блок-схема примера способа, применяемого в видеодекодере. Декодируемый битовый поток может приниматься от кодера, от элемента сети, от носителя записи или от другого источника. Декодер знает о структуре битового потока, поэтому он может определить значение энтропийно кодированных кодовых слов и может декодировать битовый поток посредством энтропийного декодера 701, который выполняет энтропийное декодирование принимаемого сигнала. Таким образом, энтропийный декодер выполняет операцию, обратную операции энтропийного кодера 330 в описанном выше кодере. Энтропийный декодер 701 подает результаты энтропийного декодирования на декодер 702 ошибки предсказания и предсказатель 704 пикселей.
[0095] В некоторых формах осуществления изобретения энтропийное кодирование может не использоваться, а может использоваться другое канальное кодирование, или кодированный битовый поток может подаваться на декодер 700 без канального кодирования. Декодер 700 может содержать соответствующий канальный декодер, чтобы получать кодированные кодовые слова из принимаемого сигнала.
[0096] Предсказатель 704 пикселей принимает выходной сигнал энтропийного декодера 701. Выходной сигнал энтропийного декодера 701 может содержать индикацию режима предсказания, использованного при кодировании текущего блока. Селектор 714 предсказателя в предсказателе 704 пикселей решает, что должно быть выполнено внутрикадровое предсказание или межкадровое предсказание. Селектор 714 предсказателя может, кроме того, выводить предсказанное представление блока 716 изображения в первый объединитель 713. Предсказанное представление блока 716 изображения используется совместно с восстановленным сигналом 712 ошибки предсказания, чтобы генерировать предварительное восстановленное изображение 718. Предварительное восстановленное изображение 718 может использоваться в предсказателе 714 или может передаваться в фильтр 720. Фильтр 720, если он используется, применяет фильтрацию, которая дает на выходе конечный восстановленный сигнал 722. Конечный восстановленный сигнал 722 может сохраняться в памяти 724 опорных кадров; память 724 опорных кадров далее соединяется с предсказателем 714 для выполнения операций предсказания.
[0097] Декодер 702 ошибки предсказания принимает также выходной сигнал энтропийного декодера 701. Деквантователь 792 декодера 702 ошибки предсказания может осуществлять деквантование выходного сигнала энтропийного декодера 701, и блок 793 обратного преобразования может выполнять операцию обратного преобразования для деквантованного сигнала, подаваемого на выход деквантователем 792. Выходной сигнал энтропийного декодера 701 может также указывать, что сигнал ошибки предсказания не должен применяться, и в этом случае декодер ошибки предсказания создает нулевой выходной сигнал.
[0098] Декодер выбирает остаточный макроблок 16×16 пикселей для восстановления. Этот остаточный макроблок называется также текущим блоком.
[0099] Декодер может принимать информацию о режиме кодирования, используемого при кодировании текущего блока. Индикация декодируется, когда необходимо, и подается в процессор 791 реконструкции селектора 714 предсказания. Процессор 791 реконструкции проверяет индикацию и выбирает один из режимов внутрикадрового предсказания, если индикация указывает, что блок был кодирован с использованием внутрикадрового предсказания, или межкадрового предсказания, если индикация указывает, что блок был кодирован с использованием межкадрового предсказания.
[00100] Для режима(-ов) межкадрового предсказания процессор 791 реконструкции может содержать один или несколько элементов, соответствующих процессору 362 предсказания кодера, таких как определитель 361 вектора движения, модификатор списка предсказаний и/или селектор вектора движения.
[00101] Процессор 791 реконструкции инициализирует список предсказателей вектора движения значениями по умолчанию в блоке 800. Затем в блоке 802 процессор 791 реконструкции проверяет, есть ли какие-либо кандидаты для вектора движения для обработки. Если есть по меньшей мере один кандидат для вектора движения в наборе предсказателей для обработки, процессор 791 реконструкции генерирует 804 следующего кандидата для вектора движения, который может быть временным вектором движения или пространственным вектором движения. Если процессор 791 реконструкции определил в блоке 802, что нет никаких оставшихся кандидатов для вектора движения, модификация списка предсказаний вектора движения может быть закончена 806. После блока 804 процесс продолжается в блоке 808. Процессор 791 реконструкции проверяет, является ли текущее предсказание вектора движения временным предсказанием вектора движения. Если оно является временным предсказанием вектора движения, предсказание вектора движения вставляется 810 в список предсказаний. Как имело место в случае кодера, те предсказания вектора движения, которые содержат информацию временного предсказания вектора движения, исключаются из сравнения и добавляются в список процессором 791 реконструкции. Если текущее предсказание вектора движения не является временным предсказанием вектора движения, процессор 791 реконструкции сравнивает 812 вектор движения текущего предсказания вектора движения с информацией о векторе движения предсказаний вектора движения в списке предсказаний вектора движения. Если подобная информация о векторе движения найдена в списке, текущее предсказание вектора движения не добавляется в список, и процесс возвращается к блоку 802, чтобы проверить, было ли оно последним предсказанием вектора движения для обработки. В ином случае текущее предсказание вектора движения добавляется 810 в список, и процесс возвращается к блоку 802.
[00102] Когда список создан, декодер может использовать индикацию вектора движения, принимаемую от кодера, чтобы выбрать вектор движения для декодирования текущего блока. Индикацией может быть, например, индекс в списке.
[00103] Вообще, после того, как процессор 791 реконструкции создал список предсказаний для вектора движения, он будет соответствовать списку предсказаний для вектора движения, созданному кодером, если процессор 791 реконструкции имеет в распоряжении ту же самую информацию, которую имел кодер. Если некоторая информация была потеряна во время передачи информация из кодера в декодер, это может затронуть генерирование списка предсказаний вектора движения в декодере 700. Однако, так как временные предсказания вектора движения сохраняются в списке, вероятности того, что декодер 700 способен правильно создать список предсказаний вектора движения, могут быть выше по сравнению с ситуацией, когда все дублирующие предсказания вектора движения были удалены.
[00104] Описанные выше формы осуществления изобретения описывают кодек с точки зрения устройства отдельного кодера и декодера, чтобы помочь пониманию используемых процессов. Однако должно быть понятно, что устройство, структуры и операции могут быть реализованы как отдельное устройство/структура/операция кодера-декодера. Кроме того, в некоторых формах осуществления изобретения кодер и декодер могут совместно использовать некоторые или все общие элементы.
[00105] Хотя вышеприведенные примеры описывают формы осуществления изобретения, работающие в кодеке в электронном устройстве, должно быть понятно, что изобретение, как описано ниже, может быть реализовано как часть любого кодека видеосигнала. Таким образом, например, формы осуществления изобретения могут быть реализованы в видеокодеке, который может осуществлять кодирование видеосигналов в трактах стационарной или проводной связи.
[00106] Таким образом, оборудование пользователя может включать в себя видеокодек, такой как описанные выше в формах осуществления изобретения.
[00107] Должно быть понятно, что термин оборудование пользователя предназначен для охвата любого подходящего типа беспроводного оборудования пользователя, такого как мобильные телефоны, переносные устройства обработки данных или переносные веб-браузеры.
[00108] Кроме того, элементы наземной мобильной сети общего пользования (Public Land Mobile Network, PLMN) также могут содержать описанные выше видеокодеки.
[00109] Вообще, различные формы осуществления изобретения могут быть реализованы аппаратными средствами или схемами специального назначения, программными средствами, логикой или любой их комбинацией. Например, некоторые аспекты могут быть реализованы аппаратными средствами, в то время как другие аспекты могут быть реализованы встроенными программными средствами или программным обеспечением, которое может выполняться контроллером, микропроцессором или другим вычислительным устройством, хотя изобретение не ограничено ими. В то время как различные аспекты изобретения могут быть проиллюстрированы и описаны как блок-схемы или с использованием некоторых других графических представлений, совершенно ясно, что эти описанные здесь блоки, устройство, системы, методы или способы могут быть реализованы, в качестве неограничивающих примеров, в виде аппаратных средств, программных средств, встроенного программного обеспечения, специализированных схем или логики, аппаратных средств общего назначения или контроллера, или других вычислительных устройств, или некоторой их комбинации.
[00110] Формы осуществления данного изобретения могут быть реализованы программными средствами для компьютера, выполняемыми процессором для обработки данных мобильного устройства, например в модуле процессора, или аппаратными средствами, или комбинацией программного обеспечения и аппаратных средств. Далее в этом отношении следует отметить, что любые блоки логического потока, показанные на фигурах, могут представлять шаги программы или связанные логические схемы, блоки и функции, или комбинацию шагов программы и логических схем, блоков и функций. Программное обеспечение может храниться на такой физической среде как интегральные схемы памяти или блоки запоминающего устройства, реализованные в процессоре, магнитные носители, такие как жесткий диск или дискеты, и оптические носители, такие, как например, универсальный цифровой диск (Digital Versatile Disk, DVD), и их варианты, а также компакт-диск (Compact Disk, CD).
[00111] Запоминающее устройство может быть любого типа, подходящего к местной технической среде, и может быть реализовано с использованием любой подходящей технологии хранения данных, таких как запоминающие устройства на основе полупроводников, магнитные запоминающие устройства и системы, оптические запоминающие устройства и системы, несъемные запоминающие устройства и сменные запоминающие устройства. Процессоры для обработки данных могут быть любого типа, подходящего к местной технической среде, и могут включать в качестве неограничивающих примеров один или несколько универсальных компьютеров, специализированных компьютеров, микропроцессоров, процессоры цифровых сигналов (Digital Signal Processors, DSPs) и процессоры на основе многоядерной архитектуры.
[00112] Формы осуществления изобретений могут быть применены на практике в виде различных компонентов, таких как модули с интегральными схемами. Проектирование интегральных схем является в целом высокоавтоматизированным процессом. Комплексное и мощное инструментальное программное обеспечение доступно для преобразования проекта логический уровня в проект полупроводниковой интегральной схемы, готовой для травления и формирования на полупроводниковой подложке.
[00113] Программы, такие как поставляемые фирмами Synopsys, Inc., Mountain View, California и Cadence Design, San Jose, California автоматически трассируют проводники и определяют местонахождение компонентов на полупроводниковом кристалле, используя хорошо устоявшиеся правила проектирования, а также библиотеки ранее сохраненных модулей проекта. Как только проект для полупроводниковой схемы был закончен, результирующий проект в стандартизированном электронном формате (например, Opus, GDSII или аналогичном) может быть передан на предприятие по изготовлению полупроводниковых интегральных схем для изготовления.
[00114] Предшествующее описание посредством приводимых в качестве примера и неограничивающих примеров предоставляет полное и информативное описание примера осуществления данного изобретения. Однако различные модификации и адаптации могут стать очевидными специалистам в соответствующей области техники в свете предшествующего описания, рассматриваемого вместе с прилагаемыми чертежами и прилагаемой формулой изобретения. Однако все такие и подобные модификации идей этого изобретения будут оставаться в пределах данного изобретения.
[00115] Ниже будут представлены некоторые примеры.
В некоторых формах осуществления изобретения способ включает:
прием блока пикселей;
создание набора кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения способ включает:
прием блока пикселей;
создание набора кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения способ включает:
прием кодированного блока пикселей;
создание набора кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения способ включает:
прием кодированного блока пикселей;
создание набора кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения, то включение предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения устройство содержит процессор и запоминающее устройство, содержащее код компьютерной программы, при этом запоминающее устройство и код компьютерной программы сконфигурированы так, чтобы с помощью процессора заставлять устройство:
принимать блок пикселей;
создавать набор кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения устройство содержит процессор и запоминающее устройство, содержащее код компьютерной программы, при этом запоминающее устройство и код компьютерной программы сконфигурированы так, чтобы с помощью процессора заставлять устройство:
принимать блок пикселей;
создавать набор кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно временным предсказание вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения устройство содержит процессор и запоминающее устройство, содержащее код компьютерной программы, при этом запоминающее устройство и код компьютерной программы сконфигурированы так, чтобы с помощью процессора заставлять устройство:
принимать кодированный блок пикселей;
создавать набор кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения устройство содержит процессор и запоминающее устройство, содержащее код компьютерной программы, при этом запоминающее устройство и код компьютерной программы сконфигурированы так, чтобы с помощью процессора заставлять устройство:
принимать кодированный блок пикселей;
создавать набор кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения предложен носитель для хранения информации, на котором хранится выполняемый компьютером код программы для использования кодером, причем упомянутый код программы содержит команды для:
приема блока пикселей;
создания набора кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения предложен носитель для хранения информации, на котором хранится выполняемый компьютером код программы для использования кодером, причем упомянутый код программы содержит команды для:
приема блока пикселей;
создания набора кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения предложен носитель для хранения информации, на котором хранится выполняемый компьютером код программы для использования кодером, причем упомянутый код программы содержит команды для:
приема кодированного блока пикселей;
создания набора кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения предложен носитель для хранения информации, на котором хранится выполняемый компьютером код программы для использования кодером, причем упомянутый код программы содержит команды для:
приема кодированного блока пикселей;
создания набора кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения устройство содержит:
средство для приема блока пикселей;
средство для создания набора кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое средство для создания набора содержит:
средство для проверки, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения;
средство для включения кандидата для предсказания вектора движения в набор, если кандидат для предсказания вектора движения является временным предсказанием вектора движения;
средство для определения, если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения устройство содержит:
средство для приема блока пикселей;
средство для создания набора кандидатов для предсказания вектора движения для блока пикселей; причем упомянутое средство для создания набора содержит:
средство для проверки, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
средство для включения кандидата для предсказания вектора движения в набор, если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
средство для определения, если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения устройство содержит:
средство для приема кодированного блока пикселей;
средство для создания набора кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое средство для создания набора содержит:
средство для проверки, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения, пространственным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
средство для включения кандидата для предсказания вектора движения в набор, если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
средство для определения, если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, включать ли кандидата для предсказания вектора движения в набор.
В некоторых формах осуществления изобретения устройство содержит:
средство для приема кодированного блока пикселей;
средство для создания набора кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое средство для создания набора содержит:
средство для проверки, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения, пространственным предсказанием вектора движения или пространственно-временным предсказанием вектора движения;
средство для включения кандидата для предсказания вектора движения в набор, если кандидат для предсказания вектора движения является временным предсказанием вектора движения или пространственно-временным предсказанием вектора движения; и
средство для определения, если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, включать ли кандидата для предсказания вектора движения в набор.
Изобретение относится к технологиям кодирования и декодирования видеоинформации. Техническим результатом является снижение ухудшения качества изображения за счет использования временного предсказания вектора движения, когда опорная временная информация движения недоступна. Предложен способ кодирования изображения. Способ включает в себя этапы, на которых осуществляют прием блока пикселей, создание набора кандидатов для предсказания вектора движения для блока пикселей и проверку набора, чтобы определить, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения. Если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то кандидат для предсказания вектора движения сохраняется в наборе. С другой стороны, если кандидат для предсказания вектора движения является пространственным предсказанием вектора движения, то определяют, включать кандидата для предсказания вектора движения в набор или нет. 5 н. и 13 з.п. ф-лы, 10 ил.
1. Способ кодирования изображения, включающий:
прием блока пикселей;
создание набора кандидатов для предсказания вектора движения для блока пикселей, причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения, при этом временное предсказание вектора движения основано, по меньшей мере частично, на одном или более кодированных блоках из кадра, отличного от кадра блока пикселей, а пространственное предсказание вектора движения основано только на одном или более кодированных блоках из того же кадра, что и кадр блока пикселей;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение кандидата для предсказания вектора движения в набор; и
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать кандидата для предсказания вектора движения в набор или нет; и
выбор одного кандидата для предсказания вектора движения из набора, чтобы представить предсказание вектора движения для блока пикселей.
2. Способ по п. 1, в котором упомянутое определение включает по меньшей мере одно из следующего:
- сравнение информации о векторе движения кандидата для предсказания вектора движения с информацией о векторе движения кандидата с пространственным предсказанием вектора движения;
- сравнение ссылочного индекса кандидата для предсказания вектора движения со ссылочным индексом кандидата с пространственным предсказанием вектора движения, который был включен в набор;
- проверку, сгенерирован ли кандидат для предсказания вектора движения путем обработки одного или более кандидатов для предсказания вектора движения или нет.
3. Способ по п. 1, включающий создание дополнительного кандидата для предсказания вектора движения на основании одного или более ранее добавленных в набор предсказателей вектора движения.
4. Способ по п. 1, в котором каждый кандидат для предсказания вектора движения в наборе связан с индексом, и если кандидата для предсказания вектора движения решено удалить из-за информации о векторе движения, соответствующей другому кандидату для предсказания вектора движения, то способ далее включает
- проверку индекса кандидата для предсказания вектора движения и индекса другого кандидата для предсказания вектора движения, и
- удаление того кандидата для предсказания вектора движения, который имеет больший индекс.
5. Способ декодирования кодированного изображения, включающий:
прием кодированного блока пикселей;
создание набора кандидатов для предсказания вектора движения для кодированного блока пикселей; причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения, при этом временное предсказание вектора движения основано, по меньшей мере частично, на одном или более векторах движения декодированного блока из кадра, отличного от кадра блока пикселей, а пространственное предсказание вектора движения основано только на одном или более векторах движения другого декодированного блока из того же кадра, что и кадр блока пикселей;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение предсказания вектора движения в набор; и
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать кандидата для предсказания вектора движения в набор или нет; и
выбор одного кандидата для предсказания вектора движения из набора, чтобы представить предсказание вектора движения для блока пикселей.
6. Способ по п. 5, в котором упомянутое определение включает по меньшей мере одно из следующего:
- сравнение информации о векторе движения кандидата для предсказания вектора движения с информацией о векторе движения кандидата с пространственным предсказанием вектора движения;
- сравнение ссылочного индекса кандидата для предсказания вектора движения со ссылочным индексом кандидата с пространственным предсказанием вектора движения, который был включен в набор;
- проверку, сгенерирован ли кандидат для предсказания вектора движения путем обработки одного или более кандидатов для предсказания вектора движения или нет.
7. Способ по п. 5, включающий создание дополнительного кандидата для предсказания вектора движения на основании одного или более ранее добавленных в набор предсказателей вектора движения.
8. Способ по п. 5, в котором каждый кандидат для предсказания вектора движения в наборе связан с индексом, и если кандидата для предсказания вектора движения решено удалить из-за информации о векторе движения, соответствующей другому кандидату для предсказания вектора движения, то способ далее включает
- проверку индекса кандидата для предсказания вектора движения и индекса другого кандидата для предсказания вектора движения, и
- удаление того кандидата для предсказания вектора движения, который имеет больший индекс.
9. Устройство для кодирования изображения, содержащее
процессор и
запоминающее устройство, содержащее код компьютерной программы, причем запоминающее устройство и код компьютерной программы сконфигурированы так, чтобы с помощью процессора заставлять устройство:
принимать блок пикселей;
создавать набор кандидатов для предсказания вектора движения для блока пикселей, причем код компьютерной программы для создания набора заставляет устройство:
проверять, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения, при этом временное предсказание вектора движения основано, по меньшей мере частично, на одном или более векторах движения кодированного блока из кадра, отличного от кадра блока пикселей, а пространственное предсказание вектора движения основано только на одном или более векторах движения другого кодированного блока из того же кадра, что и кадр блока пикселей;
включать предсказание вектора движения в набор, если кандидат для предсказания вектора движения является временным предсказанием вектора движения; и
определять, включать кандидата для предсказания вектора движения в набор или нет, если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения; и
выбирать одного кандидата для предсказания вектора движения из набора, чтобы представить предсказание вектора движения для блока пикселей.
10. Устройство по п. 9, в котором код компьютерной программы для определения, включать кандидата для предсказания вектора движения в набор или нет, заставляет устройство выполнять по меньшей мере одно из следующего:
- сравнение информации о векторе движения кандидата для предсказания вектора движения с информацией о векторе движения кандидата с пространственным предсказанием вектора движения;
- сравнение ссылочного индекса кандидата для предсказания вектора движения со ссылочным индексом кандидата с пространственным предсказанием вектора движения, который был включен в набор;
- проверку, сгенерирован ли кандидат для предсказания вектора движения путем обработки одного или более кандидатов для предсказания вектора движения или нет.
11. Устройство по п. 9, включающее код компьютерной программы, конфигурированный так, чтобы с помощью процессора заставлять устройство создавать дополнительного кандидата для предсказания вектора движения на основании одного или более ранее добавленных в набор предсказателей вектора движения.
12. Устройство по п. 9, в котором каждый кандидат для предсказания вектора движения в наборе связан с индексом, и если кандидата для предсказания вектора движения решено удалить из-за информации о векторе движения, соответствующей другому кандидату для предсказания вектора движения, устройство также содержит код компьютерной программы, конфигурированный так, чтобы с помощью процессора заставлять устройство:
- проверять индекс кандидата для предсказания вектора движения и индекс другого кандидата для предсказания вектора движения, и
- удалять того кандидата для предсказания вектора движения, который имеет больший индекс.
13. Устройство для декодирования кодированного изображения, содержащее
процессор и
запоминающее устройство, содержащее код компьютерной программы, причем запоминающее устройство и код компьютерной программы сконфигурированы так, чтобы с помощью процессора заставлять устройство:
принимать кодированный блок пикселей;
создавать набор кандидатов для предсказания вектора движения для кодированного блока пикселей, причем код компьютерной программы для создания набора заставляет устройство:
проверять, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения, при этом временное предсказание вектора движения основано, по меньшей мере частично, на одном или более векторах движения декодированного блока из кадра, отличного от кадра блока пикселей, а пространственное предсказание вектора движения основано только на одном или более векторах движения другого декодированного блока из того же кадра, что и кадр блока пикселей;
включать предсказание вектора движения в набор, если кандидат для предсказания вектора движения является временным предсказанием вектора движения; и
определять, включать кандидата для предсказания вектора движения в набор или нет, если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения; и
выбирать одного кандидата для предсказания вектора движения из набора, чтобы представить предсказание вектора движения для блока пикселей.
14. Устройство по п. 13, в котором код компьютерной программы для определения, включать кандидата для предсказания вектора движения в набор или нет, заставляет устройство выполнять по меньшей мере одно из следующего:
- сравнение информации о векторе движения кандидата для предсказания вектора движения с информацией о векторе движения кандидата с пространственным предсказанием вектора движения;
- сравнение ссылочного индекса кандидата для предсказания вектора движения со ссылочным индексом кандидата с пространственным предсказанием вектора движения, который был включен в набор;
- проверку, сгенерирован ли кандидат для предсказания вектора движения путем обработки одного или более кандидатов для предсказания вектора движения или нет.
15. Устройство по п. 13, включающее код компьютерной программы, конфигурированный так, чтобы с помощью процессора заставлять устройство создавать дополнительного кандидата для предсказания вектора движения на основании одного или более ранее добавленных в набор предсказателей вектора движения.
16. Устройство по п. 13, в котором каждый кандидат для предсказания вектора движения в наборе связан с индексом, и если кандидата для предсказания вектора движения решено удалить из-за информации о векторе движения, соответствующей другому кандидату для предсказания вектора движения, устройство также содержит код компьютерной программы, конфигурированный так, чтобы с помощью процессора заставлять устройство:
- проверять индекс кандидата для предсказания вектора движения и индекс другого кандидата для предсказания вектора движения, и
- удалять того кандидата для предсказания вектора движения, который имеет больший индекс.
17. Машиночитаемый носитель информации, на котором хранятся команды, которые при выполнении процессором заставляют процессор выполнять способ декодирования кодированного изображения, включающий:
прием кодированного блока пикселей;
создание набора кандидатов для предсказания вектора движения для кодированного блока пикселей, причем упомянутое создание набора включает:
проверку, является ли кандидат для предсказания вектора движения временным предсказанием вектора движения или пространственным предсказанием вектора движения, при этом временное предсказание вектора движения основано, по меньшей мере частично, на одном или более векторах движения декодированного блока из кадра, отличного от кадра блока пикселей, а пространственное предсказание вектора движения основано только на одном или более векторах движения другого декодированного блока из того же кадра, что и кадр блока пикселей;
если кандидат для предсказания вектора движения является временным предсказанием вектора движения, то включение предсказания вектора движения в набор;
если кандидат для предсказания вектора движения основан только на пространственном предсказании вектора движения, то определение, включать кандидата для предсказания вектора движения в набор или нет; и
выбор одного кандидата для предсказания вектора движения из набора, чтобы представить предсказание вектора движения для блока пикселей.
18. Машиночитаемый носитель по п. 17, в котором упомянутое определение включает по меньшей мере одно из следующего:
- сравнение информации о векторе движения кандидата для предсказания вектора движения с информацией о векторе движения кандидата с пространственным предсказанием вектора движения;
- сравнение ссылочного индекса кандидата для предсказания вектора движения со ссылочным индексом кандидата с пространственным предсказанием вектора движения, который был включен в набор;
- проверку, сгенерирован ли кандидат для предсказания вектора движения путем обработки одного или более кандидатов для предсказания вектора движения или нет.
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
Способ приготовления мыла | 1923 |
|
SU2004A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
ПРОСТРАНСТВЕННО-ВРЕМЕННОЕ ПРОГНОЗИРОВАНИЕ ДЛЯ ДВУНАПРАВЛЕНО ПРОГНОЗИРУЕМЫХ (В) ИЗОБРАЖЕНИЙ И ПРОГНОЗИРОВАНИЕ ВЕКТОРА ДВИЖЕНИЯ ДЛЯ КОМПЕНСАЦИИ ДВИЖЕНИЯ МНОЖЕСТВЕННЫХ ИЗОБРАЖЕНИЙ С ПОМОЩЬЮ ЭТАЛОНА | 2003 |
|
RU2310231C2 |
Авторы
Даты
2016-03-10—Публикация
2011-10-21—Подача