ИМПУЛЬСНО-КОДОВАЯ МОДУЛЯЦИЯ С КВАНТОВАНИЕМ ПРИ КОДИРОВАНИИ ВИДЕОИНФОРМАЦИИ Российский патент 2016 года по МПК H04N19/46 H04N19/50 

Описание патента на изобретение RU2578724C2

По этой заявке испрашивается приоритет на основании предварительной заявки на патент США № 61/449413, поданной 4 марта 2011 г., которая включена сюда в полном объеме путем ссылки.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Это изобретение, сущность которого здесь раскрыта, относится к кодированию видеоинформации и, в частности к способам импульсно-кодовой модуляции (ИКМ) видеоданных с квантованием.

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

Возможности цифрового видео могут быть встроены в разнообразные устройства, в том числе в цифровые телевизоры, в цифровые системы прямой широковещательной передачи, в системы беспроводной широковещательной передачи, персональные цифровые информационные устройства (PDA), в портативные или настольные компьютеры, в цифровые фотоаппараты, в устройства цифровой записи, в цифровые медиапроигрыватели, в видеоигровые устройства, в игровые приставки, в сотовые или спутниковые радиотелефонные аппараты, в устройства видеоконференцсвязи и т.п. В цифровых видеоустройствах реализованы способы сжатия видеоинформации, которые описаны в стандартах MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, раздел 10, в стандарте усовершенствованного кодирования видеоинформации (AVC), в разрабатываемом в настоящее время стандарте высокопроизводительного кодирования видеоинформации (HEVC) и в расширенных версиях этих стандартов для более эффективной передачи, более эффективного приема и хранения цифровой видеоинформации.

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

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

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

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

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

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

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

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

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

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

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

На фиг.1 изображена блок-схема, на которой проиллюстрирована система кодирования и декодирования видеоинформации, приведенная в качестве примера.

На фиг.2 изображена блок-схема, на которой проиллюстрирован видеокодер, приведенный в качестве примера.

На фиг.3 изображена блок-схема, на которой проиллюстрирован приведенный в качестве примера блок ИКМ с квантованием, входящий в состав видеокодера.

На фиг.4 изображен приведенный в качестве примера закодированный поток битов видеоинформации с заголовком последовательности.

На фиг.5 изображена блок-схема, на которой проиллюстрирован видеодекодер, приведенный в качестве примера.

На фиг.6 изображена блок-схема, на которой проиллюстрирован приведенный в качестве примера блок декодирования с использованием ИКМ с квантованием, входящий в состав видеодекодера.

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

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

ПОДРОБНОЕ ОПИСАНИЕ

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

Для кодирования видеоинформации согласно стандарту высокопроизводительного кодирования видеоинформации (HEVC) видеокадр может быть разделен на единичные элементы кодирования, единичные элементы предсказания и единичные элементы преобразования. Термин "единичный элемент кодирования" обычно относится к области изображения, которая служит в качестве базовой единицы, к которой применяют различные средства кодирования для сжатия видеоинформации. Единичный элемент кодирования обычно имеет квадратную форму, и можно полагать, что он является аналогичным так называемому макроблоку, например, согласно другим стандартам кодирования видеоинформации, например, согласно стандарту ITU-T H.264. Единичный элемент кодирования может быть разделен на все более и более малые единичные элементы кодирования согласно схеме разделения на основе дерева квадрантов.

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

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

Для кодирования блока (например, единичного элемента предсказания видеоданных) сначала получают предиктор для блока. Предиктор может быть получен либо путем внутрикадрового (I) предсказания (то есть, предсказания по пространству), либо путем межкадрового (P или B) предсказания (то есть, предсказания по времени). Следовательно, некоторые единичные элементы предсказания могут быть закодированы с внутрикадровым предсказанием (I) с использованием предсказания по пространству относительно соседних опорных блоков в том же самом кадре, а другие единичные элементы предсказания могут быть закодированы с межкадровым предсказанием (P или B) относительно опорных блоков в других кадрах.

После определения предиктора вычисляют разности между исходным блоком видеоданных и его предиктором. Эту разность также именуют разностью предсказания, и она относится к разностям пикселей между пикселями в блоке, подлежащем кодированию, и в опорном блоке, то есть в предикторе. Для обеспечения лучшего сжатия разность предсказания обычно преобразовывают, например, с использованием дискретного косинусного преобразования (ДКП), целочисленного преобразования, преобразования Карунена-Лоэва (Karhunen-Loeve) (K-L-преобразования) или иного преобразования.

Преобразование преобразовывает значения разности пикселей в пространственной области в коэффициенты преобразования в области преобразования, например, в частотной области. Коэффициенты преобразования обычно упорядочены в виде двумерного (2-D) массива для каждого единичного элемента преобразования. Для дополнительного сжатия коэффициенты преобразования могут быть подвергнуты квантованию. Затем статистический кодер применяет к квантованным коэффициентам преобразования статистическое кодирование, которым является любой из следующих способов кодирования: контекстно-адаптивное кодирование кодами переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п.

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

В качестве примера, в стандарте кодирования видеоинформации MPEG-2 задают верхний предел количества закодированных битов, которое может быть сгенерировано для закодированного макроблока видеоданных. При проектировании декодера этот верхний предел служит вспомогательным средством, задавая конкретный объем данных, который получают, а затем обрабатывают для декодирования макроблока. Генерация кодируемых битов сверх этого верхнего предела противоречила бы конструкции декодера стандарта MPEG-2.

В режиме ИКМ с внутрикадровым предсказанием (Intra PCM) согласно стандарту ITU-T H.264/MPEG-4 AVC (ниже именуемому стандартом H.264) кодер передает значения выборок из макроблока без предсказания, кодирования с преобразованием и статистического кодирования. То есть, в режиме ИКМ с внутрикадровым предсказанием для макроблоков кодер просто выполняет кодирование значений пикселей в области макроблока с использованием, например, 8 битов на каждую выборку. Кодер генерирует значения пикселей, закодированные с использованием ИКМ, в качестве значений байтов без обработки. Режим ИКМ с внутрикадровым предсказанием позволяет кодерам регулировать количество битов каждого макроблока равным заданному или меньшему значению без сложных вычислений.

Использование кодирования в режиме ИКМ с внутрикадровым предсказанием в стандарте H.264 указано посредством элемента синтаксиса "режим макроблока". При использовании кодирования в режиме ИКМ с внутрикадровым предсказанием значения выборок из каждого соответствующего макроблока передают без предсказания, кодирования с преобразованием и статистического кодирования. Следует отметить, что, когда статистическим кодированием является контекстно-адаптивное двоичное арифметическое кодирование (CABAC), двоичное арифметическое кодирование (BAC) прекращают и инициализируют перед передачей значений выборок.

В существующей в настоящее время модели стандарта HEVC отсутствует какое-либо средство, сопоставимое с ИКМ с внутрикадровым предсказанием в стандарте H.264. Одна из проблем состоит в том, что характеристики стандарта HEVC являются иными, чем характеристики стандарта H.264. В стандарте H.264 объем данных ограничен на уровне макроблока, который имеет размер 16×16 пикселей. В отличие от этого, стандарт HEVC имеет единичные элементы кодирования и единичные элементы предсказания до 64×64 пикселей или, возможно, еще большие. В результате, в стандарте HEVC ограничение, наложенное на предельный объем данных в каждом блоке, является более сильным для удовлетворения некоторым требованиям, предъявляемым сетью, которые встречаются на практике, чем в стандарте H.264.

Другой проблемой, связанной с режимом ИКМ с внутрикадровым предсказанием в стандарте H.264, является то, что он является режимом без потерь. При кодировании без потерь закодированные данные могут быть точно восстановлены на стороне декодера. Следовательно, в кадре, который в ином случае закодирован с потерями, может появиться абсолютно неискаженный макроблок. Он может быть визуально шокирующим или, по меньшей мере, визуально заметным вследствие визуальных различий между данными без потерь и соседними данными с потерями.

Еще одна проблема, связанная со стандартом HEVC, состоит в том, что он может обеспечивать поддержку информационного содержимого с битовой глубиной 8 бит, 10 бит, 12 бит или с еще большей битовой глубиной. Поэтому передача единичного элемента кодирования размером 64×64 (или более) с 12 битами на каждую выборку может привести к нежелательному объему данных для режима ИКМ.

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

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

На фиг.1 изображена блок-схема, на которой проиллюстрирована приведенная в качестве примера система 10 кодирования и декодирования видеоинформации, которая может быть сконфигурирована для использования способов импульсно-кодовой модуляции/демодуляции с квантованием в соответствии с примерами из этого изобретения, сущность которого здесь раскрыта. Как показано на фиг.1, система 10 включает в себя устройство-источник 12, которое передает закодированную видеоинформацию в устройство-адресат 14 по каналу 16 связи. Закодированная видеоинформация также может храниться на носителе 34 информации или в файловом сервере 36, и к ней при желании может осуществлять доступ устройство-адресат 14. Устройство-источник 12 и устройство-адресат 14 могут содержать любое из широкого разнообразия устройств, в том числе настольные компьютеры, блокнотные (то есть, портативные) компьютеры, планшетные компьютеры, компьютерные приставки к телевизору, телефонные трубки, например, так называемые смартфоны, телевизоры, камеры, дисплеи, цифровые медиапроигрыватели, видеоигровые консоли и т.п. Во многих случаях такие устройства могут быть оснащены для беспроводной связи. Следовательно, канал 16 связи может содержать канал беспроводной связи, канал проводной связи или комбинацию каналов беспроводной и проводной связи, пригодную для передачи закодированных видеоданных. Аналогичным образом, доступ к файловому серверу 36 устройство-адресат 14 может осуществить через любое стандартное соединение для передачи данных, включая соединение с сетью Интернет. Оно может включать в себя канал беспроводной связи (например, соединение стандарта Wi-Fi), проводное соединение (например, цифровую абонентскую линию (DSL), кабельный модем и т.д.) или комбинацию обоих из них, пригодную для доступа к закодированным видеоданным, хранящимся в файловом сервере.

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

В примере из фиг.1 устройство-источник 12 включает в себя источник 18 видеоинформации, видеокодер 20, модулятор/демодулятор 22 и передатчик 24. В устройстве-источнике 12 источником 18 видеоинформации может являться, в том числе, такой источник, как, например, устройство видеосъемки, такое как, например, видеокамера, видеоархив, содержащий ранее снятую видеоинформацию, интерфейс с внешним источником видеоинформации, предназначенный для приема видеоинформации от поставщика видеоконтента, и/или система компьютерной графики, предназначенная для генерации данных компьютерной графики в качестве источника видеоинформации, или комбинация таких источников. В качестве одного из примеров, если источником 18 видеоинформации является видеокамера, то устройство-источник 12 и устройство-адресат 14 могут представлять собой так называемые телефоны с камерой или видеотелефоны. Однако, способы, описанные в этом изобретении, сущность которого здесь раскрыта, могут быть применены для кодирования видеоинформации в целом и могут быть применены для областей применения с беспроводной и/или проводной связью.

Снятая, заранее снятая или созданная посредством компьютера видеоинформация может быть закодирована видеокодером 20. Закодированная видеоинформация может быть промодулирована модемом 22 согласно стандарту связи, например, согласно протоколу беспроводной связи, и передана в устройство-адресат 14 через передатчик 24. Модем 22 может включать в себя различные смесители, фильтры, усилители или иные компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, в том числе усилители, фильтры и одну или большее количество антенн.

Снятая, заранее снятая или созданная посредством компьютера видеоинформация, закодированная видеокодером 20, также может быть сохранена на носителе 34 информации или в файловом сервере 36 для использования впоследствии. Носителем 34 информации могут являться, в том числе диски формата Blu-ray, универсальные цифровые диски (DVD), постоянные запоминающие устройства на компакт-диске (CD-ROM), флэш-память или любые иные подходящие цифровые носители информации, предназначенные для хранения закодированной видеоинформации. Устройство-адресат 14 может затем осуществлять доступ к закодированной видеоинформации, хранящейся на носителе 34 информации, для ее декодирования и воспроизведения.

Файловым сервером 36 может являться сервер любого типа, способный обеспечивать хранение закодированной видеоинформации и передачу этой закодированной видеоинформации в устройство-адресат 14. Примерами файловых серверов являются, в том числе, Web-сервер (например, для веб-сайта), FTP-сервер, устройства хранения данных, подключенные к сети (NAS), локальный дисковод или устройство любого иного типа, способное хранить закодированные видеоданные и передавать их в устройство-адресат. Передачей закодированных видеоданных из файлового сервера 36 может являться потоковая передача, передача путем загрузки или комбинация обоих этих видов передачи. Устройство-адресат 14 может осуществлять доступ к файловому серверу 36 через любое стандартное соединение для передачи данных, включая соединение с сетью Интернет. Оно может включать в себя канал беспроводной связи (например, соединение стандарта Wi-Fi), проводное соединение (например, цифровую абонентскую линию (DSL), кабельный модем, соединение с сетью стандарта Ethernet, универсальную последовательную шину (USB) и т.д.) или комбинацию обоих из них, пригодную для доступа к закодированным видеоданным, хранящимся в файловом сервере.

В примере из фиг.1 устройство-адресат 14 включает в себя приемник 26, модем 28, видеодекодер 30 и дисплей 32. Приемник 26 из устройства-адресата 14 принимает информацию по каналу 16, а модем 28 выполняет демодуляцию информации для создания демодулированного потока битов для видеодекодера 30. Информация, переданная по каналу 16, может включать в себя разнообразную информацию синтаксиса, сгенерированную видеокодером 20 для ее использования видеодекодером 30 при декодировании видеоданных. Такой синтаксис также может содержаться в закодированных видеоданных, хранящихся на носителе 34 информации или в файловом сервере 36. Каждое из устройств, которыми являются видеокодер 20 и видеодекодер 30, может являться частью соответствующего кодера-декодера (CODEC), способного выполнять кодирование или декодирование видеоданных.

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

В примере из фиг.1 канал 16 связи может содержать любое средство беспроводной или проводной связи, такое как, например, радиочастотный (РЧ) спектр, или одну или большее количество физических линий передачи, или любую комбинацию средств беспроводной и проводной связи. Канал 16 связи может являться частью сети с коммутацией пакетов, такой как, например, локальная сеть, региональная сеть или глобальная сеть, такая как, например, сеть Интернет. Канал 16 связи обычно представляет собой любое подходящее средство связи или совокупность различных средств связи для передачи видеоданных из устройства-источника 12 в устройство-адресат 14, включая любую подходящую комбинацию средств проводной или беспроводной связи. Канал 16 связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое иное оборудование, которое может быть полезным для облегчения передачи информации из устройства-источника 12 в устройство-адресат 14.

Видеокодер 20 и видеодекодер 30 могут функционировать согласно стандарту сжатия видеоинформации, такому как, например, разрабатываемый в настоящее время стандарт высокопроизводительного кодирования видеоинформации (HEVC), и могут соответствовать тестовой модели стандарта HEVC (HM). В альтернативном варианте видеокодер 20 и видеодекодер 30 могут функционировать согласно другим отраслевым или промышленным стандартам, таким как, например, стандарт ITU-T H.264, иначе именуемый стандартом MPEG-4, раздел 10, усовершенствованное кодирование видеоинформации (AVC) или расширенные версии этих стандартов. Тем не менее, способы из этого изобретения, сущность которого здесь раскрыта, не ограничены каким-либо конкретным стандартом кодирования. Другими примерами являются, в том числе, стандарт MPEG-2 и стандарт ITU-T H.263.

Хотя это и не показано на фиг.1, в некоторых аспектах изобретения каждое из устройств, которыми являются видеокодер 20 и видеодекодер 30, может быть объединено с кодером звука и с декодером звука и может включать в себя надлежащие блоки мультиплексирования-демультиплексирования (MUX-DEMUX) или иное аппаратное и программное обеспечение для обеспечения кодирования как звуковой информации, так и видеоинформации в общий поток данных или в раздельные потоки данных. Если это возможно, то в некоторых примерах блоки мультиплексирования-демультиплексирования (MUX-DEMUX) могут соответствовать протоколу мультиплексора согласно стандарту ITU H.223 или иным протоколам, таким как, например, протокол передачи дейтаграмм пользователя (UDP).

Каждое из устройств, которыми являются видеокодер 20 и видеодекодер 30, может быть реализовано в виде любой из множества походящих схем кодера, например, в виде одного или большего количества следующих устройств: микропроцессоров, устройств цифровой обработки сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратных средств, аппаратно-реализованного программного обеспечения или любых их комбинаций. Когда способы частично реализованы посредством программного обеспечения, устройство может хранить команды для программного обеспечения на подходящем постоянном считываемом посредством компьютера носителе информации и выполнять эти команды аппаратными средствами с использованием одного или большего количества процессоров для выполнения способов из этого изобретения, сущность которого здесь раскрыта. Каждое из устройств, которыми являются видеокодер 20 и видеодекодер 30, может содержаться в одном или в большем количестве кодеров или декодеров, любой из которых может быть встроен как часть объединенного кодера/декодера (CODEC) в соответствующее устройство.

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

На фиг.2 изображена блок-схема, на которой проиллюстрирован приведенный в качестве примера видеокодер 20, в котором могут использоваться способы для режима ИКМ с квантованием в способе кодирования видеоинформации, описанном в этом изобретении, сущность которого здесь раскрыта. Описание видеокодера 20 будет приведено в иллюстративных целях применительно к стандарту кодирования HEVC, но это не ограничивает настоящее изобретение, сущность которого здесь раскрыта, режим ИКМ с квантованием может оказаться полезным в других стандартах или способах кодирования. В дополнение к кодированию видеоинформации путем ИКМ с квантованием видеокодер 20 может выполнять кодирование единичных элементов кодирования внутри видеокадров с внутрикадровым и с межкадровым предсказанием.

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

Как показано на фиг.2, видеокодер 20 принимает текущий блок видеоинформации в видеокадре, подлежащем кодированию. В примере из фиг.2 видеокодер 20 включает в себя блок 44 компенсации движения, блок 42 оценки параметров движения, блок 46 внутрикадрового предсказания, блок 47 ИКМ с квантованием, буфер 64 для опорных кадров, сумматор 50, блок 52 преобразования, блок 54 квантования преобразования и блок 56 статистического кодирования. Блок 52 преобразования, проиллюстрированный на фиг.2, представляет собой блок, который применяет фактическое преобразование к блоку разностных данных, и его не следует путать с блоком коэффициентов преобразования, который также может именоваться блоком преобразования (TU) единичного элемента кодирования (CU). Для восстановления блока видеоинформации видеокодер 20 также включает в себя блок 58 обратного квантования преобразования, блок 60 обратного преобразования и сумматор 62. Также может содержаться фильтр, устраняющий блочность (на фиг.2 не показан), предназначенный для фильтрации границ блоков для устранения артефактов, обусловленных блочностью, из восстановленной видеоинформации. При желании фильтр, устраняющий блочность, обычно фильтрует выходной сигнал из сумматора 62.

Во время процедуры кодирования видеокодер 20 принимает видеокадр или срез, подлежащий кодированию. Этот кадр или срез может быть разделен на множество блоков видеоинформации, например, на наибольшие единичные элементы кодирования (LCU). Блок 42 оценки параметров движения и блок 44 компенсации движения выполняют кодирование принятого блока видеоинформации с межкадровым предсказанием относительно одного или большего количества блоков в одном или более опорных кадрах для обеспечения сжатия по времени. Блок 46 внутрикадрового предсказания может выполнять кодирование принятого блока видеоинформации с внутрикадровым предсказанием относительно одного или большего количества соседних блоков в том же самом кадре или срезе в качестве блока, подлежащего кодированию, для обеспечения сжатия по пространству. Блок 47 ИКМ с квантованием выполняет кодирование входных блоков видеоинформации с использованием ИКМ с квантованием согласно способам из этого изобретения, сущность которого здесь раскрыта.

Блок 40 выбора режима может выбирать один из режимов кодирования: с внутрикадровым предсказанием, с межкадровым предсказанием или ИКМ с квантованием, например, на основании погрешности (то есть, искажения) и/или результатов сжатия для каждого режима. Если выбраны режимы с межкадровым предсказанием или с внутрикадровым предсказанием, то блок 40 выбора режима подает результирующий блок, закодированный с внутрикадровым предсказанием или закодированный с межкадровым предсказанием, в сумматор 50 для генерации разностных данных для блока и в сумматор 62 для восстановления закодированного блока для использования в опорном кадре. Некоторые видеокадры могут быть обозначены как I-кадры, где все блоки в I-кадре закодированы в режиме с внутрикадровым предсказанием. В некоторых случаях блок 46 внутрикадрового предсказания может выполнять кодирование блока с внутрикадровым предсказанием в P-кадре или в B-кадре, например, когда поиск движения, выполняемый блоком 42 оценки параметров движения, не приводит к предсказанию блока в достаточной степени.

Блок 42 оценки параметров движения и блок 44 компенсации движения могут быть в высокой степени интегрированными друг с другом, но проиллюстрированы как отдельные блоки в концептуальных целях. Оценка параметров движения представляет собой процедуру генерации векторов движения, которые оценивают движение для блоков видеоинформации. Например, вектор движения может указывать смещение единичного элемента предсказания в текущем кадре относительно опорной выборки из опорного кадра. Опорной выборкой может являться блок, который, как установлено, близко совпадает с участком единичного элемента кодирования (CU), включающего в себя кодируемый единичный элемент предсказания (PU), с точки зрения разности пикселей, которая может определяться суммой абсолютных разностей (SAD), суммой квадратов разностей (SSD) или иными показателями разности. Компенсация движения, выполняемая блоком 44 компенсации движения, может включать в себя выборку или генерацию значений для единичного элемента предсказания на основании вектора движения, определяемого оценкой параметров движения.

Блок 42 оценки параметров движения вычисляет вектор движения для единичного элемента предсказания для кадра, закодированного с межкадровым предсказанием, путем сравнения единичного элемента предсказания с опорными выборками из опорного кадра, хранящегося в буфере 64 для опорных кадров. В некоторых примерах видеокодер 20 может вычислять значения для субцелочисленных положений пикселей опорных кадров, хранящихся в буфере 64 для опорных кадров. Например, видеокодер 20 может вычислять значения для положений пикселей, равных одной четверти, для положений пикселей, равных одной восьмой, или для других дробных положений пикселей опорного кадра. Следовательно, блок 42 оценки параметров движения может выполнять поиск движения относительно полных положений пикселей и дробных положений пикселей и выводить вектор движения с точностью до дробной доли пикселя. Блок 42 оценки параметров движения посылает вычисленный вектор движения в блок 56 статистического кодирования и в блок 44 компенсации движения. Участок опорного кадра, идентифицированный вектором движения, может именоваться опорной выборкой. Блок 44 компенсации движения может вычислять значение предсказания для единичного элемента предсказания текущего CU, например, путем извлечения опорной выборки, идентифицированной вектором движения для PU.

Блок 46 внутрикадрового предсказания может выполнять кодирование принятого блока с внутрикадровым предсказанием в качестве альтернативы кодированию с межкадровым предсказанием, выполняемому блоком 42 оценки параметров движения и блоком 44 компенсации движения. Блок 46 внутрикадрового предсказания может выполнять кодирование принятого блока относительно соседних предварительно закодированных блоков, например, блоков, расположенных выше, выше и справа, выше и слева или слева от текущего блока, предполагая следующий порядок кодирования блоков: слева направо, сверху вниз. Блок 46 внутрикадрового предсказания может быть сконфигурирован с множеством различных режимов внутрикадрового предсказания. Например, блок 46 внутрикадрового предсказания может быть сконфигурирован с определенным количеством режимов предсказания по направлению, например, 33 режимов предсказания по направлению на основании размера кодируемого единичного элемента кодирования (CU).

Блок 46 внутрикадрового предсказания может выбирать режим с внутрикадровым предсказанием, например, путем вычисления значения погрешности для различных режимов внутрикадрового предсказания и путем выбора режима, дающего самое низкое значение погрешности. Режимы предсказания по направлению могут включать в себя функции объединения значений соседних по пространству пикселей и применения объединенных значений для формирования одного или большего количества пикселей предсказанного блока для единичного элемента предсказания (PU). После того как были вычислены значения для всех положений пикселей в PU, блок 46 внутрикадрового предсказания может вычислить значение погрешности для режима предсказания на основании разностей пикселей между PU и предсказанным блоком. Блок 46 внутрикадрового предсказания может продолжать проверку режимов с внутрикадровым предсказанием до тех пор, пока не будет обнаружен режим с внутрикадровым предсказанием, дающий приемлемое значение погрешности. Затем блок 46 внутрикадрового предсказания может послать PU в сумматор 50.

Видеокодер 20 формирует разностный блок путем вычитания данных предсказания, вычисленных блоком 44 компенсации движения или блоком 46 внутрикадрового предсказания, из исходного кодируемого блока видеоинформации. Сумматор 50 представляет собой компонент или компоненты, который выполняет (которые выполняют) эту операцию вычитания. Разностный блок может соответствовать двумерной матрице значений разностей пикселей, где количество значений в разностном блоке является тем же самым, что и количество пикселей в PU, соответствующем разностному блоку. Значения в разностном блоке могут соответствовать разностям, то есть погрешности, между значениями пикселей в PU и в исходном блоке, подлежащем кодированию, расположенных в одном и том же месте. Разностями могут являться разности сигнала цветности или яркости в зависимости от типа кодируемого блока.

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

Блок 56 статистического кодирования может применять статистическое кодирование, такое как, например, контекстно-адаптивное кодирование кодами переменной длины (CAVLC) или контекстно-адаптивное двоичное арифметическое кодирование (CABAC), к просканированным коэффициентам. В дополнение к этому блок 56 статистического кодирования может выполнять кодирование информации о векторе движения (MV) и любого из множества элементов синтаксиса, являющегося полезным при декодировании видеоданных в видеодекодере 30. Видеодекодер 30 может использовать эти элементы синтаксиса для восстановления закодированных видеоданных. После статистического кодирования блоком 56 статистического кодирования полученная в результате этого закодированная видеоинформация может быть передана в другое устройство, например в видеодекодер 30, или заархивирована для передачи или извлечения впоследствии.

Блок 58 обратного квантования преобразования и блок 60 обратного преобразования применяют, соответственно, обратное квантование и обратное преобразование для восстановления разностного блока в области пикселей, например, для использования впоследствии в качестве опорного блока. Блок 44 компенсации движения может вычислять опорный блок путем суммирования разностного блока с предсказанным блоком одного из кадров из буфера 64 для опорных кадров. Блок 44 компенсации движения также может применять один или большее количество интерполирующих фильтров к восстановленному разностному блоку для вычисления значений субцелочисленных пикселей для использования при оценке параметров движения. Сумматор 62 суммирует восстановленный разностный блок с блоком предсказания с компенсацией движения, созданным блоком 44 компенсации движения, для создания восстановленного блока видеоинформации для хранения в буфере 64 для опорных кадров. Восстановленный блок видеоинформации может использоваться блоком 42 оценки параметров движения и блоком 44 компенсации движения в качестве опорного блока для кодирования блока с межкадровым предсказанием в последующем видеокадре.

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

Факт использования кодирования с использованием ИКМ может быть сообщен видеодекодеру в потоке битов закодированной видеоинформации. Флаг ИКМ (pcm_flag) может быть сообщен на уровне единичного элемента предсказания для указания того, что было использовано кодирование с использованием ИКМ. Если режимом предсказания является внутрикадровое предсказание, размер раздела равен 2N×2N, а размер блока является большим или равным минимальному размеру блока ИКМ, то передают флаг pcm_flag. Следует отметить, что если pcm_flag равен единице, то в потоке битов может быть передано несколько битов, равных 0, для заполнения незначащей информацией до начала следующего байта (например, для обеспечения выравнивания по границе байта). Дополнительные элементы синтаксиса относительно кодирования с использованием ИКМ могут быть переданы в наборе параметров последовательности (SPS). Например, элементы синтаксиса, указывающие битовую глубину (или шаг квантования) ИКМ для обеих составляющих: для составляющей сигнала яркости и для составляющей сигнала цветности пикселей (например, pcm_bit_depth_luma_minus1 и pcm_bit_depth_chroma_minus1).

На фиг.3 показана блок-схема блока 47 ИКМ с квантованием согласно одному из аспектов изобретения, сущность которого здесь раскрыта. Как упомянуто выше, в этом изобретении, сущность которого здесь раскрыта, представлены способы применения кодирования с использованием ИКМ с квантованием к выборкам видеоинформации (то есть, пикселям) в блоке видеоданных. Кодирование с использованием ИКМ с квантованием может быть достигнуто путем введения шага квантования перед кодированием с использованием ИКМ. В данном случае квантование представляет собой процедуру сжатия, посредством которой входные значения с определенной битовой глубиной m (например, данные о пикселях, представленные с битовой глубиной 10 бит) ставят в соответствие выходному значению с меньшей битовой глубиной n (равной, например, 6 битам). Следовательно, битовая глубина m на входе является большей, чем битовая глубина n на выходе. Эта процедура, по существу, подразумевает округление некоторых из входных значений и, по существу, вводит потери при сжатии.

Как показано на фиг.3, блок 47 ИКМ с квантованием принимает выборки видеоинформации, и сначала выполняют их квантование блоком 49 квантования. В этом случае квантование выборок видеоинформации задает возможную битовую глубину видеоинформации, закодированной с использованием ИКМ с квантованием, на выходе. Следует понимать, что такое квантование в "области пикселей" (то есть для задания битовой глубины) может использоваться для квантования значений пикселей на входе и отличается от параметра квантования (ПК) в "области преобразования", который обычно используется для квантования разностных коэффициентов преобразования, например, блоком 54 квантования преобразования, показанным на фиг.2. Квантование входных выборок может выполнять блок 49 квантования с использованием этого шага квантования в области пикселей для задания битовой глубины на выходе. Как будет рассмотрено более подробно со ссылкой на фиг.5-6, декодер может выполнять обратное квантование закодированных выборок с использованием этого шага квантования и смещения для округления. Смещение для округления может быть задано кодером в потоке битов или может быть задано равным только половине шага квантования (или какой-либо иной заданной доле шага квантования).

Блок 53 выбора шага квантования может быть сконфигурирован с возможностью выбора шага квантования. В альтернативном варианте блок 49 шага квантования может быть сконфигурирован с возможностью использования заданного шага квантования. Сведения о заданном шаге квантования могут храниться в запоминающем устройстве 55 для выбора шага квантования. Блок 53 выбора шага квантования может выбирать шаг квантования на основании любого из множества критериев, включая характеристики блока видеоданных, подлежащего кодированию способом ИКМ с квантованием, или характеристики блоков видеоданных, пространственно расположенных рядом с блоком y видеоданных, подлежащим кодированию способом ИКМ с квантованием.

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

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

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

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

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

В одном из примеров блок 49 квантования может выполнять квантование выборок видеоинформации просто путем сдвига входных данных вправо. Процедура квантования путем сдвига вправо фактически отбрасывает младшие биты каждой из входных выборок (то есть, пикселей). В этом примере шаг квантования может быть передан блоком 53 выбора шага квантования в блок 49 квантования как целое число, которое указывает величину сдвига вправо. Например, сдвиг входных данных вправо на 2 представляет собой то же самое, что и деление на 4. При 8-битовых пикселях на входе сдвиг входных данных вправо на 2 означает, что максимальный объем данных уменьшается на 75%, то есть с 8 битов на каждую выборку до 6 битов на каждую выборку. В другом примере смещение добавляют к значению пикселя до применения сдвига вправо. В другом примере квантование (или сдвиг вправо), выполняемое (выполняемый) блоком 49 квантования, может быть основано на битовой глубине входных выборок видеоинформации. Чем больше битовая глубина входной выборки видеоинформации, тем в большей степени она может быть подвергнута квантованию без заметных искажений изображения. Следовательно, блок 53 выбора шага квантования может быть сконфигурирован для выбора большего шага квантования для 10-битовых входных данных, чем для 8-битовых входных данных.

После квантования блок 51 импульсно-кодовой модуляции выполняет импульсно-кодовую модуляцию квантованных выборок видеоинформации. В обычном режиме ИКМ с внутрикадровым предсказанием для стандарта H.264 в закодированный поток битов просто передают цифровые значения пикселей без сжатия. По существу, режим ИКМ с внутрикадровым предсказанием для стандарта H.264 является режимом без потерь. Согласно этому изобретению, сущность которого здесь раскрыта, блок 51 импульсно-кодовой модуляции модулирует цифровые значения выборок видеоинформации после квантования (то есть, со сжатием с потерями). По существу, шаг квантования, выбранный блоком 53 выбора шага квантования, задает битовую глубину выборок видеоинформации, закодированных блоком импульсно-кодовой модуляции, на выходе. Как изложено выше, в некоторых случаях шаг квантования может быть представлен в формате непосредственно битовой глубины на выходе или может быть указан как количество сдвигов вправо, которое задает битовую глубину на выходе.

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

В одном из примеров шагом квантования может являться заданное значение, используемое для всех ситуаций обоими устройствами: кодером и декодером. В другом примере, как изложено выше, блок 53 выбора шага квантования может определять шаг квантования на основании характеристик входных блоков видеоинформации и/или блоков видеоинформации, расположенных вокруг. Декодер может получать определенное значение шага квантования видеоданных, закодированных с использованием ИКМ с квантованием, путем логического вывода на основании тех же самых характеристик, которые использованы кодером для выбора шага квантования.

В качестве другого примера, сведения о битовой глубине на выходе и/или о шаге квантования могут быть сообщены в декодер в закодированном потоке битов. В дополнение к этому, смещение для округления может быть задано кодером в потоке битов или может быть задано равным половине шага квантования (или какой-либо иной заданной доле шага квантования). Одним из способов передачи сведений о битовой глубине на выходе, о смещении для округления и/или о шаге квантования является кодирование элемента синтаксиса, указывающего битовую глубину выборок ИКМ с квантованием. На фиг.3 изображен блок 53 выбора шага квантования, кодирующий выбранный шаг квантования в закодированный поток битов. Однако эта процедура может выполняться блоком 49 квантования, блоком 51 импульсно-кодовой модуляции или иным блоком из блока 47 ИКМ с квантованием или кодера 20.

В еще одном примере элемент синтаксиса может быть передан в заголовке последовательности, на уровне набора параметров последовательности (например, на уровне набора параметров изображения), на уровне среза или на других уровнях синтаксиса в закодированном потоке битов. На фиг.4 изображен приведенный в качестве примера закодированный поток битов видеоинформации с заголовком последовательности. Заголовок 67 последовательности включает в себя элемент 65 синтаксиса, указывающий битовую глубину, который указывает битовую глубину видеоинформации, закодированной с использованием ИКМ с квантованием, на выходе. В качестве одного из примеров, элементом 65 синтаксиса, указывающим битовую глубину, может являться 4-битовый элемент синтаксиса, который указывает уменьшение или увеличение битовой глубины от 1 до 16 битов. Следует отметить, что для указания битовой глубины на выходе может быть выбран элемент синтаксиса любой длины. В примере, показанном на фиг.4, элемент 65 синтаксиса указывает битовую глубину закодированных выборок на выходе и, следовательно, процедуру, которой следует придерживаться в декодере. Элемент синтаксиса также может быть сообщен в наборе параметров последовательности (SPS), в наборе параметров изображения (PPS) или в заголовке среза.

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

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

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

Следует отметить следующее: несмотря на то, что для простоты иллюстрации блок 49 квантования, блок 51 импульсно-кодовой модуляции, блок 53 выбора шага квантования и запоминающее устройство 55 для выбора шага квантования показаны как отдельные функциональные блоки, они могут быть в высокой степени интегрированными друг с другом по структуре и функциональным возможностям.

На фиг.5 изображена блок-схема, на которой проиллюстрирован пример видеодекодера 30, который декодирует закодированную видеопоследовательность. В примере из фиг.5 видеодекодер 30 включает в себя блок 70 статистического декодирования, блок 71 декодирования с использованием ИКМ с квантованием, блок 72 компенсации движения, блок 74 внутрикадрового предсказания, блок 76 квантования обратного преобразования, блок 78 обратного преобразования, буфер 82 для опорных кадров и сумматор 80. Обычно в некоторых примерах видеодекодер 30 может выполнять процедуру декодирования, обратную процедуре кодирования, которая описана применительно к видеокодеру 20, описанному со ссылкой на фиг.2. Блок 72 компенсации движения может генерировать данные предсказания на основании векторов движения, принятых из блока 70 статистического декодирования. Блок 74 внутрикадрового предсказания может генерировать данные предсказания для текущего блока текущего кадра на основании сообщенных сведений о режиме с внутрикадровым предсказанием и данных из ранее декодированных блоков текущего кадра.

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

Блок 70 статистического декодирования может быть сконфигурирован так, что применяет порядок сканирования для преобразования одномерного (1D) вектора коэффициентов преобразования в двумерный (2D) массив коэффициентов преобразования. Блок 70 статистического декодирования использует обратный порядок сканирования для сканирования одномерного (1D) вектора с преобразованием в двумерный (2D) массив. Двумерный (2D) массив коэффициентов преобразования, созданный блоком 70 статистического декодирования, может быть подвергнут квантованию и может обычно совпадать с двумерным (2D) массивом коэффициентов преобразования, который сканирует блок 56 статистического кодирования видеокодера 20 для создания одномерного (1D) вектора коэффициентов преобразования.

Блок 76 квантования обратного преобразования выполняет обратное квантование, то есть обращение квантования квантованных коэффициентов преобразования, имеющихся в потоке битов и декодированных блоком 70 статистического декодирования. Процедура обратного квантования может включать в себя стандартную процедуру, например, аналогичную процедурам, которые предложены для стандарта HEVC или установлены стандартом декодирования H.264. Процедура обратного квантования может включать в себя использование параметра квантования, вычисленного видеокодером 20 для единичного элемента кодирования, для определения степени квантования и, аналогичным образом, степени обратного квантования, которая должна быть применена. Блок 76 квантования обратного преобразования может выполнять обратное квантование коэффициентов преобразования либо до преобразования коэффициентов из одномерного (1D) вектора в двумерный (2D) массив, либо после него.

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

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

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

Сумматор 80 объединяет разностные блоки с соответствующими блоками предсказания, сгенерированными блоком 72 компенсации движения или блоком 74 внутрикадрового предсказания, для формирования декодированных блоков. При желании также может быть применен фильтр, устраняющий блочность, для фильтрации декодированных блоков, предназначенный для устранения артефактов, обусловленных блочностью. Затем декодированные блоки видеоинформации сохраняют в буфере 82 для опорных кадров, который предоставляет опорные блоки для последующей компенсации движения, а также создает декодированную видеоинформацию для воспроизведения на дисплее (например, на дисплее 32 из фиг.1).

Блок 71 декодирования с использованием ИКМ с квантованием сконфигурирован для декодирования закодированной видеоинформации, когда кодер 20 использует режим ИКМ с квантованием. Сначала блок 71 декодирования с использованием ИКМ с квантованием выполняет импульсно-кодовую демодуляцию закодированной видеоинформации. Затем блок 71 декодирования с использованием ИКМ с квантованием выполняет обратное квантование видеоинформации, подвергнутой импульсно-кодовой демодуляции, с использованием того же самого шага квантования, который был использован в процедуре кодирования, и смещения для округления. Шаг квантования может быть сообщен непосредственно в потоке битов закодированной видеоинформации или может быть получен путем логического вывода, исходя из битовой глубины на выходе, о которой сообщено в потоке битов закодированной видеоинформации.

На фиг.6 показана блок-схема, на которой проиллюстрирован пример блока 71 декодирования с использованием ИКМ с квантованием. Блок декодирования с использованием ИКМ с квантованием может включать в себя блок 73 импульсно-кодовой демодуляции, блок 75 операции обратного квантования, блок 77 выбора шага квантования и запоминающее устройство 79 для выбора шага квантования. Следует отметить следующее: несмотря на то, что для простоты иллюстрации блок импульсно-кодовой демодуляции 73, блок 75 операции обратного квантования, блок 77 выбора шага квантования и запоминающее устройство 79 для выбора шага квантования показаны как отдельные функциональные блоки, они могут быть в высокой степени интегрированными друг с другом по структуре и функциональным возможностям.

Сначала блок 73 импульсно-кодовой демодуляции выполняет импульсно-кодовую демодуляцию видеоинформации, закодированной с использованием ИКМ с квантованием. Эта операция, по существу, инвертирует импульсно-кодовую модуляцию, примененную кодером. Затем блок 75 обратного квантования выполняет обратное квантование демодулированной видеоинформации с использованием того же самого шага квантования, который использовался для кодирования видеоинформации, а также смещения для округления.

Блок 77 выбора шага квантования может извлекать элемент синтаксиса, указывающий битовую глубину на выходе и/или шаг квантования, из закодированного потока битов. В качестве одного из примеров, показанного на фиг.4, битовая глубина на выходе может быть сообщена как 4-битовый элемент синтаксиса, указывающий уменьшение или увеличение битовой глубины от 1 до 16 битов. В другом примере битовая глубина на выходе может быть сообщена в явном виде, а не косвенно. В альтернативном варианте декодер может получать определенное значение шага квантования выборок ИКМ путем логического вывода на основании тех же самых критериев или характеристик видеоинформации, которые были использованы кодером для выбора шага квантования, таких как, например, пространственное разрешение кадра, параметр квантования (ПК) соответствующего единичного элемента кодирования, структура кодирования соответствующего единичного элемента кодирования или тип кадра (например, кадр с внутрикадровым предсказанием (I) или с межкадровым предсказанием (P или B)), битовая глубина входных данных, внутренних данных или выходных данных, конкретное применение видеоинформации или уровень или профиль, с которым закодирована видеопоследовательность. В качестве другого примера блок 77 выбора шага квантования может просто осуществлять доступ к заданному шагу квантования, хранящемуся в запоминающем устройстве 79 для выбора шага квантования.

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

На фиг.7 изображена схема последовательности операций, на которой проиллюстрирован способ кодирования, приведенный в качестве примера. В способе 100 выполняют кодирование блоков видеоинформации согласно процедуре кодирования с использованием ИКМ с квантованием, которая описана выше со ссылкой на фиг.2-4. В способе 100 видеокодер 20 выбирает шаг квантования для определения битовой глубины на выходе (операция 120). На основании этой битовой глубины на выходе видеокодер 20 выполняет кодирование ИКМ с квантованием (операция 121). Первая операция кодирования ИКМ с квантованием состоит в квантовании выборок из блока видеоданных в соответствии с выбранным шагом квантования (операция 122). Операция 122 может включать в себя квантование выборок из блока видеоданных путем выполнения нескольких сдвигов выборок из блока видеоданных вправо, где это количество сдвигов вправо основано на шаге квантования. Затем видеокодер 20 выполняет импульсно-кодовую модуляцию квантованных выборок (операция 124). В качестве необязательной операции видеокодер 20 также может генерировать указатель битовой глубины на выходе и передавать этот указатель в потоке битов закодированной видеоинформации (операция 126).

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

При операции 126 может быть сгенерирован указатель битовой глубины на выходе и/или непосредственно самого шага квантования, и этот указатель может быть передан в потоке битов закодированных видеоданных. Указатель битовой глубины на выходе и/или шага квантования позволяет декодеру выполнять процедуру, обратную процедуре квантования. В частности, битовая глубина на выходе может быть сообщена в заголовке последовательности в виде 4-битового элемента синтаксиса, который указывает уменьшение или увеличение битовой глубины от 1 до 16 битов. В дополнение к этому, при операции 126 также могут быть сообщены сведения о смещении для округления в потоке битов видеоинформации для указания декодеру того, как следует выполнять процедуру обратного квантования. Если для различных блоков видеоданных используются отдельные шаги квантования, то кодер 20 может представлять отдельные шаги квантования в виде разностных значений относительно основного шага квантования.

На фиг.8 изображена схема последовательности операций, на которой проиллюстрирован способ декодирования, приведенный в качестве примера. В способе 150 декодируют блоки видеоинформации согласно процедуре декодирования с использованием ИКМ с квантованием, описанной выше со ссылкой на фиг.5 и фиг.6. В способе 150 видеодекодер 30 сначала определяет шаг квантования (операция 160). Затем видеодекодер выполняет процедуру 161 декодирования с использованием ИКМ с квантованием. Процедура декодирования с использованием ИКМ с квантованием включает в себя декодирование блока закодированной видеоинформации с использованием импульсно-кодовой демодуляции (операция 162). Затем видеодекодер 30 выполняет обратное квантование демодулированного блока видеоинформации с использованием определенного шага квантования и смещения для округления.

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

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

В качестве примера, не являющего ограничивающим признаком, такими считываемыми посредством компьютера носителями информации могут являться, в том числе, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память, постоянное запоминающее устройство на компакт-диске (CD-ROM) или любые иные твердотельные, оптические или магнитные носители для хранения данных, включая запоминающее устройство на оптических дисках, запоминающее устройство на магнитных дисках или иные запоминающие устройства на магнитных носителях, или любой иной носитель информации, который может использоваться для хранения желательного программного кода в виде команд или структур данных и к которому может осуществлять доступ компьютер. К тому же, считываемым посредством компьютера носителем информации правильно именуют любое соединение. Например, если команды передают из Web-узла, сервера или из иного удаленного источника с использованием коаксиального кабеля, волоконно-оптического кабеля, витой пары, цифровой абонентской линии (DSL) или с использованием технологий беспроводной связи, таких как, например, связь в инфракрасном диапазоне, радиосвязь и СВЧ-связь, то определение "носитель информации" включает в себя коаксиальный кабель, волоконно-оптический кабель, витую пару, цифровую абонентскую линию (DSL) или технологии беспроводной связи, такие как, например, связь в инфракрасном диапазоне, радиосвязь и СВЧ-связь. Однако следует понимать, что считываемые посредством компьютера материальные носители информации и носители для хранения данных не включают в себя соединения, несущие волны, сигналы или иные непостоянные носители информации, а, наоборот, относятся к постоянным материальным носителям информации. Используемый здесь термин "диск" включает в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск формата Blue-ray, где воспроизведение данных с дисков обычно осуществляют магнитным способом наряду с воспроизведением данных с дисков оптическим способом посредством лазеров. В объем понятия "считываемые посредством компьютера носители информации" также следует включать комбинации вышеупомянутых элементов.

Команды могут выполняться одним или большим количеством процессоров, например, одним или большим количеством устройств цифровой обработки сигналов (УЦОС), универсальных микропроцессоров, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (ППВМ) или иных эквивалентных интегральных или дискретных логических схем. Соответственно, используемый здесь термин "процессор" может относиться к любой вышеописанной структуре или к любой иной структуре, пригодной для реализации описанных здесь способов. Кроме того, в некоторых аспектах изобретения описанные здесь функциональные возможности могут быть обеспечены в специализированных аппаратных средствах и/или в программных модулях, сконфигурированных для кодирования и декодирования, или включены в состав объединенного кодека. К тому же, эти способы могут быть полностью реализованы в одной или в большем количестве схем или в одном или в большем количестве логических элементов.

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

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

Похожие патенты RU2578724C2

название год авторы номер документа
КОДИРОВАНИЕ ВИДЕО ПРИ ПОМОЩИ БОЛЬШИХ МАКРОБЛОКОВ 2009
  • Чэнь Пэйсун
  • Е Янь
  • Карчевич Марта
RU2533196C2
УКАЗАНИЕ ИСПОЛЬЗОВАНИЯ ПАРАЛЛЕЛЬНОЙ ВОЛНОВОЙ ОБРАБОТКИ В КОДИРОВАНИИ ВИДЕО 2012
  • Ван Е-Куй
  • Кобан Мухаммед Зейд
RU2609073C2
СПОСОБЫ И УСТРОЙСТВА ДЛЯ КОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ВЕКТОРА ДВИЖЕНИЯ ВРЕМЕННОГО ПРЕДСКАЗАНИЯ НА ОСНОВЕ СУББЛОКОВ 2019
  • Чэнь, И-Вэнь
  • Ван, Сянлинь
RU2757209C1
СПОСОБ СИГНАЛИЗАЦИИ ТИПА СМЕЩЕНИЯ И КОЭФФИЦИЕНТОВ ДЛЯ АДАПТИВНОГО СМЕЩЕНИЯ ВЫБОРОК 2012
  • Чонг Ин Сук
  • Ван Дер Аувера Герт
  • Карчевич Марта
RU2580102C2
УКАЗАНИЕ ВЫБОРА РЕЖИМА ВНУТРЕННЕГО ПРЕДСКАЗАНИЯ ДЛЯ ВИДЕОКОДИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ САВАС 2012
  • Карчевич Марта
  • Ван Сянлинь
  • Чиэнь Вэй-Цзюн
RU2554545C2
ФИЛЬТР С ВНУТРЕННИМ СГЛАЖИВАНИЕМ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2011
  • Ван Дер Аувера Герт
  • Ван Сянлинь
  • Кобан Мухаммед Зейд
  • Карчевич Марта
  • Чжэн Юньфей
RU2543552C2
ЗАВИСЯЩЕЕ ОТ РЕЖИМА СКАНИРОВАНИЕ КОЭФФИЦИЕНТОВ БЛОКА ВИДЕОДАННЫХ 2011
  • Чжэн Юньфей
  • Кобан Мухаммед Зейд
  • Соле Рохальс Хоэль
  • Карчевич Марта
RU2547239C2
ВЫВЕДЕНИЕ ВЕКТОРА ДВИЖЕНИЯ ПРИ ВИДЕОКОДИРОВАНИИ 2016
  • Ли, Сян
  • Чэнь, Ин
  • Чжан, Ли
  • Лю, Хонгбинь
  • Чэнь, Цзяньлэ
  • Карчевич, Марта
RU2742298C2
ФЛАГИ ФИЛЬТРА ДЛЯ УСТРАНЕНИЯ БЛОЧНОСТИ СУБКАРТИНОК 2020
  • Хендри, Фну
  • Ван, Е-Куй
  • Чен, Цзянле
RU2825100C2
СИГНАЛИЗАЦИЯ ЗАГОЛОВКА ИЗОБРАЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО 2020
  • Хендри, Фну
  • Ван, Е-Куй
  • Чен, Цзянле
RU2819585C1

Иллюстрации к изобретению RU 2 578 724 C2

Реферат патента 2016 года ИМПУЛЬСНО-КОДОВАЯ МОДУЛЯЦИЯ С КВАНТОВАНИЕМ ПРИ КОДИРОВАНИИ ВИДЕОИНФОРМАЦИИ

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

Формула изобретения RU 2 578 724 C2

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

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

3. Способ по п. 2, в котором битовая глубина на выходе является задаваемым параметром.

4. Способ по п. 3, содержащий также этапы, на которых:
выбирают шаг квантования для квантованных выборок для задания битовой глубины на выходе.

5. Способ по п. 4, в котором этап выбора шага квантования содержит выбор шага квантования на основании одной или большего количества характеристик видеоданных.

6. Способ по п. 2, в котором этап квантования выборок одного или более вторых других блоков видеоданных в соответствии с этапом квантования содержит количество сдвигов выборок одного или более вторых других блоков видеоданных вправо, причем это количество сдвигов вправо основано на шаге квантования.

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

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

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

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

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

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

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

14. Способ по п. 13, в котором этап декодирования выборок одного или более вторых других блоков видеоданных в соответствии с битовой глубиной на выходе содержит этапы, на которых:
выполняют декодирование выборок одного или более вторых других блоков кадра видеоданных с использованием импульсно-кодовой демодуляции; и
выполняют обратное квантование декодированных выборок в соответствии с шагом квантования.

15. Способ по п. 14, в котором шаг квантования основан на битовой глубине на выходе.

16. Способ по п. 15, в котором этап обратного квантования декодированных выборок содержит этап, на котором:
выполняют обратное квантование декодированных выборок в соответствии с шагом квантования и со смещением для округления.

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

18. Способ по п. 14, содержащий также этап, на котором:
определяют шаг квантования на основании одной или большего количества характеристик кадра видеоданных.

19. Устройство, сконфигурированное для кодирования видеоданных, которое содержит:
память, сконфигурированную для хранения видеоданных; и
блок кодирования видеоинформации, сконфигурированный для:
кодирования по меньшей мере одного блока кадра видеоданных, используя внутрикадровое предсказание в отношении первого другого блока кадра видеоданных; и
кодирования выборок одного или более вторых других блоков кадра видеоданных с использованием импульсно-кодовой модуляции с квантованием в соответствии с битовой глубиной на выходе, причем кодирование выборок выполняется без преобразования частотной области выборок, и причем выборки одного или более вторых других блоков видеоданных имеют иную битовую глубину, чем битовая глубина на выходе, для введения потерь в выборки.

20. Устройство по п. 19, в котором блок кодирования видеоинформации содержит:
блок квантования, сконфигурированный для квантования выборок одного или более вторых других блоков видеоданных в соответствии с шагом квантования, задающим величину квантования, для создания битовой глубины на выходе; и
блок модуляции, сконфигурированный для кодирования квантованных выборок с использованием импульсно-кодовой модуляции.

21. Устройство по п. 20, в котором битовая глубина на выходе является задаваемым параметром.

22. Устройство по п. 21, в котором блок кодирования видеоинформации также сконфигурирован для выбора шага квантования для квантованных выборок для задания битовой глубины на выходе.

23. Устройство по п. 22, в котором блок кодирования видеоинформации сконфигурирован для выбора шага квантования на основании одной или большего количества характеристик видеоданных.

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

25. Устройство по п. 19, в котором блок кодирования видеоинформации содержит:
блок квантования, сконфигурированный для квантования выборок из множества блоков одного или более вторых других блоков видеоданных в соответствии с общим шагом квантования; и
блок модуляции, сконфигурированный для кодирования квантованных выборок с использованием импульсно-кодовой модуляции во множестве блоков видеоданных.

26. Устройство по п. 19, в котором блок кодирования видеоинформации содержит:
блок квантования, сконфигурированный для квантования выборок из первого блока одного или более вторых других блоков видеоданных в соответствии с первым шагом квантования и для квантования выборок из второго блока одного или более вторых других блоков видеоданных в соответствии со вторым шагом квантования, который является иным, чем первый шаг квантования; и
блок модуляции, сконфигурированный для кодирования квантованных выборок в первом и во втором блоках видеоданных с использованием импульсно-кодовой модуляции.

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

28. Устройство по п. 19, в котором блок кодирования видеоинформации также сконфигурирован для генерации указателя битовой глубины на выходе и для включения этого указателя в состав закодированного потока битов.

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

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

31. Устройство, сконфигурированное для декодирования видеоданных, которое содержит:
память, сконфигурированную для хранения видеоданных; и
блок декодирования видеоинформации, сконфигурированный для:
декодирования по меньшей мере одного блока кадра видеоданных, используя внутрикадровое предсказание в отношении первого другого блока кадра видеоданных; и
декодирования выборок одного или более вторых других блоков кадра видеоданных, которые были закодированы с использованием импульсно-кодовой модуляции с квантованием в соответствии с битовой глубиной на выходе для создания декодированных выборок, причем декодирование выборок выполняется без преобразования частотной области выборок, и причем декодированные выборки имеют иную битовую глубину, чем битовая глубина на выходе.

32. Устройство по п. 31, в котором блок декодирования видеоинформации содержит:
блок демодуляции, сконфигурированный для декодирования выборок одного или более вторых других блоков блока видеоданных с использованием импульсно-кодовой демодуляции; и
блок обратного квантования, сконфигурированный для выполнения обратного квантования декодированных выборок в соответствии с шагом квантования.

33. Устройство по п. 32, в котором шаг квантования основан на битовой глубине на выходе.

34. Устройство по п. 33, в котором блок обратного квантования также сконфигурирован для выполнения обратного квантования декодированных выборок в соответствии с шагом квантования и со смещением для округления.

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

36. Устройство по п. 32, в котором блок декодирования видеоинформации также сконфигурирован для определения шага квантования на основании одной или большего количества характеристик одного или более вторых других блоков видеоданных.

37. Устройство, сконфигурированное для кодирования видеоданных, которое содержит:
средство кодирования по меньшей мере одного блока кадра видеоданных, используя внутрикадровое предсказание в отношении первого другого блока кадра видеоданных; и
средство кодирования выборок одного или более вторых других блоков кадра видеоданных с использованием импульсно-кодовой модуляции с квантованием в соответствии с битовой глубиной на выходе, причем кодирование выборок выполняется без какого-либо преобразования частотной области выборок, и причем выборки одного или более вторых других блоков видеоданных имеют иную битовую глубину, чем битовая глубина на выходе, для введения потерь в выборки.

38. Устройство по п. 37, которое также содержит:
средство генерации указателя битовой глубины на выходе и включения этого указателя битовой глубины на выходе в состав заголовка последовательности в качестве элемента синтаксиса.

39. Устройство, сконфигурированное для декодирования видеоданных, которое содержит:
средство декодирования по меньшей мере одного блока кадра видеоданных, используя внутрикадровое предсказание в отношении первого другого блока кадра видеоданных; и
средство декодирования выборок одного или более вторых других блоков кадра видеоданных, которые были закодированы с использованием импульсно-кодовой модуляции с квантованием в соответствии с битовой глубиной на выходе для создания декодированных выборок, причем декодирование выборок выполняется без какого-либо преобразования частотной области выборок, и причем декодированные выборки имеют иную битовую глубину, чем битовая глубина на выходе.

40. Устройство по п. 39, которое также содержит:
средство приема битовой глубины на выходе в закодированном потоке битов, включающем в себя кадр видеоданных.

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

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

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

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

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

46. Постоянный считываемый посредством компьютера носитель информации по п. 44, в котором шаг квантования основан на битовой глубине на выходе.

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

Документы, цитированные в отчете о поиске Патент 2016 года RU2578724C2

Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
Приспособление для суммирования отрезков прямых линий 1923
  • Иванцов Г.П.
SU2010A1
Приспособление для суммирования отрезков прямых линий 1923
  • Иванцов Г.П.
SU2010A1
US 7143432 B1, 28.11.2006
КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ИЗОБРАЖЕНИЙ 1997
  • Сузуки Терухико
  • Ягасаки Йоити
RU2189120C2
ВНЕДРЕНИЕ ДОПОЛНИТЕЛЬНЫХ ДАННЫХ В КОДИРОВАННЫЙ СИГНАЛ 1998
  • Нейтен Петрус
RU2220511C2

RU 2 578 724 C2

Авторы

Соле Рохальс Хоэль

Карчевич Марта

Даты

2016-03-27Публикация

2012-02-01Подача