СПОСОБЫ И УСТРОЙСТВО ДЛЯ АДАПТИВНОЙ ПОТОКОВОЙ ПЕРЕДАЧИ ОБЛАКОВ ТОЧЕК
METHODS AND DEVICE FOR ADAPTIVE POINT CLOUD STREAMING

Предпосылки создания изобретения
В последнее время появились высококачественные 3D-облака точек в качестве усовершенствованного представления об иммерсивной среде. Облако точек состоит из набора точек, представленных в 3D-пространстве, с использованием координат, указывающих местоположение каждой точки вместе с одним или более атрибутами, такими как цвет, связанный с каждой точкой, прозрачность, время получения, отражение лазера или свойство материала и т. п. Данные для создания облаков точек можно получать разными способами. Например, одной из методик захвата облаков точек является применение множества камер и датчиков глубины. Для захвата облаков точек также часто используют лазерные сканеры обнаружения света и определения дальности (LiDAR). Количество точек, необходимых для реалистичного восстановления объектов и сцен с использованием облаков точек, составляет порядка миллионов (или даже миллиардов). Следовательно, для хранения и передачи данных облака точек важны эффективное представление и сжатие.
Последние достижения в области технологий захвата и визуализации 3D-точек привели к появлению новых приложений в областях телеприсутствия, виртуальной реальности и крупномасштабных динамических 3D-карт. Подгруппа трехмерной графики (3D Graphics) экспертной группы по движущемуся изображению (Moving Picture Experts Group (MPEG)), курирующей стандарт ISO/IEC JTC1/SC29/WG11, в настоящее время работает над разработкой двух стандартов сжатия 3D-облаков точек (PCC): стандарта сжатия на основе геометрии для статических облаков точек (облаков точек для неподвижных объектов) и стандарта сжатия на основе видео для динамических облаков точек (облаков точек для движущихся объектов). Цель этих стандартов — обеспечение эффективного и интерактивного хранения и передачи 3D-облаков точек. Среди требований этих стандартов — поддержка кодирования с потерями и/или без потерь геометрических координат и атрибутов облака точек.
Краткое описание графических материалов
Более подробное объяснение содержится в представленном ниже подробном описании с использованием примеров в сочетании с прилагаемыми графическими материалами. Фигуры на таких графических материалах, как и подробное описание, являются примерами. Таким образом, данные фигуры и подробное описание нельзя рассматривать как ограничивающие, при этом возможны и вероятны другие в равной степени эффективные примеры. Кроме того, подобные позиции на фигурах указывают подобные элементы, причем
на фиг. 1A представлена блок-схема, иллюстрирующая пример системы кодирования и декодирования видео, в которой можно обеспечить и/или реализовать один или более вариантов осуществления;
на фиг. 1B приведена блок-схема, иллюстрирующая пример блока видеокодера для использования с системой кодирования и/или декодирования видео, показанной на фиг. 1A;
на фиг. 2 представлена блок-схема универсальной гибридной блочной системы кодирования видеосигналов;
на фиг. 3 представлена общая блок-схема блочного видеодекодера;
на фиг. 4 представлена структура битового потока для сжатия облака точек на основе видео (V-PCC);
на фиг. 5 представлена иерархическая модель данных MPD;
на фиг. 6 представлен пример DASH-конфигурации для группирования компонентов V-PCC, принадлежащих облаку с единственной точкой, в файле MPD MPEG-DASH; и
на фиг. 7 представлена блок-схема, иллюстрирующая пример способа декодирования для потоковой передачи содержимого облака точек в соответствии с вариантом осуществления.
Подробное описание
Примеры систем, в которых возможна реализация вариантов осуществления
На фиг. 1A показана блок-схема, иллюстрирующая пример системы 100 кодирования и декодирования видео, в которой можно обеспечить и/или реализовать один или более вариантов осуществления. Система 100 может включать в себя устройство-источник 112, которое может передавать кодированную видеоинформацию в устройство 114 назначения по каналу 116 связи.
Устройство-источник 112 и/или устройство 114 назначения могут представлять собой любые из широкого спектра устройств. В некоторых типовых вариантах осуществления устройство-источник 112 и/или устройство 114 назначения могут включать в себя модули беспроводной передачи и/или приема (WTRU), такие как беспроводные телефоны или любые беспроводные устройства, способные передавать видеоинформацию по каналу 116 связи, и в этом случае канал 116 связи включает в себя беспроводную линию связи. Однако способы, устройства и системы, описанные, раскрытые или иным образом предоставленные в явном виде, неявно и/или неотъемлемо (в совокупности называемые «предоставленными»), в настоящем документе не обязательно ограничиваются беспроводными приложениями или настройками. Например, эти методики можно применять к эфирным телевизионным трансляциям, передачам кабельного телевидения, передачам спутникового телевидения, передачам видео через Интернет, кодированному цифровому видео, которое закодировано на носителе данных, и/или к другим сценариям. Канал 116 связи может включать в себя и/или может представлять собой любую комбинацию беспроводных или проводных сред, подходящих для передачи кодированных видеоданных.
Устройство-источник 112 может включать в себя блок 118 видеокодера, блок 120 передачи и/или приема (Tx/Rx) и/или элемент 122 Tx/Rx. Как показано, устройство-источник 112 может включать в себя источник 124 видео. Устройство 114 назначения может включать в себя элемент 126 Tx/Rx, блок 128 Tx/Rx и/или блок 130 видеодекодера. Как показано, устройство 114 назначения может включать в себя устройство 132 отображения. Каждый из блоков 120, 128 Tx/Rx может представлять собой или может включать в себя передатчик, приемник или комбинацию передатчика и приемника (например, приемопередатчик или передатчик/приемник). Каждый из элементов 122, 126 Tx/Rx может представлять собой, например, антенну. В соответствии с настоящим описанием блок 118 видеокодера устройства-источника 112 и/или блок 130 видеодекодера устройства 114 назначения могут быть выполнены с возможностью и/или адаптированы (обобщенно «адаптированы») для применения методик кодирования, предложенных в настоящем документе.
Устройства 112 и 114 источника и назначения могут включать в себя другие элементы/компоненты или конструкции. Например, устройство-источник 112 может быть выполнено с возможностью приема видеоданных от внешнего источника видео. Устройство 114 назначения может взаимодействовать с внешним устройством отображения (не показано) и/или может включать в себя и/или использовать (например, интегрированное) устройство 132 отображения. В некоторых вариантах осуществления поток данных, сгенерированный блоком 118 видеокодера, может быть передан на другие устройства без модуляции данных несущим сигналом, например, путем прямой цифровой передачи, а другие устройства могут модулировать или не модулировать данные для передачи.
Предложенные в настоящем документе методики можно реализовать с помощью любого устройства цифрового кодирования и/или декодирования видео. Хотя методики, предложенные в настоящем документе, по существу выполняют с помощью отдельных устройств кодирования видео и/или декодирования видео, эти методики также могут быть выполнены с помощью объединенного кодера/декодера видео, обычно называемого «КОДЕКОМ». Предложенные в настоящем документе методики также могут выполняться процессором предварительной обработки видео или т.п. Устройство-источник 112 и устройство 114 назначения являются лишь примерами таких кодирующих устройств, в которых устройство-источник 112 может генерировать (и/или может принимать видеоданные и может генерировать) кодированную видеоинформацию для передачи в устройство 114 назначения. В некоторых типовых вариантах осуществления устройства 112, 114 источника и назначения могут работать по существу симметричным образом, так что каждое из устройств 112, 114 может включать в себя компоненты и/или элементы как кодирования, так и декодирования видео (обобщенно называемые «элементами»). Таким образом, система 100 может поддерживать любую из односторонней и двусторонней передачи видео между устройствами 112, 114 источника и назначения (например, помимо прочего, для любого варианта из потоковой передачи видео, воспроизведения видео, широковещательной передачи видео, видеотелефонии и/или видеоконференций). В некоторых типовых вариантах осуществления устройство-источник 112 может представлять собой, например, сервер потоковой передачи видео, выполненный с возможностью генерирования (и/или приема видеоданных и генерирования) кодированной видеоинформации для одного или более устройств назначения, причем устройства назначения могут обмениваться данными с устройством-источником 112 по системам проводной и/или беспроводной связи.
Внешний источник видео и/или источник 124 видео могут представлять собой и/или включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, и/или видеопоток от провайдера видеосодержимого. В некоторых типовых вариантах осуществления внешний источник видео и/или источник 124 видео могут генерировать данные на основе компьютерных графических изображений в качестве исходного видео или комбинацию видео в реальном времени, архивированного видео и/или генерируемого компьютером видео. В некоторых типовых вариантах осуществления, если источник 124 видео представляет собой видеокамеру, устройство-источник 112 и устройство 114 назначения могут представлять собой камерофоны или видеотелефоны или могут иметь их в своем составе.
Захваченные, предварительно захваченные, сгенерированные компьютером видео, видеопоток и/или другой тип видеоданных (обобщенно называются «некодированным видео») можно подвергать кодированию с помощью блока 118 видеокодера для формирования кодированной видеоинформации. Блок 120 Tx/Rx может модулировать кодированную видеоинформацию (например, в соответствии со стандартом связи для формирования одного или более модулированных сигналов, содержащих кодированную видеоинформацию). Блок 120 Tx/Rx может передавать модулированные сигналы на свой передатчик для передачи. Передатчик может передавать модулированные сигналы на устройство 114 назначения посредством элемента 122 Tx/Rx.
В устройстве 114 назначения блок 128 Tx/Rx может принимать модулированные сигналы по каналу 116 посредством элемента 126 Tx/Rx. Блок 128 Tx/Rx может демодулировать модулированные сигналы для получения кодированной видеоинформации. Блок 128 Tx/Rx может передавать кодированную видеоинформацию в блок 130 видеодекодера.
Блок 130 видеодекодера может декодировать кодированную видеоинформацию для получения декодированных видеоданных. Кодированная видеоинформация может включать в себя синтаксическую информацию, определенную блоком 118 видеокодера. Эта синтаксическая информация может включать в себя один или более элементов («элементы синтаксиса»), некоторые или все из которых могут быть полезны для декодирования кодированной видеоинформации. Элементы синтаксиса могут включать в себя, например, характеристики кодированной видеоинформации. Элементы синтаксиса также могут включать в себя характеристики и/или описывать обработку некодированного видео, используемого для формирования кодированной видеоинформации.
Блок 130 видеодекодера может выводить декодированные видеоданные для последующего хранения и/или отображения на внешний дисплей (не показан). В некоторых типовых вариантах осуществления блок 130 видеодекодера может выводить декодированные видеоданные на устройство 132 отображения. Устройство 132 отображения может представлять собой и/или может включать в себя любое отдельное устройство отображения, множество, комбинацию различных устройств отображения, выполненных с возможностью отображения декодированных видеоданных для пользователя. Примеры таких устройств отображения включают в себя, помимо прочего, жидкокристаллический дисплей (ЖКД), плазменный дисплей, дисплей на основе органических светодиодов (OLED) и/или катодную лучевую трубку (ЭЛТ).
Канал 116 связи может представлять собой любую среду беспроводной или проводной связи, такую как радиочастотный (РЧ) спектр, или одну или более физических линий передачи, или любую комбинацию беспроводных и проводных сред. Канал 116 связи может быть частью пакетной сети, такой как локальная сеть, территориально распределенная сеть или глобальная сеть, такая как сеть Интернет. Канал 116 связи по существу представляет собой любую подходящую среду связи или набор различных сред связи для передачи видеоданных от устройства-источника 112 к устройству 114 назначения, включая любую подходящую комбинацию проводных и/или беспроводных сред. Канал 116 связи может включать в себя маршрутизаторы, переключатели, базовые станции и/или любое другое оборудование, которое может быть полезным для облегчения передачи данных от устройства-источника 112 к устройству 114 назначения. Подробная информация по иллюстративной системе связи, которая может облегчать такую связь между устройствами 112, 114, приведена ниже со ссылкой на фиг. 15A–15E. Ниже также приведены подробные сведения об устройствах 112, 114 источника и назначения.
Блок 118 видеокодера и блок 130 видеодекодера могут работать в соответствии с одним или более стандартами и/или спецификациями, такими как, например, помимо прочего, MPEG-2, H.261, H.263, H.264, H.264/AVC и/или H.264, расширенные в соответствии с расширениями SVC (H.264/SVC). Специалисту в данной области понятно, что способы, устройства и/или системы, описанные в настоящем документе, применимы к другим видеокодерам, декодерам и/или КОДЕКам, реализованным в соответствии с разными стандартами (и/или совместимым с ними), или к запатентованным видеокодерам, декодерам и/или КОДЕКам, включая будущие видеокодеры, декодеры и/или КОДЕКи. Методики, изложенные в настоящем документе, не ограничены каким-либо конкретным стандартом кодирования.
Релевантные части H.264/AVC, упомянутые выше, доступны в Международном союзе электросвязи в качестве рекомендации ITU-T Recommendation H.264 или точнее ITU-T Rec. H.264 и ISO/IEC 14496-10 (MPEG4-AVC), Advanced Video Coding for Generic Audiovisual Services,’v5, март, 2010 г., которая включена в настоящий документ путем ссылки и которая может называться в настоящем документе стандартом H.264, спецификацией H.264, стандартом и/или спецификацией H.264/AVC. Методики, представленные в настоящем документе, можно применять к устройствам, которые соответствуют (например, в целом соответствуют) стандарту H.264.
Хотя это и не показано на фиг. 1A, каждый из блоков 118, 130 видеокодера и видеодекодера может включать в себя аудиокодер и/или аудиодекодер (при необходимости) и/или может быть объединен с ним. Блоки 118, 130 видеокодера и видеодекодера могут включать в себя соответствующие блоки MUX-DEMUX или другое аппаратное и/или программное обеспечение для обработки кодирования как аудиосигнала, так и видеосигнала в общем потоке данных и/или в отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать, например, протоколу мультиплексора и/или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP), согласно рекомендации ITU-T Recommendation H.223.
Один или более блоков 118, 130 видеокодера и/или видеодекодера могут быть включены в один или более кодеров и/или декодеров, любой из них может быть интегрирован в состав КОДЕКА и может быть интегрирован и/или совмещен, помимо прочего, с соответствующей камерой, компьютером, мобильным устройством, абонентским устройством, широковещательным устройством, телевизионной приставкой и/или сервером. Блок 118 видеокодера и/или блок 130 видеодекодера могут быть реализованы в виде любой из множества подходящих схем кодера и/или декодера соответственно, таких как один или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретных логических схем, программного обеспечения, аппаратного обеспечения, микропрограммного обеспечения или любых их комбинаций. Один или оба из блоков 118, 130 видеокодера и видеодекодера могут быть по существу реализованы в виде программного обеспечения, а операции элементов блока 118 видеокодера и/или блока 130 видеодекодера могут быть выполнены с помощью соответствующих программных инструкций, исполняемых одним или более процессорами (не показаны). Такой вариант осуществления в дополнение к процессору может содержать компоненты вне кристалла, например, помимо прочего, внешнее запоминающее устройство (например, в виде энергонезависимого запоминающего устройства) и/или интерфейсы ввода/вывода.
В любом варианте осуществления, в котором операции элементов блоков 118, 130 видеокодера и/или видеодекодера могут выполняться с помощью программных инструкций, исполняемых одним или более процессорами, программные инструкции могут храниться на машиночитаемом носителе, включая, например, помимо прочего, магнитные диски, оптические диски, любое другое энергозависимое (например, оперативное запоминающее устройство (ОЗУ)), энергонезависимое (например, постоянное запоминающее устройство (ПЗУ)) и/или запоминающее устройство большой емкости, считываемое ЦП. Машиночитаемый носитель может включать в себя взаимодействующий или взаимосвязанный машиночитаемый носитель, который может применяться исключительно в системе обработки и/или распределен между множеством взаимосвязанных систем обработки, которые могут быть локальными или удаленными по отношению к указанной системе обработки.
На фиг. 1B показана блок-схема, иллюстрирующая пример блока 118 видеокодера для использования с системой кодирования и/или декодирования видео, такой как система 100. Блок 118 видеокодера может включать в себя видеокодер 133, выходной буфер 134 и системный контроллер 136. Видеокодер 133 (или один или более его элементов) может быть реализован в соответствии с одним или более стандартами и/или спецификациями, такими как, например, помимо прочего, H.261, H.263, H.264, H.264/AVC, расширения SVC H.264/AVC (H.264/AVC Annex G), HEVC и/или масштабируемые расширения HEVC (SHVC). Специалисту в данной области будет понятно, что способы, устройства и/или системы, представленные в настоящем документе, могут быть применимы к другим видеокодерам, реализованным в соответствии с различными стандартами и/или запатентованными КОДЕКами, включая будущие КОДЕКи.
Видеокодер 133 может принимать видеосигнал, поступающий от источника видео, такого как источник 124 видео и/или внешний источник видео. Этот видеосигнал может включать в себя некодированное видео. Видеокодер 133 может кодировать некодированное видео и предоставлять на своем выходе кодированный (т.е. сжатый) битовый поток (BS) видео.
Кодированный битовый видеопоток BS может быть передан в выходной буфер 134. Выходной буфер 134 может буферизовать кодированный битовый видеопоток BS и может предоставлять такой кодированный битовый видеопоток BS в виде буферизованного битового потока (BBS) для передачи по каналу 116 связи.
Буферизованный битовый поток BBS, выводимый из выходного буфера 134, может быть отправлен на устройство хранения (не показано) для последующего просмотра или передачи. В некоторых типовых вариантах осуществления блок 118 видеокодера может быть выполнен с возможностью визуальной связи, при которой буферизованный битовый поток BBS может быть передан по каналу 116 связи с заданной постоянной и/или переменной битовой скоростью (например, с задержкой (например, с очень низкой или минимальной задержкой)).
Кодированный битовый видеопоток BS и в свою очередь буферизованный битовый поток BBS могут переносить биты кодированной видеоинформации. Биты буферизованного битового потока BBS могут быть упорядочены в виде потока кодированных видеокадров. Кодированные видеокадры могут представлять собой интракодированные кадры (например, I-кадры) или интеркодированные кадры (например, B-кадры и/или P-кадры). Поток кодированных видеокадров может быть упорядочен, например, в виде серии групп изображений (GOP), причем кодированные видеокадры каждой GOP расположены в указанном порядке. Как правило, каждая GOP может начинаться с интракодированного кадра (например, I-кадра), за которым следуют один или более интеркодированных кадров (например, P-кадры и/или B-кадры). Каждая GOP может включать в себя только один интракодированный кадр, хотя любая из групп GOP может включать в себя множество таких кадров. Предполагается, что B-кадры могут не использоваться для приложений в реальном времени с низкой задержкой, поскольку, например, двунаправленное прогнозирование может приводить к дополнительной задержке кодирования по сравнению с однонаправленным прогнозированием (P-кадры). Можно использовать дополнительные и/или другие типы кадров, и конкретный порядок кодированных видеокадров можно изменить, как будет понятно специалисту в данной области.
Каждая GOP может включать в себя данные синтаксиса («данные синтаксиса GOP»). Данные синтаксиса GOP могут быть расположены в заголовке GOP, в заголовке одного или более кадров GOP и/или в другом месте. Данные синтаксиса GOP могут указывать порядок, количество или тип и/или описывать кодированные видеокадры соответствующей GOP. Каждый кодированный видеокадр может включать в себя данные синтаксиса («данные синтаксиса кодированного кадра»). Данные синтаксиса кодированного кадра могут указывать и/или описывать режим кодирования для соответствующего кодированного видеокадра.
Системный контроллер 136 может отслеживать различные параметры и/или ограничения, связанные с каналом 116, вычислительные возможности блока 118 видеокодера, требования пользователей и т. п. и может устанавливать целевые параметры для обеспечения сопутствующего качества восприятия услуг (QoE), подходящего для указанных ограничений и/или условий канала 116. Один или более целевых параметров могут корректироваться по времени или периодически в зависимости от указанных ограничений и/или состояний канала. В качестве примера QoE можно оценивать количественно с использованием одного или более показателей для оценки качества видео, включая, например, показатель, обычно называемый относительным качеством восприятия кодированных видеопоследовательностей. Относительное качество восприятия кодированных видеопоследовательностей, измеренное, например, с помощью пикового отношения сигнал/шум (PSNR), может контролироваться скоростью передачи битов (BR) кодированного битового потока BS. Один или более целевых параметров (включая, например, параметр квантования (QP)) можно скорректировать для максимального увеличения относительного качества восприятия видео в пределах ограничений, связанных со скоростью передачи битов в кодированном битовом потоке BS.
На фиг. 2 показана блок-схема гибридного блочного видеокодера 200 для использования с системой кодирования и/или декодирования видео, такой как система 100.
Как показано на фиг. 2, гибридная система 200 блочного кодирования может включать в себя, помимо прочего, блок 204 преобразования, блок 206 квантования, блок 208 энтропийного кодирования, блок 210 обратного квантования, блок 212 обратного преобразования, первый сумматор 216, второй сумматор 226, блок 260 пространственного прогнозирования, блок 262 прогнозирования движения, хранилище 264 эталонных изображений, один или более фильтров 266 (например, петлевых фильтров) и/или блок 280 выбора режима и управления кодером.
Подробная информация о видеокодере 200 приведена исключительно в качестве иллюстрации, и реальные варианты реализации могут различаться. Например, практический вариант реализации может включать в себя большее, меньшее количество элементов и/или разные элементы, и/или он может быть организован иным образом по отношению к компоновке, показанной на фиг. 2. Например, некоторые или все функциональные возможности как блока преобразования 204, так и блока квантования 206, хотя они и показаны отдельно, можно в значительной степени интегрировать в некоторые практические варианты реализации, такие как, например, варианты реализации, в которых используют базовое преобразование по стандарту H.264. Аналогично блок 210 обратного квантования и блок 212 обратного преобразования можно в значительной степени интегрировать в некоторые практические варианты реализации (например, варианты реализации, совместимые со стандартами H.264 или HEVC), но они также проиллюстрированы отдельно для концептуальных целей.
Как описано выше, видеокодер 200 может принимать видеосигнал на своем входе 202. Видеокодер 200 может формировать кодированную видеоинформацию из принятого некодированного видео и выводить кодированную видеоинформацию (например, любой из интракадров или интеркадров) со своего выхода 220 в форме кодированного битового видеопотока BS. Видеокодер 200 может функционировать, например, как гибридный видеокодер и использовать способ блочного кодирования для кодирования некодированного видео. При выполнении такого способа кодирования видеокодер 200 может работать с отдельными кадрами, картинками и/или изображениями (обобщенно называемыми «некодированными изображениями») некодированного видео.
Для упрощения способа блочного кодирования видеокодер 200 может нарезать, разбивать, разделять и/или сегментировать (обобщенно — «сегментировать») каждое некодированное изображение, полученное на его входе 202, на множество некодированных видеоблоков. Например, видеокодер 200 может сегментировать некодированное изображение на множество некодированных видеосегментов (например, срезов) и может (например, впоследствии может) сегментировать каждый из некодированных видеосегментов на некодированные видеоблоки. Видеокодер 200 может передавать, подавать, отправлять или предоставлять некодированные видеоблоки блоку 260 пространственного прогнозирования, блоку 262 прогнозирования движения, блоку 280 выбора режима и управления кодером и/или первому сумматору 216. Как более подробно описано ниже, некодированные видеоблоки могут быть предоставлены поблочно.
Блок 260 пространственного прогнозирования может принимать некодированные видеоблоки и кодировать такие видеоблоки в интрарежиме. Термин «интрарежим» относится к любому из нескольких режимов пространственного сжатия, и кодирование в интрарежиме обеспечивает пространственное сжатие некодированного изображения. Пространственное сжатие, при наличии, может быть результатом уменьшения или удаления пространственной избыточности видеоинформации в некодированном изображении. При формировании блоков прогнозирования блок 260 пространственного прогнозирования может выполнять пространственное прогнозирование (или «интрапрогнозирование») каждого некодированного видеоблока по отношению к одному или более видеоблокам некодированного изображения, которые уже подверглись кодированию («кодированные видеоблоки») и/или были восстановлены («восстановленные видеоблоки»). Кодированные и/или восстановленные видеоблоки могут быть соседними, смежными или расположенными рядом (например, в непосредственной близости) с некодированным видеоблоком.
Блок 262 прогнозирования движения может принимать некодированные видеоблоки со входа 202 и кодировать их в интеррежиме. Термин «интеррежим» относится к любому из нескольких режимов временного сжатия, включая, например, P-режим (однонаправленное прогнозирование) и/или B-режим (двунаправленное прогнозирование). Кодирование в интеррежиме обеспечивает временное сжатие некодированного изображения. Временное сжатие, при наличии, может быть результатом уменьшения или удаления временной избыточности видеоинформации между некодированным изображением и одним или более эталонными (например, смежными) изображениями. Блок 262 временного прогнозирования / прогнозирования движения может выполнять временное прогнозирование (или «интерпрогнозирование») каждого некодированного видеоблока относительно одного или более видеоблоков эталонных изображений («эталонных видеоблоков»). Выполняемое временное прогнозирование может представлять собой однонаправленное прогнозирование (например, для P-режима) и/или двунаправленное прогнозирование (например, для B-режима).
Для однонаправленного прогнозирования эталонные видеоблоки могут быть получены из одного или более ранее кодированных и/или восстановленных изображений. Кодированное и/или восстановленное изображение или изображения может (могут) быть соседним(-ими), смежным(-ыми) или расположенным(-ыми) рядом с некодированным изображением.
Для двунаправленного прогнозирования эталонные видеоблоки могут быть получены из одного или более ранее кодированных и/или восстановленных изображений. Кодированные и/или восстановленные изображения могут быть соседними, смежными или расположенными рядом с некодированным изображением.
При использовании множества эталонных изображений (что может относиться к последним стандартам кодирования видео, таким как H.264/AVC и/или HEVC) индекс эталонного изображения для каждого видеоблока может быть отправлен в блок 208 энтропийного кодирования для последующего вывода и/или передачи. Эталонный индекс можно использовать для идентификации того, от какого эталонного изображения или изображений в хранилище 264 эталонных изображений поступает сигнал временного прогнозирования.
Хотя обычно функции блока 262 временного прогнозирования/прогнозирования движения для оценки движения и компенсации движения в значительной степени интегрированы, они могут выполняться отдельными объектами или блоками (не показаны). Оценку движения можно выполнять для оценки движения для каждого некодированного видеоблока относительно видеоблоков эталонного изображения, и это может включать генерирование вектора движения для некодированного видеоблока. Вектор движения может указывать смещение блока прогнозирования относительно кодируемого некодированного видеоблока. Этот блок прогнозирования представляет собой видеоблок эталонного изображения, который, как обнаружено, имеет близкое соответствие, например, с точки зрения разности пикселей кодируемого некодированного видеоблока. Соответствие может быть определено суммой абсолютной разности (SAD), суммой квадратичной разности (SSD) и/или другими показателями разности. Компенсация движения может включать выборку и/или генерирование блока прогнозирования на основе вектора движения, определенного посредством оценки движения.
Блок 262 прогнозирования движения может вычислять вектор движения для некодированного видеоблока путем сравнения некодированного видеоблока с эталонными видеоблоками из эталонных изображений в хранилище 264 эталонных изображений. Блок 262 прогнозирования движения может вычислять значения для положений дробных пикселей эталонного изображения, включенного в хранилище 264 эталонных изображений. В некоторых случаях сумматор 226 или другой блок видеокодера 200 может вычислять значения положений дробных пикселей для восстановленных видеоблоков и может сохранять восстановленные видеоблоки с вычисленными значениями для положений дробных пикселей в хранилище 264 эталонных изображений. Блок 262 прогнозирования движения может интерполировать субцелочисленные пиксели эталонного изображения (например, I-кадра, и/или P-кадра, и/или B-кадра).
Блок 262 прогнозирования движения может быть выполнен с возможностью кодирования вектора движения относительно выбранного параметра прогнозирования движения. Параметр прогнозирования движения, выбранный блоком 262 временного прогнозирования / прогнозирования движения, может представлять собой, например, вектор, эквивалентный среднему значению векторов движения соседних блоков, которые уже подвергались кодированию. Для кодирования вектора движения некодированного видеоблока блок 262 временного прогнозирования/прогнозирования движения может вычислять разницу между вектором движения и параметром прогнозирования движения для формирования значения разницы вектора движения.
В стандартах H.264 и HEVC набор потенциальных эталонных кадров рассматривают как «список». Такому списку эталонных кадров может соответствовать набор эталонных изображений в хранилище 264 эталонных изображений. Блок 262 временного прогнозирования / прогнозирования движения может сравнивать эталонные видеоблоки эталонных изображений из хранилища 264 эталонных изображений с некодированным видеоблоком (например, P-кадра или B-кадра). Когда эталонные изображения в хранилище 264 эталонных изображений включают значения для субцелочисленных пикселей, вектор движения, вычисленный блоком 262 временного прогнозирования / прогнозирования движения, может относиться к субцелочисленному местоположению пикселя эталонного изображения. Блок 262 временного прогнозирования / прогнозирования движения может отправлять вычисленный вектор движения в блок 208 энтропийного кодирования и функциям компенсации движения блока 262 временного прогнозирования / прогнозирования движения. Блок 262 прогнозирования движения (или его функции компенсации движения) может (могут) вычислять значения ошибок для блока прогнозирования относительно кодируемого некодированного видеоблока. Блок 262 прогнозирования движения может вычислять данные для прогнозирования на основе блока прогнозирования.
Блок 280 выбора режима и управления кодером может выбирать один из режимов кодирования — интрарежим или интеррежим. Блок 280 выбора режима и управления кодером может выполнять это на основании, например, способа оптимизации соотношения «искажения – скорость передачи данных» и/или результатов ошибок, полученных в каждом режиме.
Видеокодер 200 может формировать блок остатков («остаточный видеоблок») путем вычитания данных для прогнозирования, предоставляемых блоком 262 прогнозирования движения, из кодируемого некодированного видеоблока. Сумматор 216 представляет собой элемент или множество элементов, которые могут выполнять эту операцию вычитания.
Блок 204 преобразования может применять преобразование к остаточному видеоблоку для преобразования такого остаточного видеоблока из области значений пикселя в область преобразования, такую как частотная область. Преобразование может представлять собой, например, любое из представленных в настоящем документе преобразований, дискретное косинусное преобразование (DCT) или концептуально подобное преобразование. Другие примеры преобразования включают в себя преобразования, помимо прочего, определенные в H.264 и/или HEVC, вейвлет-преобразования, целочисленные преобразования и/или поддиапазонные преобразования. Когда блок 204 преобразования применяет преобразование к остаточному видеоблоку, создается соответствующий блок коэффициентов преобразования остаточного видеоблока («коэффициенты остаточного преобразования»). Эти коэффициенты остаточного преобразования могут представлять собой величины частотных компонентов остаточного видеоблока. Блок 204 преобразования может пересылать коэффициенты остаточного преобразования в блок 206 квантования.
Блок 206 квантования может квантовать коэффициенты остаточного преобразования для дополнительного уменьшения скорости передачи кодированных битов. Например, процесс квантования может уменьшать битовую глубину, связанную с некоторыми или всеми коэффициентами остаточного преобразования. В определенных случаях блок 206 квантования может выполнять деление значения коэффициентов остаточного преобразования на уровень квантования, соответствующий QP, с формированием блока квантованных коэффициентов преобразования. Степень квантования можно изменять путем регулирования значения QP. Блок 206 квантования может применять квантование для представления коэффициентов остаточного преобразования с использованием желаемого числа шагов квантования; количество используемых шагов (или значение уровня квантования соответственно) может определять количество кодированных видеобитов, используемых для представления остаточного видеоблока. Блок 206 квантования может получать значение QP от контроллера скорости передачи (не показано). После квантования блок 206 квантования может предоставлять квантованные коэффициенты преобразования в блок 208 энтропийного кодирования и в блок 210 обратного квантования.
Блок 208 энтропийного кодирования может применять энтропийное кодирование к квантованным коэффициентам преобразования для формирования энтропийно-кодированных коэффициентов (т.е. битового потока). Для формирования коэффициентов энтропийного кодирования блок 208 энтропийного кодирования может использовать адаптивное кодирование с переменной длиной (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и/или другую методику энтропийного кодирования. Для кодирования CABAC, как понятно специалистам в данной области, может требоваться ввод контекстной информации («контекста»). Например, этот контекст может быть основан на соседних видеоблоках.
Блок 208 энтропийного кодирования может предоставлять энтропийно-кодированные коэффициенты вместе с векторами движения и одним или более индексами эталонных изображений в виде битового потока необработанного кодированного видео для внутреннего формата битового потока (не показан). Этот формат битового потока может формировать кодированный битовый видеопоток BS, поступающий в выходной буфер 134 (фиг. 1B), путем добавления дополнительной информации о необработанном кодированном битовом видеопотоке, включая заголовки и/или другую информацию, позволяющую, например, блоку 300 видеодекодера (фиг. 3) декодировать кодированный видеоблок из необработанного кодированного битового видеопотока. После энтропийного кодирования кодированный битовый видеопоток BS, полученный из блока 208 энтропийного кодирования, может выводиться, например, в выходной буфер 134 и может передаваться, например, в устройство 114 назначения по каналу 116 или архивироваться для последующей передачи или извлечения.
В определенных типовых вариантах осуществления блок 208 энтропийного кодирования или другой блок 133, 200 видеокодера может быть выполнен с возможностью выполнения других функций кодирования в дополнение к энтропийному кодированию. Например, блок 208 энтропийного кодирования может быть выполнен с возможностью определения значений шаблона блока кода (CBP) для видеоблоков. В некоторых типовых вариантах осуществления блок 208 энтропийного кодирования может выполнять кодирование длин серий квантованных коэффициентов преобразования в видеоблоке. В качестве примера блок 208 энтропийного кодирования может применять зигзагообразное сканирование или другой шаблон сканирования для упорядочения квантованных коэффициентов преобразования в видеоблоке и кодирования серий нулей для дополнительного сжатия. Блок 208 энтропийного кодирования может создавать информацию заголовка с соответствующими элементами синтаксиса для передачи в кодированном битовом видеопотоке BS.
Блок 210 обратного квантования и блок 212 обратного преобразования могут применять обратное квантование и обратное преобразование соответственно для восстановления остаточного видеоблока в пиксельной области, например, для последующего использования в качестве одного из эталонных видеоблоков (например, в одном из эталонных изображений в списке эталонных изображений).
Блок 280 выбора режима и управления кодером может вычислять эталонный видеоблок путем добавления восстановленного остаточного видеоблока к блоку прогнозирования одного из эталонных изображений в хранилище 264 эталонных изображений. Блок 280 выбора режима и управления кодером может применять один или более интерполяционных фильтров к восстановленному остаточному видеоблоку для вычисления значений субцелочисленных пикселей (например, для положений полупикселей) при использовании в оценке движения.
Сумматор 226 может добавлять восстановленный остаточный видеоблок к видеоблоку прогнозирования с компенсацией движения, чтобы сформировать восстановленный видеоблок для хранения в хранилище 264 эталонных изображений. Восстановленный видеоблок (в области значений пикселей) может использоваться блоком 262 прогнозирования движения (или его функциями оценки движения и/или его функциями компенсации движения) в качестве одного из эталонных блоков для интеркодирования некодированного видеоблока в последующем некодированном видео.
Фильтры 266 (например, петлевые фильтры) могут включать в себя фильтр деблокирования. Фильтр деблокирования может функционировать с возможностью удаления визуальных артефактов, которые могут присутствовать в восстановленных макроблоках. Эти артефакты могут вводиться в процесс кодирования, например, из-за использования различных режимов кодирования, таких как режим I-типа, P-типа или B-типа. Артефакты могут присутствовать, например, на границах и/или краях принятых видеоблоков, а фильтр деблокирования может функционировать с возможностью сглаживания границ и/или краев видеоблоков для улучшения визуального качества. Фильтр деблокирования может фильтровать выходной сигнал сумматора 226. Фильтры 266 могут включать в себя другие внутрипетлевые фильтры, такие как фильтр адаптивного смещения отсчетов (SAO), поддерживаемый стандартом HEVC.
На фиг. 3 приведена блок-схема, иллюстрирующая пример видеодекодера 300 для использования с блоком видеодекодера, таким как блок 130 видеодекодера, показанный на фиг. 1A. Видеодекодер 300 может включать в себя вход 302, блок 308 энтропийного декодирования, блок 362 прогнозирования с компенсацией движения, блок 360 пространственного прогнозирования, блок 310 обратного квантования, блок 312 обратного преобразования, хранилище 364 эталонных изображений, фильтры 366, сумматор 326 и выход 320. Видеодекодер 300 может выполнять способ декодирования, который по существу обратен способу кодирования применительно к видеокодеру 133, 200. Этот процесс декодирования может быть выполнен, как описано ниже.
Блок 362 прогнозирования с компенсацией движения может генерировать данные для прогнозирования на основе векторов движения, полученных от блока 308 энтропийного декодирования. Векторы движения могут быть кодированы относительно параметра прогнозирования движения для видеоблока, соответствующего кодированному вектору движения. Блок 362 прогнозирования с компенсацией движения может определять параметр прогнозирования движения, например, как медиану векторов движения блоков, смежных с видеоблоком, подлежащим декодированию. После определения параметра прогнозирования движения блок 362 прогнозирования с компенсацией движения может декодировать кодированный вектор движения посредством извлечения значения разницы векторов движения из кодированного битового видеопотока BS и добавления значения разницы векторов движения к параметру прогнозирования движения. Блок 362 прогнозирования с компенсацией движения может квантовать параметр прогнозирования движения до того же разрешения, что и кодированный вектор движения. В определенных типовых вариантах осуществления блок 362 прогнозирования с компенсацией движения может использовать одну и ту же точность для некоторых или всех кодированных параметров прогнозирования движения. В качестве другого примера блок 362 прогнозирования с компенсацией движения может быть выполнен с возможностью использования любого из вышеуказанных способов и определения того, какой способ следует использовать, путем анализа данных, включенных в набор параметров последовательности, набор параметров среза или набор параметров изображения, полученных из кодированного битового видеопотока BS.
После декодирования вектора движения блок 362 прогнозирования с компенсацией движения может извлекать видеоблок прогнозирования, идентифицированный вектором движения, из эталонного изображения хранилища 364 эталонных изображений. Если вектор движения указывает на положение дробного пикселя, например на полупиксель, блок 362 прогнозирования с компенсацией движения может интерполировать значения для положений дробных пикселей. Блок 362 прогнозирования с компенсацией движения может использовать адаптивные интерполяционные фильтры или фиксированные интерполяционные фильтры для интерполяции этих значений. Блок 362 прогнозирования с компенсацией движения может получать указания о том, какой из фильтров 366 использовать, и в различных типовых вариантах осуществления — коэффициенты для фильтров 366 из принятого кодированного битового видеопотока BS.
Блок 360 пространственного прогнозирования может использовать режимы интрапрогнозирования, принятые в кодированном битовом видеопотоке BS, для формирования видеоблока прогнозирования из пространственно смежных блоков. Блок 310 обратного квантования может обратно квантовать (например, деквантовать квантованные коэффициенты блоков, предоставленные в закодированном битовом видеопотоке BS и декодированные блоком 308 энтропийного декодирования). Способ обратного квантования может включать стандартный способ, например согласно стандарту H.264. Способ обратного квантования может включать использование параметра QP квантования, вычисленного видеокодером 133, 200 для каждого видеоблока, для определения степени квантования и/или степени обратного квантования, которую будут использовать.
В блоке 312 обратного преобразования к коэффициентам преобразования может применяться обратное преобразование (например, обратное любому из представленных в настоящем документе преобразований, обратное DCT, обратное целочисленное преобразование или концептуально аналогичный способ обратного преобразования) для получения остаточных видеоблоков в пиксельной области. Блок 362 прогнозирования с компенсацией движения может создавать блоки с компенсацией движения и может выполнять интерполяцию на основе интерполяционных фильтров. Идентификаторы интерполяционных фильтров для использования при оценке движения с точностью до субпикселя могут быть включены в элементы синтаксиса видеоблока. Блок 362 прогнозирования с компенсацией движения может использовать интерполяционные фильтры, используемые видеокодером 133, 200 во время кодирования видеоблока, для вычисления интерполированных значений для субцелочисленных пикселей эталонного блока. Блок 362 прогнозирования с компенсацией движения может определять интерполяционные фильтры, используемые видеокодером 133, 200, в соответствии с принятой синтаксической информацией и использовать интерполяционные фильтры для создания блоков прогнозирования.
Блок 262 прогнозирования с компенсацией движения может использовать: (1) синтаксическую информацию для определения размеров видеоблоков, используемых для кодирования одного или более изображений кодированной видеопоследовательности; (2) информацию о разделах, которая описывает разделение каждого видеоблока кадра кодированной видеопоследовательности; (3) режимы (или информацию о режиме), указывающие, как кодируется каждый раздел; (4) одно или более эталонных изображений для каждого интеркодированного видеоблока и/или (5) другую информацию для декодирования кодированной видеопоследовательности.
Сумматор 326 может суммировать остаточные блоки с соответствующими блоками прогнозирования, сгенерированными блоком 362 прогнозирования с компенсацией движения или блоком 360 пространственного прогнозирования, для формирования декодированных видеоблоков. Петлевые фильтры 366 (например, фильтры деблокирования или фильтры SAO) можно применять для фильтрации декодированных видеоблоков для удаления артефактов блочности и/или для улучшения визуального качества. Декодированные видеоблоки могут храниться в хранилище 364 эталонных изображений, которое может обеспечивать эталонные видеоблоки для последующей компенсации движения, и возможно создание декодированного видео для представления на устройстве отображения (не показано).
Сжатие облака точек
На фиг. 4 показана структура битового потока для сжатия облака точек на основе видео (V-PCC). Сгенерированные битовые видеопотоки и метаданные мультиплексируют вместе для генерирования конечного битового потока V-PCC.
Битовый поток V-PCC состоит из набора блоков V-PCC, как показано на фиг. 4. Синтаксис блока V-PCC согласно определению в последней версии проекта сообщества стандарта V-PCC (CD V-PCC) приведен в таблице 1, где каждый блок V-PCC имеет заголовок блока V-PCC и полезную нагрузку блока V-PCC. Заголовок блока V-PCC описывает тип блока V-PCC (таблица 2). Блоки V-PCC с типами блоков 2, 3 и 4 представляют собой блоки данных о занятости, геометрии и атрибутах, как определено в проекте сообщества. Эти блоки данных представляют собой три основных компонента, необходимых для восстановления облака точек. В дополнение к типу блока V-PCC заголовок блока V-PCC для атрибута также определяет тип атрибута и его индекс, что позволяет поддерживать множество экземпляров одного и того же типа атрибута.
Полезная нагрузка блоков V-PCC для занятости, геометрии и атрибута (таблица 3) соответствует блокам видеоданных (например, блокам NAL (уровня сетевой абстракции) HEVC), которые могут быть декодированы видеодекодером, указанным в соответствующем блоке V-PCC набора параметров занятости, геометрии и атрибутов.
Таблица 1. Синтаксис блока V-PCC
vpcc_unit( ) {
Descriptor
vpcc_unit_header( )
vpcc_unit_payload( )
}
Таблица 2. Синтаксис заголовка блока V-PCC
vpcc_unit_header( ) {
Descriptor
vpcc_unit_type
u(5)
if( vpcc_unit_type = = VPCC_AVD | | vpcc_unit_type = = VPCC_GVD | |vpcc_unit_type = = VPCC_OVD | | vpcc_unit_type = = VPCC_PSD )
vpcc_sequence_parameter_set_id
u(4)
if( vpcc_unit_type = = VPCC_AVD ) {
vpcc_attribute_index
u(7)
if( sps_multiple_layer_streams_present_flag ) {
vpcc_layer_index
u(4)
pcm_separate_video_data( 11 )
}
else
pcm_separate_video_data( 15 )
} else if( vpcc_unit_type = = VPCC_GVD ) {
if( sps_multiple_layer_streams_present_flag ) {
vpcc_layer_index
u(4)
pcm_separate_video_data( 18 )
}
else
pcm_separate_video_data( 22 )
} else if( vpcc_unit_type = = VPCC_OVD | | vpcc_unit_type = = VPCC_PSD ) {
vpcc_reserved_zero_23bits
u(23)
} else
vpcc_reserved_zero_27bits
u(27)
}
Таблица 3. Синтаксис полезной нагрузки блока V-PCC
vpcc_unit_payload( ) {
Descriptor
if( vpcc_unit_type = = VPCC_SPS )
sequence_parameter_set( )
else if( vpcc_unit_type = = VPCC_PSD )
patch_sequence_data_unit( )
else if( vpcc_unit_type = = VPCC_OVD | |vpcc_unit_type = = VPCC_GVD | |vpcc_unit_type = = VPCC_AVD)
video_data_unit( )
}
Динамическая потоковая передача по HTTP (DASH)
Динамическая адаптивная потоковая передача MPEG по HTTP (MPEG-DASH) представляет собой универсальный формат доставки, который обеспечивает конечным пользователям наилучшее возможное видеовосприятие путем динамической адаптации к изменяющимся сетевым условиям.
Адаптивная потоковая передача по HTTP, например MPEG-DASH, требует доступности на сервере различных вариантов скорости передачи данных мультимедийного содержимого. Кроме того, мультимедийное содержимое может содержать несколько мультимедийных компонентов (например, аудио-, видео-, текстовых), каждый из которых может иметь разные характеристики. В MPEG-DASH эти характеристики представлены в описании представления мультимедиа (MPD).
На фиг. 5 показана иерархическая модель данных MPD. MPD описывает последовательность периодов, в которой согласованный набор кодированных версий компонентов мультимедийного содержимого не изменяется в течение периода. Каждый период имеет время начала и продолжительность и состоит из одного или множества наборов адаптации (AdaptationSet).
AdaptationSet представляет собой набор закодированных версий одного или нескольких компонентов мультимедийного содержимого с идентичными свойствами, такими как язык, тип мультимедиа, соотношение сторон изображения, роль, доступность и показатель рейтинга. Например, AdaptationSet может содержать различные скорости передачи данных видеокомпонента с одинаковым мультимедийным содержимым. Другой AdaptationSet может содержать различные скорости передачи данных аудиокомпонента (например, более низкое качество для стереозвука и более высокое качество для объемного звука) с одинаковым мультимедийным содержимым. Каждый AdaptationSet обычно включает в себя множество представлений (Representation).
Representation описывает доставляемую кодируемую версию одного или нескольких компонентов мультимедиа, отличающихся от других представлений скоростью передачи данных, разрешением, числом каналов или другими характеристиками. Каждое представление состоит из одного или множества сегментов. Атрибуты элемента Representation, такие как @id, @bandwidth, @qualityRanking и @dependencyId, используют для указания свойств связанного Representation. Представления также могут включать в себя субпредставления, которые являются частью представления, для описания и извлечения частичной информации из представления. Субпредставления могут обеспечивать возможность доступа к версии с более низким качеством представления, в которой они содержатся.
Сегмент (Segment) представляет собой наибольший блок данных, который можно получить с помощью одного HTTP-запроса. Каждый сегмент имеет URL-адрес, т.е. адресуемое местоположение на сервере, его можно загрузить с использованием HTTP GET или HTTP GET с байтовыми диапазонами.
Для использования этой модели данных DASH-клиент анализирует XML-документ MPD, выбирает подборку наборов AdaptationSet, подходящих для своей окружающей среды, на основании информации, приведенной в каждом из элементов AdaptationSet. В каждом AdaptationSet клиент выбирает одно Representation, как правило, на основании значения атрибута @bandwidth (ширины полосы), а также учитывает возможности клиента по декодированию и визуализации. Клиент загружает сегмент инициализации выбранных представлений, а затем получает доступ к содержимому, запрашивая все сегменты или байтовые диапазоны сегментов. После запуска представления клиент продолжает использовать мультимедийное содержимое, непрерывно запрашивая мультимедийные сегменты или части мультимедийных сегментов и проигрывая содержимое в соответствии с временной шкалой представления мультимедиа. Клиент может переключать представления с учетом обновленной информации из своего окружения. Клиент должен воспроизводить содержимое непрерывно по всем периодам. Как только клиент получает мультимедиа, содержащееся в Segment, ближе к концу объявленного мультимедиа в Representation, то либо прекращается представление мультимедиа, либо запускается новый период (Period), либо требуется повторная выборка MPD.
Дескрипторы в DASH
MPEG-DASH вводит концепцию дескрипторов для предоставления ориентированной на конкретное приложение информации о мультимедийном содержимом. Все элементы дескриптора структурированы одинаково, а именно: они содержат атрибут @schemeIdUri, который обеспечивает URI для идентификации схемы, необязательный атрибут @value и необязательный атрибут @id. Семантика элемента зависит от используемой схемы. URI, идентифицирующий схему, может представлять собой универсальное имя ресурса (URN) или универсальный указатель ресурса (URL). MPD не предоставляет какую-либо конкретную информацию о том, как использовать эти элементы. Это зависит от приложения, которое использует форматы DASH для создания экземпляров элементов дескриптора с соответствующей информацией о схеме. DASH-приложения, в которых используется один из этих элементов, сначала должны определять идентификатор схемы в виде URI, а затем определять пространство значений для элемента при использовании этого идентификатора схемы. Если требуются структурированные данные, то любой элемент или атрибут расширения может быть определен в отдельном пространстве имен. Дескрипторы могут появляться на нескольких уровнях в MPD.
- Наличие элемента на уровне MPD означает, что этот элемент является дочерним по отношению к элементу MPD.
- Наличие элемента на уровне набора адаптации означает, что этот элемент является дочерним по отношению к элементу AdaptationSet.
- Наличие элемента на уровне представления означает, что этот элемент является дочерним по отношению к элементу Representation.
Преднаборы
В MPEG-DASH пакет представляет собой набор компонентов мультимедиа, которые могут совместно использоваться одним экземпляром декодера. Каждый пакет включает в себя основной компонент мультимедиа, который содержит специфичную для декодера информацию и загружает декодер. Преднабор (PreSelection) определяет подмножество компонентов мультимедиа в пакете, которые, как ожидается, будут использоваться совместно.
Набор AdaptationSet, который содержит основной компонент мультимедиа, называют основным AdaptationSet. Основной компонент мультимедиа всегда включен в любой PreSelection, связанный с пакетом. Кроме того, каждый пакет может включать в себя один или множество частичных наборов AdaptationSet. Частичные наборы AdaptationSet можно обрабатывать только в комбинации с основным AdaptationSet.
PreSelection может быть определен с помощью элемента PreSelection, как определено в таблице 4. Выбор PreSelection основан на атрибутах и элементах, содержащихся в элементе PreSelection.
Таблица 4. Семантика элемента PreSelection
Наименование элемента или атрибута
Применение
Описание
Preselection
@id
ODпо умолчанию = 1
Указывает идентификатор (id) элемента Preselection. Он будет уникальным в пределах одного периода времени.
@preselectionComponents
М
Указывает идентификаторы содержащихся наборов адаптации или компонентов содержимого, принадлежащих к этому преднабору, в виде отдельного списка с разделением пробелами в порядке обработки, где первый идентификатор представляет собой идентификатор для основного компонента мультимедиа.
@lang
O
Заявляет код языка для PreSelection в соответствии с синтаксисом и семантикой IETF RFC 5646.
Доступность
0 … N
Указывает информацию о схеме доступности.
Роль
0 … N
Указывает информацию о схеме комментирования роли.
Рейтинг
0 … N
Указывает информацию о схеме рейтинга.
Точка просмотра
0 … N
Указывает информацию о схеме комментирования точки просмотра.
CommonAttributesElements
-
Указывает общие атрибуты и элементы (атрибуты и элементы из базового типа RepresentationBaseType).
Условные обозначения:Для атрибутов: M = обязательный, O = дополнительный, OD = дополнительный со значением по умолчанию, CM = условно обязательный.Для элементов: <minOccurs>..<maxOccurs> (N=unbounded)Элементы выделены жирным шрифтом; атрибуты не выделены жирными шрифтом, и им предшествует знак @.
Адаптивная потоковая передача облаков точек
Хотя традиционные приложения мультимедиа, такие как видео, по-прежнему популярны, наблюдается значительный интерес к новым мультимедиа, таким как виртуальная реальность (VR) и иммерсивная 3D-графика. В последнее время появились высококачественные 3D-облака точек — продвинутое представление иммерсивных мультимедиа, что позволяет создавать новые формы взаимодействия и обмена данными с виртуальными мирами. Большой объем информации, необходимый для представления таких динамических облаков точек, требует эффективных алгоритмов кодирования. Рабочая группа 3DG группы MPEG в настоящее время работает над разработкой стандарта для сжатия облака точек на основе видео с выпущенной на собрании № 124 группы MPEG версией проекта сообщества (CD). Последняя версия CD определяет битовый поток для сжатых динамических облаков точек. Параллельно MPEG также разрабатывает стандарт систем для пересылки данных облака точек.
Вышеупомянутые стандарты облаков точек касаются только аспектов кодирования и хранения облаков точек. Однако предполагается, что для практических приложений облака точек потребуется потоковая передача данных облака точек по сети. Такие приложения могут выполнять потоковую передачу содержимого облака точек в реальном времени или по запросу, в зависимости от того, как было сгенерировано это содержимое. Кроме того, из-за большого объема информации, необходимой для представления облаков точек, такие приложения должны поддерживать адаптивные методики потоковой передачи, чтобы избежать перегрузки сети и обеспечить оптимальное восприятие просмотра в любой конкретный момент времени с точки зрения пропускной способности сети в данный момент.
Одним из хороших потенциальных способов адаптивной доставки облаков точек является динамическая адаптивная потоковая передача по HTTP (DASH). Однако текущий стандарт MPEG-DASH не обеспечивает никакого механизма сигнализации для среды облака точек, включая потоки облака точек на основе стандарта V-PCC MPEG. Таким образом, важно определить новые элементы сигнализации, которые позволят клиентам потоковой передачи идентифицировать потоки облака точек и их субпотоки компонентов в файле дескриптора представления мультимедиа (MPD). Кроме того, также необходимо сигнализировать о различных видах метаданных, связанных с компонентами облака точек, чтобы клиент потоковой передачи мог выбирать наилучшую(-ие) версию(-и) облака точек или его компонентов, которую(-ые) он способен поддерживать.
В отличие от традиционного мультимедийного содержимого мультимедийное содержимое V-PCC состоит из ряда компонентов, причем некоторые компоненты имеют множество уровней. Каждый компонент (и/или уровень) отдельно кодируют как субпоток битового потока V-PCC. Некоторые субпотоки компонентов, такие как геометрия и карта занятости (в дополнение к некоторым атрибутам, таким как текстура), кодируют с использованием традиционных видеокодеров (например, H.264/AVC или HEVC). Однако эти субпотоки необходимо совместно декодировать вместе с дополнительными метаданными, чтобы визуализировать облако точек.
Определен ряд элементов и атрибутов XML. Эти элементы XML определены в отдельном пространстве имен urn:mpeg:mpegI:vpcc:2019. В данном документе для ссылки на это пространство имен используется дескриптор vpccc: пространства имен.
Сигнализация компонентов V-PCC в MPD DASH
Каждый компонент V-PCC и/или уровень компонента может быть представлен в файле манифеста DASH (MPD) как отдельный AdaptationSet (далее «компонент AdaptationSet») с дополнительным AdaptationSet в качестве основной точки доступа для содержимого V-PCC (далее «основной AdaptationSet»). В другом варианте осуществления один набор адаптации передают по каждому компоненту для каждого разрешения.
В одном варианте осуществления наборы адаптации для потока V-PCC, включая все компоненты AdaptationSet V-PCC, должны иметь значение атрибута @codecs (например, как определено для V-PCC), установленное на vpc1, это будет означать, что MPD относится к точке облака. В другом варианте осуществления только основной AdaptationSet имеет атрибут @codecs, установленный на vpc1, тогда как атрибут @codecs для компонента AdaptationSet облака точек (или соответствующие Representation, если @codecs не передают для элемента AdaptationSet) устанавливают на основе соответствующего кодека, используемого для кодирования компонента. В случае видеокодированных компонентов значение @codecs должно быть установлено на resv.pccv.XXXX, где XXXX соответствует четырехсимвольному коду (4CC) видеокодека (например, avc1 или hvc1).
Для определения типа компонента(-ов) V-PCC (например, карты занятости, геометрии или атрибута) в компоненте AdaptationSet можно использовать дескриптор EssentialProperty с атрибутом @schemeIdUri, равным urn:mpeg:mpegI:vpcc:2019:component. Данный дескриптор называется дескриптором VPCCComponent.
На уровне набора адаптации один дескриптор VPCCComponent может быть сигнализирован для каждого компонента облака точек, который присутствует в Representation набора адаптации.
В варианте осуществления атрибут @value дескриптора VPCCComponent присутствовать не должен. Дескриптор VPCCComponent может включать в себя элементы и атрибуты, указанные в таблице 5.
Таблица 5. Элементы и атрибуты для дескриптора VPCCComponent
Элементы и атрибуты для дескриптора VPCCComponent
Приме-нение
Тип данных
Описание
компонент
0..N
vpcc:vpccComponentType
Элемент, атрибуты которого указывают информацию для одного из компонентов облака точек, присутствующих в представлении (-ях) набора для адаптации.
component@component_type
М
xs:string
Указывает тип компонента облака точек. Значение geom обозначает компонент геометрии, occp обозначает компонент занятости, и attr обозначает компонент атрибута.
component@min_layer_index
O
xs:integer
Указывает индекс первого уровня компонента, представленного набором AdaptationSet, в котором присутствует дескриптор VPCCComponent.Если в представлениях набора AdaptationSet присутствует только один уровень, min_layer_index и max_layer_index должны иметь одно и то же значение.
component@max_layer_index
CM
xs:integer
Указывает индекс последнего уровня компонента, представленного набором AdaptationSet, в котором присутствует дескриптор VPCCComponent.Должен присутствовать только при наличии уровня min_layer.Если в представлениях набора адаптации присутствует только один уровень, min_layer_index и max_layer_index должны иметь одно и то же значение.
component@attribute_type
CM
xs:unsignedByte
Указывает тип атрибута (см. таблицу 7.2 в CD V-PCC). Допускаются только значения от 0 до 15 включительно.Должен присутствовать только в том случае, если компонент представляет собой атрибут облака точек (т.е. component_type имеет значение attr).
component@attribute_index
CM
xs:unsignedByte
Указывает индекс атрибута. Должен иметь значение от 0 до 127 включительно.Должен присутствовать только в том случае, если компонент представляет собой атрибут облака точек (т.е. component_type имеет значение attr).
Условные обозначения:Для атрибутов: M = обязательный, O = дополнительный, OD = дополнительный со значением по умолчанию, CM = условно обязательный.Для элементов: <minOccurs>..<maxOccurs> (N=unbounded)Элементы выделены жирным шрифтом; атрибуты не выделены жирными шрифтом, и им предшествует знак @.
Типы данных для различных элементов и атрибутов дескриптора VPCCComponent могут быть такими, как определено в следующей схеме XML.
В одном варианте осуществления основной AdaptationSet должен содержать либо один сегмент инициализации на уровне набора адаптации, либо множество сегментов инициализации на уровне представления (по одному для каждого Representation). В одном варианте осуществления сегменты инициализации должны содержать наборы параметров последовательности V-PCC, как определено в проекте сообщества, которые используют для инициализации декодера V-PCC. В случае одного сегмента инициализации наборы параметров последовательности V-PCC для всех Representation могут содержаться в сегменте инициализации. При передаче более одного Representation в основном AdaptationSet сегмент инициализации каждого Representation может содержать наборы параметров последовательности V-PCC для данного конкретного Representation. При использовании базового формата медиафайлов ISO (ISOBMFF) в качестве контейнера мультимедиа для содержимого V-PCC, как определено в WD стандарта ISO/IEC 23090-10, сегменты инициализации также могут включать в себя контейнер метаданных, как определено в ISO/IEC 14496-12. Данный метабокс содержит один или более экземпляров VPCCGroupBox, как определено в CD VPCC, который предоставляет информацию о метаданных, описывающую треки на уровне формата файла и зависимость между ними.
В варианте осуществления сегменты мультимедиа для Representation основного AdaptationSet содержат один или более трековых фрагментов трека V-PCC, определенных в проекте сообщества. Сегменты мультимедиа для Representation компонентов AdaptationSet содержат один или более фрагментов треков соответствующего трека компонента на уровне формата файла.
В другом варианте осуществления для дескриптора VPCCComponent определяют дополнительный атрибут, называемый в данном случае атрибутом @videoCodec, значение которого указывает на кодек, используемый для кодирования соответствующего компонента облака точек. Это позволяет поддерживать сценарии, в которых в AdaptationSet или Representation присутствует более чем один компонент облака точек.
В другом варианте осуществления элемент дескриптора Role можно использовать с вновь определенными значениями для компонентов V-PCC для указания роли соответствующего AdaptationSet или Representation (например, геометрия, карта занятости или атрибут). Например, геометрия, карта занятости и компоненты атрибутов могут иметь следующие соответствующие значения соответственно: vpcc-geometry, vpcc-occupancy и vpcc-attribute. Дополнительный элемент дескриптора EssentialProperty, аналогичный элементу, описанному в таблице 5, за исключением атрибута component_type, может быть сообщен на уровне набора адаптации для идентификации уровней компонента и типа атрибута (если компонент представляет собой атрибут облака точек).
Группирование наборов адаптации V-PCC
Клиент потоковой передачи способен идентифицировать тип компонента облака точек в AdaptationSet или Representation путем проверки дескриптора VPCCComponent внутри соответствующего элемента. Однако клиент потоковой передачи также должен отличать различные потоки облака точек, присутствующие в файле MPD, и идентифицировать их соответствующие потоки компонентов.
Может быть введен элемент EssentialProperty с атрибутом @schemeIdUri, равным urn:mpeg:mpegI:vpcc:2019:vpc, который в настоящем документе называется дескриптором VPCC. На уровне набора адаптации для основного AdaptationSet облака точек может присутствовать максимум один дескриптор VPCC. Если в основном AdaptationSet присутствует более чем одно Representation, то на уровне представления (т.е. внутри каждого элемента Representation) может присутствовать не более чем один дескриптор VPCC. В таблице 6 проиллюстрированы атрибуты дескриптора VPCC в соответствии с вариантом осуществления.
Таблица 6. Атрибуты для дескриптора VPCC
Атрибуты для дескриптора VPCC
Приме-нение
Тип данных
Описание
vpcc:@pcId
CM
xs:string
Идентификатор (id) облака точек. Этот атрибут должен присутствовать, если множество версий одного и того же облака точек сообщают в отдельных наборах AdapatationSet.
vpcc:@occupancyId
М
StringVectorType
Идентификатор компонента AdaptationSet или Representation карты занятости облака точек.
vpcc:@geometryId
М
StringVectorType
Список разделенных пробелами идентификаторов, соответствующих значениям атрибута @id для AdaptationSet и/или Representation компонента геометрии облака точек.
vpcc:@attributeId
М
StringVectorType
Список разделенных пробелами идентификаторов, соответствующих значениям атрибута @id для AdaptationSet и/или Representation компонентов атрибута облака точек.
При наличии более чем одной версии облака точек (например, с разным разрешением) каждая версия может присутствовать в отдельном компоненте AdaptationSet, содержащем одно Representation, а также дескриптор VPCC с одинаковым значением для атрибута @pcId. В другом варианте осуществления различные версии облака точек могут быть сообщены как Representation одного (основного) AdaptationSet. В таком случае дескриптор VPCC должен присутствовать в каждом Representation, а атрибут @pcId может быть либо сигнализирован с одним и тем же значением для всех Representation в основном AdaptationSet, либо опущен.
В другом варианте осуществления о PreSelection сигнализируют в MPD со значением атрибута @preselectionComponents, включая идентификатор основного AdaptationSet для облака точек, за которым следуют идентификаторы наборов компонентов AdaptationSet, соответствующих компонентам облака точек. Атрибут @codecs для PreSelection должен быть установлен на vpc1, указывая, что мультимедиа PreSelection представляет собой облако точек, основанное на видео. О PreSelection можно оповещать посредством элемента PreSelection в элементе Period, либо дескриптора преднабора на уровне набора адаптаций (или уровне представления, когда для одного облака точек доступно множество версий/представлений). При использовании элемента PreSelection и наличии более одной версии одного и того же облака точек о каждой версии оповещают в отдельном элементе PreSelection, при этом первый идентификатор в списке идентификаторов атрибута @preselectionComponents представляет собой идентификатор Representation соответствующей версии облака точек в основном AdaptationSet. На фиг. 6 представлен пример DASH-конфигурации для группирования компонентов V-PCC, принадлежащих облаку с единственной точкой, в файле MPD MPEG-DASH.
С использованием дескриптора преднабора об этом группировании/этой ассоциации можно оповещать следующим образом.
В другом варианте осуществления в основном AdaptationSet облака точек или его Representation могут быть перечислены идентификаторы наборов компонентов AdaptationSet и/или Representation с использованием атрибута @associationId, определенного в ISO/IEC 23009-1, причем значения @associationType устанавливают равными 4CC при V-PCC (т. Е. vpc1).
В другом варианте осуществления в основном AdaptationSet облака точек или его Representation могут быть перечислены идентификаторы наборов компонентов AdaptationSet и/или Representation с использованием атрибута @dependencyId, определенного в ISO/IEC 23009-1. Это связано с существованием внутренней зависимости, поскольку для восстановления облака точек необходимо декодировать сегменты в основном AdaptationSet вместе с сегментами из наборов компонентов AdaptationSet облака точек.
Сигнализация метаданных о компоненте
Метаданные о геометрии и атрибутах обычно используют для визуализации. О них оповещают в наборах параметров битового потока V-PCC. Однако может быть необходимо оповещение об этих элементах метаданных в MPD, чтобы клиент потоковой передачи мог получать информацию как можно раньше. Кроме того, клиент потоковой передачи может принимать решения о выборе между множеством версий облака точек с различными значениями метаданных о геометрии и атрибутах (например, на основании того, поддерживает клиент сообщенные значения или нет).
Сигнализация метаданных о геометрии
Может быть введен элемент SupplementalProperty с атрибутом @schemeIdUri, равным urn:mpeg:mpegI:vpcc:2019:geom_meta, который в настоящем документе называется дескриптором метаданных о геометрии или дескриптором geoMeta. Не более чем один дескриптор geomMeta может присутствовать на уровне MPD, и в этом случае он применим к компонентам геометрии для всех облаков точек, о которых оповещают в MPD, если только он не будет переопределен дескриптором geomMeta на более низком уровне, как описано ниже. Не более одного дескриптора geomMeta может присутствовать на уровне набора адаптации в основном AdaptationSet. Не более одного дескриптора geomMeta может присутствовать на уровне представления в основном AdaptationSet. Если дескриптор geomMeta присутствует на определенном уровне, он замещает любой дескриптор geomMeta, переданный на более высоком уровне.
В варианте осуществления атрибут @value дескриптора geomMeta присутствовать не должен. В варианте осуществления дескриптор geomMeta включает в себя элементы и атрибуты, указанные в таблице 7.
Таблица 7. Элементы и атрибуты для дескриптора geomMeta
Элементы и атрибуты для дескриптора geomMeta
Приме-нение
Тип данных
Описание
geom
0..1
vpcc:geometryMetadataType
Элемент контейнера, атрибуты и элементы которого определяют информацию метаданных о геометрии.
geom@point_shape
O
xs:unsignedByte
Указывает геометрическую форму точки, которую следует использовать для визуализации. Поддерживаемые значения находятся в диапазоне от 0 до 15 включительно. Соответствующая форма получена из таблицы 7-2 в проекте сообщества. При отсутствии значение по умолчанию должно составлять 0.
geom@point_size
O
xs:unsignedShort
Указывает геометрический размер точки, который следует использовать для визуализации. Допустимые значения должны находиться в диапазоне от 1 до 65535 включительно. При отсутствии значение по умолчанию должно быть выведено равным 1.
geom.geomSmoothing
0..1
vpcc:geometrySmoothingType
Элемент, атрибуты которого обеспечивают информацию о сглаживании геометрии.
geom.geomSmoothing@grid_size
М
xs:unsignedByte
Определяет размер сетки для сглаживания геометрии. Допустимые значения должны находиться в диапазоне от 2 до 128 включительно.Если элемент geom.geomSmoothing отсутствует, размер сетки по умолчанию должен быть выведен равным 8.
geom. geomSmoothing@threshold
М
xs:unsignedByte
Порог сглаживания.Если элемент geom.geomSmoothing отсутствует, порог по умолчанию должен быть выведен равным 64.
geom.geomScale
0..1
vpcc:geometryScaleType
Элемент, атрибуты которого обеспечивают информацию о масштабировании геометрии.
geom. geomScale@x
М
xs:unsignedInt
Значение масштаба по оси X. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 1.
geom. geomScale@y
М
xs:unsignedInt
Значение масштаба по оси Y. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 1.
geom. geomScale@z
М
xs:unsignedInt
Значение масштаба вдоль оси Z. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 1.
geom.geomOffset
0..1
vpcc:GeometryOffsetType
Элемент, атрибуты которого предоставляют информацию о смещении геометрии.
geom.geomOffset@x
М
xs:int
Значение смещения по оси X. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.
geom.geomOffset@y
М
xs:int
Значение смещения по оси Y. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.
geom.geomOffset@z
М
xs:int
Значение смещения по оси Z. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.
geom.geomRotation
0..1
vpcc:geometryRotationType
Элемент, атрибуты которого предоставляют информацию о вращении геометрии.
geom. geomRotation@x
М
xs:int
Значение вращения по оси X в единицах 2<sup>-16</sup> градусов. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.
geom. geomRotation@y
М
xs:int
Значение вращения по оси Y составляет 2<sup>-16</sup> градусов. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.
geom. geomRotation@z
М
xs:int
Значение вращения по оси Z составляет 2<sup>-16</sup> градусов. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.
Условные обозначения:Для атрибутов: M = обязательный, O = дополнительный, OD = дополнительный со значением по умолчанию, CM = условно обязательный.Для элементов: <minOccurs>..<maxOccurs> (N=unbounded)Элементы выделены жирным шрифтом; атрибуты не выделены жирными шрифтом, и им предшествует знак @.
В варианте осуществления типы данных для различных элементов и атрибутов дескриптора geomMeta могут быть такими, как определено в следующей схеме XML.
Сигнализация метаданных об атрибутах
Может быть введен элемент SupplementalProperty с атрибутом @schemeIdUri, равным urn:mpeg:mpegI:vpcc:2019:attr_meta, который в настоящем документе называется дескриптором метаданных об атрибуте или дескриптором attrMeta. Не более одного дескриптора attrMeta может присутствовать на уровне набора адаптаций в основном AdaptationSet. Не более одного дескриптора attrMeta может присутствовать на уровне представления в основном AdaptationSet. Если на уровне представления дескриптор attrMeta присутствует, он замещает любой дескриптор attrMeta, сообщенный на уровне набора адаптации для AdaptationSet, к которому относится Representation.
В варианте осуществления атрибут @value дескриптора attrMeta отсутствует. В варианте осуществления дескриптор attrMeta может включать в себя элементы и атрибуты, указанные в таблице 8.
Таблица 8. Элементы и атрибуты для дескриптора attrMeta
Элементы и атрибуты для дескриптора attrMeta
Приме-нение
Тип данных
Описание
attm
0..N
vpcc:attributeMetadataType
Элемент контейнера, атрибуты и элементы которого указывают информацию о метаданных для атрибута облака точек.
attm@index
М
xs:unsignedByte
Указывает индекс атрибута. Должен иметь значение от 0 до 127 включительно.
attm@num_dimensions
М
xs:unsignedByte
Количество измерений для атрибута облака точек.
attm.attrSmoothing
0..1
vpcc:attributeSmoothingType
Элемент, атрибуты которого обеспечивают информацию о сглаживании для атрибута облака точек.
attm. attrSmoothing@radius
М
xs:unsignedByte
Радиус для обнаружения соседей для атрибута сглаживания. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.
attm. attrSmoothing@neighbor_count
М
xs:unsignedByte
Максимальное число соседних точек, используемых для атрибута сглаживания. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.
attm. attrSmoothing@radius2_boundary
М
xs:unsignedByte
Радиус для обнаружения граничных точек. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.
attm. attrSmoothing@threshold
М
xs:unsignedByte
Порог атрибута сглаживания. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.
attm. attrSmoothing@threshold_local_entropy
М
xs:unsignedByte
Локальный порог энтропии в окрестности граничной точки. Значение для этого атрибута должно находиться в диапазоне от 0 до 7 включительно. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.
attm.attrScale
0..1
vpcc:attributeScaleType
Элемент, атрибут которого предоставляет информацию о масштабировании вдоль каждого измерения атрибута облака точек.
attm.attrScale@values
М
xs:string
Строка значений масштаба, разделенных запятыми, для каждого измерения атрибута облака точек.
attm.attrOffset
0..1
vpcc:attributeOffsetType
Элемент, атрибут которого предоставляет информацию о смещении вдоль каждого измерения атрибута облака точек.
attm.attrOffset@values
М
xs:string
Строка значений смещений, разделенных точками, для каждого измерения атрибута облака точек.
Условные обозначения:Для атрибутов: M = обязательный, O = дополнительный, OD = дополнительный со значением по умолчанию, CM = условно обязательный.Для элементов: <minOccurs>..<maxOccurs> (N=unbounded)Элементы выделены жирным шрифтом; атрибуты не выделены жирными шрифтом, и им предшествует знак @.
В варианте осуществления типы данных для различных элементов и атрибутов дескриптора attrMeta могут быть такими, как определено в следующей схеме XML.
Поведение клиента потоковой передачи
DASH-клиент (узел декодера) руководствуется информацией, предоставленной в MPD. Ниже приведен пример поведения клиента при обработке содержимого облака точек потоковой передачи в соответствии с сигнализацией, представленной в настоящем описании, с учетом варианта осуществления, в котором об ассоциации наборов компонентов AdaptationSet с основным AdaptationSet облака точек оповещают с использованием дескриптора VPCC. На фиг. 7 представлена блок-схема, иллюстрирующая пример клиентского процесса потоковой передачи в соответствии с вариантом осуществления.
На этапе 711 клиент сначала выдает HTTP-запрос и загружает MPD-файл с сервера содержимого. Затем клиент анализирует MPD-файл для создания соответствующего представления в памяти элементов XML в MPD-файле.
Затем на этапе 713 для определения доступного мультимедийного содержимого облака точек в Period клиент потоковой передачи сканирует элементы AdaptationSet для поиска наборов AdaptationSet с атрибутом @codecs, установленным на vpc1, и элементом дескриптора VPCC. Полученная подгруппа представляет собой набор основных AdaptationSet для содержимого облака точек.
Далее на этапе 715 клиент потоковой передачи идентифицирует число уникальных облаков точек путем проверки дескрипторов VPCC этих AdaptationSet и AdaptationSet групп с таким же значением @pcId в их дескрипторе VPCC, что и в версиях одного и того же содержимого.
На этапе 717 идентифицируют группу AdaptationSet со значением @pcId, соответствующим содержимому облака точек, которое пользователь желает получить в потоковой передаче. Если группа содержит более одного AdaptationSet, клиент потоковой передачи выбирает AdaptationSet с поддерживаемой версией (например, разрешение видео). В противном случае выбирают единственный AdaptationSet группы.
Затем на этапе 719 клиент потоковой передачи проверяет дескриптор VPCC выбранного AdaptationSet, чтобы идентифицировать наборы AdaptationSet для компонентов облака точек. Их идентифицируют по значениям атрибутов @occupancyId, @geometryId и @attributeId. Если в выбранном основном AdaptationSet присутствуют дескрипторы geomMeta и/или attrMeta, клиент потоковой передачи может до загрузки каких-либо сегментов определить, поддерживает ли он сообщенную конфигурацию визуализации для потока облака точек. В противном случае клиенту необходимо извлечь эту информацию из сегмента инициализации.
Затем на этапе 721 клиент запускает потоковую передачу облака точек путем загрузки сегмента инициализации для основного AdaptationSet, содержащего наборы параметров, необходимых для инициализации декодера V-PCC.
На этапе 723 сегменты инициализации для потоков видеокодированных компонентов загружают и кэшируют в запоминающее устройство.
На этапе 725 клиент потоковой передачи далее начинает загрузку синхронизированных по времени сегментов мультимедиа из основного AdaptatationSet и компонентов наборов AdatptationSet параллельно по HTTP, и загруженные сегменты сохраняются в буфере сегментов в запоминающем устройстве.
На этапе 727 синхронизированные по времени сегменты мультимедиа извлекают из их соответствующих буферов и конкатенируют с их соответствующими сегментами инициализации.
Наконец, на этапе 729 контейнер мультимедиа (например, ISOBMFF) анализируют для извлечения информации об элементарном потоке и структурирования битового потока V-PCC в соответствии со стандартом V-PCC, после чего битовый поток поступает в декодер V-PCC.
Хотя признаки и элементы описаны выше в конкретных комбинациях, специалисту в данной области будет очевидно, что каждый признак или элемент можно использовать отдельно или в любой комбинации с другими признаками и элементами. Кроме того, описанные в настоящем документе способы могут быть реализованы в компьютерной программе, программном обеспечении или программно-аппаратном обеспечении, встроенном в машиночитаемый носитель и предназначенном для исполнения компьютером или процессором. Примеры энергозависимого машиночитаемого носителя информации включают в себя, без ограничений, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), регистр, кэш-память, полупроводниковые устройства хранения данных, магнитные носители, такие как внутренние жесткие диски и съемные диски, магнитооптические носители и оптические носители, такие как диски CD-ROM и цифровые универсальные диски (DVD). Процессор в сочетании с программным обеспечением можно использовать для реализации радиочастотного приемопередатчика, предназначенного для применения в составе модуля 102 WTRU, пользовательского оборудования (UE), терминала, базовой станции, контроллера RNC и/или любого главного компьютера.
Кроме того, в описанных выше вариантах осуществления отмечены платформы для выполнения обработки, вычислительные системы, контроллеры и другие устройства, содержащие процессоры. Эти устройства могут содержать по меньшей мере один центральный процессор (ЦП) и запоминающее устройство. Как свидетельствует практика специалистов в области компьютерного программирования, указания на действия и символические представления этапов или команд могут быть реализованы с помощью различных ЦП и запоминающих устройств. Такие действия и этапы или команды могут упоминаться как «исполняемые», «исполняемые с помощью компьютера» или «исполняемые с помощью ЦП».
Для специалиста в данной области будет очевидно, что указанные действия и символически представленные этапы или команды включают управление электрическими сигналами с помощью ЦП. Электрическая система выдает биты данных, которые могут инициировать итоговое преобразование или ослабление электрических сигналов и сохранение битов данных в ячейках запоминающего устройства в системе запоминающего устройства, чтобы таким образом переконфигурировать или иным образом изменить работу ЦП, а также другую обработку сигналов. Ячейки запоминающего устройства, в которых хранятся биты данных, представляют собой физические местоположения, которые обладают определенными электрическими, магнитными, оптическими или органическими свойствами, соответствующими битам данных или характерными для битов данных. Следует понимать, что примеры осуществления не ограничены вышеупомянутыми платформами или ЦП и что другие платформы и ЦП также могут поддерживать предложенные способы.
Биты данных также могут храниться на машиночитаемом носителе, в том числе на магнитных дисках, оптических дисках и любом другом энергозависимом (например, оперативном запоминающем устройстве (ОЗУ)) или энергонезависимом (например, постоянном запоминающем устройстве (ПЗУ)) накопителе большой емкости для считывания ЦП. Машиночитаемый носитель может включать в себя взаимодействующий или взаимосвязанный машиночитаемый носитель, применяемый исключительно в системе обработки или распределенный между множеством взаимосвязанных систем обработки, которые могут быть локальными или удаленными по отношению к указанной системе обработки. При этом подразумевается, что типовые варианты осуществления не ограничены вышеупомянутыми запоминающими устройствами и что другие платформы и запоминающие устройства также могут поддерживать описанные способы.
В иллюстративном варианте осуществления любые этапы, способы и т.п., описанные в настоящем документе, могут быть реализованы в виде машиночитаемых команд, хранящихся на машиночитаемом носителе. Процессор мобильного устройства, сетевой элемент и/или любое другое вычислительное устройство могут быть выполнены с возможностью исполнения машиночитаемых команд.
Между аппаратными и программными реализациями аспектов систем остаются незначительные различия. Использование аппаратного или программного обеспечения, как правило (но не всегда, поскольку в определенных контекстах различие между аппаратным и программным обеспечением может стать значительным), предполагает выбор конструкции, представляющей собой компромисс между затратами и эффективностью. Могут существовать различные средства, с помощью которых могут быть реализованы способы и/или системы, и/или другие технологии, описанные в данном документе (например, аппаратное обеспечение, программное обеспечение и/или микропрограммное обеспечение), а предпочтительное средство может варьироваться в зависимости от контекста, в котором развернуты указанные способы и/или системы, и/или другие технологии. Например, если разработчик определяет, что скорость и точность имеют первостепенное значение, он может применять главным образом аппаратное и/или микропрограммное средство. Если самым важным аспектом является гибкость, разработчик может выбирать реализацию главным образом в виде программного обеспечения. В альтернативном варианте осуществления разработчик может применять комбинацию аппаратного обеспечения, программного обеспечения и/или микропрограммного обеспечения.
В приведенном выше подробном описании изложены различные варианты осуществления устройств и/или способов с применением блок-схем, структурных схем и/или примеров. Поскольку такие блок-схемы, структурные схемы и/или примеры содержат одну или более функций и/или операций, для специалистов в данной области будет очевидно, что каждая функция и/или операция в таких блок-схемах, структурных схемах или примерах может быть реализована, отдельно и/или совместно, с применением широкого спектра аппаратного обеспечения, программного обеспечения, микропрограммного обеспечения или по существу любой их комбинации. В качестве примера подходящие процессоры включают процессор общего назначения, процессор специального назначения, стандартный процессор, цифровой сигнальный процессор (DSP), множество микропроцессоров, один или более микропроцессоров, связанных с ядром DSP, контроллер, микроконтроллер, специализированные интегральные микросхемы (ASIC), стандартные части специализированной интегральной схемы (ASSP); программируемую пользователем вентильную матрицу (FPGA), интегральную схему (IC) любого другого типа и/или конечный автомат.
Хотя признаки и элементы представлены выше в конкретных комбинациях, специалисту в данной области будет очевидно, что каждый признак или элемент может быть использован отдельно или в любой комбинации с другими признаками и элементами. Настоящее изобретение не ограничивается описанными в настоящей заявке конкретными вариантами осуществления, которые предназначены для иллюстрации различных аспектов. Для специалистов в данной области будет очевидно, что возможно внесение множества модификаций и изменений без отступления от сущности и объема настоящего изобретения. Никакие элементы, действия или команды, используемые в описании настоящей заявки, не следует рассматривать как критические или существенные для изобретения, если явным образом не указано иное. Функционально эквивалентные способы и устройства, входящие в объем описания, в дополнение к перечисленным в настоящем документе станут очевидными для специалистов в данной области после ознакомления с представленными выше описаниями. Предполагается, что такие модификации и вариации включены в объем приложенной формулы изобретения. Настоящее описание ограничивается исключительно прилагаемой формулой изобретения, а также полным диапазоном эквивалентов, к которым относится такая формула изобретения. Следует понимать, что настоящее описание не ограничивается конкретными способами или системами.
Кроме того, следует понимать, что применяемые в настоящем документе термины используют только в целях описания конкретных вариантов осуществления настоящего изобретения и они не носят ограничительного характера. Используемые в настоящем документе термины «станция» и его аббревиатура STA, «пользовательское оборудование» и его аббревиатура UE могут означать (i) модуль беспроводной передачи/приема (WTRU), например, как описано ниже; (ii) любой из некоторого количества вариантов осуществления WTRU, например, как описано ниже; (iii) беспроводное и/или проводное (например, подключаемое) устройство, выполненное, в частности, с применением некоторых или всех конструкций и функциональных возможностей WTRU, например, как описано ниже; (iii) беспроводное и/или проводное устройство, выполненное не со всеми конструкциями и функциональными возможностями WTRU, например, как описано ниже; или (iv) и т.п.
В определенных типовых вариантах осуществления некоторые части объекта изобретения, описанного в настоящем документе, могут быть реализованы с помощью специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), цифровых сигнальных процессоров (DSP) и/или интегральных схем других форматов. Однако для специалистов в данной области будет очевидно, что некоторые аспекты описанных в настоящем документе вариантов осуществления полностью или частично могут быть эквивалентно реализованы в интегральных схемах в виде одной или более компьютерных программ, выполняемых на одном или более компьютерах (например, в виде одной или более программ, выполняемых в одной или более компьютерных системах), в виде одной или более программ, выполняемых на одном или более процессорах (например, в виде одной или более программ, выполняемых на одном или более микропроцессорах), в виде микропрограммного обеспечения или в виде по существу любой их комбинации и что разработка схем и/или написание кода для программного обеспечения и/или микропрограммного обеспечения будет вполне по силам специалисту в данной области после ознакомления с настоящим описанием. Кроме того, для специалистов в данной области будет очевидно, что механизмы объекта изобретения, описанные в настоящем документе, могут быть распределены в виде программного продукта в множестве форм и что иллюстративный вариант осуществления объекта изобретения, описанный в настоящем документе, применяют независимо от конкретного типа среды передачи сигналов, используемой для фактического осуществления такого распределения. Примеры носителя сигнала включают в себя, без ограничений, следующее: носитель, выполненный с возможностью записи, например, гибкий диск, накопитель на жестком диске, CD, DVD, магнитную ленту для цифровой записи, запоминающее устройство компьютера и т.д., а также носитель, выполненный с возможностью передачи, такой как цифровая и/или аналоговая среда передачи данных (например, оптоволоконный кабель, волновод, проводная линия связи, беспроводная линия связи и т.д.).
Описанный в настоящем документе объект изобретения иногда иллюстрирует различные компоненты, содержащиеся внутри различных других компонентов или соединенные с ними. Следует понимать, что такие показанные архитектуры являются лишь примерами и что фактически можно реализовать различные другие архитектуры с такой же функциональностью. В концептуальном смысле любая конструкция компонентов для получения такой же функциональности практически «связана» с возможностью обеспечения желаемой функциональности. Следовательно, любые два компонента, скомбинированные в настоящем документе для достижения конкретной функциональности, можно рассматривать как «связанные» друг с другом с возможностью обеспечения желаемой функциональности, независимо от архитектур или промежуточных компонентов. Аналогично любые два компонента, соединенные таким образом, можно также рассматривать как «функционально соединенные» или «функционально связанные» друг с другом для обеспечения желаемой функциональности, и любые два компонента, которые могут быть связаны таким образом, также можно рассматривать как «имеющие возможность функционального соединения» друг с другом для обеспечения желаемой функциональности. Конкретные примеры функционально соединяемых компонентов включают в себя, без ограничений, компоненты, выполненные с возможностью физического сопряжения, и/или физического, и/или логического, и/или беспроводного взаимодействия, и/или компоненты, взаимодействующие логически и/или беспроводным образом.
В отношении применения по существу любых вариантов множественного и/или единственного числа для терминов в настоящем документе специалисты в данной области могут изменять множественное число на единственное и/или единственное число на множественное в соответствии с требованиями контекста и/или сферой применения. В настоящем документе различные комбинации единственного/множественного числа для ясности могут быть указаны явным образом.
Для специалистов в данной области будет очевидно, что в целом термины, используемые в настоящем документе и, в частности, в прилагаемой формуле изобретения (например, в главной части прилагаемой формулы изобретения), как правило, считаются «неограничивающими» терминами (например, термин «включающий» следует интерпретировать как «включающий, без ограничений», термин «имеющий» следует интерпретировать как «имеющий по меньшей мере», термин «включает» следует интерпретировать как «включает, без ограничений» и т.д.). Кроме того, для специалистов в данной области будет очевидно, что в случае, если предполагается конкретное количество включенных пунктов с изложением формулы изобретения, такое намерение будет явным образом указано в формуле изобретения, а в отсутствие такого упоминания такого намерения нет. Например, если речь идет только об одном элементе, может быть использован термин «один» или аналогичный термин. Для облегчения понимания нижеследующая прилагаемая формула изобретения и/или описания в данном документе могут содержать вводные фразы «по меньшей мере один» и «один или более» для введения перечисления пунктов формулы изобретения. Однако использование таких фраз не следует истолковывать как подразумевающее, что введение перечисления пунктов формулы изобретения с грамматическими формами единственного числа ограничивает любой конкретный пункт формулы изобретения, содержащий такое введенное перечисление пунктов формулы изобретения, вариантами осуществления, содержащими только одно такое перечисление, даже если тот же пункт включает вводные фразы «один или более» или «по меньшей мере один» и грамматические формы единственного числа (например, грамматические формы единственного числа следует интерпретировать как означающие «по меньшей мере» или «один или более»). То же самое справедливо в отношении применения определенных грамматических форм, используемых для введения перечисления пунктов формулы изобретения. Кроме того, даже если явным образом указано конкретное количество включенных перечисленных пунктов формулы изобретения, для специалистов в данной области будет очевидно, что такое перечисление следует интерпретировать как означающее по меньшей мере указанное количество (например, простое указание «двух пунктов» без других определений означает по меньшей мере два пункта же два или более пунктов). Кроме того, в случае использования правила, аналогичного правилу «по меньшей мере одно из A, B и C и т.д.», в общем случае для специалиста в данной области понятно правило, подразумеваемое такой конструкцией (например, «система, содержащая по меньшей мере одно из A, B и C» будет включать, без ограничений, системы, которые содержат только A, только B, только C, одновременно A и B, одновременно A и C, одновременно B и C и/или одновременно A, B и C и т.д.). В случае использования правила, аналогичного правилу «по меньшей мере одно из A, B или C и т.д.», в общем случае для специалиста в данной области понятно правило, подразумеваемое такой конструкцией (например, «система, содержащая по меньшей мере одно из A, B или C» будет включать в себя, без ограничений, системы, которые содержат только A, только B, только C, одновременно A и B, одновременно A и C, одновременно B и C и/или одновременно A, B и C и т.д.). Кроме того, для специалистов в данной области будет очевидно, что по существу любое разделяющее слово и/или разделяющая фраза, представляющие два или более альтернативных терминов, будь то в описании, формуле изобретения или на чертежах, подразумевают возможность включения одного из терминов, любого из терминов или обоих терминов. Например, фраза «A или B» будет подразумевать включение возможностей «A» или «B» или «A и B». Кроме того, используемый в настоящем документе термин «любой из», после которого следует перечень множества элементов и/или множества категорий элементов, должен включать «любой из», «любая комбинация из», «любое множество из» и/или «любая комбинация из множества» элементов и/или категорий элементов, по отдельности или в сочетании с другими элементами и/или другими категориями элементов. Кроме того, используемый в настоящем документе термин «набор» или «группа» включает в себя любое количество элементов, в том числе ноль. Кроме того, используемый в настоящем документе термин «количество» включает в себя любое количество, в том числе ноль.
Кроме того, если признаки или аспекты описания представлены в терминах групп Маркуша, специалистам в данной области будет очевидно, что описание, таким образом, также представлено в терминах любого отдельного члена или подгруппы членов группы Маркуша.
Как будет очевидно для специалиста в данной области, для всех целей, таких как обеспечение письменного описания, все диапазоны, описанные в настоящем документе, также охватывают все их возможные поддиапазоны и комбинации поддиапазонов. Любой из перечисленных диапазонов можно легко распознать как представляющий достаточное описание и как диапазон, который можно разбить на по меньшей мере равные половины, трети, четверти, пятые части, десятые части и т.д. В примере, не имеющем ограничительного характера, каждый диапазон, описанный в данном документе, можно легко разбить в нижнюю треть, среднюю треть и верхнюю треть, и т.д. Как будет очевидно для специалиста в данной области, все термины, такие как «вплоть до», «по меньшей мере», «более чем», «менее чем» и т.п., включают в себя указанное число и относятся к диапазонам, которые можно впоследствии разбить на поддиапазоны, как описано выше. И наконец, как будет очевидно для специалиста в данной области, диапазон включает в себя каждый отдельный элемент. Таким образом, например, группа, содержащая 1–3 соты, относится к группам, содержащим 1, 2 или 3 соты. Аналогично группа, содержащая 1–5 сот, относится к группам, содержащим 1, 2, 3, 4 или 5 сот, и т.д.
Кроме того, формулу изобретения не следует рассматривать как ограниченную предложенным порядком или элементами, если не указано иное. Кроме того, использование термина «предназначенный для» в любом пункте формулы изобретения предполагает ссылку на Свод законов США (U.S.C.) 35 §112(f) или формат пункта формулы изобретения «предназначенный для плюс функция», и любой пункт формулы изобретения, не содержащий термин «предназначенный для», не указывает на это.
Хотя изобретение проиллюстрировано и описано в настоящем документе применительно к конкретным вариантам осуществления, изобретение не ограничено представленным подробным описанием. Напротив, в подробное описание в пределах объема и диапазона эквивалентов формулы изобретения могут быть внесены различные изменения без отступления от настоящего изобретения.
Для специалистов в данной области будет очевидно, что в настоящем описании некоторые типовые варианты осуществления можно использовать в альтернативном варианте осуществления или в сочетании с другими типовыми вариантами осуществления.
Хотя признаки и элементы описаны выше в конкретных комбинациях, специалисту в данной области будет очевидно, что каждый признак или элемент можно использовать отдельно или в любой комбинации с другими признаками и элементами. Кроме того, описанные в настоящем документе способы могут быть реализованы в компьютерной программе, программном обеспечении или программно-аппаратном обеспечении, встроенном в машиночитаемый носитель и предназначенном для исполнения компьютером или процессором. Примеры энергозависимого машиночитаемого носителя информации включают в себя, без ограничений, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), регистр, кэш-память, полупроводниковые устройства хранения данных, магнитные носители, такие как внутренние жесткие диски и съемные диски, магнитооптические носители и оптические носители, такие как диски CD-ROM и цифровые универсальные диски (DVD). Процессор в сочетании с программным обеспечением можно использовать для реализации радиочастотного приемопередатчика, предназначенного для применения в составе модуля WTRU, UE, терминала, базовой станции, контроллера RNC или любого главного компьютера.
Кроме того, в описанных выше вариантах осуществления отмечены платформы для выполнения обработки, вычислительные системы, контроллеры и другие устройства, содержащие процессоры. Эти устройства могут содержать по меньшей мере один центральный процессор (ЦП) и запоминающее устройство. Как свидетельствует практика специалистов в области компьютерного программирования, указания на действия и символические представления этапов или команд могут быть реализованы с помощью различных ЦП и запоминающих устройств. Такие действия и этапы или команды могут упоминаться как «исполняемые», «исполняемые с помощью компьютера» или «исполняемые с помощью ЦП».
Для специалиста в данной области будет очевидно, что указанные действия и символически представленные этапы или команды включают управление электрическими сигналами с помощью ЦП. Электрическая система выдает биты данных, которые могут инициировать итоговое преобразование или ослабление электрических сигналов и сохранение битов данных в ячейках запоминающего устройства в системе запоминающего устройства, чтобы таким образом переконфигурировать или иным образом изменить работу ЦП, а также другую обработку сигналов. Ячейки запоминающего устройства, в которых хранятся биты данных, представляют собой физические местоположения, которые обладают определенными электрическими, магнитными, оптическими или органическими свойствами, соответствующими битам данных или характерными для битов данных.
Биты данных также могут храниться на машиночитаемом носителе, в том числе на магнитных дисках, оптических дисках и любом другом энергозависимом (например, оперативном запоминающем устройстве (ОЗУ)) или энергонезависимом (например, постоянном запоминающем устройстве (ПЗУ)) накопителе большой емкости, считываемом ЦП. Машиночитаемый носитель может включать в себя взаимодействующий или взаимосвязанный машиночитаемый носитель, применяемый исключительно в системе обработки или распределенный между множеством взаимосвязанных систем обработки, которые могут быть локальными или удаленными по отношению к указанной системе обработки. При этом подразумевается, что типовые варианты осуществления не ограничены вышеупомянутыми запоминающими устройствами и что другие платформы и запоминающие устройства также могут поддерживать описанные способы.
Ни одни из элементов, действий или инструкций, используемых в описании настоящей заявки, не следует рассматривать как критические или существенные для настоящего изобретения, если явным образом не описано иное. Кроме того, используемая в настоящем документе грамматическая форма единственного числа предполагает включение одного или более элементов. Если подразумевается только один элемент, используют термин «один» или аналогичный термин. Кроме того, используемый в настоящем документе термин «любой из», после которого следует перечень множества элементов и/или множества категорий элементов, должен включать «любой из», «любая комбинация из», «любое множество из» и/или «любая комбинация из множества» элементов и/или категорий элементов, по отдельности или в сочетании с другими элементами и/или другими категориями элементов. Кроме того, используемый в настоящем документе термин «набор» включает любое количество элементов, в том числе ноль. Кроме того, используемый в настоящем документе термин «количество» включает любое количество, включая ноль.
Кроме того, формулу изобретения не следует рассматривать как ограниченную описанным порядком или элементами, если не указано иное. Кроме того, использование термина «средство» в любом пункте формулы изобретения предполагает ссылку на Свод законов США (U.S.C.) 35 §112(f), и любой пункт формулы изобретения, не содержащий термин «средство», не указывает на это.
В качестве примера подходящие процессоры включают процессор общего назначения, процессор специального назначения, стандартный процессор, цифровой сигнальный процессор (DSP), множество микропроцессоров, один или более микропроцессоров, связанных с ядром DSP, контроллер, микроконтроллер, специализированные интегральные микросхемы (ASIC), стандартные части специализированной интегральной схемы (ASSP); программируемую пользователем вентильную матрицу (FPGA), интегральную схему (IC) любого другого типа и/или конечный автомат.
Процессор в сочетании с программным обеспечением можно использовать для реализации радиочастотного приемопередатчика для использования в модуле беспроводной передачи/приема (WRTU), оборудовании пользователя (UE), терминале, базовой станции, объекте управления мобильностью (MME) или усовершенствованном пакетном ядре (EPC) или любом главном компьютере. WRTU можно использовать в сочетании с модулями, реализованными в аппаратном и/или программном обеспечении, включая систему радиосвязи с программируемыми параметрами (SDR) и другие компоненты, такие как камера, модуль видеокамеры, видеотелефон, телефон с громкоговорителем, вибрационное устройство, динамик, микрофон, телевизионный приемопередатчик, наушники с микрофоном, клавиатура, модуль Bluetooth, радиомодуль с частотной модуляцией (FM), модуль ближней радиосвязи (NFC), блок жидкокристаллического дисплея (LCD), блок дисплея на органических светодиодах (OLED), цифровой музыкальный проигрыватель, мультимедийный проигрыватель, модуль устройства для воспроизведения видеоигр, Интернет-браузер и/или любая беспроводная локальная сеть (WLAN) или модуль сверхширокополосной связи (UWB).
Хотя изобретение описано в контексте систем связи, предполагается, что указанные системы могут быть реализованы в виде программного обеспечения в микропроцессорах/компьютерах общего назначения (не показаны). В определенных вариантах осуществления одна или более функций различных компонентов могут быть реализованы в программном обеспечении, управляющем компьютером общего назначения.
Кроме того, хотя изобретение проиллюстрировано и описано в настоящем документе применительно к конкретным вариантам осуществления, изобретение не ограничено представленным подробным описанием. Напротив, в подробное описание в пределах объема и диапазона эквивалентов формулы изобретения могут быть внесены различные изменения без отступления от настоящего изобретения.