EA045392B1 - Обработка остатков при кодировании видео - Google Patents

Обработка остатков при кодировании видео Download PDF

Info

Publication number
EA045392B1
EA045392B1 EA202192500 EA045392B1 EA 045392 B1 EA045392 B1 EA 045392B1 EA 202192500 EA202192500 EA 202192500 EA 045392 B1 EA045392 B1 EA 045392B1
Authority
EA
Eurasian Patent Office
Prior art keywords
residues
residuals
encoding
signal
base
Prior art date
Application number
EA202192500
Other languages
English (en)
Inventor
Симоне Феррара
Лоренцо Чиккарелли
Гвидо Меарди
Original Assignee
В-Нова Интернэшнл Лтд
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by В-Нова Интернэшнл Лтд filed Critical В-Нова Интернэшнл Лтд
Publication of EA045392B1 publication Critical patent/EA045392B1/ru

Links

Description

Гибридная технология кодирования с обратной совместимостью была предложена ранее, например, в WO 2014/170819 и WO 2018/046940, содержание которых включено в настоящий документ посредством ссылки.
В указанных документах предложен способ, предусматривающий анализ потока данных с разделением на первые части кодированных данных и вторые части кодированных данных; реализацию первого декодера для декодирования первых частей кодированных данных в первое представление сигнала; реализацию второго декодера для декодирования вторых частей кодированных данных в данные восстановления, причем данные восстановления указывают, как модифицировать первое представление сигнала; и применение данных восстановления к первому представлению сигнала для получения второго представления сигнала.
Также дополнительно предлагается использование набора остаточных элементов для восстановления представления первой временной выборки сигнала. Создается набор элементов пространственновременной корреляции, связанных с первой временной выборкой. Набор элементов пространственновременной корреляции указывает степень пространственной корреляции между множеством остаточных элементов и степень временной корреляции между первыми опорными данными на основе представления и вторыми опорными данными на основе представления второй временной выборки сигнала. Набор элементов пространственно-временной корреляции используется для генерации выходных данных. Как отмечалось, набор остатков кодируется для уменьшения общего размера данных.
Оптимизация необходима для дальнейшего уменьшения общего размера данных при одновременном достижении баланса между следующими целями: отсутствие ухудшения общего впечатления для пользователя после восстановления сигнала; и оптимизация скорости и сложности обработки.
Сущность изобретения
Согласно аспектам изобретения предложен способ модификации наборов остаточных данных, в котором остаточные данные могут использоваться для исправления или улучшения данных базового потока, например кадра видео, кодированного с использованием предшествующей технологии кодирования видео.
Согласно первому аспекту предложен способ кодирования входного сигнала, включающий: получение входного сигнала; генерацию одного или большего количества наборов остатков на основе разности между входным сигналом и одним или большим количеством восстановленных сигналов с одним или большим количеством соответствующих разрешений; модификацию одного или большего количества наборов остатков на основе выбранного режима остатков; и кодирование одного или большего количества наборов модифицированных остатков для генерации одного или большего количества соответствующих кодированных потоков, при этом кодирование включает преобразование одного или большего количества наборов модифицированных остатков, и при этом модификация включает выбор подмножества остатков, которое не должно кодироваться, на основе выбранного режима остатков.
Входной сигнал предпочтительно может быть изображением, более предпочтительно видеосигналом, содержащим множество кадров. Остатки могут соответствовать элементам изображения или элементам видеокадра. Их можно рассматривать как «картину различий». Набор остатков может содержать один или большее количество остатков, каждый из которых соответствует определенному элементу сигнала. В одном случае набор остатков может содержать остаточные значения, которые соответствуют пикселям входного изображения или кадра при одном или большем количестве разрешений. Кодирование может включать ряд операций, например преобразование, квантование и энтропийное кодирование. Модификация происходит до преобразования остатков, так что преобразованные коэффициенты основаны на модифицированных остатках, поэтому изменения распространяются по конвейеру, и вычисление преобразования сокращается.
Посредством модификации остатков перед кодированием общий размер данных может быть уменьшен и/или вычислительная эффективность может быть оптимизирована, при этом уравновешивая потенциальное влияние на восприятие зрителем после того, как сигнал будет восстановлен в декодере. Модификация может содержать изменение параметра квантования операции кодирования или удаление либо отмену выбора подмножества одного или большего количества наборов остатков. Этап выбора подмножества остатков, которые не должны кодироваться, на основе выбранного режима остатков может быть реализован путем отмены выбора множества остатков для преобразования или посредством квантования набора коэффициентов преобразования в нуль, причем коэффициенты преобразования представляют соответствующие входные остатки. В других случаях отказ от распространения подмножества остатков может включать установку значений для подмножества равными нулю. Отмена выбора остатков перед преобразованием может улучшить детализацию модификации, выбора и анализа.
Входной сигнал может иметь первое разрешение. Способ может дополнительно включать: дискретизацию с пониженной частотой входного сигнала для создания дискретизированного с пониженной частотой сигнала со вторым разрешением; получение базового кодированного сигнала от базового кодера, причем базовый кодированный сигнал генерируется посредством кодирования дискретизированного с пониженной частотой сигнала с использованием базового кодера; восстановление сигнала из базового
- 1 045392 кодированного сигнала для генерации первого восстановленного сигнала в одном или большем количестве восстановленных сигналов; и сравнение первого восстановленного сигнала с входным сигналом для генерации первого набора остатков в одном или большем количестве наборов остатков. Кодирование дискретизированного с пониженной частотой сигнала может выполняться удаленным или сторонним компонентом и, необязательно, реализовываться удаленно, например, предшествующим, существующим или реализованным в будущем кодеком. Остатки можно использовать для восстановления входного сигнала. Остатки могут использоваться для исправления артефактов, внесенных в процессе кодирования и восстановления.
Сравнение первого восстановленного сигнала с входным сигналом для генерации первого набора из одного или большего количества наборов остатков может включать: декодирование базового кодированного сигнала для создания базового декодированного сигнала; и использование разности между базовым декодированным сигналом и вариантом входного сигнала с пониженной частотой дискретизации для создания первого набора остатков, при этом способ дополнительно включает: создание второго набора остатков в одном или большем количестве наборов остатков посредством: коррекции базового декодированного сигнала с использованием первого набора остатков для создания скорректированного декодированного варианта; дискретизации с повышенной частотой скорректированного декодированного варианта; и использования разности между скорректированным декодированным сигналом и входным сигналом для создания второго набора остатков, при этом модификация выполняется индивидуально для одного или большего количества из первого и второго наборов остатков. Каждый набор остатков может быть модифицирован аналогичным образом, иным образом или вообще могут не модифицироваться. Соответственно, остатки могут быть модифицированы, чтобы оптимизировать их использование. Например, может потребоваться большая точность на самом высоком уровне, и там, где остатки корректируют артефакты в схеме базового кодирования, другие остатки могут быть более важными. Таким образом, посредством фильтрации определенных подмножеств остатков битовая скорость может быть уменьшена и/или допущена большая пропускная способность для других корректировок.
Первый набор остатков может иметь первое пространственное разрешение, а второй набор остатков - второе пространственное разрешение, причем первое пространственное разрешение ниже второго пространственного разрешения. Например, первый набор остатков может быть стандартного разрешения или высокого разрешения (SD или HD), а второй набор остатков может быть высокого разрешения или сверхвысокого разрешения (HD или UHD).
Этап модификации может включать: ранжирование остатков в одном или большем количестве наборов остатков; и фильтрацию остатков на основе ранжирования. Фильтрация может быть основана на предварительно определенном или динамически изменяемом пороге. Путем фильтрации и ранжирования остатков подмножество может быть адаптировано так, что остатки с высоким приоритетом кодируются, а выбор остатков с низким приоритетом отменяется, и, следовательно, эффективность конвейера кодирования оптимизируется. Приоритет может быть основан на множестве факторов, включая пространственно-временные характеристики.
Модификация может включать: определение оценки, связанной с каждым остатком или группой остатков, при этом оценка может указывать на относительную важность каждого остатка или группы остатков, и при этом выбор подмножества остатков, которые не должны кодироваться, может быть основан на оценке, связанной с каждым остатком или группой остатков. Оценка остатков обеспечивает высокую степень контроля над процессом модификации. Определение также может быть получением, вычислением или принятием. Оценка также может считаться метрикой. Оценка или метрика могут быть связаны с конкретным остатком, мозаичным фрагментом остатков или единицей кодирования остатков, причем мозаичный фрагмент представляет группу соседних остатков предварительно определенного размера, причем множество мозаичных фрагментов составляют набор остатков.
Оценка может быть основана на одной или большем количестве пространственных и/или временных характеристиках входного сигнала. Оценка может быть основана на уровне контрастности или уровне текстуры входного сигнала или на обоих. В примерах яркость входного сигнала может быть проанализирована для определения оценки.
Способ может включать: квантование одного или большего количества наборов остатков. Квантование одного или большего количества наборов остатков может включать применение мертвой зоны переменного размера. Мертвая зона может быть определена как функция ширины шага квантования. Квантование одного или большего количества наборов остатков может включать: квантование одного или большего количества наборов остатков на первом этапе для осуществления модификации; и квантование одного или большего количества наборов остатков на втором этапе для осуществления кодирования. Квантование на первом этапе может быть выборочным на основе оценки. Первый этап квантования можно рассматривать как предварительное квантование. Обратите внимание, что предварительное квантование может быть особенно полезным в случаях, когда контраст изображения, кадра или набора остатков особенно низок, так что остатки приоритета сосредоточены на очень низких значениях.
Модификация может включать: сравнение оценки с набором диапазонов, при этом: в ответ пропадание оценки в первый диапазон остаток или группа остатков не кодируются; в ответ на попадание оцен- 2 045392 ки во второй диапазон остаток или группа остатков сравнивается с мертвой зоной квантования, при этом остаток или группа остатков не кодируются, если они попадают в мертвую зону; в ответ на попадание оценки в третий диапазон остаток или группа остатков предварительно квантуются с шириной первого шага квантования; и в ответ на попадание оценки в четвертый диапазон остаток или группа остатков передаются на кодирование без модификации.
Модификация одного или большего количества наборов остатков может включать: получение категоризации остатков или групп остатков; и применение модификации на основе категоризации. Категория может, например, содержать фон или передний план. Получение категоризации включает: категоризацию остатков или групп остатков на основе одной или большего количества пространственных и/или временных характеристик входного сигнала или одного или большего количества наборов остатков.
Одна или большее количество пространственных и/или временных характеристик могут содержать одну или большее количество выбранных из группы, включающей:
пространственную активность между одним или большим количеством сигнальных элементов или групп сигнальных элементов; уровень контраста между одним или большим количеством сигнальных элементов или групп сигнальных элементов; измерение изменения в одном или большем количестве пространственных направлений; временную активность между одним или большим количеством сигнальных элементов или групп сигнальных элементов; измерение изменения в одном или большем количестве временных направлений; пространственную активность между одним или большем количестве остатков; временную активность между одним или большим количеством остатков; и различие между различными наборами одного или большего количества наборов остатков или различие в одной или большем количестве пространственных и/или временных характеристик между разными наборами одного или большего количества наборов остатков.
Модификация может включать установку флажков управления, указывающих, следует ли кодировать остатки при кодировании, при этом кодирование выборочно выполняется на основе флажков управления. Обратите внимание, что во время обработки может быть введено значение 0 или 1 или определенные блоки могут быть полностью пропущены. Однако обработка по-прежнему относится к остаткам, т.е. фактически устанавливает набор остаточных значений равными 0. Это можно рассматривать как неразрушающий выбор.
Модификация может включать: получение набора остаточных весов, причем остаточные веса содержат нулевые значения; и применение набора остаточных весов к остаткам в одном из одного или большего количества наборов остатков для генерации взвешенного набора остатков. После применения набора остаточных весов способ может дополнительно включать определение порога взвешенного набора остатков с использованием набора пороговых значений. Путем взвешивания остатков к модификации может быть применена высокая степень гибкости. Веса могут быть матрицей недвоичных значений, и поэтому каждому остатку может быть назначено недвоичное значение, которое затем может использоваться для гибкой, масштабируемой и высоко детализированной фильтрации или приоритезации остатков. Один или большее количество из набора остаточных весов и набора пороговых значений могут быть определены на основе классификации входного сигнала. Точно так же классификация может быть основана на остатках или восстановленном варианте входного сигнала с использованием остатков. Этот последний пример может включать элемент итерации или обратной связи, так что модификация улучшается на основе анализа восстановленного варианта.
Набор остаточных весов может содержать остаточную маску. Остаточная маска может быть получена из удаленного местоположения. Остаточная маска может быть предварительно сгенерирована на основе предварительной обработки входного сигнала перед кодированием. Таким образом, удаленное местоположение может выполнять дорогостоящее с точки зрения вычислений упражнение, а кодер может быть глупым. Остаточные маски могут быть сгенерированы один раз для конкретного видео и повторно использованы в нескольких кодерах и/или многократно, чтобы уменьшить использование ресурсов. Среди других преимуществ такое удаленное хранение остаточных масок может обеспечивать масштабируемое кодирование или представление остаточных масок. Как другое преимущество, для генерации остаточных масок может применяться сложный алгоритм, такой как подробный алгоритм на основе машинного обучения, который облегчает центральный комплексный анализ и определение маски, и поэтому маска может быть улучшена путем извлечения из удаленного местоположения. Извлеченная маска может использоваться для всех кадров входного сигнала, если входным сигналом является видео, или для каждого кадра может использоваться другая маска.
Модификация может выполняться над единицами кодирования остатков.
Согласно дополнительному аспекту может быть предоставлен способ кодирования входного сигнала, включающий: получение входного сигнала; генерацию набора остатков на основе разности между входным сигналом и восстановленным сигналом; определение набора метрик восприятия, соответствующего набору остатков; выборочное предварительное квантование набора остатков на основе набора метрик восприятия; и преобразование и квантование одного или большего количества наборов модифицированных остатков для генерации одного или большего количества соответствующих кодированных потоков. Соответственно, преобразование и квантование можно сделать более эффективными. Метрика
- 3 045392 восприятия способствует достижению баланса между эффективностью и опытом пользователя или зрителя.
Определение набора метрик восприятия может включать: для каждой заданной остаточной группы в наборе остаточных групп: определение того, следует ли использовать метрику восприятия для заданной остаточной группы; в ответ на определение того, что должна использоваться метрика восприятия, получение по меньшей мере одной метрики восприятия для заданной остаточной группы. Соответственно, метрика может быть определена на уровне, для которого она может иметь степень влияния.
Способ может включать: сравнение метрики восприятия для одного или большего количества остатков с набором диапазонов, причем: в ответ на попадание метрики восприятия в первый диапазон один или большее количество остатков не кодируются; в ответ на попадание метрики восприятия во второй диапазон один или большее количество остатков сравниваются с мертвой зоной предварительного квантования, при этом один или большее количество остатков не кодируются, если они попадают в мертвую зону; в ответ на попадание метрики восприятия в третий диапазон один или большее количество остатков предварительно квантуются с шириной шага предварительного квантования; и в ответ на попадание метрики восприятия в четвертый диапазон один или большее количество остатков передаются для кодирования без модификации.
Также может быть предоставлен кодер, выполненный с возможностью выполнения способа любого из вышеупомянутых аспектов реализации изобретения.
Согласно дополнительному аспекту может быть предложен кодер для кодирования входного видео, содержащий: первый кодер для получения и кодирования первого набора остатков для создания первого потока улучшения; второй кодер для получения и кодирования второго набора остатков для создания второго потока улучшения, при этом первый набор остатков основан на сравнении первого варианта входного видео и первого восстановленного варианта входного видео, первый восстановленный вариант получен из базового кодера, причем базовый кодер отличается от первого и второго кодеров, при этом второй набор остатков основан на сравнении второго варианта входного видео и второго восстановленного варианта входного видео, второй восстановленный вариант получен из первого восстановленного варианта, и при этом один или большее количество из первого и второго кодеров выполнены с возможностью выборочной предварительной обработки остатков перед кодированием, так что подмножество ненулевых значений в соответствующих первом и втором наборе остатков не присутствует в соответствующих потоках улучшения первого и второго уровня.
Первый и второй кодеры могут независимо обрабатывать набор единиц кодирования для каждого кадра видео.
Согласно дополнительному аспекту может быть предложен кодер для кодирования входного видео, содержащий: первый кодер для получения и кодирования первого набора остатков для создания первого потока улучшения; второй кодер для получения и кодирования второго набора остатков для создания второго потока улучшения; интерфейс конфигурации для получения данных конфигурации; при этом первый набор остатков основан на сравнении первого варианта входного видео и первого восстановленного варианта входного видео, первый восстановленный вариант получен из базового кодера, причем базовый кодер отличается от первого и второго кодеров, при этом второй набор остатков основан на сравнении второго варианта входного видео и второго восстановленного варианта входного видео, второй восстановленный вариант получен из первого восстановленного варианта, при этом данные конфигурации содержат остаточные маски для одного или большего количества из первого и второго кодеров, при этом соответствующие кодеры из первого и второго кодеров выполнены с возможностью выборочного применения остаточных масок к соответствующим наборам из первого и второго набора остатков перед кодированием, так что подмножество ненулевых значения внутри них не присутствуют в соответствующих потоках улучшения первого и второго уровня.
Согласно дополнительным аспектам изобретения могут быть предоставлены машиночитаемые носители, которые при выполнении процессором побуждают процессор выполнять любой из способов вышеупомянутых аспектов.
Краткое описание графических материалов
На фиг. 1 показана высокоуровневая схема процесса кодирования;
на фиг. 2 показана высокоуровневая схема процесса декодирования;
на фиг. 3 показана высокоуровневая схема процесса кодирования и конкретных этапов кодирования;
на фиг. 4 показана высокоуровневая схема процесса декодирования и конкретных этапов декодирования;
на фиг. 5 показана высокоуровневая схема процесса кодирования и обработки остатков;
на фиг. 6 показана высокоуровневая схема дополнительного процесса декодирования;
на фиг. 7 показана высокоуровневая схема процесса кодирования и управления режимом остатков;
на фиг. 8 показана классификация и взвешивание остатков;
на фиг. 9а-9с показана облачная конфигурация;
на фиг. 10 показана блок-схема описанных в настоящем документе концепций;
- 4 045392 на фиг. 11 показаны диапазоны метрики восприятия, которые могут использоваться для идентификации соответствующих действий; и на фиг. 12 показана блок-схема возможного применения метрики восприятия и диапазонов согласно фиг. 11 в соответствии с конкретным примером.
Подробное описание изобретения
Настоящее изобретение относится к способам. В частности, настоящее изобретение относится к способам кодирования и декодирования сигналов. Обработка данных может включать, помимо прочего, получение, извлечение, подачу на выход, получение и восстановление данных.
Описываемая в настоящем документе технология кодирования является гибким, адаптируемым, высокоэффективным и недорогим в вычислительном отношении форматом кодирования, сочетающим в себе формат кодирования видео, базовый кодек (например, AVC, HEVC или любой другой кодек, который существует в настоящее время или появится в будущем) с уровнем улучшения кодированных данных, кодированных с использованием другой методики. Технология использует исходный сигнал с пониженной частотой дискретизации, кодированный с использованием базового кодека, для формирования базового потока. Поток улучшения формируется с использованием кодированного набора остатков, которые корректируют или улучшают базовый поток, например, путем увеличения разрешения или увеличения частоты кадров. В иерархической структуре может быть несколько уровней данных улучшения. В определенных схемах базовый поток может быть декодирован аппаратным декодером, в то время как поток улучшения может подходить для программной реализации.
Важно, чтобы любая оптимизация, используемая в новой технологии кодирования, была адаптирована к конкретным требованиям или ограничениям потока улучшений и имела низкий уровень сложности. Такие требования или ограничения включают: потенциальное снижение вычислительных возможностей в результате необходимости программного декодирования потока улучшения; необходимость сочетания декодированного набора остатков с декодированным кадром; вероятную структуру остаточных данных, то есть относительно высокую долю нулевых значений с сильно изменчивыми значениями данных в широком диапазоне; нюансы квантованного блока коэффициентов; и структуру потока улучшений, представляющую собой набор дискретных остаточных кадров, разделенных на различные компоненты. Обратите внимание, что ограничения, наложенные на поток улучшения, означают, что простая и быстрая операция энтропийного кодирования важна для обеспечения возможности потока улучшения эффективно корректировать или улучшать отдельные кадры базового декодированного видео. Обратите внимание, что в некоторых сценариях базовый поток также декодируется практически одновременно перед объединением, что создает нагрузку на ресурсы.
В одном случае описанные в настоящем документе способы могут применяться к так называемым плоскостям данных, которые отражают различные цветовые компоненты видеосигнала. Например, описанные в настоящем документе способы могут применяться к различным плоскостям данных YUV или RGB, соответствующим различным цветовым каналам. Различные цветовые каналы могут обрабатываться параллельно. Следовательно, упоминания наборов остатков в настоящем документе могут охватывать несколько наборов остатков, причем каждый цветовой компонент имеет различный набор остатков, которые образуют часть объединенного потока улучшения. Компоненты каждого потока могут быть сопоставлены в любом логическом порядке, например, каждая плоскость на одном уровне может быть сгруппирована и отправлена вместе или, в альтернативном варианте реализации изобретения, наборы остатков для разных уровней в каждой плоскости могут быть отправлены вместе.
Настоящий документ предпочтительно соответствует требованиям следующих документов ISO/IEC: Call for Proposals for Low Complexity Video Coding Enhancements (Конкурс предложений по усовершенствованиям кодирования видео низкой сложности) ISO/IEC JTC1/SC29/WG11 N17944, Макао, Китай, октябрь 2018 г. и Requirements for Low Complexity Video Coding Enhancements (Требования к усовершенствованиям кодирования видео низкой сложности) ISO/IEC JTC1/SC29/WG11 N18098, Макао, Китай, октябрь 2018 г. (которые включены в настоящий документ посредством ссылки). Более того, описанные в данном документе подходы могут быть включены в продукты, поставляемые V-Nova International Ltd.
Общая структура предложенной схемы кодирования, в которой может применяться описываемая в данном документе технология, использует сигнал источника с пониженной частотой дискретизации, кодированный с использованием базового кодека, добавляет первый уровень данных коррекции к декодированному выходному сигналу базового кодека для генерации скорректированного изображения, а затем добавляет дополнительный уровень данных улучшения к варианту скорректированного изображения с повышенной частотой дискретизации. Таким образом, потоки считаются базовым потоком и потоком улучшения. Такая структура создает множество степеней свободы, которые обеспечивают большую гибкость и адаптируемость ко многим ситуациям, что делает формат кодирования подходящим для многих сценариев использования, включая передачу по технологии ОТТ, прямую трансляцию, прямую трансляцию сверхвысокой четкости (UHD) и т.д. Хотя декодированный выходной сигнал базового кодека не предназначен для просмотра, это полностью декодированное видео с более низким разрешением, что делает выходной сигнал совместимым с существующими декодерами и, в случаях, если это считается
- 5 045392 подходящим, также может использоваться в качестве выходного сигнала с более низким разрешением. В некоторых случаях базовый кодек может использоваться для создания базового потока. Базовый кодек может содержать независимый кодек, управляемый по модульному принципу или по принципу черного ящика. Описанные в настоящем документе способы могут быть реализованы посредством компьютерного программного кода, который выполняется процессором и выполняет вызовы функций в аппаратных и/или программно реализованных базовых кодеках.
В целом, используемый в данном документе термин остатки относится к разности между значением опорного массива или опорного кадра и фактическим массивом или кадром данных. Массив может быть одно- или двумерным массивом, представляющим единицу кодирования. Например, единица кодирования может быть набором остаточных значений 2x2 или 4x4, которые соответствуют областям аналогичного размера входного видеокадра. Следует отметить, что этот обобщенный пример не зависит от выполняемых операций кодирования и характера входного сигнала. Употребляемый в данном документе термин остаточные данные относится к данным, полученным из набора остатков, например, самого набора остатков или выходного сигнала набора операций обработки данных, которые выполняются с набором остатков. В настоящем описании, как правило, набор остатков включает множество остатков или остаточных элементов, каждый остаток или остаточный элемент соответствует элементу сигнала, то есть элементу сигнала или исходных данных. Сигнал может представлять собой изображение или видео. В этих примерах набор остатков соответствует изображению или кадру видео, причем каждый остаток связан с пикселем сигнала, при этом пиксель является элементом сигнала. Примеры, приведенные в данном документе, описывают, как эти остатки могут быть модифицированы (т.е. обработаны), чтобы повлиять на конвейер кодирования или, в конечном итоге, декодированное изображение при уменьшении общего размера данных. Остатки или наборы могут обрабатываться на основе каждого остаточного элемента (или остатка) или обрабатываться на групповой основе, например, для каждого мозаичного фрагмента или единицы кодирования, причем мозаичный фрагмент или единица кодирования является соседним подмножеством набора остатков. В одном случае мозаичный фрагмент может содержать группу меньших единиц кодирования. Обратите внимание, что обработка может выполняться на каждом кадре видео или только на заданном количестве кадров в последовательности.
В целом каждый поток улучшения или оба потока улучшения могут быть инкапсулированы в один или большее количество битовых потоков улучшения с использованием набора единиц уровня абстракции сети (NALU). NALU предназначены для инкапсуляции битового потока улучшения, чтобы применить улучшение к правильному базовому восстановленному кадру. NALU может, например, содержать ссылочный индекс для NALU, содержащей битовый поток восстановленного кадра базового декодера, к которому должно быть применено улучшение. Таким образом, улучшение может быть синхронизировано с базовым потоком, а кадры каждого битового потока объединены для создания декодированного выходного видео (т.е. остатки каждого кадра уровня улучшения объединяются с кадром базового декодированного потока). Группа изображений может представлять несколько NALU.
Возвращаясь к начальному процессу, описанному выше, где базовый поток предоставляется вместе с двумя уровнями (или подуровнями) улучшения в потоке улучшения, пример обобщенного процесса кодирования изображен на блок-схеме на фиг. 1. Входное видео 100 с полным разрешением обрабатывается для создания различных кодированных потоков 101, 102, 103. Первый кодированный поток (кодированный базовый поток) создается путем подачи в базовый кодек (например, AVC, HEVC или любой другой кодек) варианта входного видео с пониженной частотой дискретизации. Кодированный базовый поток 310 может называться базовым слоем или базовым уровнем. Второй кодированный поток (кодированный поток уровня 1) создается путем обработки остатков, полученных путем нахождения разности между восстановленным видео базового кодека и вариантом входящего видео с пониженной частотой дискретизации. Третий кодированный поток (кодированный поток уровня 2) создается путем обработки остатков, полученных путем нахождения разности между вариантом с повышенной частотой дискретизации скорректированного варианта восстановленного базового кодированного видео и входным видео. В некоторых случаях компоненты фиг. 1 могут обеспечивать общий кодер низкого уровня сложности. В некоторых случаях потоки улучшения могут быть созданы процессами кодирования, образующими часть кодера низкой сложности, и кодер низкой сложности может быть выполнен с возможностью управления независимым базовым кодером и декодером (например, как упакованный базовый кодек). В других случаях базовый кодер и декодер могут предоставляться как часть кодера низкой сложности. В одном случае кодер низкой сложности на фиг. 1 может рассматриваться как форма оболочки для базового кодека, причем функциональность базового кодека может быть скрыта от объекта, реализующего кодер низкой сложности.
Операция дискретизации с пониженной частотой, проиллюстрированная компонентом 105 дискретизации с пониженной частотой, может применяться к входному видео для создания видео с пониженной частотой дискретизации, которое должно кодироваться базовым кодером 113 базового кодека. Дискретизация с пониженной частотой может выполняться как в вертикальном, так и в горизонтальном направлениях, или, в альтернативном варианте реализации изобретения, только в горизонтальном направлении. Базовый кодер 113 и базовый декодер 114 могут быть реализованы посредством базового кодека (напри- 6 045392 мер, как разные функции общего кодека). Базовый кодек и/или один или большее количество из базового кодера 113 и базового декодера 114 могут содержать выполненные соответствующим образом электронные схемы (например, аппаратный кодер/декодер) и/или компьютерный программный код, который выполняется процессором.
Каждый процесс кодирования потока улучшения не обязательно может включать этап дискретизации с повышенной частотой. На фиг. 1, например, первый поток улучшения концептуально является потоком коррекции, в то время как второй поток улучшения подвергается дискретизации с повышенной частотой для обеспечения уровня улучшения.
Рассматривая процесс создания потоков улучшения более подробно, для создания кодированного потока уровня 1 кодированный базовый поток декодируется базовым декодером 114 (т.е. операция декодирования применяется к кодированному базовому потоку для создания декодированного базового потока). Декодирование может выполняться функцией декодирования или режимом базового кодека. Затем определяется разность между декодированным базовым потоком и входным видео с пониженной частотой дискретизации на компараторе 110 уровня 1 (т.е. операция вычитания применяется к входному видео с пониженной частотой дискретизации и декодированному базовому потоку для создания первого набора остатков). Выходной сигнал компаратора 110 может называться первым набором остатков, например, поверхность или кадр остаточных данных, где остаточное значение определяется для каждого элемента изображения с разрешением базового кодера 113, базового декодера 114 и выходного сигнала блока 105 дискретизации с пониженной частотой.
Затем разность кодируется первым кодером 115 (т.е. кодером уровня 1) для создания кодированного потока 102 уровня 1 (т.е. операция кодирования применяется к первому набору остатков для создания первого потока улучшения).
Как отмечено выше, поток улучшения может содержать первый уровень 102 улучшения и второй уровень 103 улучшения. Первый уровень 102 улучшения может рассматриваться как скорректированный поток, например поток, обеспечивающий уровень коррекции для базового кодированного/декодированного видеосигнала с более низким разрешением, чем входное видео 100. Второй уровень 103 улучшения может рассматриваться как дополнительный уровень улучшения, который преобразует скорректированный поток в исходное входное видео 100, например, который применяет уровень улучшения или коррекции к сигналу, восстановленному из скорректированного потока.
В примере на фиг. 1 второй уровень 103 улучшения создается путем кодирования дополнительного набора остатков. Дополнительный набор остатков создается компаратором 119 уровня 2. Компаратор 119 уровня 2 определяет разность между вариантом с повышенной частотой дискретизации декодированного потока уровня 1, например выходным сигналом компонента 117 дискретизации с повышенной частотой, и входным видео 100. Входной сигнал компонента 117 дискретизации с повышенной частотой создается путем применения первого декодера (т.е. декодера уровня 1) к выходному сигналу первого кодера 115. Это создает декодированный набор остатков уровня 1. Затем они объединяются с выходным сигналом базового декодера 114 в компоненте 120 суммирования. Таким образом, фактически, применяются остатки уровня 1 к выходному сигналу базового декодера 114. Это позволяет скорректировать потери в процессе кодирования и декодирования уровня 1 с помощью остатков уровня 2. Выходной сигнал компонента 120 суммирования можно рассматривать как смоделированный сигнал, представляющий результат применения обработки уровня 1 к кодированному базовому потоку 101 и кодированному потоку 102 уровня 1 в декодере.
Как указывалось, поток с повышенной частотой дискретизации сравнивается с входным видео, что создает дополнительный набор остатков (т.е. операция определения разности применяется к воссозданному потоку с повышенной частотой дискретизации, чтобы сгенерировать дополнительный набор остатков). Дополнительный набор остатков затем кодируется вторым кодером 121 (т.е. кодером уровня 2) как кодированный поток улучшения уровня 2 (т.е. операция кодирования затем применяется к дополнительному набору остатков, чтобы сгенерировать кодированный дополнительный поток улучшения).
Таким образом, как проиллюстрировано на фиг. 1 и описано выше, выходным сигналом процесса кодирования является базовый поток 101 и один или большее количество потоков 102, 103 улучшения, которые предпочтительно содержат первый уровень улучшения и дополнительный уровень улучшения. Три потока 101, 102 и 103 могут быть объединены с дополнительной информацией, такой как заголовки управления, или без нее для создания объединенного потока для структуры кодирования видео, которая представляет входное видео 100. Следует отметить, что компоненты, показанные на фиг. 1, могут работать с блоками или единицами кодирования данных, например, соответствующими частям 2x2 или 4x4 кадра на конкретном уровне разрешения. Компоненты работают без каких-либо межблоковых зависимостей, поэтому они могут применяться параллельно к нескольким блокам или единицам кодирования в пределах кадра. Это отличается от сравнительных схем кодирования видео, в которых существуют зависимости между блоками (например, пространственные или временные зависимости). Зависимости сравнительных схем кодирования видео ограничивают уровень параллельной обработки данных и требуют гораздо большей сложности.
На фиг. 1 показан блок 140 выбора режима остатков. Если был выбран режим остатков (RM), остат- 7 045392 ки обрабатываются (т.е. модифицируются и/или ранжируются и выбираются), чтобы определить, какие остатки должны быть преобразованы и кодированы, т. е. какие остатки должны быть обработаны первым и/или вторым кодерами 115 и 121. Предпочтительно эта обработка выполняется до энтропийного кодирования. Выбор 140 режима остатков является необязательным этапом, который может конфигурировать или активировать обработку или модификацию остатков, т. е. обработка остатков выполняется в соответствии с выбранным режимом. Например, режим остатков (RM) может соответствовать режиму предварительной обработки остатков, в котором остатки для слоев улучшения предварительно обрабатываются перед кодированием. Этот режим можно включать и выключать в зависимости от требований. Например, режим остатков можно настроить с помощью одного или большего количества заголовков или полей управления. В альтернативных вариантах реализации изобретения остатки всегда могут быть модифицированы (т.е. предварительно обработаны), поэтому выбор режима не требуется. В этом случае предварительная обработка остатков может быть жестко кодирована. Примеры обработки остатков будут подробно описаны ниже. Режим остатков, если он выбран, может действовать для фильтрации остатков в пределах одной или большего количества операций кодирования уровня 1 и уровня 2, предпочтительно на этапе, предшествующем кодированию подкомпонентов.
Соответствующий обобщенный процесс декодирования приведен на блок-схеме на фиг. 2. Можно сказать, что на фиг. 2 показан декодер низкой сложности, который соответствует кодеру низкой сложности на фиг. 1. Декодер низкой сложности принимает три потока 101, 102, 103, сгенерированные кодером низкой сложности, вместе с заголовками 204, содержащими дополнительную информацию декодирования. Кодированный базовый поток 101 декодируется базовым декодером 210, соответствующим базовому кодеку, используемому в кодере низкой сложности. Кодированный поток 102 уровня 1 принимается первым декодером 211 (т.е. декодером уровня 1), который декодирует первый набор остатков, кодированный первым кодером 115 согласно фиг. 1. В первом компоненте суммирования 212 выходной сигнал базового декодера 210 объединяется с декодированными остатками, полученными от первого декодера 211. Комбинированное видео, которое можно назвать восстановленным видеосигналом уровня 1, подвергается дискретизации с повышенной частотой компонентом 213 дискретизации с повышенной частотой. Кодированный поток 103 уровня 2 принимается вторым декодером 214 (т.е. декодером уровня 2). Второй декодер 214 декодирует второй набор остатков, кодированный вторым кодером 121 на фиг. 1. Хотя заголовки 204 показаны на фиг. 2 как используемые вторым декодером 214, они также могут использоваться первым декодером 211, а также базовым декодером 210. Выходной сигнал второго декодера 214 - это второй набор декодированных остатков. Они могут иметь более высокое разрешение по сравнению с первым набором остатков и входным сигналом компонента 213 дискретизации с повышенной частотой. Во втором компоненте суммирования 215 второй набор остатков от второго декодера 214 объединяется с выходным сигналом компонента 213 дискретизации с повышенной частотой, т.е. с восстановленным сигналом уровня 1 после дискретизации с повышенной частотой, для восстановления декодированного видео 250.
Что касается кодера низкой сложности, декодер низкой сложности на фиг. 2 может работать параллельно с разными блоками или единицами кодирования конкретного кадра видеосигнала. Кроме того, декодирование двумя или большим количеством из базового декодера 210, первого декодера 211 и второго декодера 214 может выполняться параллельно. Это возможно благодаря отсутствию межблочных зависимостей.
В процессе декодирования декодер может анализировать заголовки 204 (которые могут содержать информацию о глобальной конфигурации, информацию о конфигурации изображения или кадра и информацию о конфигурации блока данных) и конфигурировать декодер низкой сложности на основе этих заголовков. Чтобы воссоздать входное видео, декодер низкой сложности может декодировать каждый из базового потока, первого потока улучшения и дополнительного или второго потока улучшения. Кадры потока могут быть синхронизированы, а затем объединены для получения декодированного видео 250. Декодированное видео 250 может быть восстановлением исходного входного видео 100 с потерями или без потерь в зависимости от конфигурации кодера и декодера низкой сложности. Во многих случаях декодированное видео 250 может быть реконструкцией с потерями исходного входного видео 100, причем потери имеют уменьшенное или минимальное влияние на восприятие декодированного видео 250.
На каждой из фиг. 1 и 2 операции кодирования уровня 2 и уровня 1 могут включать этапы преобразования, квантования и энтропийного кодирования (например, в таком порядке). Точно так же на этапе декодирования остатки могут быть пропущены через энтропийный декодер, деквантователь и модуль обратного преобразования (например, в этом порядке). Может использоваться любое подходящее кодирование и соответствующая операция декодирования. Однако предпочтительно, чтобы этапы кодирования уровня 2 и уровня 1 могли выполняться в программном обеспечении (например, как выполняемые одним или большим количеством центральных или графических модулей обработки в устройстве кодирования).
Преобразование, описанное в данном документе, может использовать преобразование направленной декомпозиции, такое как преобразование на основе преобразования Адамара. Оба могут содержать небольшое ядро или матрицу, применяемые к сглаженным единицам кодирования остатков (т.е. блокам
- 8 045392 остатков 2x2 или 4x4). Более подробную информацию о преобразовании можно найти, например, в патентных заявках РСТ/ЕР2013/059847 или PCT/GB2017/052632, которые включены в настоящий документ посредством ссылки. Кодер может выбирать между различными преобразованиями, которые будут использоваться, например, размер применяемого ядра.
Преобразование может преобразовать остаточную информацию на четыре поверхности. Например, преобразование может создавать следующие компоненты: средний, вертикальный, горизонтальный и диагональный.
Таким образом, приведенные в данном документе способы и устройства основаны на общем подходе, который построен на существующем алгоритме кодирования и/или декодирования (таком как стандарты MPEG, такие как AVC/H.264, HEVC/H.265 и т.п., а также нестандартном алгоритме, таком как VP9, AV1 и другие), который работает как базовый уровень для слоя улучшения в соответствии с другим подходом к кодированию и/или декодированию. Идея, лежащая в основе общего подхода этих примеров, заключается в иерархическом кодировании/декодировании видеокадра в отличие от блочных подходов, используемых в семействе алгоритмов MPEG. Иерархическое кодирование кадра включает генерацию остатков для полного кадра, а затем прореженного кадра и т.д.
Остаточные данные сжатия видео для полноразмерного видеокадра могут называться LoQ-2 (например, 1920x1080 для видеокадра HD), тогда как данные прореженного кадра могут называться LoQ-x, где х обозначает число, соответствующее иерархическому прореживанию. В описанных примерах на фиг. 1 и 2 переменная х может иметь значения 1 и 2, представляющие первый и второй потоки улучшения. Следовательно, существует 2 иерархических уровня, для которых будут генерироваться остатки сжатия. Другие схемы именования уровней также могут применяться без каких-либо изменений в функциональности (например, потоки улучшения уровня 1 и уровня 2, описанные в данном документе, могут в альтернативном варианте реализации изобретения называться потоками уровня 1 и уровня 2, представляя отсчет вниз от наивысшего разрешения).
Более подробный процесс кодирования изображен на блок-схеме на фиг. 3. Процесс кодирования разделен на две половины, как показано пунктирной линией. Под пунктирной линией показан базовый уровень кодера 300, который может быть реализован аппаратно или программно. Над пунктирной линией изображен уровень улучшения, который может быть успешно реализован в программном обеспечении. Кодер 300 может содержать только процессы уровня улучшения или комбинацию процессов базового уровня и процессов уровня улучшения, если необходимо. Кодер 300 может быть успешно реализован в программном обеспечении, особенно на уровне улучшения. Эта компоновка позволяет, например, использовать предшествующий аппаратный кодер, который обеспечивает базовый уровень, с обновлением с использованием обновления микропрограммного обеспечения (прошивки) (например, программного обеспечения), причем микропрограммное обеспечение выполнено с возможностью обеспечения уровня улучшения. В более новых устройствах как базовый уровень, так и уровень улучшения могут быть обеспечены аппаратными средствами и/или комбинацией аппаратных средств и программного обеспечения.
Топология кодера на общем уровне следующая. Кодер 300 содержит вход I для получения входного сигнала 30. Входной сигнал 30 может содержать входной видеосигнал, в котором кодер применяется покадрово. Вход I соединен с устройством 305D дискретизации с пониженной частотой и блоком 300-2 обработки. Устройство 305D дискретизации с пониженной частотой может соответствовать компоненту 105 дискретизации с пониженной частотой на фиг. 1, а блок 300-2 обработки может соответствовать второму кодеру 121 на фиг. 1. Устройство 305D дискретизации с пониженной частотой подает на выход сигнал в базовый кодек 320 на базовом уровне кодера 300. Базовый кодек 320 может реализовывать базовый кодер 113 и базовый декодер 114 согласно фиг. 1. Устройство 305D дискретизации с пониженной частотой также подает на выход данные в блок 300-1 обработки. Блок 300-1 обработки может соответствовать первому кодеру 115 на фиг. 1. Блок 300-1 обработки передает выходной сигнал устройству 305U дискретизации с повышенной частотой, которое, в свою очередь, подает на выход сигнал в блок 300-2 обработки. Устройство 305U дискретизации с повышенной частотой может соответствовать компоненту 117 дискретизации с повышенной частотой на фиг. 1. Каждый из блоков 300-2 и 300-1 обработки содержит один или большее количество из следующих модулей: блок 310 преобразования, блок 320 квантования, блок 330 энтропийного кодирования и блок 350 обработки остатков. Блок 350 остатков может выполняться до блока 310 преобразования и/или управления обработкой остатков в блоках 300 обработки. Порядок обработки может быть таким, как указано в графических материалах.
Входной сигнал 30, такой как указан в этом примере видео с полным (или наивысшим) разрешением, обрабатывается кодером 300 для генерации различных кодированных потоков. Базовый кодированный поток создается путем подачи в базовый кодек 320 (например, AVC, HEVC или любой другой кодек) на базовом уровне варианта входного видео 30 с пониженной частотой дискретизации с использованием устройства 305D дискретизации с пониженной частотой. Базовый кодированный поток может содержать выходные данные базового кодера базового кодека 320. Первый кодированный поток (кодированный поток уровня 1) создается путем восстановления кодированного базового потока для создания
- 9 045392 базового восстановления и последующего нахождения разности между базовым восстановлением и вариантом с пониженной частотой дискретизации входного видео 30. Восстановление кодированного базового потока может включать получение декодированного базового потока из базового кодека (т.е. входной сигнал блока 300-1 обработки содержит базовый декодированный поток, как показано на фиг. 1). Затем разностный сигнал обрабатывается в блоке 300-1 для создания кодированного потока уровня 1. Блок 300-1 содержит блок преобразования 310-1, блок квантования 320-1 и блок энтропийного кодирования 330-1. Второй кодированный поток (кодированный поток уровня 2) создается посредством дискретизации с повышенной частотой скорректированного варианта базового восстановления с использованием устройства 305U дискретизации с повышенной частотой и нахождения разности между скорректированным вариантом базового восстановления и входным сигналом 30. Затем этот разностный сигнал обрабатывается в блоке 300-2 для создания кодированного потока уровня 2. Блок 300-2 содержит блок преобразования 310-2, блок квантования 320-2, блок энтропийного кодирования 330-2 и блок обработки 3502 остатков. Как и в случае блока 300-1 обработки блоки могут выполняться в порядке, показанном в графических материалах (например, обработка остатков с последующим преобразованием, потом квантованием и затем энтропийным кодированием).
Любая известная схема квантования может быть полезной для преобразования остаточных сигналов в кванты, чтобы определенные переменные могли принимать только определенные дискретные величины. В одном случае квантование включает деление на предварительно заданную ширину шага. Это может применяться на обоих уровнях (1 и 2). Например, квантование в блоке 320 может включать деление преобразованных остаточных значений на ширину шага. Ширина шага может быть определена предварительно, например, выбрана на основе требуемого уровня квантования. В одном случае деление на ширину шага может быть преобразовано в умножение на обратную величину ширины шага, что может быть более эффективно реализовано аппаратно. В этом случае деквантование, такое как на этапе 320, может содержать умножение на ширину шага. Энтропийное кодирование, как описано в данном документе, может включать кодирование длин серий (RLE), затем обработку кодированного выходного сигнала выполняют с использованием кодера Хаффмана. В некоторых случаях, когда желательно энтропийное кодирование, может использоваться только одна из этих схем.
Кодированный базовый поток может называться потоком базового уровня.
На фиг. 3 показаны блоки обработки 350-2, 350-1 остатков, расположенные до блока преобразования 310. Хотя обработка остатков показана до преобразования, необязательно, этап обработки может быть расположен в другом месте последовательности, например, позже в процессе кодирования; однако при выполнении перед этапом преобразования обработка остатков может иметь наибольшее влияние по всему конвейеру кодирования, поскольку эффективность распространяется по конвейеру. Например, если остаточные значения фильтруются на раннем этапе (например, путем установки в 0), то это уменьшает объем вычислений, которые необходимо выполнить на последующих этапах в блоках обработки 300. Блок 350 обработки остатков может быть активирован или сконфигурирован блоком 140 выбора режима остатков (не показан на фиг. 3, показан на фиг. 1). Например, если режим остатков выбран (например, включен), блок 350 обработки остатков может быть активирован. Режим остатков может быть выбран независимо для первого и второго потоков улучшения (например, блоки обработки остатков 350-2 и 3501 могут быть активированы и применены отдельно, причем один может быть выключен, а другой включен).
Блок обработки остатков выполнен с возможностью модификации набора остатков. Некоторые конкретные функции блока 310 обработки остатков подробно описаны ниже, однако концептуально блок 310 обработки остатков функционирует для модифицирования остатков. Это можно рассматривать как форму фильтрации или предварительной обработки. В некоторых примерах остатки могут быть ранжированы или получить приоритет в рамках фильтрации или предварительной обработки, при этом те остатки, которые имеют более высокий ранг или приоритет, передаются для дальнейшей обработки, а остатки с более низким рангом или приоритетом не передаются для дальнейшей обработки (например, устанавливаются равными 0 или соответствующему низкому значению). Фактически, блок обработки остатков выполнен с возможностью уничтожения одних или большего количества остатков перед преобразованием, так что преобразование работает с подмножеством остатков.
Блок 310 обработки остатков может быть одинаковым в путях L2 и L1 или может быть сконфигурирован по-разному (или не включаться в конкретный путь), чтобы отражать различную природу этих потоков.
В некоторых примерах могут быть реализованы разные режимы обработки остатков. Блок 140 выбора режима остатков может указывать, должны ли обрабатываться остатки, а также, в некоторых вариантах реализации изобретения, тип выполняемой обработки. В общем, кодер (такой как кодер низкой сложности на фиг. 1 или кодер 300 на фиг. 3) может содержать компонент 140 управления режимом остатков, который выбирает и реализует режим остатков и компоненты реализации режима остатков, которые реализуют обработку для выбранного режима остатков в отношении одного или большего количества потоков улучшения. В других случаях только блоки 350 обработки остатков могут быть предоставлены на каждом уровне кодирования улучшения без более высоких функциональных возможностей управ- 10 045392 ления (например, в пределах компонента управления более высокого уровня, такого как компонент 140 управления). В этом последнем случае можно видеть, что функциональные возможности компонента 140 управления режимом остатков включены в первый и/или второй кодеры 115 и 121 на фиг. 1.
Примеры режимов остатков, которые могут быть реализованы, включают, но не ограничиваются перечисленным: режим, в котором не выполняется обработка остатков, двоичный режим, в котором определенные остатки умножаются на 0 или 1, режим взвешивания, в котором остатки умножаются на весовой коэффициент, режим управления, в котором определенные блоки или единицы кодирования не должны обрабатываться (например, эквивалент установки всех остаточных значений в единице кодирования 2x2 или 4x4, равными 0), режим ранжирования или приоритета, в котором остаткам присваивается ранг или приоритет в списке, и они выбираются для дальнейшей обработки на основе ранга или приоритета, режим оценки, в котором остаткам присваивается оценка, которая используется для настройки кодирования остатков, и режим категоризации, в котором остатки и/или элементы изображения разделяются на категории, а соответствующие остатки модифицируются или фильтруются на основе категоризации.
Как указано в данном документе, после того, как остатки вычислены (например, компараторами 110 и/или 119 на фиг. 1), остатки могут быть обработаны, чтобы определить порядок кодирования и передачи остатков. Как описано ранее, остатки вычисляются путем сравнения исходной формы сигнала изображения с восстановленной формой сигнала изображения. Например, в одном случае остатки для потока улучшения L-2 определяются путем вычитания выходного сигнала дискретизации с повышенной частотой из исходной формы сигнала изображения (например, входного видео, как показано в графических материалах). Можно сказать, что входной сигнал для дискретизации с повышенной частотой является восстановлением сигнала после моделирования декодирования. В другом случае остатки для потока улучшения L-1 определяются путем вычитания потока изображения, подаваемого на выход базовым декодером, из дискретизированной с пониженной частотой формы исходного сигнала изображения (например, выходного сигнала дискретизации с пониженной частотой).
Для обработки остатков, например, в выбранном режиме остатков, остатки могут быть разделены на категории. Например, остатки могут быть разделены на категории, чтобы выбрать режим остатков и/или выборочно применить предварительную обработку в конкретном режиме. Процесс категоризации остатков может выполняться, например, на основе определенных пространственных и/или временных характеристик входного изображения. Это показано на фиг. 1 как вход компонента 140 выбора режима остатков из входного видео 100. В других примерах входной сигнал может поступать из других сигналов в кодере, включая видео с пониженной частотой дискретизации и/или сами остатки.
В одном примере входное изображение обрабатывается для определения для каждого элемента (например, пикселя или области, содержащей несколько пикселей) и/или группы элементов (например, единицы кодирования, содержащей область пикселей 2x2 или 4x4, или мозаичного фрагмента, содержащего набор единиц кодирования), имеет ли этот элемент и/или группа элементов определенные пространственные и/или временные характеристики. Например, элемент измеряется относительно одного или большего количества пороговых значений, чтобы определить, как его классифицировать по соответствующим пространственным и/или временным характеристикам. Пространственные характеристики могут включать уровень пространственной активности между конкретными элементами или группами элементов (например, сколько изменений существует между соседними элементами) или уровень контраста между конкретными элементами и/или между группами элементов (например, насколько группа элемента отличается от одной или большего количества других групп элементов). В одном случае метрика контрастности может быть вычислена для кадра видео с одним или большим количеством разрешениями, и может быть использована в качестве основы для категоризации. Указанная метрика контрастности может быть определена на уровне каждого элемента изображения (например, соответствуя уровню каждого остаточного элемента) и/или на уровне группы (например, соответствуя мозаичным фрагментам, единицам кодирования или блокам остатков). Пространственные характеристики могут быть мерой изменения набора пространственных направлений (например, горизонтального и/или вертикального направлений для двумерного плоского изображения). Временные характеристики могут включать временную активность для конкретного элемента и/или группы элементов (например, насколько элемент и/или группа элементов различаются между совместно расположенными элементами и/или группой элементов в одном или большем количестве предыдущих и/или будущих кадров). Временные характеристики могут быть мерой изменения во временном направлении (например, по временному ряду). Характеристики могут быть определены для каждого элемента и/или группы элементов; это может выполняться для каждого пикселя и/или остаточного блока 2x2 или 4x4 и/или мозаичного фрагмента (например, группы остаточных блоков). В дополнительном варианте реализации изобретения может использоваться уровень текстуры или детализации (например, сколько деталей представляет элемент или группа элементов). Метрика текстуры, указывающая уровень текстуры или детализации, может быть определена аналогично метрике контрастности. Метрики, описанные в данном документе, могут быть нормализованы таким образом, чтобы они были представлены в пределах предварительно определенного диапазона, например от
- 11 045392 до 1, или от 0% до 100%, или от 0 до 255 (т.е. 8-битных целых чисел). Мозаичный фрагмент может содержать набор элементов изображения или остатков размером 16x16 (например, набор 8 на 8 единиц кодирования 2x2 или набор 4 на 4 единиц кодирования 4x4).
Эти пространственные и/или временные характеристики могут быть объединены и/или взвешены для определения комплексной меры группы элементов. В некоторых случаях комплексная мера или другие метрики, описанные в данном документе, могут быть определены до кодирования (например, на этапе начальной обработки видеофайла) и извлечены на этапе кодирования для применения обработки остатков. Аналогичным образом метрики могут вычисляться периодически, например для группы кадров или плоскостей. Кроме того, множество разных метрик могут храниться и использоваться для разных наборов остатков, например, разные метрики могут быть предварительно вычислены для каждой плоскости кадра и использованы в последующем сравнении для этой плоскости остатков.
Обратите внимание, что временные характеристики важны, например, потому что, если группа элементов статична, зрителям может быть легче заметить крошечные детали, и поэтому может быть важно сохранить остаточную информацию, например, приоритет некоторых статических остаточных элементов может быть выше, чем сравнительный набор переходных остаточных элементов. Также источники шума в исходной видеозаписи с более высоким разрешением (например, поток улучшения L-2) могут привести к множеству небольших, но переходных остаточных значений (например, нормально распределенные значения -2 или -1, или 1, или 2) - им может быть задан более низкий приоритет и/или они могут быть установлены равными 0 перед обработкой остатков в кодерах уровня улучшения.
Категоризация может связывать соответствующий вес с каждым элементом и/или группой элементов на основе пространственных и/или временных характеристик элемента и/или группы элементов. Вес может быть нормализованным значением от 0 до 1.
В одном режиме остатков может быть принято решение о том, следует ли кодировать и передавать конкретный набор остатков. Например, в одном режиме остатков определенные остатки (и/или остаточные блоки - такие как блоки 2x2 или 4x4, описанные в данном документе) могут выборочно пересылаться по конвейерам обработки улучшения L-2 или L-1 компонентами ранжирования и/или компонентами выбора. Другими словами, разные режимы остатков могут иметь разную обработку остатков в компонентах кодирования L-2 и L-1 на фиг. 1. Например, в одном режиме остатков некоторые остатки могут не пересылаться для дальнейшего кодирования L-2 или L-1, например, могут не преобразовываться, квантоваться и энтропийно кодироваться. В одном случае определенные остатки могут не пересылаться путем установки остаточного значения равным 0 и/или путем установки конкретного контрольного флажка, относящегося к остатку или группе, которая включает остаток. Флажки управления будут рассмотрены более подробно ниже.
В одном режиме остатков двоичный вес 0 или 1 может применяться к остаткам, например, с помощью компонентов, описанных выше. Это может соответствовать режиму, в котором выборочная обработка остатков включена. В этом режиме вес 0 может соответствовать игнорированию определенных остатков, например, не пересылке их для дальнейшей обработки в конвейере улучшения. В другом режиме остатков может не быть взвешивания (или вес может быть установлен равным 1 для всех остатков); это может соответствовать режиму, в котором выборочная обработка остатков выключена. В еще одном режиме остатков нормализованный вес от 0 до 1 может применяться к остатку или группе остатков. Это может указывать на важность или вес полезности для восстановления видеосигнала в декодере, например, 1 указывает, что остаток имеет нормальное использование, а значения ниже 1 уменьшают важность остатка. В других случаях нормализованный вес может находиться в другом диапазоне, например, в диапазоне от 0 до 2, при котором могут выделяться определенные остатки, имеющие вес больше 1.
В описанных выше режимах остатков остаток и/или группа остатков могут быть умножены на назначенный вес, причем вес может быть назначен после процесса категоризации, применяемого к набору соответствующих элементов и/или групп элементов. Например, в одном случае каждому элементу или группе элементов может быть назначен класс, представленный целочисленным значением, выбранным из предварительно определенного набора или диапазона целых чисел (например, 10 классов от 0 до 9). Тогда каждый класс может иметь соответствующее значение веса (например, 0 для класса 0, 0,1 для класса 1 или какое-либо другое нелинейное отображение). Взаимосвязь между классом и значением веса может быть определена путем анализа и/или экспериментирования, например, на основе измерений качества изображения в декодере и/или в кодере. Затем вес может использоваться для умножения соответствующего остатка и/или группы остатков, например остатка и/или группы остатков, которые соответствуют элементу и/или группе элементов. В одном случае это соответствие может быть пространственным, например, остаток вычисляется на основе конкретного значения входного элемента, и категоризация применяется к конкретному значению входного элемента, чтобы определить вес для остатка. Другими словами, категоризация может выполняться по элементам и/или группе элементов входного изображения, причем входное изображение может быть кадром видеосигнала, но затем веса, определенные из этой категоризации, используются для взвешивания совмещенных остатков и/или группы остатков, а не элементов и/или группы элементов. Таким образом, характеризация может выполняться как отдельный
- 12 045392 процесс от процесса кодирования, и, следовательно, ее можно вычислять параллельно с процессом кодирования остатков.
Чтобы идентифицировать соответствующие остатки для модификации, процесс может анализировать набор остатков и идентифицировать характеристики или закономерности. В альтернативном варианте реализации процесс может анализировать исходный входной сигнал, соответствующий этому набору остатков. Кроме того, процесс может прогнозировать влияние на восстановленное изображение этого набора остатков (или набора после модификации). Прогнозирование может включать восстановление изображения путем объединения остатков с сигналом более низкого уровня, анализ восстановленного сигнала и обработку остатков соответственно или итеративно.
Выше было описано, как определенные остатки не могут быть отправлены путем установки остаточного значения равным 0 и/или путем установки конкретного контрольного флажка, относящегося к остатку или группе, которая включает остаток. В последнем случае может использоваться набор флажков или двоичных идентификаторов, каждый из которых соответствует элементу или группе элементов остатков. Каждый остаток можно сравнить с набором флажков и предотвратить преобразование на основе флажков. Таким образом, обработка остатков может быть неразрушающей. В альтернативном варианте реализации остатки могут быть удалены на основе флажков. Набор флажков является дополнительным преимуществом, поскольку он может использоваться повторно для остатков или групп остатков без необходимости обрабатывать каждый набор или остаток независимо и может использоваться в качестве эталона. Например, каждый кадр может иметь двоичную битовую карту, которая действует как маска, чтобы указать, нужно ли обрабатывать и кодировать остаток. В этом случае могут кодироваться только остатки, которые имеют соответствующее значение маски, равное 1, а остатки, которые имеют соответствующее значение маски, равное 0, могут быть совместно установлены равными 0.
В режиме ранжирования и фильтрации набору остатков может быть назначен приоритет или ранг, который затем сравнивается с порогом, чтобы определить, какие остатки следует отменить или уничтожить. Пороговое значение может быть предварительно определено или может изменяться в соответствии с требуемым качеством изображения, скоростью передачи или вычислительной эффективностью. Например, приоритет или ранг могут быть значением в заданном диапазоне значений, например значениями с плавающей запятой от 0 до 1 или целыми значениями от 0 до 255. Верхний предел диапазона (например, 1 или 255) может указывать на наивысший ранг или приоритет. В этом случае порог может быть установлен как значение в пределах диапазона. При сравнении выбор остатков с соответствующими значениями ранга или приоритета ниже порогового значения может быть отменен (например, установлены равными 0).
Декодер 400, который выполняет процесс декодирования, соответствующий кодеру на фиг. 3, изображен на блок-схеме на фиг. 4. Процесс декодирования разделен на две половины, как показано пунктирной линией. Ниже пунктирной линии показан базовый уровень декодера 400, который может быть успешно реализован аппаратно. Над пунктирной линией изображен уровень улучшения, который может быть успешно реализован в программном обеспечении. Декодер 400 может содержать только процессы уровня улучшения или комбинацию процессов базового уровня и процессов уровня улучшения, если необходимо. Декодер 400 может быть успешно реализован в программном обеспечении, особенно на уровне улучшения, и может подходящим образом заменять предшествующую технологию декодирования, в частности, предшествующую технологию аппаратного обеспечения. Под предшествующей технологией подразумевается более старая технология, ранее разработанная и реализованная, которая уже присутствует на рынке, которую было бы неудобно и/или дорого заменять и которая все еще может служить цели декодирования сигналов. В других случаях базовый уровень может включать любой существующий и/или будущий инструмент либо технологию кодирования видео.
Топология декодера на общем уровне следующая. Декодер 400 содержит вход (не показан) для получения одного или большего количества входных сигналов, содержащих кодированный базовый поток, кодированный поток уровня 1 и кодированный поток уровня 2 вместе с дополнительными заголовками, содержащими дополнительную информацию декодирования. Декодер 400 содержит базовый декодер 420 на базовом уровне и блоки 400-1 и 400-2 обработки на уровне улучшения. Устройство 405U дискретизации с повышенной частотой также предусмотрено между блоками 400-1 и 400-2 обработки, чтобы предоставить блоку 400-2 обработки вариант выходного сигнала с повышенной частотой дискретизации посредством блока 400-1 обработки. Базовый декодер 420 может соответствовать базовому декодеру 210 на фиг. 2, блок 400-1 обработки может соответствовать первому декодеру 211 на фиг. 2, блок 400-2 обработки может соответствовать второму декодеру 214 на фиг. 2 и устройство 405U дискретизации с повышенной частотой может соответствовать устройству 213 дискретизации с повышенной частотой на фиг. 2.
Декодер 400 принимает один или большее количество входных сигналов и направляет три потока, сгенерированные кодером 300. Кодированный базовый поток направляется и декодируется базовым декодером 420, который соответствует базовому кодеку 420, используемому в кодере 300, и который осуществляет реверсирование процесса кодирования на базовом уровне. Кодированный поток уровня 1 обрабатывается блоком 400-1 декодера 400 для воссоздания первого набора остатков, созданного кодером
- 13 045392
300.
Блок 400-1 соответствует блоку 300-1 обработки в кодере 300 и на базовом уровне функционирует так, чтобы обратить или по существу обратить обработку блока 300-1. Выходной сигнал базового декодера 420 объединяется с первым набором остатков, полученных из кодированного потока уровня 1. Комбинированный сигнал подвергается дискретизации с повышенной частотой с помощью устройства 405U дискретизации с повышенной частотой. Кодированный поток уровня 2 обрабатывается блоком 400-2 для воссоздания дополнительных остатков, созданных кодером 300. Блок 400-2 соответствует блоку 300-2 обработки кодера 300 и на базовом уровне функционирует так, чтобы обратить или по существу обратить обработку блока 300-2. Сигнал с повышенной частотой дискретизации от устройства 405U дискретизации с повышенной частотой объединяется с дополнительными остатками, полученными из кодированного потока уровня 2, чтобы создать восстановление уровня 2 входного сигнала 30. Выходной сигнал блока 400-2 обработки можно рассматривать как декодированное видео, подобное декодированному видео 250 на фиг. 2.
Как отмечено выше, поток улучшения может содержать два потока, а именно кодированный поток уровня 1 (первый уровень улучшения) и кодированный поток уровня 2 (второй уровень улучшения). Кодированный поток уровня 1 обеспечивает набор данных коррекции, которые могут быть объединены с декодированным вариантом базового потока для генерации скорректированного изображения.
На фиг. 5 более подробно показан кодер 300, изображенный на фиг. 1. Кодированный базовый поток создается непосредственно базовым кодером 320Е и может быть квантован и энтропийно кодирован по мере необходимости. В некоторых случаях эти последние процессы могут выполняться как часть кодирования базовым кодером 320Е. Чтобы сгенерировать кодированный поток уровня 1, кодированный базовый поток декодируется в кодере 300 (т.е. операция декодирования применяется в блоке 320D базового декодирования к кодированному базовому потоку). Блок 320D базового декодирования показан как часть базового уровня кодера 300 и показан отдельно от соответствующего блока 320Е базового кодирования. Например, базовый декодер 320D может быть компонентом декодирования, который дополняет компонент кодирования в форме базового кодера 320Е базовым кодеком. В других примерах базовый блок 320D декодирования может вместо этого быть частью уровня улучшения и, в частности, может быть частью блока 300-1 обработки.
Возвращаясь к фиг. 5, определяется разность между декодированным базовым потоком, выводимым из блока 320D базового декодирования, и входным видео с пониженной частотой дискретизации (т.е. операция вычитания 310-S применяется к входному видео с пониженной частотой дискретизации и декодированному базовому потоку для создания первого набора остатков). В данном документе термин остатки используется так же, как и термин, известный в данной области техники; т.е. остатки представляют собой ошибку или различия между опорным сигналом или кадром и требуемым сигналом или кадром. В данном документе опорный сигнал или кадр - это декодированный базовый поток, а требуемый сигнал или кадр - это входное видео с пониженной частотой дискретизации. Таким образом, остатки, используемые на первом уровне улучшения, можно рассматривать как сигнал коррекции, поскольку они способны корректировать будущий декодированный базовый поток, чтобы сделать его или привести в близкое соответствие с входным видео с пониженной частотой дискретизации, которое использовалось в операции базового кодирования. Это полезно, поскольку может исправить фокусы или другие особенности базового кодека. К ним относятся, среди прочего, алгоритмы компенсации движения, применяемые базовым кодеком, квантование и энтропийное кодирование, применяемые базовым кодеком, и настройки блоков, применяемые базовым кодеком.
Компоненты блока 300-1 на фиг. 3 показаны более подробно на фиг. 5. В частности, первый набор остатков преобразуется, квантуется и энтропийно кодируется для создания кодированного потока уровня 1. На фиг. 5 операция преобразования 310-1 применяется к первому набору остатков; операция квантования 320-1 применяется к преобразованному набору остатков, чтобы сгенерировать набор квантованных остатков; и операция энтропийного кодирования 330-1 применяется к квантованному набору остатков, чтобы сгенерировать кодированный поток уровня 1 на первом уровне улучшения. Однако следует отметить, что в других примерах может выполняться только этап квантования 320-1 или только этап преобразования 310-1. Энтропийное кодирование может не использоваться или может необязательно использоваться в дополнение к одному или обоим из этапа преобразования 110-1 и этапа квантования 320-1. Операция энтропийного кодирования может быть любым подходящим типом энтропийного кодирования, например операцией кодирования Хаффмана или операцией кодирования длин серий (RLE), или комбинацией как операции кодирования Хаффмана, так и операции RLE. Операция обработки 350-2, 350-1 остатков может быть предусмотрена в некоторых вариантах реализации изобретения до операции преобразования 310-2, 310-1 или обеих. Операция 350 обработки остатков применяет предварительную обработку остатков, как описано в данном документе, например фильтрует остатки, принятые блоком, чтобы передать только подмножество принятых остатков на операцию 310 преобразования (или, другими словами, чтобы установить определенные остаточные значения равными нулю таким образом, что исходные значения не обрабатываются в последующих операциях конвейера).
Как отмечено выше, поток улучшения может содержать кодированный поток уровня 1 (первый
- 14 045392 уровень улучшения) и кодированный поток уровня 2 (второй уровень улучшения). Первый уровень улучшения может рассматриваться для обеспечения возможности скорректированного видео на базовом уровне, т.е., например, для исправления артефактов кодера и/или декодера. Второй уровень улучшения может рассматриваться как дополнительный уровень улучшения, который можно использовать для преобразования скорректированного видео в исходное входное видео или близкое к нему приближение (например, для добавления деталей или резкости). Например, второй уровень улучшения может добавлять мелкие детали, которые теряются во время дискретизации с пониженной частотой, и/или помогать исправлять ошибки, привнесенные одной или большим количеством из операции преобразования 310-1 и операции квантования 320-1.
Как показано на фиг. 3 и 5, для генерации кодированного потока уровня 2 создается дополнительный уровень информации улучшения путем создания и кодирования дополнительного набора остатков в блоке 300-2. Дополнительный набор остатков представляет собой разность между вариантом с повышенной частотой дискретизации (посредством устройства 305U дискретизации с повышенной частотой) скорректированного варианта декодированного базового потока (опорный сигнал или кадр) и входным сигналом 30 (требуемый сигнал или кадр).
Для достижения восстановления скорректированного варианта декодированного базового потока, который был бы сгенерирован в декодере 400, по меньшей мере некоторые из этапов обработки блока 300-1 обращаются, чтобы имитировать процессы декодера 200 и учесть по меньшей мере некоторые потери и фокусы процессов преобразования и квантования. С этой целью блок 300-1 содержит блок обратного квантования 320-1i и блок обратного преобразования 310-1i. Квантованный первый набор остатков обратно квантуется в блоке обратного квантования 320-1i и обратно преобразуется в блоке обратного преобразования 310-1i в кодере 100, чтобы регенерировать вариант первого набора остатков на стороне декодера.
Декодированный базовый поток от декодера 320D объединяется с этим улучшенным вариантом первого набора остатков на стороне декодера (т.е. операция суммирования 310-С выполняется для декодированного базового потока и варианта первого набора остатков на стороне декодера). Операция суммирования 310-С генерирует восстановление варианта входного видео с пониженной частотой дискретизации, который со всей вероятностью соответствует сгенерированному в декодере, т.е. восстановленное видео с базовым кодеком). Как проиллюстрировано на фиг. 3 и фиг. 5, восстановленное видео базового кодека затем подвергается дискретизации с повышенной частотой с использованием устройства 305U дискретизации с повышенной частотой.
Сигнал с повышенной частотой дискретизации (т.е. опорный сигнал или кадр) затем сравнивается с входным сигналом 30 (т.е. требуемым сигналом или кадром) для создания второго набора остатков (т.е. операция разности 300-S применяется к повторно воссозданному потоку с повышенной частотой дискретизации для генерации дополнительного набора остатков). Второй набор остатков затем обрабатывается в блоке 300-2, чтобы стать кодированным потоком уровня 2 (т.е. операция кодирования затем применяется к дополнительному или второму набору остатков, чтобы сгенерировать кодированный дополнительный поток или второй поток улучшения).
В частности, второй набор остатков преобразуется (т.е. операция преобразования 310-2 выполняется над дополнительным набором остатков, чтобы сгенерировать дополнительный преобразованный набор остатков). Преобразованные остатки затем квантуются и энтропийно кодируются способом, описанным выше в отношении первого набора остатков (т.е. операция квантования 320-2 применяется к преобразованному набору остатков, чтобы сгенерировать дополнительный набор квантованных остатков; и операция энтропийного кодирования 320-2 применяется к квантованному дополнительному набору остатков для генерации кодированного потока уровня 2, содержащего дополнительный уровень информации улучшения). Однако может выполняться только этап квантования 20-1 или только этап преобразования и квантования. Дополнительно может использоваться энтропийное кодирование. Предпочтительно операция энтропийного кодирования может быть операцией кодирования Хаффмана или операцией кодирования на основе длин серий (RLE), или и тем, и другим. Подобно блоку 300-1, операция обработки 350-2 остатков действует для предварительной обработки, т.е. фильтрации, остатков перед операциями кодирования этого блока.
Таким образом, как показано на фиг. 3 и 5 и описано выше, выходным сигналом процесса кодирования является базовый поток на базовом уровне и один или большее количество потоков улучшения на уровне улучшения, который предпочтительно содержит первый уровень улучшения и дополнительный уровень улучшения. Как описано со ссылкой на предшествующие примеры, операции на фиг. 5 могут применяться параллельно к единицам или блокам кодирования цветового компонента кадра ввиду отсутствия межблочных зависимостей. Кодирование каждого цветового компонента в наборе цветовых компонентов также может выполняться параллельно (например, так, чтобы операции на фиг. 5 дублировались в соответствии с (количеством кадров) * (количеством цветовых компонентов) * (количеством единиц кодирования на кадр)). Также следует отметить, что разные цветовые компоненты могут иметь разное количество единиц кодирования на кадр, например, компонент яркости (например, Y) может обрабатываться с более высоким разрешением, чем набор компонентов цветности (например, U или V), по- 15 045392 скольку человеческий глаз лучше обнаруживает изменения яркости, чем изменения цвета.
Кодированный базовый поток и один или большее количество потоков улучшения принимаются в декодере 400. На фиг. 6 более подробно показан декодер согласно фиг. 4.
Кодированный базовый поток декодируется в базовом декодере 420, чтобы осуществить базовое восстановление входного сигнала 30, полученного кодером 300. Это базовое восстановление может использоваться на практике для обеспечения видимого представления сигнала 30 с более низким уровнем качества. Однако основная цель данного базового сигнала восстановления состоит в том, чтобы обеспечить основу для более качественного представления входного сигнала 30. С этой целью декодированный базовый поток предоставляется в блок 400-1 обработки. Блок 400-1 обработки также принимает кодированный поток уровня 1 и обращает любое кодирование, квантование и преобразование, которые были применены кодером 300. Блок 400-1 включает процесс энтропийного декодирования 430-1, процесс обратного квантования 420-1 и процесс обратного преобразования 410-1. Необязательно только один или большее количество из этих этапов могут выполняться в зависимости от операций, выполняемых в соответствующем блоке 300-1 в кодере. Посредством выполнения этих соответствующих этапов декодированный поток уровня 1, содержащий первый набор остатков, становится доступным в декодере 400. Первый набор остатков объединяется с декодированным базовым потоком из базового декодера 420 (т.е. операция суммирования 410-С выполняется для декодированного базового потока и декодированного первого набора остатков, чтобы сгенерировать восстановление варианта с пониженной частотой дискретизации входного видео - т.е. восстановленное видео с базового кодека). Как проиллюстрировано на фиг. 4 и фиг. 6, восстановленное видео базового кодека затем подвергается дискретизации с повышенной частотой с использованием устройства 405U дискретизации с повышенной частотой.
Кроме того, и необязательно параллельно, кодированный поток уровня 2 обрабатывается в блоке 400-2 на фиг. 2 для создания декодированного дополнительного набора остатков. Подобно блоку 300-2 обработки, блок 400-2 обработки включает процесс энтропийного декодирования 430-2, процесс обратного квантования 420-2 и процесс обратного преобразования 410-2. Конечно же, эти операции будут соответствовать операциям, выполняемым в блоке 300-2 в кодере 300, и один или большее количество из этих этапов могут быть пропущены по мере необходимости. Блок 400-2 создает декодированный поток уровня 2, содержащий дополнительный набор остатков, и они суммируются в ходе операции 400-С с выводом из устройства 405U дискретизации с повышенной частотой, чтобы создать восстановление уровня 2 входного сигнала 30. Восстановление уровня 2 можно рассматривать как выходное декодированное видео, такое как 250 на фиг. 2. В некоторых примерах также может быть возможно получить и просмотреть восстановленное видео, которое передается в устройство 405U дискретизации с повышенной частотой - оно будет иметь первый уровень улучшения, но может иметь более низкое разрешение, чем восстановление уровня 2.
Таким образом, как проиллюстрировано и описано выше, выходом процесса декодирования является (необязательно) базовое восстановление и восстановление исходного сигнала на более высоком уровне. Этот пример особенно хорошо подходит для создания кодированного и декодированного видео с разными разрешениями кадров. Например, входной сигнал 30 может быть видеосигналом HD, содержащим кадры с разрешением 1920x1080. В некоторых случаях устройство отображения может использовать как базовое восстановление, так и восстановление уровня 2. Например, в случаях сетевого трафика поток уровня 2 может быть нарушен в большей степени, чем поток уровня 1 и базовые потоки (поскольку он может содержать до 4-кратного объема данных, когда дискретизация с пониженной частотой снижает размерность в каждом направлении в 2 раза). В этом случае, при появлении трафика устройство отображения может вернуться к отображению базового восстановления, если поток уровня 2 прерван (например, пока восстановление уровня 2 недоступно), а затем вернуться к отображению восстановления уровня 2, когда условия в сети улучшатся. Подобный подход может применяться, если устройство декодирования сталкивается с ограничениями ресурсов, например, телевизионная приставка, выполняющая обновление системы, может иметь обеспечивать подачу на выход базовым декодером 220 базового восстановления, но может не иметь возможности обработки для вычисления восстановления уровня 2.
Система кодирования также позволяет распространителям видео распространять видео на набор разнородных устройств; те пользователи, у кого есть только базовый декодер 220, просматривают базовое восстановление, тогда как те, у кого есть уровень улучшения, могут просматривать более качественное восстановление уровня 2. В сравнительных случаях для обслуживания обоих наборов устройств требовалось два полных видеопотока с разными разрешениями. Поскольку потоки улучшения уровня 2 и уровня 1 кодируют остаточные данные, потоки улучшения уровня 2 и уровня 1 могут кодироваться более эффективно, например, распределения остаточных данных обычно имеют большую часть своей массы около 0 (т.е. там, где нет разности) и обычно охватывают небольшой диапазон значений около 0. В частности, это может иметь место после квантования. Напротив, полные видеопотоки с разными разрешениями будут иметь разные распределения с ненулевым средним или медианным значением, что требует более высокой битовой скорости передачи данных для передачи в декодер.
Как видно из примеров на фиг. 4 и 6, режимы остатков могут применяться в кодере, и декодер может не требовать какой-либо дополнительной обработки остатков. Однако, когда обработка остатков
- 16 045392 применяется в кодере, потоки улучшения уровня 1 и/или уровня 2, которые принимаются в декодере, могут отличаться от сравнительного случая, в котором обработка остатков не применяется в кодере. Например, если применяется обработка остатков, например, согласно любому из примеров, описанных в данном документе, потоки улучшения уровня 1 и/или уровня 2 обычно будут содержать большее количество значений 0, которые могут быть более эффективно сжаты этапами энтропийного кодирования.
На фиг. 7 показан пример реализации процесса кодирования, описанного и проиллюстрированного выше. Как ясно видно, подробно раскрыты этапы кодирования и декодирования потока.
В целом, этапы включают этап режима фильтрации остатков, этап преобразования, этап квантования и этап энтропийного кодирования. Процесс кодирования определяет, выбран ли режим фильтрации остатков. Режим фильтрации остатков может содержать форму ранжирования остатков. На самом низком уровне ранжирование может быть двоичным, например, остатки ранжируются как 0 или 1, если остатки ранжируются как 0, они не могут быть выбраны для дальнейшей обработки; только остатки с рангом 1 могут быть переданы для дальнейшей обработки. В других случаях ранжирование может основываться на большем количестве уровней. Если выбран режим остатков, может выполняться этап ранжирования остатков (т.е. операция ранжирования остатков может выполняться на первом этапе остатков для генерации ранжированного набора остатков). Ранжированный набор остатков может быть отфильтрован так, чтобы не все остатки кодировались в первый поток улучшения (или поток корректировки). В некоторых случаях этапы ранжирования и фильтрации могут быть объединены в один этап, т.е. некоторые остаточные значения отфильтровываются, тогда как другие остаточные значения передаются для кодирования.
В примере на фиг. 7, если режим остатков применяется так, что остаточные значения обрабатываются перед кодированием в пределах одного или большего количества уровней улучшения, результат обработки остатков (например, модифицированный набор остатков) затем преобразуется, квантуется и энтропийно кодируется для создания кодированных потоков уровня 1 или 2. Если режим остатков не выбран, то остаточные значения могут быть пропущены через компонент обработки остатков для преобразования, квантования и энтропийного кодирования.
Как отмечалось выше, обычно предпочтительнее уничтожать остатки, чем преобразованные коэффициенты. Это связано с тем, что обработка остатков на раннем этапе, например, путем фильтрации остатков на основе ранга или другой категоризации, означает, что значения могут быть равными 0 для упрощения вычислений на более поздних, более дорогостоящих с точки зрения вычислений этапах. Более того, в некоторых случаях режим остатков может быть установлен на уровне блока или мозаичного фрагмента. В этом случае остаточная предварительная обработка (т.е. режим остатков) может быть выбрана для всех остаточных значений, соответствующих конкретной единице кодирования или конкретной группе единиц кодирования. Ввиду отсутствия межблочной зависимости не имеет значения, обрабатываются ли определенные остаточные значения предварительно, тогда как другие остаточные значения не обрабатываются предварительно. Возможность выбора режима остатков на уровне блока или мозаичного фрагмента повышает гибкость предлагаемой схемы кодирования.
Кроме того, предполагается, что в дополнение или вместо модификации остатков параметры квантования последующего этапа квантования могут быть модифицированы. В конкретном примере, в зависимости от порога, при котором не допускается преобразование остатков, мертвая зона квантователя может быть модифицирована. Мертвая зона - это область спектра, в которой значения не квантуются. Эта мертвая зона может соответствовать расстоянию от порога или может быть множителем (например, ширины шага). В дополнительном примере ширина шага квантователя может быть модифицирована на основе обработки.
Точно так же механизм обратной связи из операции квантования может влиять на операцию обработки остатков. Например, если коэффициент преобразования не будет квантован или квантован с нулевым значением, то остаток, на котором основан коэффициент преобразования, не нужно преобразовывать, и его выбор можно отменить.
В дополнительном примере может выполняться операция предварительного квантования, в которой первый этап квантования выполняется для остатков (например, в дополнение и перед операцией 320 квантования, показанной в графических материалах). Модификация остатков может включать предварительное квантование, или дальнейшая модификация может выполняться на (предварительно) квантованных остатках. Дополнительная операция квантования может выполняться после модификации остатков в блоке 320. В некоторых случаях предварительное квантование может также включать применение мертвой зоны, и мертвую зону можно настраивать на основе ширины шага квантования (например, как определено для данного остаточного элемента и/или группы остаточных элементов). Более подробная информация о предварительном квантовании будет представлена ниже в контексте фиг. 11.
На фиг. 7 показан блок 360-1 управления режимом остатков, который может использоваться для применения режима остатков на одном или большем количестве более поздних этапов в конвейере кодирования. В данном документе управление режимом остатков показано только в тракте L1, но оно также может быть сконфигурировано в тракте L2. Блок 360-1 управления режимом остатков предпочтительно располагается между блоком 320-1 квантования и блоком 330-1 энтропийного кодирования. В этом слу- 17 045392 чае остаточные значения могут быть классифицированы, ранжированы и/или им может быть присвоена оценка в блоке 350-1 выбора режима остатков, однако модифицирование остаточных значений может происходить позже, чем блок 350-1 выбора режима остатков. Хотя это и не показано в графических материалах, блок 360-1 управления режимом остатков может управлять одной или большим количеством из операции 310-1 преобразования и операции 320-1 квантования. В одном случае блок 350-1 выбора режима остатков может устанавливать флажки управления для остаточных элементов (например, как описано выше), и эти флажки управления могут использоваться блоком 360-1 управления режимом остатков для управления одной или большим количеством из операции 310-1 преобразования и операции 320-1 квантования или дополнительной операции, следующей за операцией 320-1 квантования. В одном случае все остаточные значения могут быть обработаны операцией 310-1 преобразования и операцией 320-1 квантования, но отфильтрованы, взвешены и/или сделаны равными нулю с помощью блока 360-1 управления режимом остатков. В другом случае операция 320-1 квантования может быть сконфигурирована для применения более грубого уровня квантования на основе ранга или приоритета остатка (включая двоичные ранги и приоритеты), так что операция 320-1 квантования эффективно приравнивает большую долю остаточных значений к нулю по сравнению со случаем, в котором не активирован режим остатков.
Блок 360-1 управления режимом остатков дополнительно также обеспечивает некоторую степень обратной связи и анализирует остатки после эффекта обработки для определения того, оказывает ли обработка соответствующий эффект или должна ли она быть скорректирована.
На фиг. 8 показан пример 800 применяемого режима остатков. Пример 800 относится к примеру, в котором применяется классификация (т.е. категоризация) и взвешивание. Концепции, описанные со ссылкой на настоящий пример, также могут частично применяться к другим режимам остатков. Этот пример относится к потоку L-2, но аналогичный набор компонентов может быть предоставлен для потока L-1. Пример описывается со ссылкой на блок кодирования 2x2, но могут использоваться другие блоки кодирования и/или группы пикселей. Набор элементов 801 входного изображения (показанный как значения пикселей iij - например, это может быть 16-битное или 8-битное целое число, представляющее конкретный компонент цвета, например один из YUV или RGB, где i указывает строку изображения, a j указывает столбец изображения) классифицируются с помощью процесса 802 классификации для создания набора указателей 803 классов (например, в диапазоне целых чисел от 0 до 4, представляющих 5 классов). Класс может указывать уровень контраста и/или текстуры. В других примерах класс может содержать диапазон для метрики, такой как метрика контрастности и/или текстуры для группы пикселей или остатков.
На фиг. 8 указатели 803 классов затем используются компонентом 804 отображения весов для извлечения набора весов 805, связанных с указателями 803 классов. В этом простом примере веса представляют собой набор значений от 0 до 1. Каждый класс может иметь связанный вес, который может быть получен из справочной таблицы. В других случаях каждый вес может быть функцией значения класса или метрики (например, веса на фиг. 8 равны 1/10 значения класса, но взаимосвязь между значением класса и весом может быть любой взаимосвязью, установленной в справочной таблице).
Параллельно на фиг. 8 набор восстановленных элементов 806 с повышенной частотой дискретизации (показанных как элементы uij) вычитаются компонентом 807 вычитания из элементов 801 входного изображения для создания начального набора остатков 808 (показанных как элементы rij). Как показано в графических материалах, каждая единица кодирования или блок остаточных значений могут быть связаны с соответствующей единицей кодирования или блоком элементов изображения и/или восстановленных элементов изображения с конкретным разрешением (для остатков уровня 1 может применяться аналогичный процесс, но элементы изображения могут соответствовать пикселям с пониженной частотой дискретизации). Остатки 808 и набор весов 805 затем вводятся в компонент 809 умножения весов, который умножает остатки 808 на набор весов 805 для выходного сигнала набора модифицированных остатков 810 (показанных как r'ij). Как можно видеть, вес 0 может действовать для приравнивания подмножества остатков к 0 (см. 812). Таким образом, в примере на фиг. 8 исходное остаточное значение r10 не передается в дальнейшую обработку, а вместо этого приравнивается к 0. Остатки, для которых применен ненулевой вес (например, 811), передаются для дальнейшей обработки, но они были модифицированы. В простом случае с двоичными весами (например, двумя классами) вес, равный 1, может указывать на то, что остаточное значение должно быть обработано без модификации. Ненулевые веса могут модифицировать остатки способом, который модифицирует способ их кодирования. Например, классификация в блоке 802 может содержать классификацию изображения, посредством которой остатки модифицируются на основе классификации изображения конкретных пикселей. В другом случае классификация в блоке 802 может содержать присвоение значений 801 изображения конкретной группе на основе одного или большего количества из яркости и контрастности. В других примерах классификация в блоке 802 может выбирать один класс и вес для единицы кодирования из четырех элементов.
В некоторых случаях определение характеристик может выполняться в месте, удаленном от кодера, и сообщаться кодеру. Например, предварительно записанный фильм или телешоу можно обработать один раз (например, путем применения классификации 802 и отображения 804 весов) для определения
- 18 045392 набора 805 весов для набора остатков или группы остатков. Эти веса могут быть переданы по сети кодеру, например, они могут содержать остаточные маски, описанные со ссылкой на фиг. 9А-9С, как будет описано более подробно ниже.
В одном случае вместо или вместе со взвешиванием остатков остатки можно сравнивать с одним или большим количеством пороговых значений, полученных из процесса категоризации. Например, процесс категоризации может определять набор классов, которые имеют связанный набор весов и пороговых значений или просто связанный набор пороговых значений. В этом случае остатки сравниваются с определенными пороговыми значениями, а остатки, которые падают ниже определенного одного или большего количества пороговых значений, отбрасываются и не кодируются. Например, дополнительная обработка пороговых значений может применяться к модифицированным остаткам из фиг. 8 и/или этап 804 преобразования весовых коэффициентов и этап 809 умножения весов могут быть заменены этапами преобразования пороговых значений и этапами применения пороговых значений. В общем, в обоих случаях для этого примера остатки модифицируются для дальнейшей обработки на основе процесса категоризации, где процесс категоризации может применяться к соответствующим элементам изображения.
Обратите внимание, что, как показано на фиг. 8, для одной конкретной реализации этап локальной классификации может быть необязательным (например, как показано пунктирной линией). В этом случае одно или большее количество указателей 803 класса и набор 805 весов могут быть получены локальным процессом (например, из удаленного местоположения и/или из сохраненного файла).
Вышеописанные методы обработки режима остатков могут применяться в кодере, но не применяться в декодере. Таким образом, это представляет собой форму асимметричного кодирования, которая может учитывать увеличенные ресурсы в кодере для улучшения связи. Например, остатки могут быть взвешены для уменьшения размера данных, передаваемых между кодером и декодером, что позволяет повысить качество для ограниченных битовых скоростей (например, когда отбрасываемые остатки имеют пониженную обнаруживаемость в декодере). Взвешивание остатков может оказывать комплексное влияние на преобразование и квантование. Следовательно, остаточные веса могут применяться для управления операциями преобразования и квантования, например, для оптимизации битового потока с учетом конкретной доступной полосы пропускания.
В некоторых примерах кодер (или процесс кодирования) может связываться с одним или большим количеством удаленных устройств. На фиг. 9А показан кодер 900, обменивающийся данными по сети 910 (представленной облаком в графических материалах). Кодер может содержать реализацию любого из кодеров с предыдущих графических материалов, например кодер низкой сложности с фиг. 1 или кодер 300 с любой из фиг. 3, 5 или 7. В одном случае кодер 900 может принимать данные конфигурации по сети 910 и/или передавать данные конфигурации по сети 910. В примере на фиг. 9А кодер принимает один или большее количество параметров кодера и остаточных масок. Параметры кодера могут содержать значения для одного или большего количества параметров, которые управляют кодером 900. В одном случае параметры кодера могут включать параметры для одного или большего количества из базового кодера, компонентов обработки для потока уровня 1 и компонентов обработки для потока уровня 2. Параметры кодера могут использоваться для настройки одного или большего количества из разрешения потока, квантования, обработки последовательности, битовой скорости и кодека для каждого потока. Остаточные маски могут содержать весовые коэффициенты, например, от 0 до 1, для применения к наборам остатков, например, для применения к группам 2x2 или 4x4 (т.е. блокам) остатков. Остаточные маски могут быть аналогичны одному из указателей 803 класса и набору 805 весов на фиг. 8. Остаточные маски могут применяться на уровне остатков или группы остатков (например, единицы или блока кодирования). Остаточная маска может быть предоставлена как поверхность для каждого кадра видео (при этом может быть несколько поверхностей для разных цветовых компонентов). Если маска применяется на уровне группы, любая принимаемая поверхность может иметь пониженное разрешение (например, для блока кодирования 2x2 маска может содержать видео с половинным разрешением, содержащее значения остаточных весов). Остаточные маски могут указывать приоритет для доставки блоков в декодер и/или для кодирования. В другом случае остаточные маски могут содержать взвешивание, управляющее обработкой блоков, например, некоторые блоки могут визуально улучшаться или взвешиваться. Взвешивание может быть установлено на основе класса (например, метки или числового значения), применяемого к одному или большему количеству блоков остатков. В некоторых случаях остаточные маски могут быть двоичными масками (например, двоичными битовыми картами), указывающими, следует ли кодировать остаточные значения.
В некоторых случаях кодер может быть адаптирован для выполнения кодирования с множеством битовых скоростей. В этом случае параметры кодера могут быть предоставлены для каждой из множества битовых скоростей. В некоторых случаях данные конфигурации, которые принимаются из сети, могут быть предоставлены в виде одного или большего количества глобальных данных конфигурации, данных для каждого кадра и данных для каждого блока. В примерах остаточные маски и временная сигнализация могут предоставляться для каждого кадра. Например, множество битовых скоростей может быть установлено на основе доступной пропускной способности канала связи, например, измеренной частотной
- 19 045392 полосы и/или требуемого использования, например, использования 2 Мбит/с канала нисходящей линии связи 10 Мбит/с.
Данные конфигурации, передаваемые от кодера 900, могут содержать один или большее количество из следующих: тип базового кодека, набор требуемых битовых скоростей и информация о последовательности. Тип базового кодека может указывать тип базового кодера, который используется для текущего набора обработки. В некоторых случаях могут быть доступны разные базовые кодеры. В одном случае базовый кодер может быть выбран на основе принятого параметра типа базового кодека; в другом случае базовый тип кодека может быть выбран на основе локальной обработки в кодере и передан по сети. Набор требуемых битовых скоростей может указывать одну или большее количество битовых скоростей, которые должны использоваться для кодирования одного или большего количества из базового потока и двух потоков улучшения. Различные потоки могут использовать разные (или соответствующие) битовые скорости передачи данных. Потоки улучшения могут использовать дополнительную частотную полосу, если она доступна; например, если частотная полоса недоступна, то частотная полоса может использоваться кодированными базовыми потоками и потоками уровня 1 для обеспечения первого уровня качества при заданной битовой скорости; кодированный поток уровня 2 может затем использовать вторую битовую скорость для обеспечения дальнейших улучшений. Этот подход может также применяться по-разному к базовому потоку и потоку уровня 2 вместо базового потока и потока уровня 1. Обработка остатков, описанная в данном документе, может использоваться вместе с параметрами битовой скорости для управления битовой скоростью одного или большего количества потоков улучшения.
В одном случае параметры кодера, принятые по сети, могут указывать один или большее количество режимов остатков, которые должны применяться кодером. Опять же, режим остатков может быть установлен на уровне кадра, мозаичного фрагмента и/или блока или единицы кодирования. Параметры кодера могут указывать режимы для каждого потока отдельно или указывать общий режим для обоих потоков улучшения. Параметры режима остатков могут быть приняты описанными в данном документе компонентами выбора режима остатков. В некоторых случаях компоненты выбора режима остатков могут быть опущены, и параметры режима остатков могут приниматься другими компонентами кодера напрямую, например, компоненты примеров в данном документе могут принимать параметры режима остатков из облачного интерфейса кодера. В некоторых случаях каждый режим остатков может указываться целочисленным значением. Режим остатков может указывать, какая форма (предварительной) обработки остатков должна применяться.
В одном случае кодер 900 может иметь разные параметры конфигурации, относящиеся к удаленной или облачной конфигурации. В одном режиме, который может быть режимом по умолчанию, кодер 900 может быть выполнен с возможностью выполнения удаленного программного вызова по сети для извлечения параметров начальной конфигурации для выполнения кодирования, как описано в данном документе. В другом режиме, который может быть настраиваемым режимом, кодер 900 может извлекать значения локальных параметров, которые указывают конкретную конфигурацию пользователя, например, конкретный набор инструментов, которые используются кодером 900, и/или конфигурации для этих инструментов. В одном случае кодер 900 может иметь разные режимы, которые указывают, какие параметры должны быть получены с удаленного устройства, а какие параметры должны быть получены из локального хранилища.
На фиг. 9В показано, что кодер 900 может отправлять и/или принимать данные конфигурации на и/или от удаленного сервера 920 управления по сети 910. Сервер 920 управления может содержать серверное вычислительное устройство, реализующее прикладной программный интерфейс для получения или отправки данных. Например, сервер управления 920 может реализовать интерфейс RESTful, посредством которого данные могут передаваться с использованием (безопасных) запросов и ответов протокола передачи гипертекста (HTTP). В другом случае побочный канал, реализованный с использованием конкретного протокола связи (например, в транспортном или прикладном слое), может использоваться для связи между сервером 920 управления и кодером 900 по сети 910. Сеть 910 может содержать одну или большее количество проводных и/или беспроводных сетей, включая локальные и глобальные сети. В одном случае сеть 910 может содержать Интернет.
На фиг. 9С показано, как кодер 900 может содержать интерфейс 930 конфигурации, выполненный с возможностью связи по сети 910, например, с удаленным сервером 920 управления. Интерфейс 930 конфигурации может содержать аппаратный интерфейс, например Ethernet и/или беспроводной адаптер, и/или программное обеспечение для обеспечения стека связи для связи по одной или большему количеству сетей связи. На фиг. 9С параметры конфигурации и настройки 932, которые используются и/или сохраняются кодером 900, передаются по сети с использованием интерфейса 930 конфигурации. Параметры конфигурации кодера, например, которые могут быть сохранены в одной или большем количестве запоминающих устройств или регистров, принимаются 934 от интерфейса конфигурации. В одном случае параметры конфигурации кодера могут управлять одним или большим количеством из: дискретизации с пониженной частотой, базового кодера и компонентов базового декодера в кодере, например, как показано в графических материалах. Интерфейс конфигурации также передает данные 936 управления L1 и данные 938 управления L-2 каждому из компонентов управления потоками L-1 и L-2. Эти компонен- 20 045392 ты могут настраивать использование инструмента для каждого потока улучшений. В одном случае компоненты управления потоком L-1 и L-2 управляют одним или большим количеством из компонентов выбора режима остатков, преобразования, квантования, управления режимом остатков и энтропийного кодирования (например, как показано в графических материалах и описано в данном документе).
Использование описанной в данном документе облачной конфигурации может обеспечить преимущества реализации. Например, кодером 900 можно управлять удаленно, например, на основе систем управления сетью и измерений. Кодер 900 также может быть модернизирован для предоставления новых функциональных возможностей путем обновления встроенного программного обеспечения (прошивки), которое обеспечивает улучшенную обработку, с дополнительными данными, например, на основе измерений или предварительной обработки, предоставляемых одним или большим количеством удаленных источников данных или серверов управления. Это обеспечивает гибкий способ обновления устаревших аппаратных устройств и управления ими.
В некоторых примерах остатки могут рассматриваться как ошибки или различия на определенном уровне качества или разрешения. В описанных примерах есть два уровня качества или разрешения и, следовательно, два набора остатков (L-1 и L-2). Каждый описанный в данном документе набор остатков моделирует различную форму ошибки или различия. Остатки L-1, например, обычно корректируют характеристики базового кодера, например корректируют артефакты, которые вводятся базовым кодером как часть процесса кодирования. Напротив, остатки L-2, например, обычно корректируют сложные эффекты, вносимые сдвигом уровней качества и различий, привносимых коррекцией L-1 (например, артефакты, генерируемые в более широком пространственном масштабе, например, области 4 или 16 пикселей конвейером кодирования L-1). Это означает неочевидность того, что операции, выполняемые с одним набором остатков, обязательно обеспечат такой же эффект для другого набора остатков, например, каждый набор остатков может иметь разные статистические схемы и наборы корреляций.
В описанных в данном документе примерах остатки кодируются конвейером кодирования. Это может включать операции преобразования, квантования и энтропийного кодирования. Он также может включать остаточное ранжирование, взвешивание и фильтрацию. Эти конвейеры показаны на фиг. 1, 3A и 3B. Затем остатки передаются в декодер, например, как потоки улучшения L-1 и L-2, которые могут быть объединены с базовым потоком как гибридный поток (или переданы отдельно). В одном случае битовая скорость передачи данных устанавливается для гибридного потока данных, который содержит базовой поток и оба потока улучшений, а затем различные адаптивные битовые скорости передачи данных применяются к отдельным потокам на основе данных, обрабатываемых для соответствия установленной битовой скорости передачи данных (например, высококачественное видео, которое воспринимается как видео с низким уровнем артефактов, может быть создано путем адаптивного присвоения битовой скорости различным отдельным потокам, даже на покадровом уровне, так что ограниченные данные могут использоваться наиболее сильно влияющими на восприятие отдельными потоками, которые могут изменяться по мере изменения данных изображения).
Наборы остатков, как описано в данном документе, можно рассматривать как разреженные данные, например, во многих случаях нет разности для данного пикселя или области, и результирующее остаточное значение равно нулю. При рассмотрении распределения остатков большая часть вероятностной массы приходится на небольшие остаточные значения, расположенные около нуля - например, для некоторых видео значения -2, -1, 0, 1, 2 и т.п. встречаются наиболее часто. В некоторых случаях распределение остаточных значений симметрично или почти симметрично относительно 0. В некоторых тестовых видео было обнаружено, что распределение остаточных значений принимает форму, аналогичную логарифмическому или экспоненциальному распределению (например, симметрично или почти симметрично) относительно 0. Точное распределение остаточных значений может зависеть от содержимого входного видеопотока.
Остатки могут обрабатываться как двумерное изображение сами по себе, например, дельтаизображение различий. Таким образом, можно увидеть, что разреженность данных связана с такими элементами, как точки, маленькие линии, края, углы и т.п., которые видны на остаточных изображениях. Было обнаружено, что эти элементы обычно не полностью коррелированы (например, в пространстве и/или во времени). Они имеют характеристики, которые отличаются от характеристик данных изображения, из которых они получены (например, характеристики пикселей исходного видеосигнала).
Поскольку характеристики остатков отличаются от характеристик данных изображения, из которых они получены, обычно невозможно применить стандартные подходы к кодированию, например, такие, которые используются в традиционных стандартах кодирования и декодирования группы экспертов по движущимся изображениям (MPEG). Например, во многих сравнительных схемах используются большие преобразования (например, преобразования больших областей пикселей в нормальном видеокадре). Ввиду характеристик остатков, например, как описано выше, было бы очень неэффективно использовать эти сравнительные большие преобразования на остаточных изображениях. Например, было бы очень сложно кодировать маленькую точку в остаточном изображении, используя большой блок, предназначенный для области нормального изображения.
В некоторых описанных в данном документе примерах эти проблемы решаются путем использова- 21 045392 ния небольших и простых ядер преобразования (например, ядра 2x2 или 4x4 -направленная декомпозиция и направленная декомпозиция в квадрате - как представлено в данном документе). Описанное в данном документе преобразование может применяться с использованием матрицы Адамара (например, матрицы 4x4 для сглаженного блока кодирования 2x2 или матрицы 16x16 для сглаженного блока кодирования 4x4). Это соответствует другому направлению, отличному от сравнительных подходов к кодированию видео. Применение таких новых подходов к блокам остатков повышает эффективность сжатия. Например, некоторые преобразования генерируют некоррелированные коэффициенты (например, в пространстве), которые могут быть эффективно сжаты. Хотя корреляции между коэффициентами могут использоваться, например, для линий в остаточных изображениях, они могут привести к сложности кодирования, которую трудно реализовать на устаревших устройствах и устройствах с низким уровнем ресурсов, и часто возникают другие сложные артефакты, которые необходимо исправлять. Предварительная обработка остатков путем установки некоторых остаточных значений равными 0 (т.е. неотправки их на обработку) может обеспечить управляемый и гибкий способ управления битовыми скоростями и частотными полосами потоков, а также использованием ресурсов. Например, агрессивные настройки режима остатков могут быть активированы для отмены выбора большего подмножества остатков во время высокой вычислительной нагрузки и/или ограниченной частотной полосы. Предварительная обработка остатков может предлагать дополнительный путь управления для управления параметрами квантования в конвейерах кодирования.
Некоторые описанные в данном документе примеры также рассматривают, например, временные характеристики остатков, а также пространственные характеристики. Например, в остаточных изображениях детали, такие как края и точки, которые могут наблюдаться в остаточных изображениях, показывают небольшую временную корреляцию. Это связано с тем, что края в остаточных изображениях часто не перемещаются и не поворачиваются, как края, с точки зрения восприятия в обычном видеопотоке. Например, в остаточных изображениях края могут фактически изменять форму с течением времени, например, поворот головы может быть зафиксирован в нескольких краях остаточного изображения, но может не перемещаться стандартным образом (поскольку край отражает сложные различия, зависящие от таких факторов, как освещение, масштабные коэффициенты, коэффициенты кодирования и т.п.). Эти временные аспекты остаточных изображений, например остаточное видео, содержащее последовательные остаточные кадры или изображения, обычно отличаются от временных аспектов обычных изображений, например обычных видеокадров (например, в плоскостях Y, U или V). Следовательно, не очевидно, как применять обычные подходы кодирования к остаточным изображениям; действительно, было обнаружено, что подходы компенсации движения из сравнительных схем и стандартов кодирования видео не могут кодировать остаточные данные (например, полезным способом). Однако, используя эти временные характеристики в качестве основы для ранжирования остатков и фильтрации, можно отбросить остаточную информацию, которая мало влияет на восприятие декодированного видеосигнала. Например, выбор переходных остатков может быть отменен, даже если они находятся выше нормальной мертвой зоны квантования, на этапе предварительной обработки. Классификация и/или оценка, основанная на одном или большем количестве параметров яркости и контрастности, также может обеспечить другой способ уменьшения энергии остаточного сигнала при минимальном влиянии на качество восприятия (поскольку человеческое восприятие смещено, так что конкретные образцы яркости и контрастности меньше заметны). Например, чувствительность к различиям в контрасте может зависеть от среднего уровня контрастности, что фактически означает, что различия в контрасте заданной величины при низких-средних контрастах менее заметны, чем такие же различия в контрасте при более высоком среднем уровне контраста. В этом случае, если блок кодирования классифицируется как имеющий низкийсредний контраст, то выбор остатков может быть отменен (или остатки могут быть сильнее взвешены с понижением), поскольку они будут менее различимы по сравнению с блоками среднего медианногосреднего контраста. Подобные эффекты воспринимаются для разных пространственных частот (например, текстуры), при этом одни текстуры более заметны, чем другие. Например, высокие пространственные частоты в малом масштабе могут быть неразрешимыми, и поэтому остаткам, которые указаны как относящиеся к ним (например, посредством явной классификации или посредством репрезентативной оценки метрики), может быть назначен более низкий приоритет или ранг.
Кроме того, многие сравнительные подходы к кодированию видео пытаются обеспечить временное прогнозирование и компенсацию движения по умолчанию для обычных видеоданных. Эти встроенные подходы могут не только потерпеть неудачу при применении к последовательным остаточным изображениям, они могут занять ненужные ресурсы обработки (например, использование этих ресурсов может фактически нарушать кодирование видео). Они также может генерировать ненужные биты, которые занимают назначенную битовую скорость. Из традиционных подходов не очевидно, как решать эти проблемы.
Объединяя некоторые из описанных в данном документе принципов в конкретный пример варианта использования, кодер может сначала проанализировать входное видео, чтобы идентифицировать определенные пространственные и/или временные характеристики сигнала. Из этих характеристик кодер может
- 22 045392 создать взвешенную остаточную маску. Скажем, например, что входной сигнал является новостной трансляцией, в которой большая часть видео представляет собой портрет, расположенный по существу в центре кадра. Таким образом, можно определить, что фон видеосигнала существенно не изменяется во времени и что зритель хочет видеть детали выражения лица в центре кадра. Соответственно, маска остатков будет подчеркивать, что наиболее важные остатки, подлежащие обработке, находятся в этой области экрана. Затем кодер начнет кодировать входное видео. На этапе обработки остатков перед преобразованием остатков в преобразованные коэффициенты остатки каждого кадра сравниваются с остаточной взвешенной маской, и остатки взвешиваются. В соответствии с предварительно определенным порогом, установленным кодером, выбор менее важных из остатков (согласно взвешенной маске) отменяется, и они не преобразуются. Таким образом, менее важные из маски остатков не распространяются по конвейеру. Таким образом, в этом примере обрабатываются только самые важные остатки изображения, чтобы уменьшить вычислительные ресурсы и уменьшить общий размер данных.
В аналогичном примере предположим, что входное видео является спортивной передачей. В этом примере кодер может анализировать входное видео и подготовить набор остаточных масок для каждого кадра видео. Например, остаточные маски могут отдавать приоритет области изображения, в которой требуются детали, такие как быстро движущееся действие, а не фон спортивного поля. В данном документе каждый кадр может сравниваться с конкретной взвешенной маской остатков, причем остатки взвешиваются в соответствии со значением от 0 до 1, а затем фильтруются и их выбор отменяется в соответствии с пороговым значением.
Теперь предположим, что вместо кодера, выполняющего анализ входного видео, центральный сервер предлагает остаточную взвешенную маску в соответствии с типом входного видео. Центральный сервер может предоставить набор остаточных взвешенных масок, охватывающих, например, спорт, фильмы, новости и т.п. Когда кодер обрабатывает остаток, кодер может использовать набор остаточных взвешенных масок в соответствии с типом обрабатываемого входного сигнала.
В последнем примере центральный сервер может предоставить набор сопутствующих остаточных взвешенных масок на основе централизованного анализа входного сигнала, так что кодер может быть упрощен, а анализ выполняется на мощном в вычислительном отношении центральном сервере, и кодер может быть стандартизирован. Т.е. кодер может быть глупым и может использовать предоставленный набор остаточных масок при обработке каждого из остатков в соответствии с масками, предложенными центральным сервером, который выполнил интенсивный с вычислительной точки зрения анализ.
Для полноты на фиг. 10 показан общий принцип описанной в данном документе концепции в виде блок-схемы. Способ 1000 включает: получение входного сигнала (этап 1001); генерацию одного или большего количества наборов остатков (этап 1002); модификацию одного или большего количества наборов остатков (этап 1003): и: кодирование одного или большего количества наборов остатков (этап 1004). Сигнал может содержать видеосигнал, а входной сигнал на этапе 1001 может содержать кадр видео, при этом способ повторяется для множества кадров. Способ может быть адаптирован для реализации обработки любого из описанных в данном документе кодеров. Способ может дополнительно включать отправку одного или большего количества из базового кодированного потока, кодированного потока первого уровня (L-1) и кодированного потока второго уровня (L-2).
Также могут быть предоставлены соответствующие способы декодирования. В одном примере способ декодирования множества кодированных потоков в восстановленное выходное видео может включать: получение первого базового кодированного потока; декодирование первого базового кодированного потока согласно первому кодеку для генерации первого выходного видео; получение одного или большего количества дополнительных кодированных потоков; декодирование одного или большего количества дополнительных кодированных потоков для генерации набора остатков; и объединение набора остатков с первым видео для генерации декодированного видео. Дальнейшие изменения могут быть выполнены, как описано.
В способе 1000, показанном на фиг. 10, этап модификации одного или большего количества наборов остатков может включать: ранжирование набора остатков на основе предварительного анализа набора остатков; и выбор подмножества остатков для преобразования и кодирования. В одном примере способ 1000 включает анализ набора остатков и, на основе анализа, выполнение следующих этапов или их отсутствие: ранжирование набора остатков; и выбор подмножества остатков для преобразования и кодирования. В одном примере способ 1000 включает анализ набора остатков, ранжирование набора остатков и выбор подмножества остатков для преобразования и кодирования, так что этапы ранжирования и/или выбора выполняются по-разному на основе анализа. В этих примерах этап применения преобразования как часть этапа 1004 кодирования выполняется для выбранного подмножества остатков. Эти этапы могут выполняться для одного или большего количества наборов остатков уровня 1 и уровня 2, как описано в данном документе.
В некоторых случаях этап 1003 способа 1000 включает: получение набора остаточных весов; и применение набора остаточных весов к набору остатков для генерации модифицированных остатков. Например, это может быть применено в соответствии с примером на фиг. 8 или как вариант этого примера. В одном случае пример может быть адаптирован так, чтобы примерять порог к модифицированным
- 23 045392 остаткам с использованием набора пороговых значений. В некоторых примерах один или большее количество из набора остаточных весов и набора пороговых значений определяются на основе классификации входного видео. В некоторых примерах набор остаточных весов содержит остаточную маску, полученную из удаленного местоположения. В некоторых примерах один или большее количество из набора остаточных весов и набора пороговых значений применяются к группам остатков. Остаточная маска может быть двоичной маской в базовом случае, при этом остатки могут быть ранжированы как подлежащие обработке или отбрасываемые.
Выше было описано, как можно включить этап предварительного квантования для модификации набора остатков с целью повышения эффективности конвейера. Таким образом, было описано, что процесс может определять набор метрик восприятия, соответствующих набору остатков; выборочно предварительно квантовать набор остатков на основе набора метрик восприятия; и преобразовать и квантовать один или большее количество наборов модифицированных остатков для генерации одного или большего количества соответствующих кодированных потоков.
Фиг. 11 иллюстрирует схему того, как может быть реализовано такое предварительное квантование. На фиг. 11 показана ось 1110, представляющая значения метрики восприятия. Процесс сравнивает метрику восприятия для одного или большего количества остатков с набором диапазонов, обозначенных осью 1110. Метрика восприятия в одном случае может быть определена для единицы кодирования 2x2 или 4x4 либо для мозаичного фрагмента 16x16. Метрика восприятия может быть определена на основе по меньшей мере яркостных элементов изображения (например, Y). Метрика восприятия может быть определена для элементов изображения, которые соответствуют заданному набору остатков (например, когда элементы изображения и остатки относятся к одним и тем же пространственным индексам в матрице изображения). Метрика восприятия может быть основана на одном или большем количестве из текстуры и контраста, как описано выше. Концептуально, если метрика восприятия, соответствующая конкретному остатку, лежит вдоль визуализированной оси 1110, это указывает, какое действие следует предпринять для этого остатка. Ось 1110 на фиг. 11 подразумевает, что метрика высокого восприятия является отрицательной (например, используется для фильтрации остатков), а метрика низкого восприятия указывает на высокий приоритет (например, используется для передачи остатков для обработки), но, конечно, это может быть инвертировано. Визуально показано, что важные остатки имеют соответствующую метрику восприятия слева от оси, а менее важные остатки имеют соответствующую метрику восприятия справа от оси.
В ответ на попадание метрики восприятия в первый диапазон 1118 один или большее количество остатков не кодируются. Т.е. остатки с метриками в первом диапазоне 1112 уничтожаются или, в альтернативном варианте реализации изобретения, устанавливаются или квантуются как значение 0. По идее, все остатки после маркера 1124 уничтожаются.
В ответ на попадание метрики восприятия во второй диапазон 1116 один или большее количество остатков сравниваются с мертвой зоной предварительного квантования, при этом один или большее количество остатков не кодируются, если они попадают в мертвую зону. Мертвая зона может быть функцией ширины шага квантования для остатка (например, 5-кратной шириной шага). Ширина шага может быть динамическим параметром, который изменяется в зависимости от местоположения остатка (например, для остатка или группы остатков), или статическим параметром для всех остатков. Все остатки с метриками, попадающими между маркером Начало 1122 и маркером Все 1124, могут быть уничтожены, если они попадают в определенную мертвую зону, при этом маркер Начало 1122 показывает, где должно начинаться уничтожение остатков с использованием мертвой зоны, а маркер Все 1124 показывает, где все остатки уничтожаются (например, независимо от их значения). Термин порог может использоваться в данном документе взаимозаменяемо с термином маркер, однако мы используем термин маркер, чтобы более точно и визуально соответствовать оси на фиг. 11.
В ответ на метрику восприятия, попадающую в третий диапазон 1114 между маркером или порогом 1120 и маркером Начало 1122, один или большее количество остатков предварительно квантуются с шириной шага предварительного квантования. Ни один из этих остатков не уничтожается, а предварительно квантуется с другим набором параметров из обычных операций квантования позже при кодировании. Например, ширина шага предварительного квантования может быть кратной ширине шага, используемой для более позднего квантования (например, в два раза больше нормальной ширины шага).
В ответ на попадание метрики восприятия в четвертый диапазон 1112 один или большее количество остатков передаются для кодирования без модификации. Таким образом, остатки с высоким приоритетом (т.е. метрика хорошего восприятия) не модифицируются.
Фиг. 12 концептуально иллюстрирует на блок-схеме 1200, как метрика восприятия может быть вычислена и модифицирована в зависимости от набора остатков, которым она соответствует, и как диапазоны для соответствующего действия могут быть вычислены или идентифицированы. Процесс рассматривает группу соседних остатков, т.е. соседнее подмножество набора остатков. Это может быть единица кодирования или мозаичный фрагмент, как описано выше. Первоначальная метрика восприятия сначала идентифицируется на этапе 1208 на основе одного или большего количества из контраста, текстуры или
- 24 045392 яркости элементов изображения, связанных с группой. Метрика восприятия может быть определена аналогично тому, как описано выше, и может быть основана на одном или большем количестве элементов изображения и остатков, как также описано выше (например, со ссылкой на фиг. 8). Эти термины использовались в других частях этого документе, и аналогично тому, как описано в других частях, другие характеристики также могут использоваться для вычисления метрики восприятия. В некоторых случаях может быть вычислена начальная метрика восприятия, а затем нормализована в пределах предварительно определенного диапазона для последующих сравнений.
Остальные блоки способа выполняют сравнение с набором пороговых значений, аналогичных показанным на фиг. 11. На этапе 1224 ширина шага (SW) из (более поздней) операции квантования для группирования остатков извлекается и используется для определения первого порогового значения. Диапазоны и пороги описаны выше в контексте Фиг. 11. Блок 1224 может определять значение порога 1120 на фиг. 11. Если созданная метрика восприятия меньше первого порогового значения (да в решении 1220), то все остатки сохраняются, т.е. метрика находится в диапазоне 1112. Если метрика не меньше первого порогового значения (нет в решении 1220), то в блоке 1228 создается набор дополнительных пороговых значений. Они могут содержать пороги 1122 и 1124 на фиг. 11 или другой набор пороговых значений. Эти пороги можно рассматривать как форму порогов сглаживания при фильтрации остатков. В блоке 1230 метрика восприятия затем сравнивается со вторым пороговым значением (например, порогом 1122) в блоке 1230 принятия решения. Если метрика восприятия находится в следующем диапазоне 1114, то остатки предварительно квантуются с определенной шириной шага в блоке 1232. Если метрика находится в дополнительных диапазонах, тогда метрика сравнивается с дополнительным третьим пороговым значением в блоке 1234 принятия решения. Третье пороговое значение может содержать порог 1124. На основе этого сравнения либо все остатки в группе уничтожаются в блоке 1236, либо часть группы или набор остатков уничтожаются путем применения мертвой зоны, т. е. путем расширения мертвой зоны, как объяснено выше.
Поскольку и кодер, и декодер в данном примере реализованы в потоковом сервере, клиентском устройстве или клиентском устройстве, декодирующем из хранилища данных, способы и процессы, описанные в данном документе, могут быть воплощены в виде кода (например, программного кода) и/или данных. Кодер и декодер могут быть реализованы аппаратно или программно, что хорошо известно в области сжатия данных. Например, аппаратное ускорение с использованием специально запрограммированного графического процессора (GPU) или специально разработанной программируемой вентильной матрицы (FPGA) может обеспечить определенную эффективность. Для полноты такой код и данные могут храниться на одном или большем количестве машиночитаемых носителей, которые могут включать любое устройство или носитель, который может хранить код и/или данные для использования компьютерной системой. Когда компьютерная система считывает и выполняет код и/или данные, хранящиеся на машиночитаемом носителе, компьютерная система выполняет методы и процессы, воплощенные в виде структур данных и кода, хранящихся на машиночитаемом носителе данных. В некоторых вариантах реализации изобретения один или большее количество этапов описанных в данном документе способов и процессов могут выполняться процессором (например, процессором компьютерной системы или системы хранения данных).
Как правило, любые функциональности, описанные в данном документе или проиллюстрированные в графических материалах, могут быть реализованы с использованием программного обеспечения, микропрограммного обеспечения (прошивки) (например, фиксированной логической схемы), программируемого или непрограммируемого аппаратного обеспечения или комбинации этих реализаций. Термины компонент или функция, используемые в данном документе, обычно обозначают программное обеспечение, микропрограммное обеспечение, аппаратное обеспечение или их комбинацию. Например, в случае программной реализации термины компонент или функция могут относиться к программному коду, который выполняет определенные задачи при выполнении на устройстве или устройствах обработки. Проиллюстрированное разделение компонентов и функций на отдельные блоки может отражать любую фактическую или концептуальную физическую группировку и распределение такого программного обеспечения и/или оборудования и задач.

Claims (14)

1. Способ кодирования входного сигнала, включающий:
получение входного сигнала (30);
генерацию наборов остатков на основе разности между входным сигналом и одним или большим количеством восстановленных сигналов с одним или большим количеством соответствующих разрешений, отличающийся тем, что первый набор остатков основан на сравнении первого варианта входного сигнала и первого восстановленного варианта входного сигнала, причем первый восстановленный вариант получен из базового кодера, при этом второй набор остатков основан на сравнении второго варианта входного сигнала и второго восстановленного варианта входного сигнала, причем второй восстановленный вариант получен из первого восстановленного варианта;
- 25 045392 выбор режима (140) остатков;
модификацию (350-1, 350-2) первого и второго наборов остатков на основе указанного выбранного режима остатков; и кодирование (300-1, 300-2) наборов модифицированных остатков для генерации соответствующих кодированных потоков, при этом кодирование отличается от базового кодера, при этом кодирование включает преобразование (310-1, 310-2) наборов модифицированных остатков, и при этом модификация включает выбор подмножества соответствующего набора остатков, которые не следует кодировать, и модификацию выполняют индивидуально для первого и второго наборов остатков на основе выбранного режима остатков таким образом, что каждый набор остатков может быть модифицирован аналогичным образом, иным образом или вообще может не модифицироваться.
2. Способ по п.1, согласно которому входной сигнал имеет первое разрешение, и способ включает:
дискретизацию (350D) с пониженной частотой входного сигнала (30) для создания дискретизированного с пониженной частотой сигнала со вторым разрешением;
получение базового кодированного сигнала от базового кодера (320), причем базовый кодированный сигнал генерируется посредством кодирования дискретизированного с пониженной частотой сигнала с использованием базового кодера (320);
восстановление сигнала из базового кодированного сигнала для генерации первого восстановленного сигнала в одном или большем количестве восстановленных сигналов; и сравнение первого восстановленного сигнала с входным сигналом для генерации первого набора остатков, при этом сравнение первого восстановленного сигнала с входным сигналом для генерации первого набора из наборов остатков включает:
декодирование базового кодированного сигнала для создания базового декодированного сигнала; и использование разности между базовым декодированным сигналом и вариантом входного сигнала с пониженной частотой дискретизации для создания первого набора остатков, и при этом способ дополнительно включает:
создание второго набора остатков посредством:
коррекции базового декодированного сигнала с использованием первого набора остатков для создания скорректированного декодированного варианта;
дискретизации (350U) с повышенной частотой скорректированного декодированного варианта; и использование разности между скорректированным декодированным сигналом и входным сигналом для получения второго набора остатков.
3. Способ по п.1, согласно которому первый набор остатков имеет первое пространственное разрешение, а второй набор остатков имеет второе пространственное разрешение, причем первое пространственное разрешение ниже второго пространственного разрешения.
4. Способ по любому из предшествующих пунктов, согласно которому этап модификации включает:
ранжирование остатков в каждом из наборов остатков; и фильтрацию остатков на основе ранжирования.
5. Способ по любому из предшествующих пунктов, согласно которому модификация включает: определение оценки, связанной с каждым остатком или группой остатков, причем оценка указывает на относительную важность каждого остатка или группы остатков, и при этом выбор подмножества остатков, которые не должны кодироваться, основан на оценке, связанной с каждым остатком или группой остатков, причем оценка основана на одной или большем количестве пространственных и/или временных характеристик входного сигнала, предпочтительно оценка основана на уровне контрастности или уровне текстуры входного сигнала или на обоих.
6. Способ по любому из предшествующих пунктов, согласно которому модификация включает:
квантование остатков в соответствующем наборе остатков, причем квантование включает применение мертвой зоны переменного размера, причем мертвая зона определена как функция ширины шага квантования.
7. Способ по любому из предшествующих пунктов, согласно которому модификация включает: квантование остатков в соответствующем наборе остатков, причем квантование остатков включает:
квантование остатков на первом этапе для осуществления модификации; и квантование остатков на втором этапе для осуществления кодирования.
8. Способ по п.4 или 5, согласно которому модификация включает:
сравнение оценки с набором диапазонов, при этом:
в ответ на попадание оценки в первый диапазон (1118), остаток или группа остатков не кодируются;
в ответ на попадание оценки во второй диапазон (1116), остаток или группа остатков сравнивается с мертвой зоной квантования, при этом остаток или группа остатков не кодируются, если они попадают в мертвую зону;
в ответ на попадание оценки в третий диапазон (1114), остаток или группа остатков предварительно
- 26 045392 квантуются с шириной первого шага квантования; и в ответ на попадание оценки в четвертый диапазон (1112), остаток или группа остатков передаются на кодирование без модификации.
9. Способ по любому из предшествующих пунктов, согласно которому модификация одного или большего количества наборов остатков включает:
получение категоризации остатков или групп остатков; и применение модификации на основе категоризации, при этом получение категоризаций включает:
категоризацию остатков или групп остатков на основе одной или большего количества пространственных и/или временных характеристик входного сигнала или по меньшей мере одного из наборов остатков, причем одна или большее количество пространственных и/или временных характеристик содержат одну или большее количество характеристик, выбранных из группы, содержащей:
пр остранственную активность между одним или большим количеством сигнальных элементов или групп сигнальных элементов;
ур овень контраста между одним или большим количеством сигнальных элементов или групп сигнальных элементов;
из мерение изменения в одном или большем количестве пространственных направлений;
вр еменную активность между одним или большим количеством сигнальных элементов или групп сигнальных элементов;
из мерение изменения в одном или большем количестве временных направлений;
пр остранственную активность между одним или большим количеством остатков;
временную активность между одним или большим количеством остатков; и различие между различными наборами наборов остатков или различие в одной или большем количестве пространственных и/или временных характеристик между разными наборами наборов остатков.
10. Способ по любому из предшествующих пунктов, согласно которому модификация включает: установку флажков управления, указывающих, следует ли кодировать остатки при кодировании, при этом кодирование выборочно выполняется на основе флажков управления.
11. Способ по любому из предшествующих пунктов, согласно которому модификация включает:
получение набора остаточных весов, причем остаточные веса содержат нулевые значения; и применение набора остаточных весов к остаткам в одном из одного или большего количества наборов остатков для генерации взвешенного набора остатков, после применения набора остаточных весов, установление порогового значения для взвешенного набора остатков с использованием набора порогов, причем по меньшей мере один из набора остаточных весов и набора пороговых значений определены на основе классификации входного сигнала.
12. Способ по п.11, согласно которому набор остаточных весов содержит остаточную маску, при необходимости остаточная маска предварительно генерируется на основе предварительной обработки входного сигнала перед кодированием.
13. Кодер, выполненный с возможностью выполнения способа по любому из пп.1-12.
14. Битовый поток, представляющий кодирование входного сигнала, при этом битовый поток содержит:
множество кодированных потоков, сгенерированных путем кодирования наборов модифицированных остатков, причем наборы модифицированных остатков сгенерированы посредством:
ген ерации наборов остатков, сгенерированных на основе разности между входным сигналом и одним или большим количеством восстановленных сигналов с одним или большим количеством соответствующих разрешений, отличающийся тем, что первый набор остатков основан на сравнении первого варианта входного сигнала и первого восстановленного варианта входного сигнала, причем первый восстановленный вариант получен из базового кодера, при этом второй набор остатков основан на сравнении второго варианта входного сигнала и второго восстановленного варианта входного сигнала, причем второй восстановленный вариант получен из первого восстановленного варианта;
выб ора режима остатков;
мод ификации первого и второго наборов остатков на основе указанного выбранного режима остатков;
при этом кодирование включает преобразование наборов модифицированных остатков и отличается от базового кодера, при этом модификация включает выбор подмножества соответствующего набора остатков, которые не следует кодировать, и модификацию выполняют индивидуально для первого и второго наборов остатков на основе выбранного режима остатков таким образом, что каждый набор остатков может быть модифицирован аналогичным образом, иным образом или вообще может не модифицироваться.
EA202192500 2019-03-20 2019-12-13 Обработка остатков при кодировании видео EA045392B1 (ru)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1903844.7 2019-03-20
GB1904014.6 2019-03-23
GB1904492.4 2019-03-29
GB1905325.5 2019-04-15
GB1909701.3 2019-07-05

Publications (1)

Publication Number Publication Date
EA045392B1 true EA045392B1 (ru) 2023-11-22

Family

ID=

Similar Documents

Publication Publication Date Title
US20220191521A1 (en) Processing of residulas in video coding
US11610341B2 (en) Apparatus and method for performing artificial intelligence (AI) encoding and AI decoding on image
CN111066326A (zh) 机器学习视频处理系统和方法
US20220217345A1 (en) Quantization of residuals in video coding
US11881003B2 (en) Image compression and decoding, video compression and decoding: training methods and training systems
US11720998B2 (en) Artificial intelligence (AI) encoding apparatus and operating method thereof and AI decoding apparatus and operating method thereof
US20220182654A1 (en) Exchanging information in hierarchical video coding
US20220272342A1 (en) Quantization of residuals in video coding
CN116349225A (zh) 用于逐块图像压缩中的去块的内容自适应在线训练方法和装置
US20240155132A1 (en) Processing of residuals in video coding
US20220329802A1 (en) Quantization of residuals in video coding
WO2023187308A1 (en) Pre-analysis for video encoding
CN113170121A (zh) 用于比特率减少的视频流自适应滤波
EA045392B1 (ru) Обработка остатков при кодировании видео
KR20230136121A (ko) 인공 신경망을 사용한 프로그래시브 데이터 압축
GB2623003A (en) Quantization of residuals in video coding
GB2623226A (en) Quantization of residuals in video coding
GB2614054A (en) Digital image processing