Способ сигнализации разделителя блоков доступа
ACCESS BLOCKS SEPARATOR SIGNALING METHOD

Перекрестные ссылки на связанные заявки
[1] Настоящая заявка ссылается на приоритет предварительной заявки на патент США №62/904361, зарегистрированной 23 сентября 2019 года, и заявки на патент США №17/023711, зарегистрированной 17 сентября 2020 года, при этом обе упомянутые заявки полностью включены в настоящий документ путем ссылки.
Предпосылки создания изобретения
1. Область техники
[2] Настоящее изобретение призвано усовершенствовать индикацию информации блоков доступа (access unit, AU) произвольного доступа и повысить надежность обнаружения границ блока доступа.
2. Описание существующего уровня техники
[3] Группы VCEG (Q6/16) и ISO/IЕС MPEG (JTC 1/SC 29/WG 11) ITU-T публиковали стандарт H.265/HEVC (High Efficiency Video Coding, высокоэффективное видеокодирование) в 2013 году (версия №1), в 2014 году (версия №2), в 2015 году (версия №3 и в 2016 году (версия №4). В 2015 году эти две стандартизирующие организации сформировали совместную группу по исследованию видео (Joint Video Exploration Team, JVET), задачей которой стало изучение потенциала разработки новых стандартов видекодирования, следующих за HEVC. В октябре 2017 году они опубликовали совместный конкурс заявок (Call for Proposals, Cfp) с предложениями по видеосжатию, которые бы позволили превзойти возможности HEVC. К 15 февраля 2018 года были поданы в общей сложности 22 заявки на конкурс, связанные со стандартным динамическим диапазоном (standard dynamic range, SDR), 12 заявок, связанных с расширенным динамическим диапазоном (standard dynamic range, SDR), и 12 заявок, связанных с 360-градусным видео. В апреле 2018 все принятые в ответ на CfP заявки были оценены в ходе 10-ой встречи JVET / MPEG. В результате этой встрече JVET официально запустила процесс стандартизации видекодирования следующего за HEVC поколения. Новый стандарт был назван универсальным видеокодированием (Versatile Video Coding, VVC), а группа JVET была переименована в объединенную группу экспертов по видео. Текущей версией стандарта VTM (тестовая модель VVC, VVC Test Model) является VTM 6.
[4] В данной области техники по-прежнему не определено, нужно ли обязательно сигнализировать разделители блоков доступа (access unit delimiter, AUD) для указания на границу блока доступа, и следовательно, желательным представляется техническое решение, способное устранить такой недостаток надежности при сигнализации, а следовательно, повысить ее достоверность и эффективность.
Сущность изобретения
[5] Предложены способ и устройство, включающее память, сконфигурированную для хранения компьютерного программного кода, и процессор, или процессоры, сконфигурированные для доступа к компьютерному программному коду и выполнения операций в соответствии с инструкциями компьютерного программного кода. Компьютерный программный код включает код получения, сконфигурированный для обеспечения получения, упомянутым по меньшей мере одним процессором, видеоданных, первый код определения, сконфигурированный для обеспечения определения, упомянутым по меньшей мере одним процессором, синтаксиса разделителя блоков доступа по меньшей мере в одном блоке уровня сетевой абстракции (network abstraction layer, NAL) в упомянутых видеоданных, второй код определения, сконфигурированный для обеспечения определения, упомянутым по меньшей мере одним процессором, указывает ли упомянутый синтаксис разделителя блоков доступа на значение типа слайса для упомянутого блока NAL, третий код определения, сконфигурированный для обеспечения определения, упомянутым по меньшей мере одним процессором, указывает ли синтаксис разделителя блоков доступа в упомянутом блоке NAL на значение уровня видеокодирования (video coding layer, VCL) и/или назначение порядкового номера блока доступа для упомянутого блока NAL, и код сигнализации, сконфигурированный для обеспечения сигнализации, упомянутым по меньшей мере одним процессором, значений границ блока доступа для упомянутого блока NAL, в соответствии с тем, указывает ли синтаксис разделителя блоков доступа по меньшей мере на одно из следующего: значение типа слайса, значение VCL-уровня или значение порядкового номера блока доступа.
[6] В соответствии с примерами осуществления настоящего изобретения третий код определения дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, определения, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для упомянутого блока NAL путем определения, установлено ли по меньшей мере одно из значений VCL равным любому из следующих значений: 0, 1 или 2.
[7] В соответствии с примерами осуществления настоящего изобретения код сигнализации дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, сигнализации значений границ блока доступа для упомянутого блока NAL путем сигнализации, если было определено, что разделитель блоков доступа указывает на то, что упомянутое по меньшей мере одно VCL установлено равным 0, по меньшей мере одного из следующего: кодированного слайса значения запаздывающего изображения, кодированного слайса значения изображения пошагового доступа к временному подуровню (step-wise temporal sub-layer access, STSA), кодированного слайса значения опережающего пропускаемого изображения с произвольным доступом (Random Access Skipped Leading, RASL) и кодированного слайса значения опережающего декодируемого изображения с произвольным доступом (Random Access Decodable Leading, RADL).
[8] В соответствии с примерами осуществления настоящего изобретения код сигнализации дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, сигнализации значений границы доступа для упомянутого блока NAL путем сигнализации, если было определено, что разделитель блоков доступа указывает на то, что упомянутое по меньшей мере одно VCL установлено равным 1, по меньшей мере одного из следующего: кодированного слайса значения изображения мгновенного обновления декодера (instantaneous decoder reference, IDR), значения кодированного слайса изображения чистого произвольного доступа (Clean Random Access, CRA) и значение изображения кодированного слайса постепенного обновления декодера (gradual decoding reference, GDR).
[9] В соответствии с примерами осуществления настоящего изобретения код сигнализации дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, сигнализации значений границы доступа для упомянутого блока NAL путем сигнализации, если было определено, что разделитель блоков доступа указывает на то, что упомянутое по меньшей мере одно VCL установлено равным 2, множества значений VCL для множества слайсов кодированных изображений в блоке доступа.
[10] В соответствии с примерами осуществления настоящего изобретения третий код определения дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, определения, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для упомянутого блока NAL путем определения, идентифицирует ли значение порядкового номера блока доступа для упомянутого блока NAL блок доступа.
[11] В соответствии с примерами осуществления настоящего изобретения третий код определения дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, определения, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для упомянутого блока NAL путем определения, лежит ли значение порядкового номера блока доступа в диапазоне от 0 до 255.
[12] В соответствии с примерами осуществления настоящего изобретения третий код определения дополнительно сконфигурирован для обеспечения выполнения, упомянутым по меньшей мере одним процессором, определения, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение VCL и/или значение порядкового номера блока доступа для упомянутого блока NAL путем определения, идентифицирует ли значение порядкового номера блока доступа для упомянутого блока NAL упомянутый блок доступа среди соседних блоков доступа.
[13] В соответствии с примерами осуществления настоящего изобретения второй код определения дополнительно сконфигурирован для обеспечения определения, упомянутым по меньшей мере одним процессором, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение типа слайса для упомянутого блока NAL путем определения, установлено ли значение типа слайса равным любому из следующих значений: 0, 1 или 2.
[14] В соответствии с примерами осуществления настоящего изобретения второй код определения дополнительно сконфигурирован для обеспечения определения, упомянутым по меньшей мере одним процессором, указывает ли синтаксис разделителя блоков доступа в блоке NAL на значение типа слайса, путем определения присутствия слайса с внутренним предсказанием и/или слайса с внешним предсказанием.
Краткое описание чертежей
[15] Дополнительные признаки, сущность и различные преимущества предложенного изобретения могут быть уяснены более детально с помощью приведенного ниже подробного описания и приложенных чертежей, где:
[16] на фиг. 1 упрощенно проиллюстрирована эскизная схема в соответствии с вариантами осуществления настоящего изобретения;
[17] на фиг. 2 показана эскизная блок-схема в соответствии с вариантами осуществления настоящего изобретения;
[18] на фиг. 3 показана эскизная блок-схема в соответствии с вариантами осуществления настоящего изобретения;
[19] на фиг. 4 показана эскизная блок-схема в соответствии с вариантами осуществления настоящего изобретения;
[20] фиг. 5 представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;
[21] фиг. 6 представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;
[22] фиг. 7 представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;
[23] фиг. 8 представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;
[24] фиг. 9А представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;
[25] фиг. 9 В представляет собой эскизную иллюстрацию в соответствии с вариантами осуществления настоящего изобретения;
[26] на фиг. 10 показана упрощенная блок-схема алгоритма в соответствии с вариантами осуществления настоящего изобретения;
[27] на фиг. 11 показана структура данных в соответствии с вариантами осуществления настоящего изобретения;
[28] на фиг. 12А показана упрощенная таблица в соответствии с вариантами осуществления настоящего изобретения;
[29] на фиг. 12 В показана упрощенная таблица в соответствии с вариантами осуществления настоящего изобретения;
[30] на фиг. 13 показана упрощенная блок-схема алгоритма в соответствии с вариантами осуществления настоящего изобретения;
[31] на фиг. 14 показана упрощенная блок-схема алгоритма в соответствии с вариантами осуществления настоящего изобретения;
[32] на фиг. 15 показана эскизная схема в соответствии с вариантами осуществления настоящего изобретения.
Подробное описание изобретения
[33] Описанные ниже отличительные признаки настоящего изобретения могут использоваться как по отдельности, так и в различных сочетаниях, в любом их порядке. При этом варианты осуществления настоящего изобретения могут быть реализованы при помощи схем обработки данных (например, одного или более процессоров или одной или более интегральных схем). В одном из примеров один или более процессоров могут исполнять программу, хранящуюся на машиночитаемом носителе.
[34] На фиг. 1 проиллюстрирована упрощенная блок-схема системы 100 связи в соответствии одним из примеров осуществления настоящего изобретения. Система 100 связи может включать по меньшей мере два терминала 102 и 103, связанных друг с другом сетью 105. При однонаправленной передаче данных первый терминал 103 может кодировать видеоданные локально для передачи во второй терминал 102 по сети 105. Второй терминал 102 может принимать кодированные видеоданные от первого терминала из сети 105, декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных широко применяется в приложениях медиасервисов и аналогичных приложениях.
[35] На фиг. 1 проиллюстрирована вторая пара терминалов 101 и 104, сконфигурированных для поддержки двунаправленной передачи кодированного видео, которая может требоваться, например, при видеоконференцсвязи. При двунаправленной передаче данных оба терминала 101 и 104 могут кодировать локально захватываемые видеоданные для передачи в другой терминал по сети 105. Оба терминала 101 и 104 могут также принимать кодированные видеоданные, переданные другим терминалом, могут декодировать кодированные данные и отображать восстановленные видеоданные на локальном дисплейном устройстве.
[36] В примере фиг. 1 терминалы 101, 102, 103 и 104 могут быть серверами, персональными компьютерами или смартфонами, однако без ограничения ими настоящего изобретения. Варианты осуществления настоящего изобретения могут применяться в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференцсвязи. Сеть 105 может представлять собой любое количество сетей, передающих кодированные видеоданные между терминалами 101, 102, 103 и 104, включая, например, проводные и/или беспроводные сети связи. Сеть 105 связи может обеспечивать обмен данными по линиям связи с коммутацией каналов и/или коммутацией пакетов. Примерами таких сетей могут быть телекоммуникационные сети, локальные вычислительные сети, глобальные вычислительные сети и/или Интернет. В настоящем описании архитектура и топология сети 105 не играют никакой роли в функционировании предложенного изобретения, если на это явно не указано.
[37] На фиг. 2 проиллюстрировано, в качестве примера применения настоящего изобретения, размещение видеокодера и декодера в окружении потоковой передачи. Предложенное изобретение может применяться с равной эффективностью и в других областях, где используется видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранения сжатого видео на цифровых носителях, включая CD, DVD, карты памяти и т.п.
[38] Система потоковой передачи может включать подсистему 203 захвата, которая может включать источник 201 видео, например, видеокамеру, которая формирует поток 213 несжатых отсчетов. Поток 213 отсчетов показан жирной линией, чтобы подчеркнуть больший объем данных по сравнению с кодированными видеопотоками, может обрабатываться кодером 202, связанным с камерой 201. Кодер 202 может включать аппаратное обеспечение, программное обеспечение, или их комбинацию, которые позволяют реализовать аспекты предложенного изобретения, в соответствии с последующим более подробным описанием. Кодированный видеопоток 204, показанной тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с несжатым потоком 202 видеоотсчетов, может сохраняться на сервере 205 потоковой передачи для последующего использования. Один или более клиентов 121 и 207 потоковой передачи могут осуществлять доступ к серверу 205 потоковой передачи для получения копий 208 и 206 битового потока 204 кодированного видео. Клиентское устройство 212 может включать видеодекодер 211, который декодирует принятую копию битового потока 208 кодированного видео и формировать выходной поток 210 видеотсчетов, который может отображаться на дисплее 209 или другом устройстве отображения (не показано на чертеже). В некоторых системах потоковой передачи битовые видеопотоки 204, 206 и 208 могут быть кодированы в соответствии с заданными стандартами видеокодирования/видеосжатия. Примеры подобных стандартов упоминались ниже и будут более подробно рассмотрены в дальнейшем описании.
[39] Фиг. 3 является примером функциональной блок-схемы видеодекодера 300 соответствии с одним из вариантов осуществления настоящего изобретения.
[40] Приемник 302 может принимать одну или более кодированных видеопоследовательностей для декодирования при помощи декодера 300. В этом же или в альтернативном варианте осуществления настоящего изобретения прием видеопоследовательностей может выполняться поочередно, при этом декодирование каждой из кодированных видеопоследовательностей не зависит от декодирования остальных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала 301, который может представлять собой аппаратную и/или программную линию связи с запоминающим устройством, где хранят кодированные видеоданные. Приемник 302 может принимать кодированные видеоданные вместе с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут перенаправляться в соответствующие использующие их элементы (не показано на чертеже). Приемник 302 может отделять кодированную видеопоследовательность от остальных данных. Для борьбы с сетевым джиггером между приемником 302 и энтропийным декодером/анализатором 304 (далее, «анализатор») может быть установлена буферная память 303. Когда приемник 302 принимает данные из устройства хранения или передачи с достаточной полосой пропускания и управляемостью, или из сети с изосинхронной передачей, буфер 303 может не применяться или иметь малый объем. В случае применения пакетных сетей с негарантированной доставкой, таких как Интернет, буфер 303 необходим, может быть сравнительно объемным и, предпочтительно, иметь при этом адаптивный размер.
[41] Видеодекодер 300 может содержать анализатор 304 для восстановления символов 313 из энтропийно-кодированной видеопоследовательности. Типы этих символов могут включать, например, информацию, используемую для управления работой декодера 300, а также, возможно, информацию для управления устройством отображения, такого как дисплей 312, который может быть связан с декодером, но не являться его неотъемлемой частью. Управляющая информация для устройств отображения может, например, иметь форму сообщений дополнительной уточняющей информации (Supplementary Enhancement Information, SEI) или фрагментов наборов параметров информации об используемости видео (Video Usability Information, VUI) (не показано на чертеже). Анализатор 304 может выполнять анализ/энтропийное декодирование принятой кодированной видеопоследовательности. Кодированная видеопоследовательность может быть кодирована в соответствии с некоторой технологией или стандартом видеокодирования, и может следовать принципам, хорошо известным специалистам в данной области техники, включая кодирование с переменной длиной кодового слова, кодирование Хаффмана, контекстно-зависимое или контекстно-независимое арифметическое кодирование и т.п. Анализатор 304 может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной подгруппы пикселей в видеодекодере, на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать группы изображений (Groups of Pictures, GOP), изображения, тайлы, слайсы, макроблоки, кодовые блоки (Coding Units, CU), блоки (blocks), блоки преобразования (Transform Units, TU), блоки предсказания (Prediction Units, PU) и т.п. Анализатор может также извлекать из кодированной видеопоследовательности такую информацию, как коэффициенты преобразования, значения параметров квантователя, векторы движения и т.п.
[42] Анализатор 304 может выполнять операции энтропийного декодирования/анализа над видеопоследовательностью, принятой из буфера 303, и формировать символы 313. Анализатор 304 может принимать кодированные данные и избирательное декодировать некоторые из символов 313. Также, анализатор 304 может определять, должны ли некоторые из символов 313 быть переданы в блок 306 предсказания с компенсацией движения, блок 305 масштабирования / обратного преобразования, блок 307 внутреннего предсказания или в контурный фильтр 311.
[43] При восстановлении символов 313 могут задействоваться различные блоки устройства, в зависимости от типа кодированных видеоизображений или их частей (например, внутренне и внешне предсказываемые изображения, внутренне и внешне предсказываемые блоки отсчетов), а также от других факторов То, какие блоки устройства будут задействованы, и каким образом, может определяться управляющей информацией подгруппы, извлеченной из кодированной видеопоследовательности анализатором 304. Для простоты поток такой управляющей информации подгруппы между анализатором 304 и множеством описанных ниже блоков устройства на чертеже не показан.
[44] Помимо уже упомянутых функциональных блоков декодер 300 может быть концептуально подразбит на набор описанных ниже функциональных блоков. В практических реализациях, применяемых в коммерческих условиях, многие из этих блоков плотно взаимодействуют друг с другом и могут быть, по меньшей мере частично, взаимно интегрированы. Однако в целях описания предложенного изобретения подходит описанное ниже подразделение на функциональные блоки.
[45] Первым из таких блоков может быть блок 305 масштабирования/обратного преобразования. Блок 305 масштабирования/обратного преобразования принимает квантованные коэффициенты преобразования, а также управляющую информацию, включая информацию о том, какое преобразование следует использовать, размер блока отсчетов, коэффициент квантования, масштабирующие матрицы квантования и т.п., в виде символов 313 из анализатора 304. Он выдает блоки отсчетов, включающие значения отсчетов, которые могут быть введены в агрегатор 310.
[46] В некоторых случаях отсчеты на выходе из блока 305 масштабирования / обратного преобразования могут относиться к типу внутренне кодированных блоков отсчетов; то есть, блоков отсчетов, для которых не используют информацию предсказания из ранее восстановленных изображений, но могут использовать информацию из ранее восстановленных частей текущего изображения. Такая информация предсказания может предоставляться блоком 307 внутреннего предсказания изображений. В некоторых случаях блок 307 внутреннего предсказания изображений может формировать блоки отсчетов тех же размеров и формы, что и восстанавливаемый блок отсчетов, с использованием уже восстановленной информации его окружения, полученной из текущего (частично восстановленного) изображения в памяти 309 текущих изображений. Агрегатор 310 может в некоторых случаях добавлять информацию предсказания, сформированную блоком 307 внутреннего предсказания, к выходной информации отсчетов, предоставляемой блоком 305 масштабирования/обратного преобразования, индивидуально для каждого отсчета.
[47] В других случаях отсчеты на выходе блока 305 масштабирования/обратного преобразования могут относиться к внешне кодируемым блокам отсчетов, и потенциально, блокам отсчетов с компенсацией движения. В таких случаях блок 306 предсказания с компенсацией движения может осуществлять доступ к памяти 308 опорных изображений и получать отсчеты, используемые для предсказания. После компенсации движения полученные отсчеты, в соответствии с символами 321, относящимися к этому блоку отсчетов, могут быть добавлены агрегатором 355 к выходным данным блока 351 масштабирования/обратного преобразования (в этом случае их называют разностными отсчетами или разностным сигналом), в результате чего формируют выходную информацию отсчетов. Адреса в памяти опорных изображений, по которым блок предсказания с компенсацией движения получает предсказанные отсчеты, могут определяться векторами движения, доступными для блока предсказания с компенсацией движения в форме символов 313, которые могут иметь, например, Х-компоненту, Y-компоненту и компоненту опорного изображения. Компенсация движения может также включать интерполяцию значений отсчетов, полученных из памяти опорных изображений, когда применяют векторы движения, механизмы предсказания векторов движения и т.п., имеющие субпиксельную точность.
[48] Отсчеты на выходе из агрегатора 310 могут обрабатываться при помощи различных методов контурной фильтрации в блоке 311 контурной фильтрации. Технологии сжатия видео могут включать технологии внутриконтурной фильтрации, которые управляются параметрами, содержащимися в кодированном битовом видеопотоке, и предоставляемыми в блок 311 контурной фильтрации в виде символов 313 из анализатора 304. Они могут также зависеть от метаинформации, полученной при декодировании предшествующих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также от ранее восстановленных и прошедших контурную фильтрацию значений отсчетов.
[49] Выходными данными блока 311 контурной фильтрации может быть поток отсчетов, который подают в устройство 312 отображения, а также сохраняют в памяти 557 опорных изображений для использования при будущем внешнем предсказании изображений.
[50] Отдельные кодированные изображения после их полного восстановления могут использоваться в качестве опорных для будущего предсказания. После полного восстановления кодированного изображения, и если оно было определено как опорное (например, анализатором 304), текущее опорное изображение 309 может быть помещено в буфер 308 опорных изображений, и перед началом восстановления следующего кодированного изображения может быть выделена новая память текущих изображений.
[51] Видеодекодер 300 может выполнять операции декодирования в соответствии с заранее заданной технологий сжатия видео, которая может быть задокументирована в стандарте, например, рекомендации Н.265 ITU-T. Кодированная видеопоследовательность может удовлетворять синтаксису, заданному применяемой технологией или стандартом сжатия видео, в том смысле, что она удовлетворяет синтаксису, заданному в документе, или стандарте, технологии сжатия видео, и в частности, синтаксису специфицированных профилей стандарта. При этом, чтобы отвечать некоторым из технологий или стандартов сжатия видео, сложность кодированной видеопоследовательности должна быть в пределах ограничений, определяемых уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни стандарта ограничивают максимальный размер изображения, максимальную частоту смены кадров, максимальную частоту восстановления отсчетов (измеряемую, например, в миллионах отсчетов в секунду), максимальный размер опорного изображения и т.п. Накладываемые уровнями ограничения в некоторых случаях могут быть дополнительно лимитированы при помощи спецификаций гипотетического эталонного декодера (Hypothetical Reference Decoder, HRD) и метаданных для управления буфером HRD-декодера, сигнализируемых в кодированной видеопоследовательности.
[52] В одном из вариантов осуществления настоящего изобретения приемник 302 может вместе с кодированным видео принимать дополнительные (избыточные) данные. Эти дополнительные данные могут быть составной частью кодированной видеопоследовательности (или видеопоследовательностей). Дополнительные данные могут использоваться видеодекодером 300 для корректного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут иметь форму, например, уточняющих временных и пространственных уровней, уровня улучшения соотношения сигнал/шум (signal noise ratio, SNR), избыточных слайсов, избыточных изображений, кодов упреждающей коррекции ошибок и т.п.
[53] На фиг. 4 показана функциональная блок-схема видеокодера 400 в соответствии с одним из вариантов осуществления настоящего изобретения.
[54] Кодер 400 может принимать видеоотсчеты из источника 401 видео (который не является частью кодера), захватывающего видеоизображения для кодирования при помощи кодера 400.
[55] Источник 401 видео может подавать исходную видеопоследовательность для кодирования видеокодером (303) в форме цифрового потока видеоотсчетов, имеющих любую подходящую битовую глубину (например, 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру отчетов (например, Y СrСb 4:2:0, Y СrСb 4:4:4). В системе медиасервиса источник 401 видео может быть запоминающим устройством, на котором хранят заранее подготовленное видео. В системе видеоконференцсвязи источник 401 видео может быть видеокамерой, которая захватывает информацию изображений локально в форме видеопоследовательности. Видеоданные могут иметь форму множества отдельных изображений, которые передают ощущение движения при их последовательном просмотре. Сами изображения могут быть организованы в виде пространственной матрицы пикселей, где каждый пиксель может включать один или более отсчетов, в зависимости от применяемой структуры отсчетов, цветового пространства и т.п. Специалистам в данной области техники должно быть очевидна связь между пикселями и отсчетами. Далее в настоящем описании будут рассматриваться отсчеты.
[56] В соответствии с одним из вариантов осуществления настоящего изобретения кодер 400 может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность 410 в реальном времени, или в соответствии с другими временными ограничениями, накладываемыми практическим применением. Одной из функций контроллера 402 может быть обеспечение подходящей скорости кодирования. Контроллер управляет остальными функциональными блоками, описанными ниже, и быть функционально связан с этими блоками. Эта связь для простоты на чертеже не показана. Параметры, задаваемые контроллером, могут включать параметры, связанные с управлением скоростью (пропуск изображений, квантователь, значение λ для методов оптимизации скорость-искажения, …), размером изображений, компоновкой групп изображений (GOP), максимальным диапазоном поиска векторов движения и т.п. Специалистам в данной области техники должны быть очевидны и другие функции контроллера 402, поскольку они могут соответствовать видеокодеру 400, оптимизированному для конструкции конкретной системы.
[57] Некоторые из видеокодеров работают в конфигурации, которая знакома специалистам в данной области техники под названием «петля кодирования». Крайне упрощенно, петля кодирования может состоять из подсистемы кодирования в кодере 402 (далее «кодер источника»), отвечающей за формирование символов на основе входных кодируемых изображений, а также опорных изображений, и (локального) декодера 406, встроенного в кодер 400 и восстанавливающего символы, с формированием данных отсчетов, которые бы идентичным образом формировал (удаленный) декодер (поскольку сжатие символов в кодированный битовый видеопоток является сжатием без потерь, в технологиях сжатия видео, рассматриваемых в настоящем изобретении). Этот восстановленный поток отсчетов вводят в память 405 опорных изображений. Поскольку декодирование потока символов дает результатом одинаковые с точностью до бита результаты, независимо от декодера (локального или удаленного), содержимое буфера опорных изображений также одинаково с точностью до бита в локальном кодере и удаленном кодере. Другими словами, подсистема предсказания в кодере «видит» в качестве отсчетов опорных изображений в точности те же значения отсчетов, которые «увидит» декодер, используя предсказание при декодировании. Этот фундаментальный принцип синхронности опорных изображений (и результирующий дрейф, если синхронность не может быть обеспечена, например, из-за ошибок в канале) должен быть хорошо известен специалистам в данной области техники.
[58] Работа «локального» декодера 406 по существу идентична «удаленному» декодеру 300, которая уже была подробно описана выше в связи с фиг. 3. Однако, поскольку символы доступны, а кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером 408 и анализатором 304 может выполняться без потерь, в локальном декодере 406 могут не быть в полной мере реализованы подсистемы энтропийного декодирования из состава декодера 300, включая канал 301, приемник 302, буфер 303 и анализатор 304.
[59] Здесь можно заметить, что любая технология декодирования, помимо анализа/энтропийного декодирования, имеющаяся в декодере, должна присутствовать в по существу идентичной функциональной форме в соответствующем кодере. Описание технологий кодирования может быть опущено, поскольку они могут быть обратными подробно описанным технологиям декодирования. Лишь в некоторых местах необходимо более подробное описание, и оно будет приведено ниже.
[60] В числе своих операций кодер 403 источника может выполнять кодирование с предсказанием на основе компенсации движения, при котором входные кадры кодируют с предсказанием на основе одного или более ранее кодированных кадров видеопоследовательности, которые были помечены как «опорные кадры». Таким образом, подсистема 407 кодирования кодирует разности между блоками пикселей во входном кадре и блоками пикселей в опорном кадре (или кадрах), которые могут быть выбраны как опорные для предсказания входного кадра.
[61] Локальный видеодекодер 406 может декодировать кодированные видеоданные кадров, помеченные как опорные, в зависимости от символов, формируемых кодером 403 источника. Операции подсистемы 407 кодирования, предпочтительно, являются обработкой данных с потерями. Когда кодированные видеоданные декодируют в видеодекодере (не показан на фиг. 4), восстановленная видеопоследовательность, как правило, является репликой исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер 406 в точности воспроизводит процесс декодирования, который мог бы выполняться удаленным видеодекодером, над опорными кадрами и помещает восстановленные опорные кадры в кэш 405 опорных изображений. Таким образом, кодер 400 может локально хранить копии восстановленных опорных кадров, содержимое которых совпадает с восстановленными опорными кадрами, получаемыми удаленным видеодекодером (при отсутствии ошибок передачи).
[62] Предсказатель 404 может выполнять поиск предсказаний для подсистемы 407 кодирования. То есть, для нового кодируемого кадра предсказатель 404 может выполнять поиск в памяти 405 опорных изображений, чтобы найти данные отсчетов (в качестве кандидатных опорных блоков пикселей), или метаданных, например, векторы движений опорных изображений, формы блоков и т.п., которые могут служить опорными для новых изображений. Предсказатель 404 может находить подходящие опорные данные для каждого отдельного блока пикселей. В некоторых случаях, в зависимости от результатов поиска, полученных предсказателем 404, опорные данные для предсказания входного изображения могут извлекаться из нескольких опорных изображений, хранимых в памяти 405 опорных изображений.
[63] Контроллер 402 может управлять операциями кодирования в видеокодере 403, включая, например, задание параметров и параметров подгрупп, используемых для кодирования видеоданных.
[64] Выходные данные всех описанных выше функциональных блоков могут подвергаться энтропийному кодированию в энтропийном кодере 408. Энтропийный кодер преобразует символы, формируемые различными функциональными блоками, в кодированную видеопоследовательность путем сжатия этих символов, без потерь, в соответствии с технологиями, известными специалистами в данной области техники, например, кодированием Хаффмана, кодированием с переменной длиной кодового слова, арифметическим кодированием и т.п.
[65] Передатчик 409 может буферизовать кодированную видеопоследовательность (или видеопоследовательности), формируемую энтропийным кодером 408, чтобы подготовить ее к передаче по каналу 411 связи, который может представлять собой аппаратную и/или программную линию связи с запоминающим устройством, где хранят кодированные видеоданные. Передатчик 409 может объединять кодированные видеоданные из видеокодера 403 с другими передаваемыми данными, например, потоками кодированных аудиоданных и/или служебных данных (их источники не показаны на чертеже).
[66] Контроллер 402 может управлять работой кодера 400. При кодировании контроллер 405 может присваивать каждому кодированному изображению некоторый тип кодированного изображения, который может влиять на применяемые к нему методы кодирования. Например, изображениям может быть присвоен один из описанных ниже типов кадров.
[67] Внутренне предсказываемым изображением (I-изображением) может быть изображение, которое кодируют и декодируют без использования, в качестве источника для предсказания, каких-либо других кадров видеопоследовательности. Некоторые видеокодеки поддерживают различные типы внутренне предсказываемых изображений, например, изображения независимого обновления декодирования (IDR). Специалисты в данной области техники должны быть осведомлены о подобных вариантах I-изображений, а также об их свойствах и применимости.
[68] Предсказываемое изображение (Р-изображение) - это изображение, которое может кодироваться и декодироваться при помощи внутреннего или внешнего предсказания с использованием максимум одного вектора движения и указателя на опорное изображение для предсказания значений отсчетов каждого блока отсчетов.
[69] Двунаправленно предсказываемое изображение (В-изображение) - это изображение, которое может кодироваться и декодироваться при помощи внутреннего или внешнего предсказания с использованием максимум двух векторов движения и указателей на опорное изображение для предсказания значений отсчетов каждого блока отсчетов. Аналогично, в случае множественно предсказываемых изображений могут применяться более чем два опорных изображения и соответствующих метаданных, чтобы восстановить один блок отсчетов.
[70] Исходные изображения обычно пространственно разбивают на множество блоков отсчетов (например, блоки размера 4×4, 8×8, 4×8 или 16×16 отсчетов в каждом) и кодируют поблочно. Блоки отсчетов могут кодироваться с предсказанием на основе других (уже кодированных) блоков, в зависимости от типов кодирования, назначенных соответствующим этим блоками изображениям. К примеру, блоки отсчетов в I-изображениях могут кодироваться без предсказания или с предсказанием на основе уже кодированных блоков того же изображения («пространственное предсказание» или «внутреннее предсказание»). Блоки пикселей в Р-изображениях могут кодироваться без предсказания, с помощью пространственного предсказания или с помощью временного предсказания на основе одного ранее кодированного опорного изображения. Блоки отсчетов в В-изображениях могут кодироваться без предсказания, с помощью пространственного предсказания или с помощью временного предсказания на основе одного или двух ранее кодированных опорных изображений.
[71] Видеокодер 400 может выполнять операции кодирования в соответствии с заранее заданной технологией или стандартом видеокодирования, которые могут быть задокументированы в стандарте, например, рекомендации Н.265 ITU-T. При своем функционировании видеокодер 400 может выполнять различные операции сжатия, включая операции кодирования с предсказанием, использующие временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, соответственно, могут удовлетворять синтаксису, заданному применяемой технологией или стандартом видеокодирования.
[72] В одном из вариантов осуществления настоящего изобретения передатчик 409 может, совместно с кодированным видео, передавать дополнительные данные. Кодер 403 источника может предоставлять такие данные, как фрагмент кодированной видеопоследовательности. Дополнительные данные могут включать данные уточняющих временных, пространственных или SNR-уровней, избыточных изображений или слайсов, сообщений дополнительной уточняющей информации (SEI) или фрагментов наборов параметров информации об используемости видео (VUI) и т.п.
[73] На фиг. 5 проиллюстрированы режимы внутреннего предсказания, используемые в стандартах HEVC и JEM. Количество режимов внутреннего предсказания, используемых для захвата направлений контуров, которые в естественном видео могут иметь произвольные направление, было увеличено с 33, применяемых в HEVC, до 65. Дополнительные режимы направлений в JEM, по сравнению с HEVC, показаны пунктирными стрелками на фиг. 1(b), тогда как плоский режим и режим DC остаются неизменными. Увеличенная плотность направлений для режимов внутреннего предсказания доступна для блоков любых размеров, как для предсказаний яркости, так и цветности. В соответствии с иллюстрацией фиг. 5 режимы направленного внутреннего предсказания, показанные пунктирными стрелками, связаны с нечетными порядковыми номерами режима внутреннего предсказания, и их называют нечетными режимами внутреннего предсказания. Режимы направленного внутреннего предсказания, показанные сплошными стрелками, связаны с четными порядковыми номерами режима внутреннего предсказания. Их называют четными режимами внутреннего предсказания. В настоящем документе режимы направленного внутреннего предсказания, показанные на фиг. 5 как сплошными, так и пунктирными стрелками, также называют угловыми режимами.
[74] В стандарте JEM для внутреннего предсказания яркости применяют в общей сложности 67 режимов внутреннего предсказания. Для кодирования режима внутреннего предсказания формируют список из 6 элементов, называемый списком наиболее вероятных режимов (most probable mode, МРМ), на основе режимов внутреннего предсказания соседних блоков отчетов. Если режим внутреннего предсказания выбирается не из списка МРМ, сигнализируют специальный флаг, который указывает, принадлежит ли режим внутреннего предсказания к избранным режимам. В стандарте JEM-3.0 имеется 16 избранных режимов, выбираемых равномерно, как каждый четвертый угловой режим. В стандартах JVET-D0114 и JVET-G0060 вместо равномерно выбираемых режимов формируют 16 вторичных МРМ.
[75] На фиг. 6 показаны N опорных рядов, применяемых для режимов направленного внутреннего предсказания. Имеются блок 611, сегмент А 601, сегмент В 602, сегмент С 603, сегмент D 604, сегмент Е 605, сегмент F 606, первый опорный ряд 610, второй опорный ряд 609, третий опорный ряд 608 и четвертый опорный ряд 607.
[76] В обоих стандартах, HEVC и JEM, а также в некоторых других стандартах, например в H.264/AVC, опорные отсчеты, используемые для предсказания текущего блока отсчетов, ограничены ближайшей опорной линией (строкой или столбцом). В методе внутреннего предсказания на основе нескольких опорных линий количество кандидатных опорных линий (строк или столбцов) увеличено от одного (т.е. ближайшей линии) до N для режимов направленного внутреннего предсказания, где N - целое число большее или равное единице. На фиг. 2 в качестве примера для иллюстрации принципа метода направленного внутреннего предсказания на основе множества линий рассмотрен блок предсказания (prediction unit, PU) размером 4×4. Режим направленного внутреннего предсказания может произвольно выбирать один из N опорных рядов для формирования предсказаний. Другими словами, предсказание р(х,у) формируют на основе опорных отсчетов S1, S2, …, и SN. Сигнализируют флаг, указывающий, какой из опорных рядов выбран для режима направленного внутреннего предсказания. Если N установлено равным 1, метод направленного внутреннего предсказания идентичен традиционному методу, применяемому в JEM 2.0. На фиг. 6 опорные линии 610, 609, 608 и 607 состоят из шести сегментов 601, 602, 603, 604, 605 и 606, вместе с верхним левым опорным отсчетом. В настоящем документе опорный ряд также называют опорной линией. Координаты левого верхнего пикселя в текущем блоке равны (0,0), при этом левый верхний пиксель в 1-ой опорной линии имеет координаты (-1,-1).
[77] В стандарте JEM перед описанной процедурой формирования значения внутреннего предсказания отсчета, для составляющей яркости, соседние с ним отсчеты фильтруют. Фильтрация определяется заданным режимом внутреннего предсказания и размером блока преобразования. Если режимом внутреннего предсказания является режим DC, или если размер блока преобразования равен 4×4, соседние отсчеты не фильтруют. Если расстояние между заданным режимом внутреннего предсказания и вертикальным режимом (или горизонтальным режимом) больше, чем заранее заданный порог, процедура фильтрации активируется. Для фильтрации соседних отсчетов применяют фильтр [1, 2, 1] и билинейные фильтры.
[78] Метод комбинирования внутренних предсказаний в зависимости от позиции (position dependent intra prediction combination, PDPC) - это метод внутреннего предсказания, в котором осуществляют комбинирование нефильтрованных граничных опорных отсчетов и предсказание типа применяемого в стандарте HEVC с фильтрованием граничных опорных отсчетов. Для каждого отсчета, расположенного по координатам (х, у), предсказание pred[x][y] вычисляют следующим образом:
x
-1
-1
y
-1,-1
где R,,R, нефильтрованные опорные отсчеты, расположенные сверху и слева от текущего отсчета (х, у) соответственно, a R - нефильтрованный опорный отсчет, расположенный в верхнем левом углу текущего блока отсчетов. Весовые вычисляют следующим образом:
x,-1
-1,y
-1,-1
x,-1
-1,y
[79] На фиг. 7 показана блок-схема 700, на которой метод PDPC в режиме DC определяет весовые коэффициенты (wL, wT, wTL) для позиций (0, 0) и (1, 0) внутри одного блока отсчетов размером 4x4. Если PDPC применяют в режиме DC, плоском, горизонтальном и вертикальном режимах внутреннего предсказания, дополнительные граничные фильтры, такие как граничный фильтр режима DC HEVC или краевые фильтры горизонтального или вертикального режимов, не требуются. На фиг. 7 показано определение опорных отсчетов R, R и R для метода PDPC, применяемого для диагонального режима «направо вверх». Предсказание отсчета pred(x', у') находится в позиции (х', у') внутри блока предсказания. Координату х опорного отсчета Rполучают как х=х'+у'+1, а координату у опорного отсчета R аналогично, как у=х'+у'+1.
[80] На фиг. 8 показана блок-схема 800 локальной компенсации яркости (Local Illumination Compensation, LIC), которая основана на линейной модели изменения яркости, с использованием коэффициента а масштабирования и смещения b. Ее активируют или деактивируют адаптивно для каждого отдельного блока CU, кодированного в режиме внешнего предсказания.
[81] Когда для блока кодирования применяют процедуру LIC, для вычисления параметров а и b задействуют метод наименьших квадратов, с использованием соседних отсчетов в текущем блоке кодирования и соответствующих им опорных отсчетов. В частности, в соответствии с иллюстрацией фиг. 8, используют подвыборку (с масштабированием 2:1) соседних отсчетов данного блока кодирования и соответствующие отсчеты (на которые указывает информация о движении текущего блока кодирования или подблока кодирования) в опорном изображении. Параметры компенсации яркости вычисляют и применяют для каждого направления предсказания независимо.
LIC
[82] Когда блок кодирования кодируют в режиме слияния, флаг  копируют из соседних блоков, аналогично копированию информации о движении в режиме слияния. В противном случае для блока кодирования сигнализируют флаг LIC, чтобы указать на необходимости применения процедуры LIC.
[83] На фиг. 9А проиллюстрированы режимы 900 внутреннего предсказания в стандарте HEVC. В стандарте HEVC имеются в общей сложности 35 режимов внутреннего предсказания, при этом режим 10 является горизонтальным режимом, режим 26 вертикальным, а режимы 2, 18 и 34 диагональными. Режимы внутреннего предсказания сигнализируют при помощи трех наиболее вероятных режимов (МРМ) и 32 остальных режимов.
[84] В вариантах осуществления стандарта VVC, в соответствии с иллюстрацией фиг. 9, имеются в общей сложности 87 режимов внутреннего предсказания, при этом режим 18 является горизонтальным режимом, режим 50 - вертикальным, а режимы 2, 34 и 66 - диагональными. Режимы -1 ~ -10 и режимы 67 ~ 76 называют режимами широкоугольного внутреннего предсказания (Wide-Angle Intra Prediction, WAIP).
[85] Предсказание pred(x,y) отсчета в позиции (х, у) находят с использованием режима внутреннего предсказания (DC, плоского, углового) и линейной комбинации опорных отсчетов в соответствии с выражением PDPC:
x,-1
-1,y
-1,-1
где R,R - опорные отсчеты, расположенные сверху и слева от текущего отсчета (х, у) соответственно, a R обозначен опорный отсчет, расположенный в верхнем левом углу текущего блока отсчетов.
[86] Для режима DC весовые коэффициенты для блока размерностью width х height (ширина х высота) вычисляют следующим образом:
где и где wT весовой
коэффициент для опорного отсчета, расположенного в опорной линии сверху с той же горизонтальной координатой, wL весовой коэффициент для опорного отсчета, расположенного в опорной линии слева с той же вертикальной координатой, wTL - весовой коэффициент для верхнего левого опорного отсчета для текущего блока, nScale определяет, как быстро весовые коэффициенты уменьшаются вдоль оси (wL уменьшается слева направо, wT уменьшается сверху вниз), то есть, скорость уменьшения весовых коэффициентов, которая в данной схема равна по оси х (слева направо) и по оси у (сверху вниз). Числом 32 обозначены исходные весовые коэффициенты для соседних отсчетов, при этом исходным также являются верхний (левый или левый-верхний) коэффициенты, присвоенные верхнему левому отсчету в текущем блоке кодирования, и при этом весовые коэффициенты для соседних отсчетов в процедуре должны быть меньше или равны этому исходному весовому коэффициенту.
[87] В плоском режиме wTL=0, тогда как в горизонтальном режиме wTL=wT, а в вертикальном режиме wTL=wL. Весовые коэффициенты для PDPC могут быть вычислены при помощи исключительно операций сложения и сдвига. Значение pred(x,y) может быть вычислено одним шагом с помощью ур. 1.
[88] Предложенные здесь способы могут использоваться как по отдельности, так и в различных сочетаниях, в любом их порядке. При этом все способы (или варианты осуществления изобретения), кодер и декодер, предложенные в вариантах осуществления настоящего изобретения, могут быть реализованы при помощи схем обработки данных (например, одного или более процессоров или одной или более интегральных схем). В одном из примеров один или более процессоров могут исполнять программу, хранящуюся на энергонезависимом машиночитаемом носителе. В приведенном ниже описании термин «блок» можно понимать как блок предсказания, блок кодирования или блок кодирования, CU.
[89] На фиг. 10 показана упрощенная блок-схема 1000 алгоритма в соответствии с примерами осуществления настоящего изобретения. На шаге S10 кодер, например, описанный на примере кодера 400 фиг. 4, получает входные изображения, и на шаге S11 кодирует эти изображения, например, путем кодирования, включающего формирование блоков NAL (уровня сетевой абстракции), каждый из которых содержит заголовок и данные полезной нагрузки. Некоторые из блоков NAL содержат наборы параметров, а другие содержат кодированные отсчеты изображений, причем в этих изображениях различные блоки могут относиться к одному из или более из множества слайсов или сегментов слайсов, которые могут быть как зависимы, так и независимы друг от друга. На шаге S12 передают битовый поток блоков NAL, отдельно или вместе с другими данными, по сети, например, в декодер, к примеру, в декодер 300, показанный на фиг. 3.
[90] На фиг. 13 показана блок-схема 1300 алгоритма, где, на шаге S30, аналогично шагу S11 на фиг. 10, формируют синтаксис разделителя блоков доступа, например, в соответствии с иллюстрацией фиг. 11. На шаге S31, в отношении синтаксической структуры 1101 pic_type, выполняют определение, должна ли эта синтаксическая структура быть задана, путем определения, сформированы ли соответствующие данные в результате кодирования или нет, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1101 pic_type. К примеру, может быть определено, указывает ли синтаксическая структура 1101 pic_type, если она присутствует, на значение 0, 1 или 2, в соответствии с иллюстрацией фиг. 12, т.е. это означает, что одно или более значений slice_type могут присутствовать в слайсах кодированного изображения в блоке доступа, который содержит разделитель блоков доступа, и могут быть соответствующим образом установлены и сигнализированы на шаге S34.
[91] На шаге S32 фиг. 13, в отношении синтаксической структуры 1102 rap_type, определяют, должна ли эта синтаксическая структура быть задана, путем определения, сформированы ли соответствующие данные в результате кодирования или нет, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1102 rap_type. К примеру, может быть определено, указывает ли синтаксическая структура 1102 rap_type, если она присутствует, на значение 0, 1 или 2, в соответствии с иллюстрацией фиг. 12 В, тем самым возможно указывая значение nuh_unit_type VCL для всех слайсов кодированного может присутствовать в слайсах кодированного изображения в блоке доступа, который содержит разделитель блоков доступа, и может быть соответствующим образом установлено и сигнализировано на шаге S34.
[92] На шаге S43 фиг. 14, в отношении синтаксической структуры 1103 au_order_cnt, выполняют определение, должна ли эта синтаксическая структура быть задана, путем определения, сформированы ли соответствующие данные в результате кодирования или нет, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1103 au_order_cnt. К примеру, может быть определено, указывает ли синтаксическая структура 1103 au_order_cnt, если она присутствует, на значение порядкового номера блока доступа, которое идентифицирует соответствующий блок (или блоки) доступа среди соседних блоков доступа, и лежит ли оно в диапазоне от 0 до 255 включительно, и такая информация может быть соответствующим образом установлена и сигнализирована на шаге S34.
[93] В соответствии с примерами осуществления настоящего изобретения, шаги S31, S32, и S33 могут выполняться последовательно или параллельно, в соответствии с иллюстрацией фиг. 13, и в зависимости от результатов определения на одном или более из этих шагов, S31, S32 и S33, описанная выше информация может быть задана на шаге S34 и задана как часть одного или более блоков доступа NAL, в связи с возможными синтаксическими элементами синтаксической структуры 1100 the access_unit_delimiter_rbsp, показанной на фиг. 11.
[94] Также, на фиг. 10 один или более из блоков NAL могут быть кодированы и приняты на шаге S13 с данными, описанными на примере фиг. 11 и других соответствующих чертежей, таким образом, что разделитель блоков доступа может указывать на различную описанную здесь информацию, и на шаге S13 эти данные анализируют и декодируют, в результате чего на шаге S14 получают одно или более выходных изображений в соответствии с настоящим описанием.
[95] На фиг. 11 показана синтаксическая таблица 1100 последовательности исходных байтов полезной нагрузки (RBSP) для разделителя блоков доступа, который используют для сигнализации информации о начале видеокадра, в соответствии с примерами осуществления настоящего изобретения, а на фиг. 12 показана таблица 1200, иллюстрирующая значения slice_type.
[96] Синтаксическая структура 1101 pic_type указывает на то, что значения slice_type для всех слайсов кодированных изображений в блоке доступа, который содержит блок NAL с разделителем блоков доступа, являются элементами набора, перечисленного в таблице 1100 для заданного значения pic_type. В битовых потоках, соответствующих этой версии, значение pic_type должно быть равно 0, 1 или 2. Рассмотрим таблицу 1200 на фиг. 12. В соответствии с примерами осуществления настоящего изобретения, значение 0 pic_type может указывать на присутствие, в кодированном изображении, значения I slice_type (слайса с исключительно внутренним предсказанием), значение 0 pic_type может указывать на присутствие, в кодированном изображении, значения I slice_type (слайса с исключительно внутренним предсказанием), значение 1 pic_type может указывать на присутствие, в кодированном изображении, значения slice_type Р (слайса с внешним предсказанием на основе одного I- или Р-слайса) и I, и значение 2 pic_type может указывать на присутствие, в кодированном изображении, значения slice_type В (слайса с внешним предсказанием на основе двух I- или Р-слайсов) Р, и I. Остальные значения pic_type зарезервированы для будущего использования  Декодеры, отвечающие вариантам осуществления настоящего изобретения, должны игнорировать зарезервированные значения pic_type.
[97] На фиг. 14 показана блок-схема 1400 алгоритма, где, на шаге S40, аналогично шагу S13 на фиг. 10, получают и анализируют синтаксис разделителя блоков доступа, например, в соответствии с иллюстрацией фиг. 11. На шаге S41, в отношении синтаксической структуры 1101 pic_type, выполняют определение, присутствует ли эта синтаксическая структура, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1101 pic-type. К примеру, может быть определено, указывает ли синтаксическая структура 1101 pic_type, если она присутствует, на значение 0, 1 или 2, в соответствии с иллюстрацией фиг. 12, т.е. это означает, что одно или более значений slice_type могут присутствовать в слайсах кодированного изображения в блоке доступа, который содержит разделитель блоков доступа.
[98] Нужно понимать, что блок NAL, в соответствии с вариантами осуществления настоящего изобретения, может включать кодированные видеоданные, которые содержат байты, указывающие на тип данных в этом блоке NAL, а также данные полезной нагрузки, при этом они могут быть сформированы кодером, например, описанным выше кодером 400. Блок или блоки NAL уровня видеокодирования (VCL) могут содержать идентификатор, ссылающийся на набор параметров изображения (PPS), к примеру, ссылающийся на набор параметров последовательности (SPS), и могут быть переданы в качестве наборов параметров в основной полосе частот и/или вне ее, в различных схемах доставки в зависимости от канала несущей.
[99] Нужно также понимать, что блок доступа может содержать множество блоков NAL, при этом декодирование каждого блока доступа может иметь результатом декодированное изображение. В соответствии с предшествующим описанием, может обеспечиваться префиксирование разделителя блоков доступа, и множество блоков NAL VCL в каждом блоке доступа может содержать первичное кодированное изображение, включающее слайсы или фрагменты данных слайсов, представляющие отсчеты видеоизображения.
[100] Синтаксическая структура 1102 rap_type определяет, что значения nuh_unit_type VCL ("nuh"- NAL unit header, заголовок блока NAL) для всех слайсов кодированных изображений в блоке доступа, который содержит блок NAL с разделителем блоков доступа, являются элементами набора, перечисленного в таблице 1200 В для заданного значения rap_type. В битовых потоках, соответствующих вариантам осуществления настоящего изобретения, значение rap type должно быть равно 0, 1 или 2. Рассмотрим таблицу 1200 В на фиг. 12 В. В соответствии с примерами осуществления настоящего изобретения значение 0 rap type может указывать на присутствие, в кодированном изображении, значения nuh_layer_id, равного любому из следующего: TRAIL_NUT (заголовок запаздывающего блока NAL (trailing NAL unit header, NUT)), STSA_NUT (NUT пошагового доступа к временному подуровню (STSA)), RASL_NUT (NUT пропускаемого опережающего изображения (или изображений) произвольного доступа (RASL)), RADL_NUT (NUT декодируемого изображения произвольного доступа (RADL)), а значение 1 rap_type может указывать на присутствие, в кодированном изображении, значения nuh_layer_id, равного любому из следующего: IDR_W_RADL (мгновенное обновление декодера (IDR) с RADL (могут присутствовать опережающие изображения)), IDR_N_LP (без опережающих изображений), CRA_NUT (NUT точки чистого произвольного доступа (CRA)), GDR_NUT (NUT постепенного обновления декодера (GDR), и значение 2 rap_type может указывать на присутствие, в кодированном изображении, любых значений nuh_unit_type_values VCL. Остальные значения rap type зарезервированы для будущего использования ITU-T ISO/IEC. Декодеры, отвечающие вариантам осуществления настоящего изобретения, должны игнорировать зарезервированные значения rap_type. Значение rap_type может определять, содержат ли кодированные изображения в блоке доступа только блоки NAL, не являющиеся IRAP (точкой произвольного доступа внутреннего предсказания), только блоки NAL_IRAP, или одновременно IRAP и не-IRAP блоки NAL. Значение rap type может использоваться для указания, присутствует ли в блоке доступа точка произвольного доступа. В соответствии с примерами осуществления настоящего изобретения в HEVC могут присутствовать следующие классы изображений: IRAP-изображения (которые могут принадлежать временному подуровню 0 и кодироваться без использования содержимого других изображений в качестве опорных данных), опережающие изображения (следующие за IRAP-изображением в порядке декодирования, однако предшествующие в порядке вывода) и запаздывающие изображения (следующие за IRAP-изображение и в порядке декодирования, и в порядке вывода).
[101] На шаге S42 на фиг. 14, в отношении синтаксической структуры 1102 rap_type, выполняют определение, присутствует ли эта синтаксическая структура, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1102 rap_type. К примеру, может быть определено, указывает ли синтаксическая структура 1102 rap_type, если она присутствует, на значение 0, 1 или 2, в соответствии с иллюстрацией фиг. 12 В, тем самым возможно указывая значение nuh_unit_type VCL для всех слайсов кодированного может присутствовать в слайсах кодированного изображения в блоке доступа, который содержит разделитель блоков доступа.
[102] В соответствии с примерами осуществления настоящего изобретения для указания на границу блока доступа может быть обязательной сигнализация AUD. В AUD синтаксический элемент pic_type может сигнализироваться для указания, какие значение slice_type присутствуют в слайсах кодированных изображений в блоке доступа, который содержит блок NAL с разделителем блоков доступа, при этом pic_type может использоваться для определения, является ли блок доступа зависимым или независимым от других блоков доступа.
[103] При этом синтаксическая структура 1103 au_order_cnt определяет значение порядкового номера блока доступа, который идентифицирует соответствующий блок доступа среди соседних блоков доступа. В соответствии с примерами осуществления настоящего изобретения значение au_order_cnt должно лежать в диапазоне от 0 до 255 включительно. Значение порядкового номера блока доступа может использоваться для определения границы блока доступа, в частности, когда один или более AUD утеряны.
[104] На шаге S43 на фиг. 14, в отношении синтаксической структуры 1103 au_order_cnt, выполняют определение, присутствует ли эта синтаксическая структура, и если это так, какое значение может быть сигнализировано с помощью этой синтаксической структуры 1103 au_order_cnt. К примеру, может быть определено, указывает ли синтаксическая структура 1103 au_order_cnt, если она присутствует, на значение порядкового номера блока доступа, которое идентифицирует соответствующий блок (или блоки) доступа среди соседних блоков доступа, и может лежать в диапазоне от 0 до 255 включительно.
[105] В соответствии с примерами осуществления настоящего изобретения, шаги S41, S42, и S43 могут выполняться последовательно или параллельно, в соответствии с иллюстрацией фиг. 14, и в зависимости от результатов определения на одном или более из этих шагов, S41, S42 и S43, описанная выше информация может быть установлена и сигнализирована на шаге S44, в связи с возможными синтаксическими элементами синтаксической структуры 1100 the access_unit_delimiter_rbsp, показанной на фиг. 11.
[106] В соответствии с примерами осуществления настоящего изобретения, как уже отмечалось, могут присутствовать один или более аппаратных процессоров и компьютерных компонентов, таких как буферы, арифметико-логические устройства, инструкции в памяти, которые сконфигурированы для определения или хранения заранее заданных дельта-значений (разностей) для различных значений, описанных в данном документе.
[107] Соответственно, при помощи примеров осуществления настоящего изобретения, рассмотренных в данном документе, упомянутые выше технические проблемы могут быть эффективно решены, по меньшей мере частично, с помощью одного или более из предложенных технических решений. То есть, в соответствии с вариантами осуществления настоящего изобретения, для решения одной или более различных технических проблем в настоящем документе описаны новые технические аспекты, в которых, предпочтительно, может сигнализироваться разделитель блоков доступа (AUD) для указания на то, какие значения slice_type присутствуют в слайсах кодированных изображений в блоке доступа, содержащем блок NAL с разделителем блоков доступа. Структура pic_type может использоваться для определения, является ли блок доступа независимым или зависимым от других блоков доступа. Также, утверждается, что сигнализация упомянутых новых синтаксических элементов позволяет эффективно указывать на блоки доступа с произвольным доступом, и соответственно, позволяет повысить надежность определения границ блоков доступа, в соответствии с примерами осуществления настоящего изобретения, и следовательно, позволяет повысить точность и эффективность.
[108] Описанные выше методы могут быть реализованы в виде компьютерного программного обеспечения, где используются машиночитаемые инструкции, и которое физически хранят на одном или более машиночитаемых носителей, или при помощи специальным образом сконфигурированных одного или более аппаратных процессоров. К примеру, на фиг. 12 показана компьютерная система 1200 подходящая для реализации некоторых из вариантов осуществления настоящего изобретения.
[109] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или языка программирования, который может обрабатываться при помощи ассемблирования, компиляции, линкования или аналогичных механизмов, в результате чего получают код, включающий инструкции, выполняемые непосредственно или при помощи интерпретации, исполнения микрокода и т.п., центральными процессорами компьютера (computer central processing units, CPUs), графическими процессорами (Graphics Processing Units, GPU) и т.п.
[110] Инструкции могут выполняться на компьютерах, или компьютерных компонентах, различных типов, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[111] Компоненты компьютерной системы 1500, показанные на фиг. 15, приведены исключительно для примера и не предполагают каких-либо ограничений на область применения или функциональность компьютерного обеспечения, реализующего варианты осуществления настоящего изобретения. Аналогично, показанная конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требования, связанные с любым компонентом, проиллюстрированным в примере осуществления компьютерной системы 1500, или комбинацией таких компонентов.
[112] Компьютерная система 1500 может включать устройства ввода из состава интерфейса пользователя. Устройства ввода в пользовательском интерфейсе могут реагировать на ввод от одного или более пользователей при помощи, к примеру, тактильного ввода (например, нажатий на клавиши, жестов скольжения пальцем по экрану, движений киберперчатки), аудиоввода (например, голоса, хлопков ладоней), визуального ввода (например, жестов), обонятельного ввода (не показано на чертеже). Устройства пользовательского интерфейса могут также применяться для захвата медиаданных различных типов, не обязательно связанных с сознательным вводом от человека, таких как аудио (например, голос, музыка, звуки окружающей среды), изображения (например, сканированные изображения, фотоизображения, полученные с фотокамеры), видео (например, двумерное видео, трехмерное видео, включая стереоскопическое видео).
[113] Устройства пользовательского интерфейса могут включать одно или более из следующего (на чертеже показано только по одному устройству каждого типа): клавиатура 150), мышь 1502, трекпад 1503, сенсорный экран 1510, джойстик 1505, микрофон 1506, сканер 1508, камера 1507.
[114] Компьютерная система 1500 может также иметь в своем составе устройства вывода пользовательского интерфейса. Устройства вывода пользовательского интерфейса могут воздействовать на органы чувств одного или более пользователей, например, при помощи тактильного вывода, звука, света и/или запаха/вкуса. Устройства вывода пользовательского интерфейса могут включать устройства тактильного вывода (например, тактильная обратная связь от сенсорного экрана 1510 или джойстика 1505, однако могут также присутствовать устройства тактильного вывода, не являющиеся при этом устройствами ввода). К примеру, подобными устройствами могут быть устройства аудиовывода (например, громкоговорители 1509, наушники (не показаны на чертеже)), устройства визуального вывода (например, экраны 1510, включая CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, как сенсорные, так и без функций сенсорного ввода, как с функциями тактильно обратной связи, так и без них, при этом некоторые из экранов могут быть способны выводить двумерную визуальную информацию или более чем трехмерную визуальною информацию, при помощи таких средств, как например, стереографический вывод; очки виртуальной реальности (не показаны на чертеже), голографические дисплеи, дымовые машины, а также принтеры (не показаны на чертеже).
[115] Компьютерная система 1500 может также включать запоминающие устройства, доступные для пользователей, и связанные с ними носители данных, например, оптические носители, включая CD/DVD ROM/RW 1520, с носителями 1511 CD/DVD или аналогичными им, флэш-привод 1522, съемный жесткий диск или твердотельный диск 1523, применяемые ранее магнитные носители, например, ленты или гибкие диски (не показаны на чертеже), специализированные устройства на основе ROM/ASIC/PLD, например, аппаратные ключи (не показаны на чертеже), и т.п.
[116] Специалисты в данной области техники должны при этом понимать, что выражение «машиночитаемый носитель данных», используемое в связи с настоящим изобретением, не включает в себя среды передачи данных, несущие волны или другие энергозависимые сигналы.
[117] Компьютерная система 1500 может также иметь интерфейс 1599 с одной или более сетями 1598 связи. Сети 1598 могут быть, например, беспроводными, проводными или оптическими. Сети 1598 также могут быть локальными, глобальными, городскими, размещаемыми на транспортных средствах или промышленных объектах, сетями реального времени, устойчивыми к задержкам и т.п. Примеры сетей 1598 включают такие локальные сети, как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные или беспроводные глобальные сети цифрового телевещания, включая кабельное телевидение, спутниковое телевидение и сети эфирного вещания, сети транспортных средств и промышленных объектов, включая CANBus, и т.п. Некоторые сети 1598 требуют наличия внешних адаптеров сетевых интерфейсов, подключаемых к портам данных или периферийным шинам (1550 и 1551) общего назначения (например, USB-портам компьютерной системы 1500. Другие сети могут быть интегрированы во внутреннюю структуру компьютерной системы 1500 за счет подключения к системной шине, в соответствии с приведенным ниже описанием (например, интерфейс Ethernet в системе персонального компьютера или интерфейс сети сотовой связи в компьютерной системе на базе смартфона). Применение любых из подобных сетей 1598 позволяет компьютерной системе 1500 осуществлять связь с другими объектами. Такая связь может быть однонаправленной, только на прием (например, телевещание), однонаправленной, только на передачу (например, сеть CANbus в некоторые устройства CANbus) или двунаправленной, например, в другие компьютерные системы с использованием локальных или глобальных цифровых сетей. В любой из сетей и сетевых интерфейсов, описанных выше, могут применяться соответствующие протоколы и стеки протоколов.
[118] Описанные выше устройства пользовательского интерфейса, доступные пользователям запоминающие устройства и сетевые интерфейсы могут быть подключены к базовой внутренней структуре 1540 компьютерной системы 1500.
[119] Базовая внутренняя структура 1540 может включать один или более центральных процессоров (Central Processing Units, CPU) 1541, графических процессоров (Graphics Processing Units, GPU) 1542, специализированных программируемых блоков обработки данных в форме электрически программируемых вентильных матриц (Field Programmable Gate Areas, FPGA) 1543, аппаратных ускорителей 1544 для определенных задач и т.п. Эти устройства, вместе с памятью 1545 в режиме «только для чтения» (Read-only memory, ROM) 945, памятью 1546 с произвольным доступом, внутренней памятью большой емкости, например, внутренними, недоступными пользователю жесткими дисками, SSD-дисками и аналогичной памятью 1547, могут быть объединены системной шиной 1548. В некоторых компьютерных системах к системной шине 1548 может предоставляться доступ в виде одного или более физических разъемов, позволяющих расширять систему дополнительными CPU, GPU и т.п. Периферийные устройства могут подключаться либо непосредственно к базовой системной шине 1548, либо к периферийной шине 1551. Примерами архитектур периферийной шины могут служить шины PCI, USB и т.п.
[120] CPU 1541, GPU 1542, FPGA 1543 и ускорители 1544 могут выполнять инструкции, которые, в совокупности, могут составлять описанный выше компьютерный код. Компьютерный код может храниться в памяти ROM 1545 или RAM 1546. Временные данные при этом могут храниться в RAM 1546, тогда как постоянные данные могут храниться, например, во внутренней памяти 1547 большой емкости. Высокая скорость сохранения данных в запоминающие устройства и извлечения данных из них может обеспечиваться за счет применения кэш-памяти, которая может быть тесно связан с одним или более CPU 1541, GPU 1542, памятью 1547 большой емкости, ROM 1545, RAM 1546 и т.п.
[121] Машиночитаемые носители данных могут хранить компьютерный код для выполнения различных машиноисполняемых операций. Такие носители и компьютерный код могут быть специально спроектированными и изготовленными для целей настоящего изобретения или могут быть широко распространенными и известными специалистам в области компьютерного программного обеспечения.
[122] В качестве неограничивающего примера, компьютерная система с архитектурой 1500, и в частности, базовой структурой 1540, может предоставлять требуемую функциональность в результате исполнения, процессором (или процессорами) (включая CPU, GPU, FPGA, ускорители и т.п.), программного обеспечения, реализованного на одном или более материальных машиночитаемых носителях данных. Такие машиночитаемые носители данных могут быть носителями, связанными с описанными выше запоминающими устройствами большой емкости, которые доступны пользователям, или энергонезависимыми запоминающими устройствами в базовой структуре 1540, например, встроенным запоминающим устройством 1547 большой емкости или ROM 1545. Программное обеспечение, которое реализует различные варианты осуществления настоящего изобретения, может храниться в подобных устройствах и исполняться внутренней структурой 1540 компьютерной системы. Машиночитаемый носитель данных, в зависимости от конкретных требований, может включать одно или более запоминающих устройств или микросхем памяти. Программное обеспечение может обеспечивать выполнение, базовой структурой 1540, и в частности, процессорами из его состава (включая CPU, GPU, FPGA и т.п.), необходимых процедуры, или частей необходимых процедур, описанных в данном документе, включая создание структур данных, хранимых в RAM 1546, и модификацию этих структур данных в соответствии с процедурами, определенными программным обеспечением. В дополнение или альтернативно, компьютерная система может обеспечивать требуемую функциональность в результате работы логики, жестко запрограммированной или иным образом воплощенной в электрической схеме (например, ускорителе 1544), которая может работать вместе с программным обеспечением, или вместо него, для выполнения требуемых процедур или частей требуемых процедур, описанных в данном документе. Упоминание программного обеспечения, там, где это уместно, может подразумевать такую логику и наоборот. Упоминание машиночитаемого носителя, там, где это уместно, может подразумевать электрическую схему (например, интегральную схему), на которой хранится исполняемое программное обеспечение, электрическую схему, реализующую исполняемую логику или оба эти случая одновременно. В объем настоящего изобретения входят все соответствующие комбинации аппаратного и программного обеспечения.
[123] В данном документе были описаны несколько примеров осуществления настоящего изобретения, однако при этом возможны модификации, изменения и эквивалентные замены, которые попадают в объем настоящего изобретения. Соответственно, нужно понимать, что специалисты в данной области техники способны создать множество систем и способов, которые хотя явно здесь и не описаны, реализуют замысел настоящего изобретения и соответственно, находятся в пределах его объема и сущности.