RU2807213C1 - Способ вывода набора слоев для многослойного видеопотока - Google Patents
Способ вывода набора слоев для многослойного видеопотока Download PDFInfo
- Publication number
- RU2807213C1 RU2807213C1 RU2021129827A RU2021129827A RU2807213C1 RU 2807213 C1 RU2807213 C1 RU 2807213C1 RU 2021129827 A RU2021129827 A RU 2021129827A RU 2021129827 A RU2021129827 A RU 2021129827A RU 2807213 C1 RU2807213 C1 RU 2807213C1
- Authority
- RU
- Russia
- Prior art keywords
- syntax element
- layers
- vps
- layer
- video
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 55
- 230000011664 signaling Effects 0.000 claims abstract description 31
- 239000010410 layer Substances 0.000 claims description 428
- 239000011229 interlayer Substances 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 229920000069 polyphenylene sulfide Polymers 0.000 description 52
- 230000033001 locomotion Effects 0.000 description 43
- 238000005516 engineering process Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 29
- 239000013598 vector Substances 0.000 description 26
- 230000002123 temporal effect Effects 0.000 description 23
- 230000006835 compression Effects 0.000 description 21
- 238000007906 compression Methods 0.000 description 21
- 230000003044 adaptive effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000001914 filtration Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 241001482237 Pica Species 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000013139 quantization Methods 0.000 description 7
- 238000012952 Resampling Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000013488 ordinary least square regression Methods 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 108091000069 Cystinyl Aminopeptidase Proteins 0.000 description 2
- 102100020872 Leucyl-cystinyl aminopeptidase Human genes 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Abstract
Изобретение относится к области кодирования и декодирования видеоданных. Технический результат заключается в повышении эффективности кодирования видеоданных. Это достигается за счет приема кодированного видеопотока, включающего набор параметров видео и видеоданные, разделенные на множество слоев, получения, на основе набора параметров видео, элементов синтаксиса, содержащих сигнализацию служебных данных для передачи набора параметров видео при большом числе наборов выходных слоев и/или слоев в каждом наборе выходных слоев, и декодирования, на основе информации, полученной из набора параметров видео, части видеоданных кодированного видеопотока, которая соответствует набору выходных слоев. 3 н. и 17 з.п. ф-лы, 34 ил., 1 табл.
Description
Перекрестная ссылка на родственную заявку
[1] Настоящая заявка испрашивает приоритет по предварительной заявке США №63/001 018, поданной 27 марта 2020 г., и заявке США №16/987 911, поданной 7 августа 2020 г., полное содержание которых включено в настоящий документ.
Область техники, к которой относится изобретение
[2] Варианты осуществления настоящего изобретения относятся к кодированию и декодированию видео, а более конкретно, к получению выходного слоя в кодированном видеопотоке с множеством слоев.
Уровень техники
[3] Кодирование и декодирование видео с использованием интер-кадрового предсказания с компенсацией движения использовалось ранее. Несжатое цифровое видео может включать в себя серию изображений, при этом каждое изображение имеет пространственный размер, например, 1920x1080 отсчетов сигнала яркости и связанных отсчетов сигнала цветности. Серия изображений может иметь фиксированную или переменную частоту изображений (неофициально также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео имеет значительные требования к битрейту. Например, для видео 1080р60 4:2:0 с частотой 8 бит на отсчет (разрешение 1920x1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 ГБ дискового пространства.
[4] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к пропускной способности или пространству памяти, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к методам, при которых из сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами может быть достаточно мало, чтобы сделать восстановленный сигнал пригодным для предполагаемого применения.
[5] В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от приложения; например, для пользователей определенных потребительских приложений потоковой передачи допустимы более высокие искажения, чем для пользователей приложений вещательного телевидения. Достижимая степень сжатия может отражать следующее: более высокое разрешаемое/допустимое искажение может привести к более высокой степени сжатия.
[6] Видеокодер и видеодекодер могут использовать методы из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из которых будут представлены ниже.
[7] Раньше видеокодеры и декодеры имели тенденцию работать с заданным размером изображения, который в большинстве случаев был определен и оставался постоянным для кодированной видеопоследовательности (CVS), группы изображений (GOP) или аналогичного временного кадра с несколькими изображениями. Например, в MPEG-2 конструкции системы использовались для изменения горизонтального разрешения (и, следовательно, размера изображения) в зависимости от таких факторов, как активность сцены, но только для I изображений, следовательно, обычно для GOP. Передискретизация опорных изображений для использования различных разрешений в CVS использовалась, например, в Рекомендации МСЭ-Т Rec. Н.263, Приложение Р. Однако здесь размер изображения не изменяется, только опорные изображения подвергаются передискретизации, в результате чего потенциально могут использоваться только части холста изображения (в случае понижающей дискретизации) или захватываться только части сцены (в случае повышающей дискретизации). Кроме того, Приложение Q Н.263 разрешает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении), в сторону повышения или понижения. Опять же, размер изображения остается прежним. Размер макроблока фиксирован в Н.263, и поэтому его не нужно сигнализировать.
[8] Изменение размера изображения в предсказанных изображениях стало более распространенным явлением в современном кодировании видео. Например, VP9 позволяет выполнять пере дискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении VVC (включая, например, Hendry, et. al, «Оп adaptive resolution change (ARC) for VVC», документ Объединенной команды видеоэкспертов (JVT) JVET-M0135-v1, 9-19 января 2019 г., полностью включенный в настоящий документ) позволяют выполнять передискретизацию целых опорных изображений с другим - более высоким или более низким - разрешением. В таком документе предлагается кодировать различные варианты разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.
[9] Содержание Bross, и др., «Универсальное кодирование видео (черновик 8)», документа JVET-Q2001-vE Объединенной группы экспертов по видео, от 7-17 января 2020 г., полностью включено в настоящий документ.
Раскрытие сущности изобретения
[10] Когда изображения кодируются в битовый поток, который содержит или состоит из нескольких слоев с разным качеством, битовый поток может иметь элементы синтаксиса, которые указывают, какие слои могут выводиться на стороне декодера. Набор слоев для вывода определяется как набор выходных слоев. В новейшем видеокодеке, поддерживающем несколько слоев и и масштабируемостей, один или более наборов выходных слоев передаются в наборе параметров видео. Эти элементы синтаксиса, указывающие наборы выходных слоев и их зависимости, профиль/ярус/уровень и параметры эталонной модели гипотетического декодера, должны эффективно передаваться в наборе параметров. Некоторые варианты осуществления настоящего изобретения предусматривают эффективную передачу такой информации в наборе параметров.
[11] Согласно одному или нескольким вариантам осуществления предусмотрен способ. Способ включает в себя прием кодированного видеопотока, включающего набор параметров и видеоданные, разделенные на множество слоев; получение, на основе набора параметров, (1) по меньшей мере одного первого элемента синтаксиса, который указывает из множества слоев по меньшей мере один первый слой, для вывода в наборе выходных слоев, и (2) по меньшей мере одного второго элемента синтаксиса, который указывает информацию типа профиль-ярус-уровень набора выходных слоев; и декодирование, на основе информации, полученной из набора параметров, части видеоданных кодированного видеопотока, которая соответствует набору выходных слоев.
[12] Согласно одному варианту осуществления, набор параметров включает в себя третий элемент синтаксиса, указывающий число информации типа профиль-ярус-уровень набора выходных слоев в кодированной видеопоследовательности кодированного видеопотока, ссылающегося на указанный набор параметров.
[13] Согласно одному варианту осуществления, третий элемент синтаксиса сигнализируется в наборе параметров на основе максимально разрешенного количества слоев в каждой кодированной видеопоследовательности кодированного видеопотока, ссылающегося на набор параметров, превышающего 1.
[14] Согласно одному варианту осуществления, по меньшей мере один второй элемент синтаксиса включает в себя набор элементов синтаксиса, указывающих информацию типа профиль-ярус-уровень, или включает индекс, указывающий по меньшей мере одну запись в наборе информации типа профиль-ярус-уровень.
[15] Согласно одному варианту осуществления, набор параметров дополнительно включает в себя третий элемент синтаксиса, указывающий режим сигнализирования выходного слоя для набора выходных слоев.
[16] Согласно одному варианту осуществления, по меньшей мере один первый элемент синтаксиса сигнализируют в наборе параметров на основе режима, указанного третьим элементом синтаксиса.
[17] Согласно одному варианту осуществления, по меньшей мере один первый элемент синтаксиса включает в себя флаг, указывающий, должен ли выводиться один из множества слоев.
[18] Согласно одному варианту осуществления, набор параметров дополнительно включает в себя третий элемент синтаксиса, который указывает режим сигнализирования набора выходных слоев для множества наборов выходных слоев, включающего набор выходных слоев, и указанное декодирование кодированного видеопотока на основе набора параметров дополнительно включает в себя определение, выводить ли второй слой из множества слоев на основе режима, указанного третьим элементом синтаксиса.
[19] Согласно одному варианту осуществления декодирование кодированного видеопотока дополнительно включает в себя определение режима сигнализирования набора выходных слоев для множества наборов выходных слоев, включающего набор выходных слоев, на основе набора параметров.
[20] Согласно одному варианту осуществления, набор параметров представляет собой набор параметров видео.
[21] Согласно одному или нескольким вариантам осуществления предусмотрена система декодирования кодированного видеопотока, который включает набор параметров и видеоданные, разделенные на множество слоев. Система включает в себя: память, конфигурированную для хранения компьютерного программного кода; и по меньшей мере один процессор, конфигурированный для приема кодированного видеопотока, доступа к компьютерному программному коду и работы в соответствии с инструкциями компьютерного программного кода, причем компьютерный программный код включает в себя: код декодирования, конфигурированный предписывать по меньшей мере одному процессору декодировать, на основе набора параметров, часть видеоданных кодированного видеопотока, которая соответствует набору выходных слоев, при этом набор параметров включает в себя по меньшей мере один первый элемент синтаксиса, который указывает из множества слоев по меньшей мере один первый слой для вывода в наборе выходных слоев, и по меньшей мере один второй элемент синтаксиса, который указывает информацию типа профиль-ярус-уровень набора выходных слоев.
[22] Согласно одному варианту осуществления, набор параметров дополнительно включает в себя третий элемент синтаксиса, указывающий число информации типа профиль-ярус-уровень набора выходных слоев в кодированной видеопоследовательности кодированного видеопотока, ссылающегося на указанный набор параметров.
[23] Согласно одному варианту осуществления, третий элемент синтаксиса сигнализируется в наборе параметров на основе максимально разрешенного количества слоев в каждой кодированной видеопоследовательности кодированного видеопотока, ссылающегося на набор параметров, превышающего 1.
[24] Согласно одному варианту осуществления, по меньшей мере один второй элемент синтаксиса включает в себя набор элементов синтаксиса, указывающих информацию типа профиль-ярус-уровень, или включает индекс, указывающий по меньшей мере одну запись в наборе информации типа профиль-ярус-уровень.
[25] Согласно одному варианту осуществления, набор параметров дополнительно включает в себя третий элемент синтаксиса, указывающий режим сигнализирования выходного слоя для набора выходных слоев.
[26] Согласно одному варианту осуществления, по меньшей мере один первый элемент синтаксиса сигнализируют в наборе параметров на основе режима, указанного третьим элементом синтаксиса.
[27] Согласно одному варианту осуществления, по меньшей мере один первый элемент синтаксиса включает в себя флаг, указывающий, должен ли выводиться один из множества слоев.
[28] Согласно одному варианту осуществления, набор параметров дополнительно включает в себя третий элемент синтаксиса, который указывает режим сигнализирования набора выходных слоев для множества наборов выходных слоев, включающего набор выходных слоев, и код декодирования дополнительно конфигурирован предписывать по меньшей мере одному процессору определять, выводить ли второй слой из множества слоев на основе режима, указанного третьим элементом синтаксиса.
[29] Согласно одному варианту осуществления код декодирования дополнительно конфигурирован предписывать по меньшей мере одному процессору определять режим сигнализирования набора выходных слоев для множества наборов выходных слоев, включающего набор выходных слоев, на основе набора параметров.
[30] Согласно одному или нескольким вариантам осуществления предложен невременный машиночитаемый носитель, на котором хранятся компьютерные инструкции. Компьютерные инструкции, при выполнении по меньшей мере одним процессором, предписывают этому по меньшей мере одному процессору следующее: декодировать на основе набора параметров часть видеоданных кодированного видеопотока, которая соответствует набору выходных слоев, при этом кодированный видеопоток включает набор параметров и видеоданные, разделенные на множество слоев, при этом набор параметров включает по меньшей мере один первый элемент синтаксиса, который указывает из множества слоев по меньшей мере один первый слой для вывода в наборе выходных слоев, и по меньшей мере один второй элемент синтаксиса, который указывает информацию типа профиль-ярус-уровень набора выходных слоев.
Краткое описание чертежей
[31] Дополнительные признаки, сущность и различные преимущества раскрытого объекта изобретения будут более понятны из следующего подробного описания и прилагаемых чертежей, на которых:
[32] На фиг. 1 показана схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления.
[33] На фиг. 2 показана схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления.
[34] На фиг. 3 показана схематическая иллюстрация упрощенной блок-схемы декодера в соответствии с вариантом осуществления.
[35] На фиг. 4 показана схематическая иллюстрация упрощенной блок-схемы кодера в соответствии с вариантом осуществления.
[36] На фиг. 5А показана схематическая иллюстрация первой конфигурации для сигнализации параметров ARC в соответствии с вариантом осуществления уровня техники.
[37] На фиг. 5В показана схематическая иллюстрация второй конфигурации для сигнализации параметров ARC в соответствии с вариантом осуществления уровня техники
[38] На фиг. 6А показана схематическая иллюстрация первой конфигурации для сигнализации параметров ARC в соответствии с вариантом осуществления.
[39] На фиг. 6В показана схематическая иллюстрация второй конфигурации для сигнализации параметров ARC в соответствии с вариантом осуществления.
[40] На фиг. 6С показана схематическая иллюстрация третьей конфигурации для сигнализации параметров ARC в соответствии с вариантом осуществления.
[41] На фиг. 7А показана схематическая иллюстрация отрывка из заголовка группы тайлов в соответствии с вариантом осуществления.
[42] На фиг. 7В показана схематическая иллюстрация отрывка из набора параметров последовательности в соответствии с вариантом осуществления.
[43] На фиг. 8 показан пример структуры предсказания для масштабируемости с адаптивным изменением разрешения.
[44] На фиг. 9А показан пример таблицы синтаксиса в соответствии с вариантом осуществления.
[45] На фиг. 9В иллюстрирует пример таблицы синтаксиса в соответствии с вариантом осуществления.
[46] На фиг. 10 показана схематическая иллюстрация упрощенной блок-схемы синтаксического анализа и декодирования цикла РОС на единицу доступа и значение счетчика единиц доступа в соответствии с вариантом осуществления.
[47] На фиг. 11 показана схематическая иллюстрация структуры битового потока видео, содержащей многослойные субизображения, в соответствии с вариантом осуществления.
[48] На фиг. 12 показана схематическая иллюстрация отображения выбранного субизображения с улучшенным разрешением в соответствии с вариантом осуществления.
[49] На фиг. 13 показана блок-схема процесса декодирования и отображения битового видеопотока, содержащего многослойные субизображения, в соответствии с вариантом осуществления.
[50] На фиг. 14 показана схематическая иллюстрация отображения видео 360° с улучшенным слоем субизображения в соответствии с вариантом осуществления.
[51] На фиг. 15А показан пример компоновки разделенных субизображений в соответствии с вариантом осуществления.
[52] На фиг. 15В показан пример соответствующего размера субизображения и информации о положении одного субизображения в соответствии с вариантом осуществления.
[53] На фиг. 16 показана соответствующая структура предсказания изображения для субизображений с фиг. 15А-В.
[54] На фиг. 17 показан пример входного изображения, разделенного на множество субобластей, которые могут быть закодированы одним или несколькими слоями в соответствии с вариантом осуществления.
[55] На фиг. 18 показаны соответствующий слой и структура предсказания изображения с модальностью пространственной масштабируемости локальной области субобластей, проиллюстрированных на фиг. 17.
[56] На фиг. 19А показана схематическая иллюстрация отрывка из набора параметров видео в соответствии с вариантом осуществления.
[57] На фиг. 19В показана схематическая иллюстрация отрывка из набора параметров последовательности в соответствии с вариантом осуществления.
[58] На фиг. 20 показан пример таблицы синтаксиса для информации компоновки субизображения в соответствии с вариантом осуществления.
[59] На фиг. 21 показан пример таблицы синтаксиса для указания выходных слоев и информации типа профиль/ярус/уровень для каждого набора выходных слоев согласно варианту осуществления.
[60] На фиг. 22 показан пример таблицы синтаксиса, чтобы указать режим выходного слоя для каждого набора выходных слоев согласно варианту осуществления.
[61] На фиг. 23 показан пример таблицы синтаксиса для указания текущего субизображения каждого слоя для каждого набора выходных слоев.
[62] Фиг. 24 - пример таблицы синтаксиса набора параметров видео RBSP.
[63] Фиг. 25 - пример таблицы синтаксиса для указания набора выходного слоя с режимом набора выходного слоя.
[64] На фиг. 26 показана схема декодера согласно варианту осуществления.
[65] На фиг. 27 показана схема компьютерной системы, подходящей для реализации вариантов осуществления.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[66] На фиг. 1 проиллюстрирована упрощенная блок-схема системы (100) связи согласно варианту осуществления настоящего изобретения. Система (100) может включать в себя по меньшей мере два терминала (110, 120), соединенных между собой через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи другому терминалу (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.
[67] На фиг. 1 показана вторая пара терминалов (130, 140), обеспечивающая поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи другому терминалу через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.
[68] На фиг. 1 терминалы (110-140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны и/или любой другой тип терминала. Например, терминалы (110-140) могут быть портативными компьютерами, планшетными компьютерами, медиаплеерами и/или специализированным оборудованием для видеоконференцсвязи. Сеть (150) представляет собой любое количество сетей, которые передают кодированные видеоданные между терминалами (110-140), включая, например, сети проводной и/или беспроводной связи. Сеть (150) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Типичные сети включают телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (150) могут быть несущественными для работы настоящего изобретения, если это не объясняется в данном документе ниже.
[69] На фиг. 2 проиллюстрировано, в качестве примера применения для раскрытого объекта изобретения, размещение видеокодера и видеодекодера в потоковой среде. Раскрытый объект изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.
[70] Как показано на фиг. 2, потоковая система (200) может включать в себя субсистему (213) захвата, которая может включать в себя видеоисточник (201) и кодер (203). Источником видео (201) может быть, например, цифровая камера, и он может быть конфигурирован для создания несжатого потока (202) отсчетов видео. Несжатый поток (202) отсчетов видео может обеспечивать большой объем данных по сравнению с кодированными битовыми потоками видео и может обрабатываться кодером (203), подключенным к камере (201). Кодер (203) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для включения или реализации аспектов раскрытого объекта изобретения, как более подробно описано ниже. Кодированный битовый поток видео (204) может включать в себя меньший объем данных по сравнению с потоком отсчетов и может быть сохранен на сервере потоковой передачи (205) для использования в будущем. Один или несколько клиентов (206) потоковой передачи могут получить доступ к серверу (205) потоковой передачи для извлечения битовых потоков (209) видео, которые могут быть копиями закодированного битовый поток(204)видео.
[71] В вариантах осуществления потоковый сервер (205) также может функционировать как медиа-информационный сетевой элемент (MANE). Например, потоковый сервер (205) может быть конфигурирован для сокращения кодированного битового потока видео (204) для адаптации потенциально разных битовых потоков к одному или нескольким потоковым клиентам (206). В вариантах осуществления MANE может быть предоставлен отдельно от потокового сервера (205) в потоковой системе (200).
[72] Клиенты потоковой передачи (206) могут включать в себя видеодекодер (210) и дисплей (212). Видеодекодер (210) может, например, декодировать битовый поток (209) видео, который является входящей копией закодированного битового потока (209) видео, и создавать исходящий поток(211) отсчетов видео, который может отображаться на дисплее (212) или другом устройстве визуализации (не показано). В некоторых потоковых системах битовые потоки (204, 209) видео могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры таких стандартов включают, помимо прочего, Рекомендацию ITU-T Н.265. В стадии разработки находится стандарт кодирования видео, неофициально известный как универсальное кодирование видео (VVC). Варианты осуществления изобретения могут использоваться в контексте VVC.
[73] На фиг. 3 показана примерная функциональная блок-схема видеодекодера (210), который присоединен к дисплею (212) согласно варианту осуществления настоящего изобретения.
[74] Видеодекодер (210) может включать в себя канал (312), приемник (310), буферную память (315), энтропийный декодер/анализатор (320), модуль (351) масштабирования/обратного преобразования, модуль (352) интра-предсказания, блок (353) предсказания компенсации движения, агрегатор (355), блок (356) контурного фильтра, память (357) опорных изображений и память текущего изображения. По меньшей мере, в одном варианте осуществления видеодекодер (210) может включать в себя интегральную схему, ряд интегральных схем и/или другие электронные схемы. Видеодекодер (210) также может быть частично или полностью реализован в виде программного обеспечения, работающего на одном или нескольких ЦП с ассоциированной памятью.
[75] В этом варианте осуществления и других вариантах осуществления приемник (310) может принимать одну или несколько кодированных видеопоследовательностей для декодирования декодером (210) по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других закодированных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала (312), который может быть аппаратной/программной связью с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут быть отправлены их соответствующим использующим объектам (не изображены). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с дрожанием в сети буферная память (315) может быть присоединена между приемником (310) и энтропийным декодером/анализатором (320) (далее «синтаксический анализатор»). Когда приемник (310) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемости, или из изосинхронной сети, буфер (315) может не использоваться или может быть небольшим. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буфер (315), он может быть сравнительно большим и может иметь адаптивный размер.
[76] Видеодекодер (210) может включать в себя синтаксический анализатор (320) для восстановления символов (321) из энтропийной кодированной видеопоследовательности. Категории этих символов включают в себя, например, информацию, используемую для управления работой декодера (210), и потенциально информацию для управления устройством визуализации, например дисплеем (212), которое может быть подключено к декодеру, как показано на фиг. 2. Управляющая информация для устройства (устройств) визуализации может быть в форме, например, сообщений дополнительной улучшающей информации (SEI) или тайлов набора параметров информации о пригодности видео (VUI) (не изображены). Синтаксический анализатор (320) может анализировать/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео и может следовать принципам, хорошо известным специалистам в уровне техники, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Парсер (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Синтаксический анализатор (320) также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.
[77] Синтаксический анализатор (320) может выполнять операцию энтропийного декодирования/синтаксического анализа видеопоследовательности, принятой из буфера (315), таким образом, чтобы создавать символы (321).
[78] Восстановление символов (321) может включать в себя множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: внешнее и внутреннее изображение, внешний и внутренний блок) и других факторов. Какие блоки задействованы и как они задействованы, можно контролировать с помощью управляющей информации подгруппы, которая была проанализирована из кодированной видеопоследовательности анализатором (320). Поток такой управляющей информации субгруппы между парсером (320) и множеством модулей ниже не показан для ясности.
[79] Помимо уже упомянутых функциональных блоков, декодер 210 может быть концептуально подразделен на ряд функциональных модулей, как описано ниже. В практическом осуществлении, работающем в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут быть, по меньшей мере частично, интегрированы друг в друга. Однако для целей описания раскрытого объекта изобретения уместно концептуальное подразделение на функциональные модули, приведенные ниже.
[80] Один блок может быть блоком масштабирования/обратного преобразования (351). Модуль масштабирования/обратного преобразования (351) может принимать квантованный коэффициент преобразования, а также информацию управления, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. В виде символа (ов) (321) от анализатора (320). Блок масштабирования/обратного преобразования (351) может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (355).
[81] В некоторых случаях выходные отсчеты масштабатора/обратного преобразования (351) могут относиться к интра-кодированному блоку; то есть: блок, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (352) внутрикадрового предсказания. В некоторых случаях блок (352) интра-предсказания изображения генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения из памяти текущего изображения (358). Агрегатор (355) в некоторых случаях добавляет для каждого отсчета информацию предсказания, сгенерированную блоком интра-предсказания (352), к информации выходных отсчетов, предоставляемой блоком масштабирования/обратного преобразования (351).
[82] В других случаях выходные отсчеты блока масштабирования/обратного преобразования (351) могут относиться к интра-кодированному блоку и, возможно, блоку с компенсацией движения. В таком случае модуль (353) предсказания с компенсацией движения может обращаться к памяти (357) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходу блока масштабирования/обратного преобразования (351) (в этом случае называемого остаточными отсчетами или остаточным сигналом), чтобы сгенерировать информацию о выходных отсчетах. Адреса в памяти (357) опорных изображений, из которых блок предсказания компенсации движения (353) выбирает отсчеты предсказания, могут управляться векторами движения. Векторы движения могут быть доступны блоку (353) предсказания компенсации движения в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти (357) опорных изображений, когда используются точные векторы движения суботсчета, механизмы предсказания вектора движения и так далее.
[83] Выходные отсчеты агрегатора (355) могут подвергаться различным методам петлевой фильтрации в модуле (356) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в битовый поток кодированного видео и предоставляются модулю (356) петлевой фильтрации как символы (321) из парсера (320), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные посредством петлевой фильтрации значения отсчетов.
[84] Выходом блока контурного фильтра (356) может быть поток отсчетов, который может быть выведен на устройство рендеринга, такое как дисплей (212), а также сохранен в памяти опорных изображений (357) для использования в будущем между интер-предсказании изображений.
[85] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью восстановлено, и кодированное изображение было идентифицировано как опорное изображение (например, анализатором (320)), текущее опорное изображение может стать частью памяти опорных изображений (357), а новая текущая память изображений может быть перераспределена перед началом восстановления следующего кодированного изображения.
[86] Видеодекодер (210) может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как ITU-T Rec. Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что она соответствует синтаксису технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в их документе профилей. Кроме того, для соответствия некоторым технологиям или стандартам сжатия видео сложность кодированной видеопоследовательности может находиться в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD) и метаданных для управления буфером HRD, сигнализируемых в кодированной видеопоследовательности.
[87] В варианте осуществления приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.
[88] Фиг. 4 иллюстрирует примерную функциональную блок-схему видеокодера (203), связанного с источником (201) видео, согласно варианту осуществления настоящего изобретения.
[89] Видеокодер (203) может включать в себя, например, кодер, который является исходным кодером (430), механизм кодирования (432), (локальный) декодер (433), память опорных изображений (434), предсказатель (435), передатчик (440), энтропийный кодер (445), контроллер (450) и канал (460).
[90] Кодер (203) может принимать отсчеты видео от источника (201) видео (который не является частью кодера), который может захватывать видеоизображение(я) для кодирования кодером (203).
[91] Источник (201) видео может предоставлять исходную видеопоследовательность для кодирования кодером (203) в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (201) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференц-связи источник (203) видео может быть камерой, которая захватывает информацию о локальном изображении в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, в котором каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры отсчетов, цветового пространства и т.д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.
[92] Согласно варианту осуществления кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер (450) может также управлять другими функциональными блоками, как описано ниже, и может быть функционально связан с этими блоками. Связь не изображена для ясности. Параметры, установленные контроллером (450), могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорости-искажения,...), размер изображения, макет группы изображений (GOP), максимальный диапазон поиска вектора движения и так далее. Специалист в данной области техники может легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной конструкции системы.
[93] Некоторые видеокодеры работают в том, что специалист в данной области легко распознает как «петля кодирования». В качестве упрощенного описания цикл кодирования может состоять из кодирующей части исходного кодера (430) (ответственного за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения (изображений)), и (локального) декодера (433), встроенного в кодер (203), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также будет создавать, когда сжатие между символами и кодированным битовым потоком видео осуществляется без потерь в определенных технологиях сжатия видео. Этот восстановленный поток отсчетов может быть введен в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локального или удаленного), содержимое памяти опорных изображений также является точным в битах между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер «видел» бы при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) известен специалисту в данной области техники.
[94] Работа «локального» декодера (433) может быть такой же, как у «удаленного» декодера (210), который уже был подробно описан выше со ссылкой на фиг. З. Однако, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и анализатором (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включая канал (312), приемник (310), буфер (315) и синтаксический анализатор (320) не могут быть полностью реализованы в локальном декодере (433).
[95] Наблюдение, которое можно сделать на этом этапе, заключается в том, что любая технология декодирования, за исключением синтаксического анализа/энтропийного декодирования, которая присутствует в декодере, может потребоваться в, по существу, идентичной функциональной форме в соответствующем кодере. По этой причине раскрытый объект изобретения фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они могут быть инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.
[96] В качестве части своей работы кодер (430) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как «опорные кадры». Таким образом, механизм (432) кодирования кодирует различия между блоками пикселей входного кадра и блоками пикселей опорного кадра(ов), которые могут быть выбраны в качестве эталона(ов) предсказания для входного кадра.
[97] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть обозначены как опорные кадры, на основе символов, созданных кодером (430) источника. Операции механизма (432) кодирования могут быть предпочтительно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 4), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных кадрах, и может вызывать сохранение восстановленных опорных кадров в памяти (434) опорных изображений. Таким образом, кодер (203) может локально хранить копии восстановленных опорных кадров, которые имеют общее содержимое, в качестве восстановленных опорных кадров, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).
[98] Предиктор (435) может выполнять поиски с предсказанием для механизма (432) кодирования. То есть, для нового изображения, которое должно быть кодировано, предиктор (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (435) может работать на основе блока отсчетов "блок-за-пикселем", чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (435), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (434) опорных изображений.
[99] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.
[100] Выходные сигналы всех вышеупомянутых функциональных модулей могут подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия без потерь символов согласно технологиям, известным специалистам в данной области техники, как, например, кодирование Хаффмана, кодирование переменной длины, арифметическое кодирование и так далее.
[101] Передатчик (440) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (445), чтобы подготовить ее к передаче через канал (460) связи, который может быть аппаратным/программным соединением с запоминающим устройством, которое будет хранить кодированные видеоданные. Передатчик (440) может обеспечивать слияние кодированных видеоданных из видеокодера (430) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).
[102] Контроллер (450) может управлять работой кодера (203). Во время кодирования контроллер (450) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть назначены как интра-изображение (изображение I), изображение с предсказанием (изображение Р) или изображение с двунаправленным предсказанием (изображение В).
[103] Интра-изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки позволяют использовать различные типы интра-изображений, включая, например, изображения с обновлением независимого декодера (IDR). Специалисту в области техники известны эти варианты I-изображений и их соответствующие применения и особенности.
[104] Изображение с предсказанием (Р-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[105] Изображение с двунаправленным предсказанием (В-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.
[106] Исходные изображения обычно могут быть пространственно разделены на множество блоков отсчетов (например, блоки из 4x4, 8x8, 4x8 и/или 16x16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интрапредсказание). Пиксельные блоки Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[107] Видеокодер (203) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, такой как Рекомендация МСЭ-Т Н.265. В своей работе видеокодер (203) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.
[108] В варианте осуществления передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать в себя такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные, пространственные слои и/или слои улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной информации улучшения (SEI), фрагменты набора параметров информации о пригодности видео (VUI) и так далее.
[109] Перед более подробным описанием определенных аспектов вариантов осуществления изобретения ниже вводятся несколько терминов, на которые дается ссылка в оставшейся части этого описания.
[110] «Субизображение» в дальнейшем относится в некоторых случаях к прямоугольной компоновке отсчетов, блоков, макроблоков, единиц кодирования или подобных объектов, которые семантически сгруппированы и которые могут быть независимо кодированы с измененным разрешением. Одно или несколько субизображений могут образовывать изображение. Одно или более кодированных субизображений могут образовывать кодированное изображение. Одно или более субизображений могут быть собраны в изображение, и одно или более субизображений могут быть извлечены из изображения. В определенных средах одно или более кодированных субизображений могут быть собраны в сжатой области без перекодирования до уровня отсчетов в кодированное изображение, и в тех же или некоторых других случаях одно или более кодированных субизображений могут быть извлечены из кодированного изображения в сжатой области.
[111] «Адаптивное изменение разрешения» (ARC) в дальнейшем относится к механизмам, которые позволяют изменять разрешение изображения или субизображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. «Параметры ARC» далее относятся к управляющей информации, необходимой для выполнения адаптивного изменения разрешения, которая может включать в себя, например, параметры фильтра, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и так далее.
[112] Приведенное выше описание сосредоточено на кодировании и декодировании одного семантически независимого кодированного видеоизображения. Перед описанием последствий кодирования/декодирования множества субизображений с независимыми параметрами ARC и подразумеваемой дополнительной сложности должны быть описаны варианты осуществления сигнализации параметров ARC.
[113] На фиг. 6А-С показаны несколько новых примерных вариантов осуществления для сигнализации параметров ARC. Как отмечено для каждого из вариантов осуществления, они имеют определенные преимущества с точки зрения эффективности кодирования, сложности и архитектуры. Стандарт или технология видеокодирования могут реализовывать один или несколько из этих вариантов осуществления, а также могут включать варианты осуществления, известные из сравнительного уровня техники, для сигнализации параметров ARC. Сравнительные варианты осуществления включают примеры, проиллюстрированные на фиг. 5А-В. Новые варианты осуществления могут не быть взаимоисключающими и, возможно, могут быть включены в стандарт или технологию, которая также включает варианты осуществления из уровня техники, так что любой из них может использоваться на основе потребностей применения, задействованной технологии стандартов или выбора кодировщика.
[114] Классы параметров ARC могут включать: (1) коэффициенты увеличения и/или уменьшения дискретизации, отдельные или объединенные в измерениях X и Y, или (2) коэффициенты увеличения и/или уменьшения дискретизации с добавлением временного измерения, указывающие на постоянную скорость увеличения/уменьшения данного количества изображений. Любой из двух вышеупомянутых может включать в себя кодирование или декодирование одного или нескольких элементов синтаксиса, которые могут указывать на таблицу, содержащую фактор (ы). В вариантах осуществления такие элементы синтаксиса могут быть короткими по длине.
[115] «Разрешение» может относиться к разрешению в измерении X или Y, в единицах отсчетов, блоков, макроблоков, CU или любой другой подходящей степени детализации входного изображения, выходного изображения, опорного изображения, кодированного изображения, объединенного или по отдельности. Если существует более одного разрешения (например, одно для входного изображения, одно для опорного изображения), то в некоторых случаях один набор значений может быть выведен из другого набора значений. Разрешение может быть ограничено, например, с помощью флагов. Более подробный пример разрешения представлен ниже.
[116] Координаты «деформации», аналогичные тем, которые используются в Приложении Р Н.263, могут иметь подходящую степень детализации, как описано выше. Приложение Р Н.263 определяет один эффективный способ кодирования таких координат деформации, но, возможно, также могут использоваться другие, потенциально более эффективные способы. Например, реверсивное кодирование Хаффмана с переменной длиной координат деформации согласно Приложению Р может быть заменено двоичным кодированием подходящей длины, где длина двоичного кодового слова может быть, например, получена из максимального размера изображения, возможно, умноженного на определенный коэффициент и смещенного на определенное значение, чтобы учесть «деформацию» за пределами границ максимального размера изображения.
[117] Что касается параметров фильтра с повышающей и/или понижающей дискретизацией, в простейшем случае может быть только один фильтр для повышающей и/или понижающей дискретизации. Однако в некоторых случаях может быть предпочтительно обеспечить большую гибкость в конструкции фильтра, которая может быть реализована путем сигнализации параметров фильтра. Такие параметры могут быть выбраны с помощью индекса в списке возможных конструкций фильтров, фильтр может быть полностью определен (например, с помощью списка коэффициентов фильтра с использованием подходящих методов энтропийного кодирования), и/или фильтр может быть выбран неявно с помощью передаточных чисел повышающей и/или понижающей дискретизации, которые сигнализируются в соответствии с любым из механизмов, упомянутых выше, и так далее.
[118] Далее в описании предполагается примерный случай, когда кодирование конечного набора коэффициентов повышающей и/или понижающей дискретизации (один и тот же коэффициент должен использоваться как в измерениях X, так и Y), которые указываются посредством кодового слова. Это кодовое слово может быть предпочтительно закодировано переменной длины, например, с использованием кода Ext-Golomb, общего для определенных элементов синтаксиса в спецификациях кодирования видео, таких как Н.264 и Н.265. Одно подходящее сопоставление значений для коэффициентов повышающей и/или понижающей дискретизации может, например, соответствовать нижеследующей таблице 1.
[119] Многие аналогичные сопоставления могут быть разработаны в соответствии с потребностями приложения и возможностями механизмов повышения и понижения дискретизации, доступных в технологии или стандарте сжатия видео. Таблица может быть расширена до большего количества значений. Значения также могут быть представлены механизмами энтропийного кодирования, отличными от кодов Ext-Golomb (например, с использованием двоичного кодирования), которые могут иметь определенные преимущества, когда коэффициенты передискретизации представляли интерес за пределами самих механизмов обработки видео (прежде всего кодировщика и декодера), например, с помощью MANE. Следует отметить, что для (предположительно) наиболее распространенного случая, когда изменение разрешения не требуется, можно выбрать код Ext-Golomb, который является коротким (например, только один бит, как, например, показано во второй строке таблицы 1), который может иметь преимущество в эффективности кодирования по сравнению с использованием двоичных кодов для наиболее распространенного случая.
[120] Количество записей в таблице, а также их семантика могут быть полностью или частично настраиваемыми. Например, основная структура таблицы может быть передана в «высоком» наборе параметров, таком как последовательность или набор параметров декодера. В качестве альтернативы или в дополнение, одна или несколько таких таблиц могут быть определены в технологии или стандарте видеокодирования и могут быть выбраны, например, с помощью декодера или набора параметров последовательности.
[121] Ниже приведено описание того, как коэффициент повышающей и/или понижающей дискретизации (информация ARC), закодированный, как описано выше, может быть включен в технологию кодирования видео или стандартный синтаксис. Подобные соображения могут применяться к одному или нескольким кодовым словам, управляющим фильтрами повышающей/понижающей дискретизации. Ниже также приводится описание того, когда могут потребоваться сравнительно большие объемы данных для фильтра или других структур данных.
[122] Как показано на фиг. 5А, Приложение Р Н.263 включает информацию (502) ARC в форме четырех координат деформации в заголовок изображения (501), в частности, в расширение заголовка Н.263 PLUSPTYPE (503). Такая конструкция может быть разумной, когда (а) имеется доступный заголовок изображения и (б) ожидаются частые изменения информации ARC. Однако служебные данные при использовании сигнализации в стиле Н.263 могут быть довольно высокими, и коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь временный характер.
[123] Как показано на фиг. 5 В, JVCET-M135-v1 включает в себя справочную информацию ARC (505) (индекс), расположенную в наборе параметров изображения (504), которая индексирует таблицу (506), включая целевые разрешения, которая находится внутри набора параметров последовательности (507). Размещение возможного разрешения в таблице (506) в наборе параметров последовательности (507) может быть оправдано использованием SPS (507) в качестве точки согласования функциональной совместимости во время обмена возможностями. Разрешение может изменяться в пределах, установленных значениями в таблице (506) от изображения к изображению, путем обращения к соответствующему набору (504) параметров изображения.
[124] Как показано на фиг. 6А-С, следующие варианты осуществления настоящего изобретения могут передавать информацию ARC в битовом потоке видео, например, в декодер настоящего изобретения. Каждый из этих вариантов осуществления имеет определенные преимущества по сравнению с уровнем техники, описанным выше. Варианты осуществления могут одновременно присутствовать в одной и той же технологии или стандарте видеокодирования.
[125] В варианте осуществления с фиг. 6А, информация ARC (509), такая как коэффициент переднекретизации (масштабирования), может присутствовать в заголовке (508), таком как, например, заголовок слайса, заголовок GOB, заголовок тайла или заголовок группы тайлов. В качестве примера фиг. 6А иллюстрирует заголовок (508) как заголовок группы тайлов. Такая конфигурация может быть адекватной, если информация ARC мала, например, одиночное кодовое слово переменной длины ue (v) или кодовое слово фиксированной длины из нескольких битов, например, как показано в таблице 1. Наличие информации ARC непосредственно в заголовке группы тайлов имеет дополнительное преимущество, заключающееся в том, что информация ARC может быть применима к субизображению, представленному, например, группой тайлов, соответствующей заголовку группы тайлов, а не ко всему изображению. Кроме того, даже если технология или стандарт сжатия видео использует только адаптивные изменения разрешения всего изображения (в отличие, например, от изменений адаптивного разрешения на основе групп тайлов), размещение информации ARC в заголовке группы тайлов (например, в Н.263 -style picture header) имеет определенные преимущества с точки зрения устойчивости к ошибкам. Хотя приведенное выше описание описывает информацию (509) ARC, присутствующую в заголовке группы тайлов, следует понимать, что приведенное выше описание может аналогичным образом применяться в случаях, когда информация (509) ARC присутствует, например, в заголовке слайса, заголовке GOB или заголовке тайла.
[126] В том же или другом варианте осуществления со ссылкой на фиг. 6 В, информация (512) ARC сама по себе может присутствовать в соответствующем наборе (511) параметров, таком как, например, набор параметров изображения, набор параметров заголовка, набор параметров тайла, набор параметров адаптации и так далее. В качестве примера фиг. 6В иллюстрирует набор параметров (511) как набор параметров адаптации (APS). Объем этого набора параметров может преимущественно быть не больше изображения. Например, областью набора параметров может быть группа тайлов. Использование информации ARC (512) может быть неявным посредством активации соответствующего набора параметров. Например, когда технология или стандарт видеокодирования рассматривают только ARC на основе изображения, тогда набор параметров изображения или эквивалент может быть подходящим в качестве соответствующего набора параметров.
[127] В том же или другом варианте осуществления с фиг. 6С, справочная информация (513) ARC может присутствовать в заголовке (514) группы тайлов или аналогичной структуре данных. Справочная информация ARC (513) может относиться к подмножеству информации ARC (515), доступной в наборе (516) параметров, с областью действия за пределами одного изображения. Например, набор параметров (516) может быть набором параметров последовательности (SPS) или набором параметров декодера (DPS).
[128] Дополнительный уровень косвенного обращения подразумевает активацию PPS из заголовка группы тайлов, PPS или SPS, которые используются в JVET-M0135-v1, может быть ненужным, поскольку наборы параметров изображения, как и наборы параметров последовательности, могут использоваться для согласования возможностей или объявления. Однако, если информация ARC должна быть применима к субизображению, которое также представлено, например, группой (группами) тайлов, набором параметров (например, набором параметров адаптации или набором параметров заголовка) с областью активации, ограниченной до группа тайлов может быть лучшим выбором. Кроме того, если информация ARC имеет более чем пренебрежимо малый размер - например, содержит информацию управления фильтром, такую как многочисленные коэффициенты фильтра, - тогда параметр может быть лучшим выбором, чем использование заголовка непосредственно с точки зрения эффективности кодирования, поскольку эти настройки могут быть повторно использованы будущими изображениями или субизображениями, ссылаясь на тот же набор параметров.
[129] При использовании набора параметров последовательности или другого набора параметров более высокого уровня с областью действия, охватывающей множество изображений, могут применяться определенные соображения:
[130] (1) Набор (516) параметров для хранения информации (515) ARC в таблице может в некоторых случаях быть набором параметров последовательности, но в других случаях может быть преимущественно набором параметров декодера. Набор параметров декодера может иметь область активации нескольких CVS, а именно кодированный видеопоток, т.е. все кодированные биты видео от начала до разрыва сессии. Такой объем может быть более подходящим, потому что возможные коэффициенты ARC могут быть функцией декодера, возможно, реализованной в аппаратном обеспечении, а аппаратные функции, как правило, не меняются с любой CVS (которая, по крайней мере, в некоторых развлекательных системах представляет собой группу изображений длиной одну секунду или меньше). Тем не менее, некоторые варианты осуществления могут включать информационную таблицу ARC в набор параметров последовательности, как описано в данном документе, в частности, в связи с пунктом (2) ниже.
[131] (2) Справочная информация ARC (513) может быть предпочтительно помещена непосредственно в заголовок (514) (например, заголовок изображения/слайса/GOB/группы тайлов; далее заголовок группы тайлов), а не в набор параметров изображения, как в JVCET- M0135-v1, причина в следующем: когда кодировщик хочет изменить одно значение в наборе параметров изображения, такое как, например, справочная информация ARC, тогда кодеру, возможно, придется создать новый PPS и ссылаться на этот новый PPS. В случае, если изменяется только справочная информация ARC, но другая информация, такая как, например, информация матрицы квантования в PPS, остается, такая информация может иметь значительный размер, и ее необходимо будет повторно передать, чтобы сделать новый PPS завершенным. Поскольку справочная информация ARC может быть одним кодовым словом, например индексом в таблице информации ARC, которое будет единственным изменяющимся значением, было бы громоздко и расточительно повторно передавать, например, всю информацию матрицы квантования. Соответственно, размещение справочной информации ARC непосредственно в заголовке (например, заголовке (514)) может быть значительно лучше с точки зрения эффективности кодирования, поскольку можно избежать косвенного обращения через PPS, как предлагается в JVET-M0135-v1. Кроме того, размещение опорной информации ARC в PPS имеет дополнительный недостаток, заключающийся в том, что информация ARC, на которую ссылается опорная информация ARC, обязательно должна применяться ко всему изображению, а не к субизображению, поскольку объемом активации набора параметров изображения является изображение.
[132] В том же или другом варианте осуществления сигнализация параметров ARC может следовать подробному примеру, как показано на фиг. 7А-В. Фиг. 7А-В в синтаксических диаграммах. Обозначения таких синтаксических диаграмм примерно соответствуют программированию в стиле С.Строки, выделенные жирным шрифтом, указывают на элементы синтаксиса, присутствующие в потоке битов, а строки без жирного шрифта часто указывают на поток управления или установку переменных.
[133] В качестве примера синтаксической структуры заголовка, применимого к (возможно, прямоугольной) части изображения, заголовок группы тайлов (600) может условно содержать, переменной длины, закодированный Exp-Golomb синтаксический элемент dec_pic_size_idx (602) (выделен жирным шрифтом). Присутствие этого синтаксического элемента в заголовке (600) группы тайлов может быть ограничено использованием адаптивного разрешения (603). Здесь значение флага адаптивного разрешения не выделено жирным шрифтом, что означает, что флаг присутствует в битовом потоке в той точке, где он встречается на синтаксической диаграмме. Тот факт, используется ли адаптивное разрешение для этого изображения или его частей, можно быть сигнализировано в любой синтаксической структуре высокого уровня внутри или вне битового потока. В примере с фиг. 7А-В адаптивное разрешение сигнализируется в наборе параметров последовательности (610), как показано ниже.
[134] Фиг. 7В иллюстрирует отрывок из набора параметров последовательности
(610). Первый показанный элемент синтаксиса - это adaptive_pic_resolution_change_flag (611). Когда это правда, такой флаг может указывать на использование адаптивного разрешения, которое, в свою очередь, может требовать определенной управляющей информации. В примере такая управляющая информация присутствует условно на основе значения флага на основе оператора if () (612) в наборе параметров последовательности (610) и заголовке группы тайлов (600).
[135] Когда используется адаптивное разрешение, в этом примере закодировано выходное разрешение (613) в единицах отсчетов. Выходное разрешение (613) в этом примерном варианте осуществления относится к обоим синтаксическим элементам output_pic_width_ in_luma_samples и output_pic_height_in_luma_samples, которые вместе могут определять разрешение выходного изображения. В другом месте технологии или стандарта кодирования видео могут быть определены определенные ограничения для любого значения. Например, определение уровня может ограничивать количество общих выходных отсчетов, которые могут быть произведением значений двух вышеуказанных элементов синтаксиса. Также, определенные технологии или стандарты кодирования видео, или внешние технологии или стандарты, такие как, например, системные стандарты, могут ограничивать диапазон нумерации (например, одно или оба измерения должны делиться на степень 2) или соотношение ширины и высоты (например, ширина и высота должны быть в таком соотношении, как 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций или по другим причинам.
[136] В некоторых вариантах применения может быть целесообразно, чтобы кодер инструктировал декодер использовать определенный размер опорного изображения, а не неявно предполагать размер как размер выходного изображения. В этом примере элемент синтаксиса reference_pic_size_present_flag (614) блокирует условное присутствие размеров (615) опорного изображения (опять же, число относится как к ширине, так и к высоте в примерном варианте осуществления).
[137] Фиг. 7 В дополнительно иллюстрирует таблицу возможной ширины и высоты изображения декодирования. Такая таблица может быть выражена, например, указанием таблицы (616) (например, синтаксическим элементом num_dec_pic_size_in_luma_samples_minus1). «Минус 1» элемента синтаксиса может относиться к интерпретации значения этого элемента синтаксиса. Например, если закодированное значение элемента синтаксиса равно нулю, присутствует одна запись в таблице. Если кодированное значение равно пяти, в таблице присутствуют шесть записей. Для каждой «строки» в таблице ширина и высота декодированного изображения затем включаются в синтаксис как записи таблицы (617).
[138] Представленные записи (617) таблицы могут быть проиндексированы с использованием синтаксического элемента dec_pic_size_idx (602) в заголовке (600) группы тайлов, тем самым допуская различные декодированные размеры - в сущности, коэффициенты масштабирования - для каждой группы тайлов.
[139] Определенные технологии или стандарты видеокодирования, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм пере дискретизации опорного изображения (которая может сигнализироваться совершенно иначе, чем варианты осуществления настоящего изобретения) в сочетании с временной масштабируемостью, чтобы обеспечить пространственную масштабируемость. В частности, некоторые опорные изображения могут подвергаться повышающей дискретизации с использованием технологий в стиле ARC до более высокого разрешения для формирования базы слоя пространственного улучшения. Такие изображения с повышенной дискретизацией можно было бы улучшить с помощью обычных механизмов прогнозирования с высоким разрешением, чтобы добавить детали.
[140] Варианты осуществления изобретения могут использоваться в такой среде. В некоторых случаях, в том же или другом варианте осуществления, значение в заголовке единицы NAL, например поле временного идентификатора, может использоваться для указания не только временного, но и пространственного слоя. Это дает определенные преимущества для определенных систем; например, существующие выбранные блоки пересылки (SFU), созданные и оптимизированные для пересылки, выбранной на временном слое на основе значения временного идентификатора заголовка блока NAL, могут использоваться без модификации для масштабируемых сред. Чтобы сделать это возможным, варианты осуществления настоящего изобретения могут включать в себя отображение между размером кодированного изображения и временным слоем, которое должно указываться полем временного идентификатора в заголовке блока NAL.
[141] В некоторых технологиях кодирования видео блок доступа (AU) может относиться к кодированным изображениям, слайсам, мозичным элементам, блокам NAL и т.д., которые были захвачены и скомпонованы в соответствующий битовый поток изображения/слайса/ тайлов /блока NAL в данный момент времени. Таким моментом времени может быть время композиции.
[142] В HEVC и некоторых других технологиях кодирования видео значение счетчика порядка изображений (РОС) может использоваться для указания выбранного опорного изображения среди множества опорных изображений, хранящихся в буфере декодированных изображений (DPB). Когда единица доступа (AU) содержит одно или более изображений, слайсов или тайлов, каждое изображение, слайс или тайл, принадлежащие одной и той же AU, могут нести одно и то же значение РОС, из которого можно сделать вывод, что они были созданы из содержимого то же времени компоновки. Другими словами, можно определить, что два изображения/слайса/ тайлов принадлежат одному и тому же AU и имеют одинаковое время композиции в сценарии, где два изображения/слайса/ тайлов несут одно и то же заданное значение РОС. И наоборот, два изображения/слайса/тайла, имеющие разные значения РОС, могут указывать, что эти изображения/слайсы/ тайлы принадлежат разным AU и имеют разное время композиции.
[143] В варианте осуществления изобретения вышеупомянутая жесткая взаимосвязь может быть ослаблена, поскольку блок доступа может содержать изображения, слайсы или тайлы с разными значениями РОС. Допуская различные значения РОС в AU, становится возможным использовать значение РОС для идентификации потенциально независимо декодируемых изображений/слайсов/тайлов с идентичным временем представления. Соответственно, вариант осуществления настоящего изобретения может обеспечивать поддержку множества масштабируемых слоев без изменения сигнализации выбора опорных изображений (например, сигнализации набора опорных изображений или сигнализации списка опорных изображений), как более подробно описано ниже.
[144] В варианте осуществления по-прежнему желательно иметь возможность идентифицировать AU, которому принадлежит изображение/слайс/тайл, по отношению к другому изображению/слайсу/тайлу, имеющим другие значения РОС, только на основе значения РОС. Это может быть достигнуто в вариантах осуществления, описанных ниже.
[145] В тех же или других вариантах осуществления счетчик единиц доступа (AUC) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок единицы NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Значение AUC может использоваться, чтобы идентифицировать, какие единицы NAL, изображения, слайсы или тайлы принадлежат данной AU. Значение AUC может соответствовать отдельному моменту времени компоновки. Значение AUC может быть кратным значению РОС. Путем деления значения РОС на целочисленное значение может быть вычислено значение AUC. В некоторых случаях операции деления могут накладывать определенную нагрузку на реализации декодеров. В таких случаях небольшие ограничения в пространстве нумерации значений AUC могут позволить замену операции деления операциями сдвига, выполняемыми вариантами осуществления настоящего изобретения. Например, значение AUC может быть равно значению старшего значащего бита (MSB) диапазона значений РОС.
[146] В том же варианте осуществления значение цикла РОС на AU (например, элемент синтаксиса рос_cycle_au) может сигнализироваться в высокоуровневой структуре синтаксиса, такой как заголовок блока NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или разделитель AU. Элементы синтаксиса рос cycle au могут указывать, сколько различных и последовательных значений РОС может быть связано с одним и тем же AU. Например, если значение рос_cycle_au равно 4, изображения, слайсы или тайлы со значением РОС, равным 0-3 включительно, связаны с AU со значением AUC, равным 0, а изображения, слайсы или тайлы со значением РОС, равным 4-7 включительно, связаны с AU со значением AUC, равным 1. Следовательно, значение AUC может быть выведено вариантами осуществления настоящего изобретения посредством деления значения РОС на значение poc_cycle_au.
[147] В том же или другом варианте осуществления значение poc_cycle_au может быть получено из информации, расположенной, например, в наборе параметров видео (VPS), которая идентифицирует количество пространственных слоев или слоев SNR в кодированной видеопоследовательности. Такая возможная взаимосвязь кратко описывается ниже. Хотя получение, как описано выше, может сэкономить несколько битов в VPS и, следовательно, может повысить эффективность кодирования, может быть предпочтительным явно кодировать poc cycle au в соответствующей синтаксической структуре высокого уровня иерархически ниже набора параметров видео, чтобы иметь возможность минимизировать рос_cycle_au для данной небольшой части битового потока, такого как изображение. Эта оптимизация может сэкономить больше битов, чем может быть сохранено посредством процесса получения, описанного выше, потому что значения РОС (и/или значения элементов синтаксиса, косвенно относящиеся к РОС) могут быть кодированы в синтаксических структурах низкого уровня.
[148] В том же или другом варианте осуществления фиг. 9А иллюстрирует пример таблицы синтаксиса, чтобы сигнализировать элемент синтаксиса vps_poc_cycle_au (632) в VPS (630) или SPS, который указывает рос_cycle_au, используемый для всех изображений/слайсов в кодированной видеопоследовательности, а фиг. 9В иллюстрирует пример таблицы синтаксиса, чтобы сигнализировать элемент синтаксиса slice_poc_cycle_au (642), который указывает рос_cycle_au текущего слайса в заголовке слайса (640). Если значение РОС увеличивается равномерно для каждого AU, vps_contant_poc_cycle_per_au (634) в VPS (630) устанавливается равным 1, а vps_poc_cycle_au (632) сигнализируется в VPS (630). В этом случае slice_poc_cycle_au (642) явно не сигнализируется, и значение AUC для каждой AU вычисляется путем деления значения РОС на vps_poc_cycle_au (632). Если значение РОС не увеличивается равномерно на AU, vps contant_poc_cycle_per_au (634) в VPS (630) устанавливается равным 0. В этом случае vps_access_unit_cnt не сигнализируется, в то время как slice_access_unit_cnt сигнализируется в заголовке слайса для каждого слайса или изображения. Каждый слайс или изображение может иметь различное значение slice_access_unit_cnt. Значение AUC для каждой AU вычисляется путем деления значения РОС на slice_poc_cycle_au (642).
[149] Фиг. 10 иллюстрирует блок-схему для описания соответствующей последовательности операций варианта осуществления. Например, декодер (или кодер) анализирует VPS/SPS и определяет, является ли цикл РОС на AU постоянным или нет (652). Затем декодер (или кодер) принимает решение (654) на основании того, является ли цикл РОС на AU постоянным в кодированной видеопоследовательности. То есть, если цикл РОС на AU является постоянным, декодер (или кодер) вычисляет значение счетчика единиц доступа из значения poc cycle au уровня последовательности и значения РОС (656). В качестве альтернативы, если цикл РОС на AU не является постоянным, декодер (или кодер) вычисляет значение счетчика единиц доступа из значения рос_cycle_au уровня изображения и значения РОС (658). В любом случае декодер (или кодер) может затем повторить процесс, например, проанализировав VPS / SPS и определив, является ли цикл РОС на AU постоянным или нет (662).
[150] В тех же или других вариантах осуществления, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени декодирования или вывода. Следовательно, без какой-либо зависимости взаимного анализа/декодирования между изображениями, слайсами или тайлами в одном и том же AU, все или подмножество изображений, слайсов или тайлов, связанных с одним и тем же AU, могут быть декодированы параллельно и могут быть выведены в тот же экземпляр времени.
[151] В тех же или других вариантах осуществления, даже если значение РОС изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени компоновки/отображения. Когда время компоновки содержится в формате контейнера, даже если изображения соответствуют разным AU, если изображения имеют одинаковое время компоновки, изображения могут отображаться в один и тот же момент времени.
[152] В тех же или других вариантах осуществления каждое изображение, слайс или тайл может иметь один и тот же временной идентификатор (например, temporal_id синтаксического элемента) в одном и том же AU. Все или субнабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с одним и тем же временным субслоем. В тех же или других вариантах осуществления каждое изображение, слайс или тайл может иметь одинаковый или другой идентификатор пространственного слоя (например, layer_id синтаксического элемента) в одном и том же AU. Все или субнабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с тем же или другим пространственным слоем.
[153] Фиг. 8 иллюстрирует пример структуры видеопоследовательности (680) с комбинацией temporal id, layer id и значений РОС и AUC с адаптивным изменением разрешения. В этом примере изображение, слайс или тайл в первом AU с AUC=0 может иметь temporal id=0 и layer id=0 или 1, в то время как изображение, слайс или тайл во втором AU с AUC=1 может иметь temporal id.=1 и layer id=0 или 1 соответственно. Значение РОС увеличивается на 1 для каждого изображения независимо от значений temporal id и layer id. В этом примере значение poc_cycle_au может быть равно 2. В варианте осуществления значение poc_cycle_au может быть установлено равным количеству слоев (пространственной масштабируемости). В этом примере значение РОС увеличивается на 2, а значение AUC увеличивается на 1. В качестве примера фиг. 8 иллюстрирует в пределах первого AU (AUC=0) 1-слайс (681), имеющий РОС 0, TID 0 и LID 0, и В-слайс (682), имеющий РОС 1, TID 0 и LID. 1. Во второй AU (AUC=1) фиг. 8 иллюстрирует В-слайс (683), имеющий РОС 2, TID 1 и LID 0, и В-слайс (684), имеющий РОС 3, TID 1 и LID 1. В пределах третьей AU (AUC=3) на фиг. 8 иллюстрирует В-слайс (685), имеющий РОС 4, TID 0 и LID 0, и В-слайс (686), имеющий РОС 5, TID 0 и LID 1.
[154] В вышеупомянутых вариантах осуществления все или субнабор структуры межкадрового или межслойного предсказания и индикация опорного изображения могут поддерживаться с использованием сигнализации существующего набора опорных изображений (RPS) в HEVC или сигнализации списка опорных изображений (RPL). В RPS или RPL выбранное опорное изображение указывается посредством сигнализации значения РОС или значения дельты РОС между текущим изображением и выбранным опорным изображением. В вариантах осуществления настоящего изобретения RPS и RPL могут использоваться для указания структуры предсказания интер-изображения или интер-слоя без изменения сигнализации, но со следующими ограничениями. Если значение temporal_id опорного изображения больше, чем значение temporal_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний. Если значение layer_id опорного изображения больше, чем значение layer_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний.
[155] В том же и других вариантах осуществления масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть отключено для множества изображений в единице доступа. Следовательно, хотя каждое изображение может иметь различное значение РОС в блоке доступа, вектор движения нельзя масштабировать и использовать для временного предсказания вектора движения в блоке доступа, поскольку опорное изображение с другим РОС в одном и том же AU может рассматриваться как опорное изображение, имеющее тот же момент времени. Следовательно, в варианте осуществления функция масштабирования вектора движения может возвращать 1, когда опорное изображение принадлежит AU, ассоциированному с текущим изображением.
[156] В том же и других вариантах осуществления масштабирование вектора движения на основе разности РОС для временного предсказания вектора движения может быть опционально отключено для множества изображений, когда пространственное разрешение опорного изображения отличается от пространственного разрешения текущего изображения. Когда масштабирование вектора движения разрешено, вектор движения может масштабироваться на основе как разности РОС, так и отношения пространственного разрешения между текущим изображением и опорным изображением.
[157] В том же или другом варианте осуществления вектор движения может масштабироваться на основе разности AUC вместо разности РОС для временного предсказания вектора движения, особенно когда poc_cycle_au имеет неоднородное значение (когда vps_contant_poc_cycle_per_au = 0). В противном случае (когда vps_contant_poc_cycle_per_au == 1) масштабирование вектора движения на основе разности AUC может быть идентично масштабированию вектора движения на основе разности РОС.
[158] В том же или другом варианте осуществления, когда вектор движения масштабируется на основе разности AUC, опорный вектор движения в том же AU (с тем же значением AUC) с текущим изображением не масштабируется на основе разности AUC и используется для предсказания вектора движения без масштабирования или с масштабированием на основе отношения пространственного разрешения между текущим изображением и опорным изображением.
[159] В том же и других вариантах осуществления значение AUC используется для идентификации границы AU и используется для операции гипотетического эталонного декодера (HRD), для которой требуется синхронизация ввода и вывода с детализацией AU. В большинстве случаев декодированное изображение с самым высоким слоем в AU может выводиться для отображения. Значение AUC и значение layer_id могут использоваться для идентификации выходного изображения.
[160] В варианте осуществления изображение может содержать одно или несколько субизображений. Каждое субизображения может охватывать локальную область или всю область изображения. Область, поддерживаемая субизображением, может перекрываться или не перекрываться с областью, поддерживаемой другим субизображением. Область, составленная из одного или более субизображений, может покрывать или не покрывать всю область изображения. Если изображение состоит из субизображения, область, поддерживаемая субизображением, может быть идентична области, поддерживаемой изображением.
[161] В том же варианте осуществления субизображение может быть закодировано способом кодирования, аналогичным способу кодирования, используемому для кодированного изображения. Субизображение может быть независимо закодировано или может быть закодировано в зависимости от другого субизображения или кодированного изображения. Субизображение может иметь или не иметь какую-либо зависимость парсинга от другого субизображения или кодированного изображения.
[162] В том же варианте осуществления кодированное субизображение может содержаться в одном или более слоев. Кодированное субизображение в слое может иметь другое пространственное разрешение. Исходное субизображение может подвергаться пространственной передискретизации (повышающей или понижающей дискретизации), кодироваться с различными параметрами пространственного разрешения и содержаться в битовом потоке, соответствующем слою.
[163] В том же или другом варианте осуществления субизображение с (W, Н), где W обозначает ширину субизображения, а Н обозначает высоту субизображения, соответственно, может быть кодирован и содержаться в кодированном битовом потоке, соответствующем слою 0, в то время как субизображение с повышающей (или понижающей дискретизацией) с исходным пространственным разрешением, с (W*Sw, k, Н*Sh, k)3 может быть закодировано и содержаться в кодированном битовом потоке, соответствующем слою k, где Sw, k, Sh, k указывают коэффициенты передискретизации по горизонтали и вертикали. Если значения Sw, k, Sh, k больше 1, передискретизация равна повышающей дискретизации. В то время как, если значения Sw, k, Sh, k меньше 1, передискретизация соответствует понижающей дискретизации.
[164] В том же или другом варианте осуществления кодированное субизображение в слое может иметь визуальное качество, отличное от качества кодированного субизображения в другом слое в том же субизображении или другом субизображении. Например, субизображение i в слое n кодируется параметром квантования Qi, n, тогда как субизображение j в слое m кодируется параметром квантования Qj, m.
[165] В том же или другом варианте осуществления кодированное субизображение в слое может быть декодировано независимо, без какой-либо зависимости от парсинга или декодирования, из кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно независимо декодировать без ссылки на другой слой субизображения той же локальной области, является независимым слоем субизображения. Кодированное субизображение в независимом слое субизображения может иметь или не иметь зависимость декодирования или парсинга от ранее кодированного субизображения в том же слое субизображения, но кодированное субизображение может не иметь никакой зависимости от кодированного изображения в другом слое субизображения.
[166] В том же или другом варианте осуществления кодированное субизображение в слое может быть декодировано зависимо, с любой зависимостью от парсинга или декодирования, из кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно зависимо декодировать со ссылкой на другой слой субизображения той же локальной области, является зависимым слоем субизображения. Кодированное субизображение в зависимом субизображении может ссылаться на кодированное субизображение, принадлежащее тому же субизображению, ранее кодированное субизображение в том же слое субизображения или на оба опорных субизображения.
[167] В том же или другом варианте осуществления кодированное субизображение содержит один или несколько независимых слоев субизображений и один или несколько зависимых слоев субизображений. Однако по меньшей мере одно независимое субизображение может присутствовать для кодированного субизображения. Слой независимого субизображения может иметь значение идентификатора уровня (например, layer_id синтаксического элемента), которое может присутствовать в заголовке блока NAL или другой синтаксической структуре высокого уровня, равное 0. Слой субизображения с layer_id, равным 0, может быть базовым слоем субизображения.
[168] В том же или другом варианте осуществления изображение может содержать одно или несколько субизображений переднего плана и одно субизображение фона. Область, поддерживаемая субизображением заднего плана, может быть равна области изображения. Область, поддерживаемая субизображением переднего плана, может перекрываться с областью, поддерживаемой субизображением заднего плана. Субзображение заднего плана может быть базовым слоем субизображения, тогда как субизображение переднего плана может быть не-базовым (улучшающим) слоем субизображения. Один или несколько неосновных слоев субизображения могут ссылаться на один и тот же базовый слой для декодирования. Каждый не-базовый слой субизображения с layer_id, равным а, может ссылаться на не-базовый слой субизображения с layer_id, равным b, где а больше b.
[169] В том же или другом варианте осуществления изображение может содержать одно или несколько субизображений переднего плана с субизображением фона или без него. Каждое субизображение может иметь свой собственный базовый слой субизображения и один или более не-базовых (улучшающих) слоев. На каждый базовый слой субизображения может ссылаться один или более не-базовых слоев субизображения. Каждый не-базовый слой субизображения с layer_id, равным а, может ссылаться на небазовый слой субизображения с layer_id, равным b, где а больше b.
[170] В том же или другом варианте осуществления изображение может содержать одно или несколько субизображений переднего плана с субизображением фона или без него. На каждое кодированное субизображение в (базовом или не-базовом) слое субизображения может ссылаться одно или более субизображений не-базового слоя, принадлежащих одному и тому же субизображению, и одно или более субизображений не-базового слоя, которые не принадлежат одному и тому же субизображению.
[171] В том же или другом варианте осуществления изображение может содержать одно или несколько субизображений переднего плана с субизображением фона или без него. Субизображение в слое а может быть дополнительно разделено на множество субизображений в этом же слое. Одно или более кодированных субизображений в слое b могут ссылаться на разделенное субизображение в слое а.
[172] В том же или другом варианте осуществления кодированная видеопоследовательность (CVS) может быть группой кодированных изображений. CVS может содержать одну или несколько последовательностей кодированных субизображений (CSPS), где CSPS может быть группой кодированных субизображений, покрывающих одну и ту же локальную область изображения. CSPS может иметь то же или другое временное разрешение, что и кодированная видеопоследовательность.
[173] В том же или другом варианте осуществления CSPS может быть кодирована и содержаться в одном или более слоях. CSPS может содержать или состоять из одного или нескольких слоев CSPS. Декодирование одного или более слоев CSPS, соответствующих CSPS, может восстанавливать последовательность субизображений, соответствующих одной и той же локальной области.
[174] В том же или другом варианте осуществления количество слоев CSPS, соответствующих CSPS, может быть идентичным или отличаться от количества слоев CSPS, соответствующих другой CSPS.
[175] В том же или другом варианте осуществления слой CSPS может иметь временное разрешение (например, частоту кадров), отличное от другого слоя CSPS. Исходная (несжатая) последовательность субизображений может подвергаться временной передискретизации (повышающей или понижающей дискретизации), кодироваться с различными параметрами временного разрешения и содержаться в битовом потоке, соответствующем слою.
[176] В том же или другом варианте осуществления последовательность субизображений с частотой кадров F может быть закодирована и содержаться в кодированном битовом потоке, соответствующем слою 0, в то время как последовательность субизображения с повышенной (или пониженной) дискретизацией по времени из исходной последовательности субизображений, причем F* St,k может быть закодировано и содержаться в кодированном битовом потоке, соответствующем слою k, где St, k указывает коэффициент временной дискретизации для слоя k. Если значение St, k больше 1, процесс временной передискретизации равен преобразованию с повышением частоты кадров. Принимая во внимание, что если значение St, k меньше 1, процесс временной пере дискретизации равен преобразованию с понижением частоты кадров.
[177] В том же или другом варианте осуществления, когда на субизображения с слоем CSPS а ссылается субизображение с слоем CSPS b для компенсации движения или любого межслойного предсказания, если пространственное разрешение слоя CSPS а отличается от пространственного разрешения слоя CSPS b, декодированные пиксели в слое CSPS а пересэмплируются и используются в качестве опорных. Для процесса передискретизации может потребоваться фильтрация с повышающей или понижающей дискретизацией.
[178] На фиг. 11 показан примерный видеопоток, включающий в себя CSPS видео заднего плана с layer_id, равным 0, и множество слоев CSPS переднего плана. В то время как кодированная субизображение может содержать один или несколько улучшающих слоев CSPS (704), фоновая область, которая не принадлежит какому-либо слою CSPS переднего плана, может содержать базовый слой (702). Базовый слой (702) может содержать фоновую область и области переднего плана, тогда как улучшающий CSPS-слой (704) содержит область переднего плана. Случшающий слой CSPS (704) может иметь лучшее визуальное качество, чем базовый слой (702), в той же области. Улучшающий слой CSPS (704) может ссылаться на восстановленные пиксели и векторы движения базового слоя (702), соответствующие одной и той же области.
[179] В том же или другом варианте осуществления битовый поток видео, соответствующий базовому слою (702), содержится в дорожке, в то время как слои CSPS (704), соответствующие каждому субизображению, содержатся на отдельной дорожке в видеофайле.
[180] В том же или другом варианте осуществления битовый поток видео, соответствующий базовому слою (702), содержится в дорожке, в то время как слои (704) CSPS с одинаковым layer_id содержатся в отдельной дорожке. В этом примере дорожка, соответствующая слою к, включает в себя только слои (704) CSPS, соответствующие слою к.
[181] В том же или другом варианте осуществления каждый слой (704) CSPS каждого субизображения хранится на отдельной дорожке. Каждая дорожка может иметь или не иметь зависимости синтаксического анализа или декодирования от одной или нескольких других дорожек.
[182] В том же или другом варианте осуществления каждая дорожка может содержать битовые потоки, соответствующие от слоя i до слоя] слоев CSPS (704) всех или подмножества субизображений, где 0<i = j = k, где к является наивысшим слоем CSPS.
[183] В том же или другом варианте осуществления изображение содержит или состоит из одного или нескольких связанных мультимедийных данных, включая карту глубины, альфа-карту, данные трехмерной геометрии, карту занятости и т.д. Такие связанные синхронизированные мультимедийные данные могут быть разделены на один или множество субпотоков данных, каждый из которых соответствует одному субизображению.
[184] В том же или другом варианте осуществления фиг. 12 иллюстрирует пример видеоконференции, основанной на способе создания многослойных субизображений. В видеопотоке содержатся один битовый поток видео базового слоя, соответствующий изображению заднего плана, и один или более битовых потоков видео слоя улучшения, соответствующих субизображениям переднего плана. Каждый битовый поток видео слоя улучшения может соответствовать слою CSPS. На дисплее изображение, соответствующее базовому слою (712), отображается по умолчанию. Базовый слой (712) может содержать одно или несколько изображений пользователя в изображении (PIP). Когда конкретный пользователь выбирается управлением клиента, улучшающий слой CSPS (714), соответствующий выбранному пользователю, декодируется и отображается с улучшенным качеством или пространственным разрешением.
[185] Фиг. 13 иллюстрирует схему работы варианта осуществления. В варианте осуществления декодер может декодировать битовый поток видео, который включает в себя несколько слоев, таких как, например, один базовый слой и один или несколько улучшающих слоев CSPS (722). Далее декодер может идентифицировать область фона и одно или несколько субизображений переднего плана (724) и принимать решение относительно того, выбрана ли конкретная область субизображений (726). Если определенная область субизображения, соответствующая, например, пользовательской PIP, выбрана (ДА), декодер может декодировать и отобразить улучшенное субизображение, соответствующее выбранному пользователю (728). Например, декодер может декодировать и отображать изображение, соответствующее улучшающему слою CSPS (714). Если не выбрана конкретная область субизображения (НЕТ), декодер может декодировать и отображать фоновую область (730). Например, декодер может декодировать и отображать изображение, соответствующее базовому слою (712).
[186] В том же или другом варианте осуществления промежуточный блок сети (такой как маршрутизатор) может выбирать подмножество слоев для отправки пользователю в зависимости от своей полосы пропускания. Организация изображения/субизображения может использоваться для адаптации полосы пропускания. Например, если у пользователя нет полосы пропускания, маршрутизатор разделяет слои или выбирает некоторые субизображения из-за их важности или на основе используемых настроек. В варианте осуществления такие процессы могут выполняться динамически для адаптации к полосе пропускания.
[187] Фиг. 14 иллюстрирует пример использования 360-градусного видео. Когда сферическое 360-градусное изображение (742) проецируется на плоское изображение, сферическое 360-градусное изображение (742), которое проецируется, может быть разделено на множество субизображений (745) в качестве базового слоя (744). Улучшающий слой (746) конкретного одного из субизображений (745) может быть закодирован и передан клиенту. Декодер может декодировать как базовый слой (744), включая все субизображения (745), так и улучшающий слой (746) выбранного одного из субизображений (745). Когда текущее окно просмотра идентично выбранному одному из субизображений (745), отображаемое изображение может иметь более высокое качество с декодированным субизображением (745) с улучшающим слоем (746). В противном случае декодированное изображение с базовым слоем (744) может отображаться с более низким качеством.
[188] В том же или другом варианте осуществления любая информация о компоновке для отображения может присутствовать в файле как дополнительная информация (например, сообщение SEI или метаданные). Одно или более декодированных субизображений могут быть перемещены и отображены в зависимости от сигнализированной информации макета. Информация макета может быть сигнализирована сервером потоковой передачи или вещательной компанией, или может быть восстановлена сетевым объектом или облачным сервером, или может быть определена индивидуальной настройкой пользователя.
[189] В варианте осуществления, когда входное изображение делится на одну или более (прямоугольных) субобластей, каждая субобласть может кодироваться как независимый слой. Каждый независимый слой, соответствующий локальной области, может иметь уникальное значение layer_id. Для каждого независимого слоя может сигнализироваться информация о размере и местоположении субизображения. Например, может передаваться информация о размере изображения (ширина, высота) и смещении левого верхнего угла (х_offset, у_offset). Фиг. 15А иллюстрирует пример компоновки разделенных субизображений (752), фиг. 15 В иллюстрирует пример соответствующего размера субизображения и информации о положении одного из субизображений (752), и фиг. 16 иллюстрирует соответствующую структуру предсказания изображения. Информация макета, включая размер(ы) субизображения и положение(я) субизображения, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров, заголовок группы слайсов или тайлов или сообщение SEI.
[190] В том же варианте осуществления каждое субизображение, соответствующее независимому слою, может иметь свое уникальное значение РОС в пределах AU. Когда опорное изображение среди изображений, хранящихся в DPB, указывается с использованием элемента(ов) синтаксиса в структуре RPS или RPL, может использоваться значение(я) РОС каждого субизображения, соответствующего слою.
[191] В том же или другом варианте осуществления, чтобы указать структуру (межслойного) предсказания, layer_id может не использоваться, и может использоваться значение РОС (дельта).
[192] В том же варианте осуществления субизображение со значением РОС, равным N, соответствующий слою (или локальной области), может или не может использоваться в качестве опорного изображения субизображения со значением РОС, равным K + N, соответствующий тому же слою (или той же локальной области) для предсказания с компенсацией движения. В большинстве случаев значение числа К может быть равно максимальному количеству (независимых) слоев, которое может быть идентично количеству субобластей.
[193] В том же или другом варианте осуществления фиг. 17-18 иллюстрируют расширенный вариант с фиг. 15А-В и фиг. 16. Когда входное изображение разделено на множество (например, четыре) субобластей, каждая локальная область может быть кодирована с одним или более слоями. В этом случае количество независимых слоев может быть равно количеству субобластей, и один или более слоев могут соответствовать субобласти. Таким образом, каждая субобласть может быть кодирована одним или более независимых слоев и нулем или более зависимых слоев.
[194] В том же варианте осуществления, как показано на фиг. 17 входное изображение может быть разделено на четыре подобласти, включая левую верхнюю подобласть (762), верхнюю правую подобласть (763), нижнюю левую подобласть (764) и нижнюю правую подобласть (765). Правая верхняя подобласть (763) может быть закодирована как два слоя, которые являются слоем 1 и слоем 4, в то время как правая нижняя подобласть (765) могут быть закодированы как два слоя, которые являются слоем 3 и слоем 5. В этом случае слой 4 может ссылаться на слой 1 для предсказания с компенсацией движения, тогда как слой 5 может ссылаться на слой 3 для компенсации движения.
[195] В том же или другом варианте осуществления внутриконтурная фильтрация (например, деблокирующая фильтрация, адаптивная внутриконтурная фильтрация, изменение формы, двусторонняя фильтрация или любая фильтрация на основе глубокого обучения) через границу слоя может быть (опционально) отключена.
[196] В том же или другом варианте осуществления предсказание с компенсацией движения или внутриблочное копирование через границу слоя может быть (опционально) отключено.
[197] В том же или другом варианте осуществления граничное заполнение для предсказания с компенсацией движения или внутриконтурная фильтрация на границе субизображения может обрабатываться опционально. Флаг, указывающий, обрабатывается ли граничное заполнение или нет, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров (VPS, SPS, PPS или APS), заголовок группы слайсов или тайлов или сообщение SEI.
[198] В том же или другом варианте осуществления информация макета субобласти(ей) (или субизображения(й)) может передаваться в VPS или SPS. Фиг. 19А иллюстрирует пример элементов синтаксиса в VPS (770), и фиг. 19 В иллюстрирует пример элементов синтаксиса SPS (780). В этом примере vps_sub_picture_dividing_flag (772) передается в VPS (770). Флаг может указывать, разделено ли входное(ые) изображение(я) на множество субобластей или нет. Когда значение vps_sub_picture_dividing_flag (772) равно 0, входное изображение (изображения) в кодированной видеопоследовательности (ах), соответствующей текущей VPS, не может быть разделено на несколько подобластей. В этом случае размер входного изображения может быть равен размеру кодированного изображения (pic_width_in_luma_samples (786), pic_height_in_luma_samples (788)), который передается в SPS (680). Когда значение vps_sub_picture_dividing_flag (772) равно 1, входное изображение (я) может быть разделено на несколько подобластей. В этом случае элементы синтаксиса vps_full_pic_width_in_luma_samples (774) и vps_full_pic_height_in_luma_samples (776) передаются в VPS (770). Значения vps_full_pic_width_in_luma_samples (774) и vps_full_pic_height_in_luma_samples (776) могут быть равны ширине и высоте входного изображения (изображений) соответственно.
[199] В том же варианте осуществления значения vps_full_pic_width_in_luma_samples (774) и vps_full_pic_height_in_luma_samples (776) не могут использоваться для декодирования, но могут использоваться для композиции и отображения.
[200] В том же варианте осуществления, когда значение vps_sub_picture_dividing_flag (772) равно 1, элементы синтаксиса pic_offset_х (782) и pic_ofFset_y (784)) могут передаваться в SPS (780), что соответствует определенному слою (слоям). В этом случае размер кодированного изображения (pic_width_in_luma_samples (786), pic_height_in_luma_samples (788)), передаваемый в SPS (780), может быть равен ширине и высоте подобласти, соответствующей конкретному слою. Кроме того, позиция (pic_offset_х (782), pic_offset_у (784)) левого верхнего угла подобласти может сигнализироваться в SPS (780).
[201] В том же варианте осуществления информация о положении (pic_offset_x (782), pic_offset_y (784)) левого верхнего угла подобласти не может использоваться для декодирования, но может использоваться для композиции и отображения.
[202] В том же или другом варианте осуществления информация о компоновке (размер и положение) всей или подмножества подобластей (ов) входного изображения (изображений), а также информация о зависимости между слоями может передаваться в набор параметров или сообщение SEI. Фиг. 20 иллюстрирует пример элементов синтаксиса, которые указывают информацию о компоновке подобластей, зависимости между слоями и отношения между подобластью и одним или несколькими слоями. В этом примере элемент синтаксиса num sub region (791) указывает количество (прямоугольных) подобластей в текущей кодированной видеопоследовательности. Элемент синтаксиса num_layers (792) указывает количество слоев в текущей кодированной видеопоследовательности. Значение num_layers (792) может быть равно или больше, чем значение num sub region (791). Когда любая подобласть кодируется как один слой, значение num_layers (792) может быть равно значению num_sub_region (791). Когда одна или несколько подобластей кодируются как несколько слоев, значение num layers (792) может быть больше, чем значение num_sub_region (791). Элемент синтаксиса direct_dependency_flag [i] [j] (793) указывает зависимость от j-го слоя к i-му слою. Элемент синтаксиса num layers for region [i] (794) указывает количество слоев, связанных с i-й подобластью. Элемент синтаксиса sub_region_layer_id [i] [j] (795) указывает layer_id j-го слоя, связанного с i-й подобластью. Элементы синтаксиса sub_region_offset_х [i] (796) и sub_region_offset_y [i] (797) указывают горизонтальное и вертикальное положение левого верхнего угла i-й подобласти соответственно. Элементы синтаксиса sub_region_width [i] (798) и sub_region_height [i] (799) указывают ширину и высоту i-й подобласти соответственно.
[203] В одном варианте осуществления один или несколько элементов синтаксиса, которые определяют набор выходных слоев для указания одного или нескольких слоев, которые должны выводиться с информацией типа профиль-ярус-уровень или без нее, могут сигнализироваться в структуре синтаксиса высокого уровня (например, VPS, DPS, SPS, PPS, сообщение APS или SEI). На фиг. 21 синтаксический элемент num_output_layer_sets (804), указывающий количество наборов выходных слоев (OLS) в кодированной видеопоследовательности, относящейся к VPS, может сигнализироваться в VPS. Для каждого набора выходных слоев синтаксический элемент output_layer_flag (810) может сигнализироваться столько раз, сколько есть выходных слоев.
[204] В том же варианте осуществления элемент синтаксиса output_layer_flag (810), равный 1, указывает, что выводится i-й слой. Элемент синтаксиса output_layer_flag (810), равный 0, указывает, что i-й слой не выводится.
[205] В том же или другом варианте осуществления один или более элементов синтаксиса, которые указывают информацию типа профиль-ярус-уровень для каждого набора выходных слоев, могут сигнализироваться в синтаксической структуре высокого уровня, например VPS, DPS, SPS, PPS, APS или сообщении SEI. На фиг. 21 элемент синтаксиса num_profile_tier_level (806), указывающий число информации типа профиль-ярус-уровень на OLS в кодированной видеопоследовательности, относящейся к VPS, может сигнализироваться в VPS. Для каждого набора выходных слоев набор элементов синтаксиса для информации типа профиль-ярус-уровень или индекс, указывающий конкретную информацию типа профиль-ярус-уровень из числа записей в информации типа профиль-ярус-уровень, может сигнализироваться столько раз, сколько есть выходных слоев.
[206] В том же варианте осуществления элемент синтаксиса profile_tier_level_idx [i] [j] (812) указывает индекс в списке структур синтаксиса profile tier level () (808) в VPS синтаксической структуры profile_tier_level () (808), которая применяется к j-му слою i-го OLS.
[207] Профили, ярусы и уровни (и соответствующая информация о них) могут указывать ограничения на битовые потоки и, таким образом, ограничения на возможности, необходимые для декодирования битовых потоков. Профили, ярусы и уровни (и соответствующая информация о них) также могут использоваться для указания точек взаимодействия между отдельными реализациями декодера. Профиль может быть подмножеством всего синтаксиса битового потока, например, стандарта. Каждый профиль (и соответствующая информация о нем) может определять подмножество алгоритмических функций и ограничений, которые могут поддерживаться всеми декодерами, соответствующими профилю. Ярусы и уровни могут быть указаны в каждом профиле, и уровень яруса может быть заданным набором ограничений, наложенных на значения элементов синтаксиса в битовом потоке. Каждый уровень яруса (и соответствующая информация о нем) может определять набор пределов значений и/или пределов арифметических комбинаций значений, которые могут быть приняты синтаксическими элементами решения. Один и тот же набор ярусов и определений уровня может использоваться со всеми профилями, но отдельные реализации могут поддерживать другой ярус, а внутри яруса - другой уровень для каждого поддерживаемого профиля. Для любого заданного профиля уровень яруса может соответствовать конкретной нагрузке обработки декодера и возможностям памяти. Уровень, указанный для более низкого яруса, может быть более ограниченным, чем уровень, указанный для более высокого яруса.
[208] В том же или другом варианте осуществления, как показано на фиг. 22, элементы синтаксиса num_proflle_tier_level (806) и/или num_output_layer_sets (804) могут сигнализироваться, когда количество максимальных слоев больше 1 (vps_max_layers_minus 1>0).
[209] В том же или другом варианте осуществления, как показано на фиг. 22, элемент синтаксиса vps_output_layers_mode [i] (822), указывающий режим сигнализации выходного слоя для i-го набора выходных слоев, может присутствовать в VPS.
[210] В том же варианте осуществления элемент синтаксиса vps_output_layers_mode [i] (822), равный 0, указывает, что только самый высокий слой выводится с i-м набором выходных слоев. Элемент синтаксиса vps_output_layers_mode [i] (822), равный 1, указывает, что все слои выводятся с i-м набором выходных слоев. Элемент синтаксиса vps_output_layers_mode [i] (822), равный 2, указывает, что слои, которые выводятся, являются слоями с vps_output_layer_flag [i] [j], равным 1, с набором i-го выходных слоев. Могут быть зарезервированы другие значения.
[211] В том же варианте осуществления элемент синтаксиса output_layer_flag [i] [j] (810) может сигнализироваться или не сигнализироваться в зависимости от значения элемента синтаксиса vps_output_layers_mode [i] (822) для i-го набора выходных слоев.
[212] В том же или другом варианте осуществления, как показано на фиг. 22, флаг vps_ptl_signal_flag [i] (824) может присутствовать для i-го набора выходных слоев. В зависимости от значения vps_ptl_signal_flag [i] (824) информация типа профиль-ярус-уровень для i-го набора выходных слоев может передаваться или не передаваться.
[213] В том же или другом варианте осуществления, как показано на фиг. 23, количество субизображений, max_subpics_minus 1, в текущем CVS может сигнализироваться в синтаксической структуре высокого уровня (например, в сообщении VPS, DPS, SPS, PPS, APS или SEI).
[214] В том же варианте осуществления, как показано на фиг. 23, идентификатор субизображения, sub_pic_id [i] (821), для i-го субизображения может сигнализироваться, когда количество субизображений больше 1 (max_subpics_minus1>0).
[215] В том же или другом варианте осуществления один или более элементов синтаксиса, указывающих идентификатор субизображения, принадлежащий каждому слою каждого набора выходных слоев, могут сигнализироваться в VPS. На фиг. 23 идентификатор sub_pic_id_layer [i] [j] [k] (826) указывает k-e субизображение, присутствующую в j-м слое i-го набора выходных слоев. Используя информацию идентификатора sub_pic_id_layer [i] [j] [k] (826), декодер может распознать, какое субизображение может быть декодирован и выведен для каждого слоя конкретного набора выходных слоев.
[216] В варианте осуществления заголовок изображения (РН) представляет собой синтаксическую структуру, содержащую элементы синтаксиса, которые применяются ко всем слайсам кодированного изображения. Единица изображения (PU) - это набор единиц NAL, которые связаны друг с другом согласно заданному правилу классификации, являются последовательными в порядке декодирования и содержат ровно одно кодированное изображение. PU может содержать заголовок изображения (РН) и один или более единиц NAL VCL, составляющих кодированное изображение.
[217] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с Temporalid, равным 0, или предоставлен через внешние средства.
[218] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по крайней мере в одну AU с Temporalid, равным 0, в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.
[219] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.
[220] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с Temporalid, равным 0, и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS или предоставлены через внешние средства.
[221] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с Temporalid, равным 0 и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.
[222] В том же или другом варианте осуществления идентификатор pps_seq_parameter_set_id указывает значение идентификатора sps_seq_parameter_set_id для указанного SPS. Значение идентификатора pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[223] В том же или другом варианте осуществления все единицы NAL SPS с конкретным значением идентификатора sps_seq_parameter_set_id в CVS могут иметь одинаковое содержимое.
[224] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL SPS могут совместно использовать одно и то же пространство значений идентификатора sps_seq_parameter_set_id.
[225] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL SPS может быть равно наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS.
[226] В варианте осуществления, когда на SPS с nuh_layer_id, равным т, делается ссылка одним или более PPS с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.
[227] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с Temporalid, равным Temporalid единицы NAL PPS, или предоставлен через внешние средства.
[228] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с Temporalid, равным Temporalid единицы NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированного слайса), относящихся к PPS, или предоставлен через внешние средства.
[229] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.
[230] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с Temporalid, равным Temporalid единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.
[231] В том же или другом варианте осуществления идентификатор ph_pic_parameter_set_id в РН указывает значение идентификатора pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[232] В том же или другом варианте осуществления все единицы NAL PPS с конкретным значением идентификатора pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.
[233] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL PPS могут совместно использовать одно и то же пространство значений идентификатора pps_pic_parameter_set_id.
[234] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS.
[235] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.
[236] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с Temporalid, равным Temporalid единицы NAL PPS, или предоставлен через внешние средства.
[237] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с Temporalid, равным Temporalid единицы NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированного слайса), относящихся к PPS, или предоставлен через внешние средства.
[238] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.
[239] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более РН (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с Temporalid, равным Temporalid единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более РН (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.
[240] В том же или другом варианте осуществления идентификатор ph_pic_parameter_set_id в РН указывает значение идентификатора pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение идентификатора pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.
[241] В том же или другом варианте осуществления все единицы NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.
[242] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL PPS могут совместно использовать одно и то же пространство значений идентификатора pps_pic_parameter_set_id.
[243] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS.
[244] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.
[245] Выходной слой может быть слоем из набора выходных слоев, который выводят. Набор выходных слоев (OLS) может быть набором заданных слоев, где один или несколько слоев в наборе слоев заданы как выходные слои. Индекс слоя набора выходных слоев (OLS) - это индекс слоя в OLS к списку слоев в OLS.
[246] Субслой может быть временным масштабируемым слоем временного масштабируемого битового потока субслоя, включающего единицы NAL VCL с конкретным значением переменной Temporalid и связанных единиц NAL, не относящихся к VCL. Представление субслоя может быть подмножеством битового потока, который включает в себя блоки NAL конкретного субслоя и нижних субслоев.
[247] RBSP VPS может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по крайней мере в одну AU с Temporalid, равным 0, или предоставлен через внешние средства. Все единицы NAL VPS с определенным значением vps_video_parameter_set_id в CVS могут иметь одинаковое содержимое.
[248] На фиг. 24-25, элементы синтаксиса примеров RBSP VPS описаны ниже.
[249] Элемент синтаксиса vps_video_parameter_set_id (842) предоставляет идентификатор для VPS для ссылки других элементов синтаксиса. Значение синтаксического элемента vps_video_parameter_set_id (842) может быть больше 0.
[250] Элемент синтаксиса vps_max_layers_minus1 (802) плюс 1 указывает максимально допустимое количество слоев в каждой CVS, относящейся к VPS.
[251] Синтаксический элемент vps_max_sublayers_minus1 (846) плюс 1 указывает максимальное количество временных субслоев, которые могут присутствовать в слое в каждом CVS, ссылающемся на VPS. Значение синтаксического элемента vps_max_sublayers_minus1 (846) может находиться в диапазоне от 0 до 6 включительно.
[252] Элемент синтаксиса vps_all_layers_same_num_sublayers_flag (848), равный 1, указывает, что количество временных субслоев одинаково для всех слоев в каждой CVS, относящейся к VPS. Элемент синтаксиса vps_all_layers_same_num_sublayers_flag (848), равный 0, указывает, что слои в каждой CVS, относящейся к VPS, могут иметь или не иметь одинаковое количество временных субслоев. При отсутствии, значение vps_all_layers_same_num_sublayers_flag (848) может быть принято равным 1.
[253] Элемент синтаксиса vps_all_independent_layers_flag (850), равный 1, указывает, что все слои в CVS независимо кодируются без использования межслойного предсказания. Элемент синтаксиса vps_all_independent_layers_flag (850), равный 0, указывает, что один или несколько слоев в CVS могут использовать межслойное предсказание. При отсутствии, значение vps_all_independent_layers_flag (850) может быть выведено равным 1.
[254] Элемент синтаксиса vps_layer_id [i] (852) указывает значение nuh_layer_id i-го слоя. Для любых двух неотрицательных целочисленных значений тип, когда m меньше n, значение vps_layer_id [m] может быть меньше vps_layer_id [n].
[255] Элемент синтаксиса vps_independent_layer_flag [i] (854), равный 1, указывает, что слой с индексом i не использует межслойное предсказание. Элемент синтаксиса vps_independent_layer_flag [i] (854), равный 0, указывает, что слой с индексом i может использовать межслойное предсказание, и элементы синтаксиса vps_direct_ref_layer_flag [i] [j] для j в диапазоне от 0 до i - 1 включительно, присутствуют в VPS. При отсутствии, значение синтаксического элемента vps_independent_layer_flag [i] (854) может быть выведено равным 1.
[256] Элемент синтаксиса vps_direct_ref_layer_flag [i] [j] (856), равный О, указывает, что слой с индексом j не является слоем прямой ссылки для слоя с индексом i. Элемент синтаксиса vps_direct_ref_layer_flag [i] [j] (856), равный 1, указывает, что слой с индексом j является слоем прямой ссылки для слоя с индексом i. Когда элемент синтаксиса vps_direct_ref_layer_flag [i] [j] (856) отсутствует для i и j в диапазоне от 0 до vps_max_layers_minus1 включительно, этот элемент синтаксиса может быть выведен равным 0. Когда элемент синтаксиса vps_independent_layer_flag [i] (854) равен 0, может быть по крайней мере одно значение j в диапазоне от 0 до i - 1 включительно, так что значение элемента синтаксиса vps_direct_ref_layer_flag [i] [j] (856) равно 1.
[257] Переменные NumDirectRefLayers [i], DirectRefLayerIdx [i] [d], NumRefLayers [i], RefLayerIdx [i] [r] и LayerUsedAsRefLayerFlag [j] могут быть выведены следующим образом:
[258] Переменная GeneralLayerIdx [i], задающая индекс слоя для слоя с nuh_layer_id, равным vps_layer_id [i] (852), может быть выведен следующим образом:
[259] Для любых двух разных значений i и j, оба в диапазоне от 0 до vps_max_layers_minusl (846) включительно, когда dependencyFlag [i] [j] равно 1, может быть предусмотрено требование соответствия битового потока, чтобы значения chroma_format_idc и bit_depth_minus8, которые применяются к i-му слою, могли быть равными значениям chroma_format_idc и bit_ depth_minus8, соответственно, которые применяются к j-му слою.
[260] Элемент синтаксиса max_tid_ref_present_flag[i] (858), равный 1, указывает, что присутствует элемент синтаксиса max_tid_il_ref_pics_plus1 [i] (860). Элемент синтаксиса max_tid_ref_present_flag[i] (858), равный 0, указывает, что элемент синтаксиса max_tid_il_ref_pics_plus1 [i] (860) отсутствует.
[261] Элемент синтаксиса max_tid_il_ref_pics_plusl [i] (860), равный 0, указывает, что межслойное предсказание не используется не-IRAP изображениями i-го слоя. Элемент синтаксиса max_tid_il_ref_pics_plus1 [i] (860) больше 0 указывает, что для декодирования изображений i-го слоя никакое изображение с Temporalid больше max_tid_il_ref_pics_plus1 [i] - 1 не используется в качестве ILRP. При отсутствии, значение синтаксического элемента max_tid_il_ref_pics_plus1 [i] (860) может быть выведено равным 7.
[262] Элемент синтаксиса each_layer_is_an_ols_flag (862), равный 1, указывает, что каждый OLS содержит только один слой, а каждый слой в CVS, относящийся к VPS, сам является OLS с единственным включенным слоем, который является единственным выходным слоем. Элемент синтаксиса each_layer_is_an_ols_flag (862), равный 0, указывает, что OLS может содержать более одного слоя. Если элемент синтаксиса vps_max_layers_minus1 равен 0, значение элемента синтаксиса each_layer_is_an_ols_flag (862) может быть выведено равным 1. В противном случае, когда элемент синтаксиса vps_all_independent_layers_flag (854) равен 0, значение элемента синтаксиса each_layer_is_an_ols_flag (862) может быть выведено равным 0.
[263] Элемент синтаксиса ols_mode_idc (864), равный 0, указывает, что общее количество OLS, заданных VPS, равно vps_max_layers_minus1+1, i-й OLS включает в себя слои с индексами слоев от 0 до i включительно, и для каждого OLS выводится только на самом высоком слое OLS.
[264] Элемент синтаксиса ols_mode_idc (864), равный 1, указывает, что общее количество OLS, заданных VPS, равно vps_max_layers_minus1+1, i-й OLS включает в себя слои с индексами слоев от 0 до i включительно, и для каждого OLS выводятся все слои OLS.
[265] Элемент синтаксиса ols_mode_idc (864), равный 2, указывает, что общее количество OLS, заданных VPS, явно сигнализируется, и для каждого OLS выходные слои явно сигнализируются, а другие слои являются слоями, которые являются прямыми или косвенными опорными слоями выходных слоев OLS.
[266] Значение элемента синтаксиса ols mode idc (864) может находиться в диапазоне от 0 до 2 включительно. Значение 3 элемента синтаксиса ols mode idc (864) может быть зарезервировано для будущего использования ITU-T|ISO/IEC.
[267] Когда элемент синтаксиса vps_all_independent_layers_flag (850) равен 1, а each_layer_is_an_ols_flag (862) равен 0, значение элемента синтаксиса ols_mode_idc (864) может быть выведено равным 2.
[268] Элемент синтаксиса num_output_layer_sets_minus1 (866) плюс 1 указывает общее количество OLS, заданных VPS, когда элемент синтаксиса ols_mode_idc (864) равен 2.
[269] Переменная TotalNumOlss, указывающая общее количество OLS, заданных VPS, может быть выведена следующим образом:
[270] Элемент синтаксиса ols_output_layer_flag [i] [j] (868), равный 1, указывает, что слой с nuh_layer_id, равным vps layer_id [j], является выходным слоем i-го OLS, когда ols_mode_idc (864) равен 2. Элемент синтаксиса ols_output_layer_flag [i] [j] (868), равный 0, указывает, что слой с nuh_layer_id, равным vps_layer_id [j], не является выходным слоем i-го OLS, когда элемент синтаксиса ols_mode_idc (864) равен 2.
[271] Переменная NumOutputLayersInOls [i], указывающая количество выходных слоев в i-м OLS, переменная NumSubLayersInLayerInOLS [i] [j], указывающая количество субслоев в j-м слое в i-м OLS, переменная OutputLayerIdInOls[i] [j], указывающая значение nuh_layer_id j-го выходного слоя в i-м OLS, и переменная LayerUsedAsOutputLayerFlag [k], указывающая, используется ли k-й слой в качестве выходного слоя по меньшей мере в одном OLS, может быть выведен следующим образом:
[272] Для каждого значения i в диапазоне от 0 до vps_max_layers_minus1 включительно значения LayerUsedAsRefLayerFlag [i] и LayerUsedAsOutputLayerFlag [i] не могут быть равными 0 одновременно. Другими словами, может не быть слоя, который не является ни выходным слоем по меньшей мере одного OLS, ни прямым опорным слоем любого другого слоя.
[273] Для каждой OLS может быть по меньшей мере один слой, который является выходным слоем. Другими словами, для любого значения i в диапазоне от 0 до TotalNumOlss - 1 включительно значение NumOutputLayersInOls [i] может быть больше или равно 1.
[274] Переменная NumLayersInOls [i], указывающая количество слоев в i-м OLS, и переменная LayerIdInOls [i] [j], указывающая значение nuh_layer_id j-го слоя в i-м OLS, могут быть выведены следующим образом:
[275] Переменная OlsLayerIdx [i] [j], указывающая индекс слоя OLS для слоя с nuh_layer_id, равным LayerIdInOls [i] [j], выводится следующим образом:
[276] Самый нижний слой в каждой OLS может быть независимым слоем. Другими словами, для каждого i в диапазоне от 0 до TotalNumOlss - 1 включительно значение vps_independent_layer_flag [GeneralLayerIdx [LayerIdInOls [i] [0]]] может быть равно 1.
Каждый слой может быть включен по крайней мере в один OLS, указанный VPS. Другими словами, для каждого слоя с конкретным значением nuh_layer_id nuhLayerId, равным одному из vps_layer_id [k] для к в диапазоне от 0 до vps_max_layers_minus1 включительно, может быть по меньшей мере одна пара значений i и j, где i находится в диапазоне от 0 до TotalNumOlss - 1 включительно, a j находится в диапазоне NumLayersInOls [i] - 1 включительно, так что значение LayerIdInOls [i] [j] равно nuhLayerId.
[277] В одном варианте осуществления процесс декодирования может работать следующим образом для текущего изображения (например, элемента синтаксиса CurrPic), чтобы установить элемент синтаксиса PictureOutputFlag:
[278] PictureOutputFlag устанавливается равным 0, если выполняется одно из следующих условий:
(1) текущее изображение является RASL изображением, и значение NoOutputBeforeRecoveryFlag связанного изображения IRAP равно 1;
(2) gdr_enabled_flag равен 1, а текущее изображение является изображением GDR с NoOutputBeforeRecoveryFlag, равным 1;
(3) Элемент синтаксиса gdr_enabled_flag равен 1, текущее изображение связано с изображением GDR с NoOutputBeforeRecoveryFlag, равным 1, и PicOrderCntVal текущего изображения меньше RpPicOrderCntVal связанного изображения GDR;
(4) sps_video_parameter_set_id больше 0, ols_mode_idc равно 0, и текущий AU содержит изображение (например, элемент синтаксиса picA), которое удовлетворяет всем следующим условиям: (a) PicA имеет PictureOutputFlag, равный 1, (b) PicA имеет nuh_layer_id nuhLid больше, чем у текущего изображения, (с) PicA принадлежит выходному слою OLS (т.е. OutputLayerIdInOls [TargetOlsIdx] [0] равен nuhLid);
(5) sps_video_parameter_set_id больше 0, ols_mode_idc равно 2, andols_output_layer_flag [TargetOlsIdx] [GeneralLayerIdx [nuh_layer_id]] равно 0.
[279] Если ни одно из вышеперечисленных условий не выполняется, элемент синтаксиса PictureOutputFlag может быть установлен равным элементу синтаксиса pic_output_flag.
[280] После того, как все слайсы текущего изображения были декодированы, текущее декодированное изображение может быть помечено как «используется для краткосрочной ссылки», и каждая запись ILRP в RefPicList [0] или RefPicList [1] может быть помечена как «используется для краткосрочной ссылки».
[281] В том же или другом варианте осуществления, когда каждый слой является набором выходных слоев, элемент синтаксиса PictureOutputFlag устанавливается равным pic_output_flag, независимо от значения элемента синтаксиса ols_mode_idc (864).
[282] В том же или другом варианте осуществления элемент синтаксиса PictureOutputFlag устанавливается равным 0, когда sps_video_parameter_set_id больше 0, each_layer_is_an_ols_flag (862) равен 0, ols_mode_idc (864) равен 0, а текущий AU содержит изображение picA, которое удовлетворяет всем следующим условиям: PicA имеет PictureOutputFlag, равный 1, PicA имеет nuh_layer_id nuhLid больше, чем у текущего изображения, и PicA принадлежит к выходному слою OLS (то есть Output LayerIdInOls [TargetOlsIdx] [0] равно nuhLid).
[283] В том же или другом варианте осуществления элемент синтаксиса PictureOutputFlag устанавливается равным 0, когда sps_video_parameter_set_id больше 0, each_layer_is_an_ols_flag равно 0, olsmodeidc равно 2, и ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]] равно 0.
[284] В одном варианте осуществления, когда максимальное количество слоев в кодированной видеопоследовательности не превышает 2, ноль или более выходных слоев каждого набора выходных слоев могут не передаваться в явном виде в VPS или других наборах параметров. Без сигнализирования синтаксического элемента ols_output_layer_flag [i] [j] (868) значение синтаксического элемента ols_output_layer_flag [i] [j] (868) может быть выведено из значения синтаксического элемента ols_mode_idc (864).
[285] В том же или другом варианте осуществления, когда элемент синтаксиса vps_max_layers_minus 1 (802) не больше 1, а элемент синтаксиса each_layer_is_ an_ols_flag (862) не равен 1, значение элемента синтаксиса ols_mode_idc (864) может быть равно О или 1.
[286] В том же или другом варианте осуществления, когда элемент синтаксиса vps_max_layers_minusl (802) не больше 1, как показано на фиг. 25, элемент синтаксиса num_output_layer_sets_minus1 (866) и элемент синтаксиса ols_output_layer_flag [i] [j] (868) не могут явно сигнализироваться и могут быть выведены из других значений синтаксиса.
[287] В том же или другом варианте осуществления, когда элемент синтаксиса vps_all_independent_layers_flag (850) равен 1, а элемент синтаксиса each_layer_is_an_ols_flag (862) равен 0, значение элемента синтаксиса ols_mode_idc (864) может быть выведено равным 2.
[288] В том же или другом варианте осуществления, когда количество слоев в кодированной видеопоследовательности равно 1 или 2, значение элемента синтаксиса ols_mode_idc (864) может не быть равным 2, поскольку значение элемента синтаксиса ols_mode_idc (864) равные 0 или 1 могут представлять все возможные случаи представления набора выходных слоев. Элемент синтаксиса ols_mode_idc (864), равный 2, не может использоваться в случае, когда количество слоев равно 1 или 2.
[289] Согласно одному или нескольким вариантам осуществления наборы параметров и элементы синтаксиса в них (например, вышеописанные) могут быть приняты декодерами настоящего изобретения для декодирования принятых видеоданных. Декодеры настоящего изобретения могут декодировать на основе набора параметров часть видеоданных кодированного видеопотока, которая соответствует одному или нескольким наборам выходных слоев. Например, как показано на фиг. 26, декодер (880) может содержать код декодирования (885), конфигурированный предписывать по меньшей мере одному процессору декодера (880) декодировать часть видеоданных на основе набора параметров.
[290] Методы, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или нескольких машиночитаемых носителях. Например, фиг. 27 иллюстрирует компьютерную систему (900), подходящую для реализации вариантов осуществления раскрытого изобретения.
[291] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть объектом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и и т.п., центральными процессорами компьютера (CPU), графическими процессорами (GPU) и т.п.
[292] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.
[293] Компоненты, показанные на фиг. 27 для компьютерной системы (900), являются примерными по своей сущности и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы (900).
[294] Компьютерная система (900) может включать в себя определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображен). Устройства с человеко-машинным интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).
[295] Устройства ввода с человеком могут включать в себя одно или несколько из (только по одному из каждого изображенного): клавиатура (901), мышь (902), трекпад (903), сенсорный экран (910), перчатка для данных, джойстик (905), микрофон (906), сканер (907) и камера (908).
[296] Компьютерная система (900) также может включать в себя определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеческим интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь с помощью сенсорного экрана (910), перчаток для данных или джойстика (905), но также могут быть устройства с тактильной обратной связью, которые не служат в качестве устройств ввода). Например, такими устройствами могут быть устройства вывода звука (такие как: динамики (909), наушники (не показаны)), устройства вывода изображения (например, экраны (910), включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждый с возможностью ввода с сенсорного экрана или без него, каждый с возможностью тактильной обратной связи или без нее, некоторые из которых могут выводить двухмерный визуальный вывод или более трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)), а также принтеры (не изображены).
[297] Компьютерная система (900) также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW (920) с CD/DVD или подобными носителями (921), флэш-накопитель (922), съемный жесткий диск или твердотельный накопитель (923), ранее разработанные магнитные носители, такие как лента и дискета (не изображены), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не изображены) и т.п.
[298] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы.
[299] Компьютерная система (900) также может включать в себя интерфейс для одной или нескольких сетей связи. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное телевещание, автомобильное и промышленное оборудование, включая CAN-шину и т.д. Некоторым сетям обычно требуются адаптеры внешнего сетевого интерфейса, которые подключены к определенным портам данных общего назначения или периферийным шинам (949) (например, к портам USB компьютерной системы (900); другие обычно интегрируются в ядро компьютерной системы 900) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet к компьютерной системе ПК или интерфейс сотовой сети к компьютерной системе смартфона). Используя любую из этих сетей, компьютерная система (900) может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CAN-шина на определенные устройства с CAN-шиной) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровую сеть. Такое общение может включать обмен данными со средой облачных вычислений (955). В каждой из этих сетей и сетевых интерфейсов могут использоваться определенные протоколы и стеки протоколов, как описано выше.
[300] Вышеупомянутые устройства интерфейса человека, доступные человеку устройства хранения и сетевые интерфейсы (954) могут быть присоединены к ядру (940) компьютерной системы (900).
[301] Ядро (940) может включать в себя один или несколько центральных процессоров (CPU) (941), графических процессоров (GPU) (942), специализированных программируемых процессоров в виде программируемых вентильных областей (FPGA) (943), аппаратного обеспечения, ускорители (944) для определенных задач и т.д. Эти устройства, наряду с постоянной памятью (ПЗУ) (945), памятью с произвольным доступом (946), внутренними запоминающими устройствами, такими как внутренние жесткие диски, не доступные пользователю, твердотельные накопители и т.п.(947), могут быть подключены через системную шину (948). В некоторых компьютерных системах системная шина (948) может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных ЦП, ГП и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине (948) ядра, либо через периферийную шину (949). Архитектура периферийной шины включает PCI, USB и т.п. Графический адаптер 950 может быть включен в ядро 940.
[302] ЦП (941), ГП (942), ППВМ (943) и ускорители (944) могут выполнять определенные инструкции, которые в сочетании могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ПЗУ (945) или ОЗУ (946). Переходные данные также могут храниться в ОЗУ (946), тогда как постоянные данные могут храниться, например, во внутреннем ЗУ большой емкости (947). Быстрое хранение и извлечение на любое из запоминающих устройств могут быть обеспечены за счет использования кэш-памяти, которая может быть тесно связана с одним или более ЦП (941), ГП (942), ЗУ большой емкости (947), ПЗУ (945), ОЗУ (946) и т.п.
[303] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего изобретения, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.
[304] В качестве примера, а не ограничения, компьютерная система, имеющая архитектуру (900) и, в частности, ядро (940), может обеспечивать функциональность в результате наличия процессора(ов) (включая ЦП, ГП, ППВМ, ускорители и т.п.), выполняющего программное обеспечение, воплощенное на одном или более материальных, машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя ЗУ большой емкости, как описано выше, а также определенным хранилищем ядра (940), которые имеют невременной характер, например, внутренним ЗУ (947) большой емкости ядра или ПЗУ (945). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (940). Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побуждать ядро (940) и, в частности, процессоры в нем (включая ЦП, ГП, ППВМ и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в ОЗУ (946) и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. Дополнительно или альтернативно компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель (944)), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это применимо. Ссылка на машиночитаемый носитель может включать в себя схему (например, интегральную схему (1С)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это применимо. Настоящее изобретение включает в себя любую подходящую комбинацию аппаратного и программного обеспечения.
[305] Хотя здесь описано несколько неограничивающих примерных вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем правовой охраны настоязего изобретения. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в рамках его сущности и объема.
Claims (50)
1. Способ декодирования кодированного видеопотока, выполняемый по меньшей мере одним процессором, содержащий:
прием кодированного видеопотока, включающего набор (VPS) параметров видео и видеоданные, разделенные на множество слоев,
получение, на основе набора (VPS) параметров видео,
(1) первого элемента синтаксиса ols_mode_idc, равного 2, указывающего, что общее количество наборов (OLS) выходных слоев, заданных набором (VPS) параметров видео, явно сигнализируется, и для каждого набора (OLS) выходных слоев выходные слои явно сигнализируются, а другие слои являются слоями, которые являются прямыми или косвенными опорными слоями выходных слоев каждого набора (OLS) выходных слоев;
(2) второго элемента синтаксиса, vps_max_layers_minus1 плюс 1, указывающего максимально разрешенное количество слоев в каждой кодированной видеопоследовательности (CVS) кодированного видеопотока, относящегося к набору (VPS) параметров видео; и
(3) по меньшей мере одного третьего элемента синтаксиса ols_output_layer_flag, указывающего, является ли слой выходным слоем набора (OLS) выходных слоев, когда первый элемент синтаксиса ols_mode_idc равен 2 и второй элемент синтаксиса vps_max_layers_minus1 больше, чем 1; и
декодирование, на основе информации, полученной из набора (VPS) параметров видео, части видеоданных кодированного видеопотока, которая соответствует набору (OLS) выходных слоев.
2. Способ по п. 1, в котором набор (VPS) параметров видео включает в себя четвертый элемент синтаксиса, указывающий число информации типа профиль-ярус-уровень набора (OLS) выходных слоев в кодированной видеопоследовательности (CVS), относящейся к набору (VPS) параметров видео.
3. Способ по п. 2, в котором четвертый элемент синтаксиса сигнализируется в наборе (VPS) параметров видео на основе максимально разрешенного количества слоев в каждой кодированной видеопоследовательности (CVS), относящейся к набору (VPS) параметров видео, превышающего 1.
4. Способ по п. 1, в котором набор (VPS) параметров видео включает в себя по меньшей мере один четвертый элемент синтаксиса, включающий в себя набор элементов синтаксиса, указывающих информацию типа профиль-ярус-уровень набора (OLS) выходных слоев, или включающий в себя индекс, указывающий по меньшей мере одну запись в наборе информации типа профиль-ярус-уровень.
5. Способ по п. 1, в котором набор (VPS) параметров видео включает в себя четвертый элемент синтаксиса, указывающий режим сигнализирования выходного слоя для набора (OLS) выходных слоев.
6. Способ по п. 5, в котором по меньшей мере один пятый элемент синтаксиса сигнализируют в наборе (VPS) параметров видео на основе режима, указанного четвертым элементом синтаксиса.
7. Способ по п. 6, в котором по меньшей мере один пятый элемент синтаксиса включает в себя флаг, указывающий, должен ли выводиться один из множества слоев.
8. Способ по п. 1, в котором
набор (VPS) параметров видео включает в себя по меньшей мере один элемент синтаксиса max_tid_ref_present_flag[i] и элемент синтаксиса max_tid_il_ref_pics_plus1 [i], причем [i] относится к слою из множества слоев кодированного видеопотока;
элемент синтаксиса max_tid_ref_present_flag[i], равный 1, указывает, что присутствует элемент синтаксиса max_tid_il_ref_pics_plus1 [i];
элемент синтаксиса max_tid_ref_present_flag[i], равный 0, указывает, что элемент синтаксиса max_tid_il_ref_pics_plus1 [i] отсутствует;
элемент синтаксиса max_tid_il_ref_pics_plus1 [i], равный 0, указывает, что межслойное предсказание не используется не-IRAP (внутренняя точка произвольного доступа) изображениями i-го слоя; и
элемент синтаксиса max_tid_il_ref_pics_plus1 [i] больше 0 указывает, что для декодирования изображений i-го слоя никакое изображение с TemporalId больше max_tid_il_ref_pics_plus1 [i] - 1 не используется в качестве межслойного опорного изображения (ILRP).
9. Способ по п. 1, в котором декодирование кодированного видеопотока дополнительно содержит определение режима сигнализирования набора (OLS) выходных слоев для множества наборов (OLS) выходных слоев, включающего набор (OLS) выходных слоев, на основе набора (VPS) параметров видео.
10. Способ по п. 1, в котором набор (VPS) параметров видео включает в себя элемент синтаксиса vps_ptl_signal_flag [i], указывающий, сигнализируется ли информация типа профиль-ярус-уровень для i-го набора (OLS) выходных слоев.
11. Система декодирования кодированного видеопотока, который включает набор (VPS) параметров видео и видеоданные, разделенные на множество слоев, при этом система содержит:
память, конфигурированную для хранения компьютерного программного кода; и
по меньшей мере один процессор, конфигурированный для приема кодированного видеопотока, доступа к компьютерному программному коду и работы в соответствии с инструкциями компьютерного программного кода, причем компьютерный программный код содержит:
код декодирования, конфигурированный предписывать по меньшей мере одному процессору декодировать, на основе набора (VPS) параметров видео, часть видеоданных кодированного видеопотока, которая соответствует набору (OLS) выходных слоев,
при этом набор (VPS) параметров видео включает в себя
(1) первый элемент синтаксиса ols_mode_idc, равный 2, указывающий, что общее количество наборов (OLS) выходных слоев, заданных набором (VPS) параметров видео, явно сигнализируется, и для каждого набора (OLS) выходных слоев выходные слои явно сигнализируются, а другие слои являются слоями, которые являются прямыми или косвенными опорными слоями выходных слоев каждого набора (OLS) выходных слоев,
(2) второй элемент синтаксиса vps_max_layers_minus1 плюс 1, указывающий максимально разрешенное количество слоев в каждой кодированной видеопоследовательности (CVS) кодированного видеопотока, относящегося к набору (VPS) параметров видео; и
(3) по меньшей мере один третий элемент синтаксиса ols_output_layer_flag, указывающий, является ли слой выходным слоем набора (OLS) выходных слоев, когда первый элемент синтаксиса ols_mode_idc равен 2 и второй элемент синтаксиса vps_max_layers_minus1 больше, чем 1.
12. Система по п. 11, в которой набор (VPS) параметров видео включает в себя четвертый элемент синтаксиса, указывающий число информации типа профиль-ярус-уровень набора (OLS) выходных слоев в кодированной видеопоследовательности (CVS), относящейся к набору (VPS) параметров видео.
13. Система по п. 12, в которой четвертый элемент синтаксиса сигнализируется в наборе (VPS) параметров видео на основе максимально разрешенного количества слоев в каждой кодированной видеопоследовательности (CVS), относящейся к набору (VPS) параметров видео, превышающего 1.
14. Система по п. 11, в которой набор (VPS) параметров видео включает в себя по меньшей мере один четвертый элемент синтаксиса, включающий в себя набор элементов синтаксиса, указывающих информацию типа профиль-ярус-уровень набора (OLS) выходных слоев, или включающий в себя индекс, указывающий по меньшей мере одну запись в наборе информации типа профиль-ярус-уровень.
15. Система по п. 11, в которой набор (VPS) параметров видео включает в себя четвертый элемент синтаксиса, указывающий режим сигнализирования выходного слоя для набора (OLS) выходных слоев.
16. Система по п. 15, в которой по меньшей мере один пятый элемент синтаксиса сигнализируется в наборе (VPS) параметров видео на основе режима, указанного четвертым элементом синтаксиса.
17. Система по п. 16, в которой по меньшей мере один пятый элемент синтаксиса включает в себя флаг, указывающий, должен ли выводиться один из множества слоев.
18. Система по п. 11, в которой
набор (VPS) параметров видео включает в себя по меньшей мере один элемент синтаксиса max_tid_ref_present_flag[i] и элемент синтаксиса max_tid_il_ref_pics_plus1 [i],
причем i относится к слою из множества слоев кодированного видеопотока;
элемент синтаксиса max_tid_ref_present_flag[i], равный 1, указывает что элемент синтаксиса max_tid_il_ref_pics_plus1 [i] присутствует;
элемент синтаксиса max_tid_ref_present_flag[i], равный 0, указывает, что элемент синтаксиса max_tid_il_ref_pics_plus1 [i] отсутствует;
элемент синтаксиса max_tid_il_ref_pics_plus1 [i], равный 0, указывает, что межслойное предсказание не используется не-IRAP изображениями i-го слоя;
элемент синтаксиса max_tid_il_ref_pics_plus1 [i] больше 0 указывает, что для декодирования изображений i-го слоя никакое изображение с TemporalId больше max_tid_il_ref_pics_plus1 [i] - 1 не используется в качестве межслойного опорного изображения (ILRP).
19. Система по п. 11, в которой код декодирования дополнительно конфигурирован предписывать по меньшей мере одному процессору определять режим сигнализирования набора (OLS) выходных слоев для множества наборов (OLS) выходных слоев, включающих набор (OLS) выходных слоев, на основе набора (VPS) параметров видео.
20. Невременный машиночитаемый носитель, на котором хранятся компьютерные инструкции, которые при выполнении по меньшей мере одним процессором предписывают по меньшей мере одному процессору:
декодировать, на основе набора (VPS) параметров видео, часть видеоданных кодированного видеопотока, которая соответствует набору (OLS) выходных слоев, при этом
кодированный видеопоток включает набор (VPS) параметров видео и видеоданные, причем видеоданные разделены на множество слоев, и
набор (VPS) параметров видео включает в себя
(1) первый элемент синтаксиса ols_mode_idc, равный 2, указывающий, что общее количество наборов (OLS) выходных слоев, заданных набором (VPS) параметров видео, явно сигнализируется, и для каждого набора (OLS) выходных слоев выходные слои явно сигнализируются, а другие слои являются слоями, которые являются прямыми или косвенными опорными слоями выходных слоев каждого набора (OLS) выходных слоев;
(2) второй элемент синтаксиса vps_max_layers_minus1 плюс 1, указывающий максимально разрешенное количество слоев в каждой кодированной видеопоследовательности (CVS) кодированного видеопотока, относящегося к набору (VPS) параметров видео; и
(3) по меньшей мере один третий элемент синтаксиса ols_output_layer_flag, указывающий, является ли слой выходным слоем набора (OLS) выходных слоев, когда первый элемент синтаксиса ols_mode_idc равен 2 и второй элемент синтаксиса vps_max_layers_minus1 больше, чем 1.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/001,018 | 2020-03-27 | ||
US16/987,911 | 2020-08-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2807213C1 true RU2807213C1 (ru) | 2023-11-13 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140301469A1 (en) * | 2013-04-08 | 2014-10-09 | Qualcomm Incorporated | Coding video data for an output layer set |
US20150103888A1 (en) * | 2013-10-15 | 2015-04-16 | Qualcomm Incorporated | Support of multi-mode extraction for multi-layer video codecs |
RU2610670C1 (ru) * | 2012-12-21 | 2017-02-14 | Телефонактиеболагет Л М Эрикссон (Пабл) | Кодирование и декодирование многоуровневого видеопотока |
US20170347026A1 (en) * | 2016-05-24 | 2017-11-30 | Nokia Technologies Oy | Method and an apparatus and a computer program for encoding media content |
RU2646381C2 (ru) * | 2012-09-21 | 2018-03-02 | Квэлкомм Инкорпорейтед | Индикация и активация наборов параметров для кодирования видео |
US20190158880A1 (en) * | 2016-05-13 | 2019-05-23 | Sharp Kabushiki Kaisha | Temporal sub-layer descriptor |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2646381C2 (ru) * | 2012-09-21 | 2018-03-02 | Квэлкомм Инкорпорейтед | Индикация и активация наборов параметров для кодирования видео |
RU2610670C1 (ru) * | 2012-12-21 | 2017-02-14 | Телефонактиеболагет Л М Эрикссон (Пабл) | Кодирование и декодирование многоуровневого видеопотока |
US20140301469A1 (en) * | 2013-04-08 | 2014-10-09 | Qualcomm Incorporated | Coding video data for an output layer set |
US20150103888A1 (en) * | 2013-10-15 | 2015-04-16 | Qualcomm Incorporated | Support of multi-mode extraction for multi-layer video codecs |
US20190158880A1 (en) * | 2016-05-13 | 2019-05-23 | Sharp Kabushiki Kaisha | Temporal sub-layer descriptor |
US20170347026A1 (en) * | 2016-05-24 | 2017-11-30 | Nokia Technologies Oy | Method and an apparatus and a computer program for encoding media content |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2024204059A1 (en) | Method for signaling output layer set with sub-picture | |
AU2020437690B2 (en) | Method for output layer set mode in multilayered video stream | |
US20200404269A1 (en) | Method for region-wise scalability with adaptive resolution change | |
JP2024074922A (ja) | ビデオコーディングのための方法、装置及びコンピュータプログラム | |
US11297350B1 (en) | Method for output layer set for multilayered video stream | |
AU2020416598B2 (en) | Method for alignment across layers in coded video stream | |
CA3138519A1 (en) | Method for picture output with output layer set | |
JP2023129535A (ja) | ビデオデータをコーディングするための方法、装置、およびコンピュータプログラム | |
CA3137350C (en) | Method for indication of sublayer numbers in multilayered video stream | |
RU2807213C1 (ru) | Способ вывода набора слоев для многослойного видеопотока | |
RU2810966C1 (ru) | Способы сигнализирования комбинации передискретизации опорного изображения и пространственной масштабируемости | |
RU2804274C1 (ru) | Способ вывода изображения с набором выходных слоев | |
RU2809562C1 (ru) | Способ выведения на основе набора выходных слоев по субслою | |
RU2803890C1 (ru) | Способ выравнивания по слоям в кодированном видеопотоке | |
RU2806281C1 (ru) | Способ сигнализирования разделения субизображений в кодированном потоке видео | |
RU2814858C1 (ru) | Способ сигнализации разделения прямоугольного слайса в кодированном видеопотоке | |
RU2787579C1 (ru) | Указание точки произвольного доступа и вывод изображения в кодированном видеопотоке | |
RU2799572C1 (ru) | Способ сигнализации набора выходных слоев с субизображением | |
RU2808148C1 (ru) | Способ и устройство для кодирования видео | |
RU2785687C1 (ru) | Способ сигнализации смешанного типа блока NAL и разбиения на субизображения в кодированном видеопотоке | |
RU2787213C1 (ru) | Способ ограничения ссылки на набор параметров в кодированном потоке видео | |
RU2783961C1 (ru) | Способ индикации числа подуровней в многоуровневом видеопотоке | |
RU2781173C1 (ru) | Способ для режима набора выходных уровней |