RU2795052C2 - Methods and device for adaptive point cloud streaming - Google Patents

Methods and device for adaptive point cloud streaming Download PDF

Info

Publication number
RU2795052C2
RU2795052C2 RU2021128499A RU2021128499A RU2795052C2 RU 2795052 C2 RU2795052 C2 RU 2795052C2 RU 2021128499 A RU2021128499 A RU 2021128499A RU 2021128499 A RU2021128499 A RU 2021128499A RU 2795052 C2 RU2795052 C2 RU 2795052C2
Authority
RU
Russia
Prior art keywords
pcc
video
attribute
network node
components
Prior art date
Application number
RU2021128499A
Other languages
Russian (ru)
Other versions
RU2021128499A (en
Inventor
Ахмед ХАМЗА
Юн ХЭ
Original Assignee
Вид Скейл, Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Вид Скейл, Инк. filed Critical Вид Скейл, Инк.
Publication of RU2021128499A publication Critical patent/RU2021128499A/en
Application granted granted Critical
Publication of RU2795052C2 publication Critical patent/RU2795052C2/en

Links

Images

Abstract

FIELD: data transmission.
SUBSTANCE: invention relates to means for adaptive streaming video-based point cloud compression (V-PCC) using an adaptive HTTP streaming protocol such as DASH MPEG. PCD PC related information is transmitted in a Media Presentation Description (MPD) for Dynamic Adaptive Streaming over HTTP (DASH), wherein the DASH MPD includes information indicating at least: (1) a basic adaptation set (AS) for the point cloud, the basic AS including information indicating at least: (i) a unique codec attribute value indicating that the basic AS corresponds to the V-PCC data, (ii) an initialization segment comprising at least one set of V-PCC sequence parameters for representing the PC, and (2) a plurality of AS set components, wherein each of the plurality of AS components corresponds to one of the plurality of V-PCC components and includes information indicative of at least: (a) a V-PCC Component descriptor specifying the type of the corresponding V-PCC component, and (b) at least one property of the corresponding V-PCC component. MPD DASH is transmitted over the network.
EFFECT: increased transmission efficiency of 3D point clouds.
20 cl, 8 dwg, 8 tbl

Description

Предпосылки создания изобретенияPrerequisites for the creation of the invention

В последнее время появились высококачественные 3D-облака точек в качестве усовершенствованного представления об иммерсивной среде. Облако точек состоит из набора точек, представленных в 3D-пространстве, с использованием координат, указывающих местоположение каждой точки вместе с одним или более атрибутами, такими как цвет, связанный с каждой точкой, прозрачность, время получения, отражение лазера или свойство материала и т. п. Данные для создания облаков точек можно получать разными способами. Например, одной из методик захвата облаков точек является применение множества камер и датчиков глубины. Для захвата облаков точек также часто используют лазерные сканеры обнаружения света и определения дальности (LiDAR). Количество точек, необходимых для реалистичного восстановления объектов и сцен с использованием облаков точек, составляет порядка миллионов (или даже миллиардов). Следовательно, для хранения и передачи данных облака точек важны эффективное представление и сжатие.Recently, high-quality 3D point clouds have emerged as an advanced representation of an immersive environment. A point cloud consists of a collection of points represented in 3D space using coordinates indicating the location of each point along with one or more attributes such as the color associated with each point, transparency, acquisition time, laser reflection or material property, etc. n. Data for creating point clouds can be obtained in different ways. For example, one technique for capturing point clouds is to use multiple cameras and depth sensors. Laser light detection and ranging (LiDAR) scanners are also often used to capture point clouds. The number of points needed to realistically restore objects and scenes using point clouds is on the order of millions (or even billions). Therefore, efficient representation and compression is essential for storing and transmitting point cloud data.

Последние достижения в области технологий захвата и визуализации 3D-точек привели к появлению новых приложений в областях телеприсутствия, виртуальной реальности и крупномасштабных динамических 3D-карт. Подгруппа трехмерной графики (3D Graphics) экспертной группы по движущемуся изображению (Moving Picture Experts Group (MPEG)), курирующей стандарт ISO/IEC JTC1/SC29/WG11, в настоящее время работает над разработкой двух стандартов сжатия 3D-облаков точек (PCC): стандарта сжатия на основе геометрии для статических облаков точек (облаков точек для неподвижных объектов) и стандарта сжатия на основе видео для динамических облаков точек (облаков точек для движущихся объектов). Цель этих стандартов — обеспечение эффективного и интерактивного хранения и передачи 3D-облаков точек. Среди требований этих стандартов — поддержка кодирования с потерями и/или без потерь геометрических координат и атрибутов облака точек.Recent advances in 3D point capture and visualization technologies have led to new applications in the areas of telepresence, virtual reality, and large-scale dynamic 3D maps. The 3D Graphics subgroup of the Moving Picture Experts Group (MPEG), which oversees the ISO/IEC JTC1/SC29/WG11 standard, is currently working on the development of two 3D Point Cloud Compression (PCC) standards: a geometry-based compression standard for static point clouds (point clouds for stationary objects); and a video-based compression standard for dynamic point clouds (point clouds for moving objects). The purpose of these standards is to provide efficient and interactive storage and transmission of 3D point clouds. Among the requirements of these standards is support for lossy and/or lossless encoding of geometric coordinates and point cloud attributes.

Краткое описание графических материаловBrief description of graphic materials

Более подробное объяснение содержится в представленном ниже подробном описании с использованием примеров в сочетании с прилагаемыми графическими материалами. Фигуры на таких графических материалах, как и подробное описание, являются примерами. Таким образом, данные фигуры и подробное описание нельзя рассматривать как ограничивающие, при этом возможны и вероятны другие в равной степени эффективные примеры. Кроме того, подобные позиции на фигурах указывают подобные элементы, причемFor a more detailed explanation, see the detailed description below, using examples in conjunction with the accompanying graphics. The figures in such drawings, as well as the detailed description, are examples. Thus, these figures and the detailed description should not be construed as limiting, and other equally effective examples are possible and likely. In addition, like positions in the figures indicate like elements, with

на фиг. 1A представлена блок-схема, иллюстрирующая пример системы кодирования и декодирования видео, в которой можно обеспечить и/или реализовать один или более вариантов осуществления;in fig. 1A is a block diagram illustrating an example of a video encoding and decoding system in which one or more embodiments may be provided and/or implemented;

на фиг. 1B приведена блок-схема, иллюстрирующая пример блока видеокодера для использования с системой кодирования и/или декодирования видео, показанной на фиг. 1A;in fig. 1B is a block diagram illustrating an example of a video encoder block for use with the video encoding and/or decoding system shown in FIG. 1A;

на фиг. 2 представлена блок-схема универсальной гибридной блочной системы кодирования видеосигналов;in fig. 2 is a block diagram of a universal hybrid block video coding system;

на фиг. 3 представлена общая блок-схема блочного видеодекодера;in fig. 3 is a general block diagram of a block video decoder;

на фиг. 4 представлена структура битового потока для сжатия облака точек на основе видео (V-PCC);in fig. 4 shows a bitstream structure for video-based point cloud compression (V-PCC);

на фиг. 5 представлена иерархическая модель данных MPD;in fig. 5 shows a hierarchical MPD data model;

на фиг. 6 представлен пример DASH-конфигурации для группирования компонентов V-PCC, принадлежащих облаку с единственной точкой, в файле MPD MPEG-DASH; иin fig. 6 shows an example DASH configuration for grouping V-PCC components belonging to a single point cloud in an MPD MPEG-DASH file; And

на фиг. 7 представлена блок-схема, иллюстрирующая пример способа декодирования для потоковой передачи содержимого облака точек в соответствии с вариантом осуществления.in fig. 7 is a flowchart illustrating an example of a decoding method for streaming point cloud content according to an embodiment.

Подробное описаниеDetailed description

Примеры систем, в которых возможна реализация вариантов осуществленияExamples of systems in which implementation of the embodiments is possible

На фиг. 1A показана блок-схема, иллюстрирующая пример системы 100 кодирования и декодирования видео, в которой можно обеспечить и/или реализовать один или более вариантов осуществления. Система 100 может включать в себя устройство-источник 112, которое может передавать кодированную видеоинформацию в устройство 114 назначения по каналу 116 связи.In FIG. 1A is a block diagram illustrating an example of a video encoding and decoding system 100 in which one or more embodiments may be provided and/or implemented. System 100 may include a source device 112 that can transmit encoded video information to destination device 114 over communication channel 116 .

Устройство-источник 112 и/или устройство 114 назначения могут представлять собой любые из широкого спектра устройств. В некоторых типовых вариантах осуществления устройство-источник 112 и/или устройство 114 назначения могут включать в себя модули беспроводной передачи и/или приема (WTRU), такие как беспроводные телефоны или любые беспроводные устройства, способные передавать видеоинформацию по каналу 116 связи, и в этом случае канал 116 связи включает в себя беспроводную линию связи. Однако способы, устройства и системы, описанные, раскрытые или иным образом предоставленные в явном виде, неявно и/или неотъемлемо (в совокупности называемые «предоставленными»), в настоящем документе не обязательно ограничиваются беспроводными приложениями или настройками. Например, эти методики можно применять к эфирным телевизионным трансляциям, передачам кабельного телевидения, передачам спутникового телевидения, передачам видео через Интернет, кодированному цифровому видео, которое закодировано на носителе данных, и/или к другим сценариям. Канал 116 связи может включать в себя и/или может представлять собой любую комбинацию беспроводных или проводных сред, подходящих для передачи кодированных видеоданных.Source device 112 and/or destination device 114 can be any of a wide variety of devices. In some exemplary embodiments, source device 112 and/or destination device 114 may include wireless transmit and/or receive units (WTRUs), such as wireless telephones or any wireless device capable of transmitting video information over communication channel 116, and in this In this case, the link 116 includes a wireless link. However, the methods, devices, and systems described, disclosed, or otherwise provided, either expressly, implicitly, and/or inherently (collectively referred to as "provided") herein, are not necessarily limited to wireless applications or settings. For example, these techniques can be applied to terrestrial television broadcasts, cable television transmissions, satellite television transmissions, Internet video transmissions, encoded digital video that is encoded on a storage medium, and/or other scenarios. Communication channel 116 may include and/or may be any combination of wireless or wired media suitable for transmitting encoded video data.

Устройство-источник 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 назначения могут быть выполнены с возможностью и/или адаптированы (обобщенно «адаптированы») для применения методик кодирования, предложенных в настоящем документе.Source device 112 may include a video encoder unit 118, a transmit and/or receive (Tx/Rx) unit 120, and/or a Tx/Rx element 122. As shown, source device 112 may include video source 124. Destination device 114 may include a Tx/Rx element 126, a Tx/Rx block 128, and/or a video decoder block 130. As shown, the destination device 114 may include a display device 132. Each of the Tx/Rx blocks 120, 128 may be or may include a transmitter, a receiver, or a combination of transmitter and receiver (eg, a transceiver or a transmitter/receiver). Each of the elements 122, 126 Tx/Rx can be, for example, an antenna. As used herein, video encoder unit 118 of source device 112 and/or video decoder unit 130 of destination device 114 may be configured and/or adapted (generally "adapted") to apply the encoding techniques proposed herein.

Устройства 112 и 114 источника и назначения могут включать в себя другие элементы/компоненты или конструкции. Например, устройство-источник 112 может быть выполнено с возможностью приема видеоданных от внешнего источника видео. Устройство 114 назначения может взаимодействовать с внешним устройством отображения (не показано) и/или может включать в себя и/или использовать (например, интегрированное) устройство 132 отображения. В некоторых вариантах осуществления поток данных, сгенерированный блоком 118 видеокодера, может быть передан на другие устройства без модуляции данных несущим сигналом, например, путем прямой цифровой передачи, а другие устройства могут модулировать или не модулировать данные для передачи.Source and destination devices 112 and 114 may include other elements/components or structures. For example, source device 112 may be configured to receive video data from an external video source. Destination device 114 may communicate with an external display device (not shown) and/or may include and/or use (eg, integrated) display device 132. In some embodiments, the data stream generated by video encoder unit 118 may be transmitted to other devices without data carrier modulation, such as direct digital transmission, and other devices may or may not modulate the data for transmission.

Предложенные в настоящем документе методики можно реализовать с помощью любого устройства цифрового кодирования и/или декодирования видео. Хотя методики, предложенные в настоящем документе, по существу выполняют с помощью отдельных устройств кодирования видео и/или декодирования видео, эти методики также могут быть выполнены с помощью объединенного кодера/декодера видео, обычно называемого «КОДЕКОМ». Предложенные в настоящем документе методики также могут выполняться процессором предварительной обработки видео или т.п. Устройство-источник 112 и устройство 114 назначения являются лишь примерами таких кодирующих устройств, в которых устройство-источник 112 может генерировать (и/или может принимать видеоданные и может генерировать) кодированную видеоинформацию для передачи в устройство 114 назначения. В некоторых типовых вариантах осуществления устройства 112, 114 источника и назначения могут работать по существу симметричным образом, так что каждое из устройств 112, 114 может включать в себя компоненты и/или элементы как кодирования, так и декодирования видео (обобщенно называемые «элементами»). Таким образом, система 100 может поддерживать любую из односторонней и двусторонней передачи видео между устройствами 112, 114 источника и назначения (например, помимо прочего, для любого варианта из потоковой передачи видео, воспроизведения видео, широковещательной передачи видео, видеотелефонии и/или видеоконференций). В некоторых типовых вариантах осуществления устройство-источник 112 может представлять собой, например, сервер потоковой передачи видео, выполненный с возможностью генерирования (и/или приема видеоданных и генерирования) кодированной видеоинформации для одного или более устройств назначения, причем устройства назначения могут обмениваться данными с устройством-источником 112 по системам проводной и/или беспроводной связи.The techniques proposed herein can be implemented using any digital video encoding and/or decoding device. Although the techniques proposed herein are essentially performed with separate video encoders and/or video decoders, these techniques can also be performed with a combined video encoder/decoder, commonly referred to as a "CODEC". The techniques provided herein may also be performed by a video pre-processor or the like. Source device 112 and destination device 114 are only examples of such encoders in which source device 112 can generate (and/or can receive video data and can generate) encoded video information for transmission to destination device 114. In some exemplary embodiments, source and destination devices 112, 114 may operate in a substantially symmetrical manner such that each of devices 112, 114 may include components and/or elements of both video encoding and decoding (collectively referred to as "elements") . Thus, system 100 can support any one-way and two-way video transmission between source and destination devices 112, 114 (eg, but not limited to any of video streaming, video playback, video broadcast, video telephony, and/or video conferencing). In some exemplary embodiments, source device 112 may be, for example, a video streaming server configured to generate (and/or receive video data and generate) encoded video information for one or more destination devices, wherein the destination devices can communicate with the device. -source 112 via wired and/or wireless communication systems.

Внешний источник видео и/или источник 124 видео могут представлять собой и/или включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, и/или видеопоток от провайдера видеосодержимого. В некоторых типовых вариантах осуществления внешний источник видео и/или источник 124 видео могут генерировать данные на основе компьютерных графических изображений в качестве исходного видео или комбинацию видео в реальном времени, архивированного видео и/или генерируемого компьютером видео. В некоторых типовых вариантах осуществления, если источник 124 видео представляет собой видеокамеру, устройство-источник 112 и устройство 114 назначения могут представлять собой камерофоны или видеотелефоны или могут иметь их в своем составе.The external video source and/or video source 124 may be and/or include a video capture device such as a video camera, a video archive containing previously captured video, and/or a video stream from a video content provider. In some exemplary embodiments, the external video source and/or video source 124 may generate data from computer graphics as source video, or a combination of live video, archived video, and/or computer generated video. In some exemplary embodiments, if video source 124 is a video camera, source device 112 and destination device 114 may be or include camera phones or video phones.

Захваченные, предварительно захваченные, сгенерированные компьютером видео, видеопоток и/или другой тип видеоданных (обобщенно называются «некодированным видео») можно подвергать кодированию с помощью блока 118 видеокодера для формирования кодированной видеоинформации. Блок 120 Tx/Rx может модулировать кодированную видеоинформацию (например, в соответствии со стандартом связи для формирования одного или более модулированных сигналов, содержащих кодированную видеоинформацию). Блок 120 Tx/Rx может передавать модулированные сигналы на свой передатчик для передачи. Передатчик может передавать модулированные сигналы на устройство 114 назначения посредством элемента 122 Tx/Rx.The captured, pre-captured, computer-generated video, video stream, and/or other type of video data (collectively referred to as "non-encoded video") may be encoded by the video encoder unit 118 to generate encoded video information. The Tx/Rx unit 120 may modulate the encoded video information (eg, in accordance with a communication standard to generate one or more modulated signals containing encoded video information). The Tx/Rx unit 120 may send the modulated signals to its transmitter for transmission. The transmitter may transmit the modulated signals to destination device 114 via Tx/Rx element 122.

В устройстве 114 назначения блок 128 Tx/Rx может принимать модулированные сигналы по каналу 116 посредством элемента 126 Tx/Rx. Блок 128 Tx/Rx может демодулировать модулированные сигналы для получения кодированной видеоинформации. Блок 128 Tx/Rx может передавать кодированную видеоинформацию в блок 130 видеодекодера.At destination device 114, Tx/Rx unit 128 can receive modulated signals over channel 116 via Tx/Rx element 126. Block 128 Tx/Rx may demodulate the modulated signals to obtain encoded video information. Block 128 Tx/Rx can transmit encoded video information in block 130 of the video decoder.

Блок 130 видеодекодера может декодировать кодированную видеоинформацию для получения декодированных видеоданных. Кодированная видеоинформация может включать в себя синтаксическую информацию, определенную блоком 118 видеокодера. Эта синтаксическая информация может включать в себя один или более элементов («элементы синтаксиса»), некоторые или все из которых могут быть полезны для декодирования кодированной видеоинформации. Элементы синтаксиса могут включать в себя, например, характеристики кодированной видеоинформации. Элементы синтаксиса также могут включать в себя характеристики и/или описывать обработку некодированного видео, используемого для формирования кодированной видеоинформации.The video decoder unit 130 may decode the encoded video information to obtain decoded video data. The encoded video information may include syntax information defined by video encoder block 118. This syntax information may include one or more elements ("syntax elements"), some or all of which may be useful for decoding the encoded video information. The syntax elements may include, for example, characteristics of the encoded video information. The syntax elements may also include characteristics and/or describe the processing of unencoded video used to generate encoded video information.

Блок 130 видеодекодера может выводить декодированные видеоданные для последующего хранения и/или отображения на внешний дисплей (не показан). В некоторых типовых вариантах осуществления блок 130 видеодекодера может выводить декодированные видеоданные на устройство 132 отображения. Устройство 132 отображения может представлять собой и/или может включать в себя любое отдельное устройство отображения, множество, комбинацию различных устройств отображения, выполненных с возможностью отображения декодированных видеоданных для пользователя. Примеры таких устройств отображения включают в себя, помимо прочего, жидкокристаллический дисплей (ЖКД), плазменный дисплей, дисплей на основе органических светодиодов (OLED) и/или катодную лучевую трубку (ЭЛТ).The video decoder unit 130 may output the decoded video data for later storage and/or display on an external display (not shown). In some exemplary embodiments, video decoder unit 130 may output decoded video data to display device 132. Display device 132 may be and/or may include any single display device, a plurality, combination of different display devices configured to display decoded video data to a user. Examples of such display devices include, but are not limited to, a liquid crystal display (LCD), a plasma display, an organic light emitting diode (OLED) display, and/or a cathode ray tube (CRT).

Канал 116 связи может представлять собой любую среду беспроводной или проводной связи, такую как радиочастотный (РЧ) спектр, или одну или более физических линий передачи, или любую комбинацию беспроводных и проводных сред. Канал 116 связи может быть частью пакетной сети, такой как локальная сеть, территориально распределенная сеть или глобальная сеть, такая как сеть Интернет. Канал 116 связи по существу представляет собой любую подходящую среду связи или набор различных сред связи для передачи видеоданных от устройства-источника 112 к устройству 114 назначения, включая любую подходящую комбинацию проводных и/или беспроводных сред. Канал 116 связи может включать в себя маршрутизаторы, переключатели, базовые станции и/или любое другое оборудование, которое может быть полезным для облегчения передачи данных от устройства-источника 112 к устройству 114 назначения. Подробная информация по иллюстративной системе связи, которая может облегчать такую связь между устройствами 112, 114, приведена ниже со ссылкой на фиг. 15A–15E. Ниже также приведены подробные сведения об устройствах 112, 114 источника и назначения.Communication channel 116 may be any wireless or wired media, such as the radio frequency (RF) spectrum, or one or more physical transmission lines, or any combination of wireless and wired media. Communication channel 116 may be part of a packet network such as a local area network, a wide area network, or a wide area network such as the Internet. Communication channel 116 is essentially any suitable communication medium or set of different communication media for transmitting video data from source device 112 to destination device 114, including any suitable combination of wired and/or wireless media. Communication channel 116 may include routers, switches, base stations, and/or any other equipment that may be useful in facilitating data transfer from source device 112 to destination device 114. Details of an exemplary communications system that may facilitate such communications between devices 112, 114 are provided below with reference to FIG. 15A–15E. Below are also detailed information about the devices 112, 114 source and destination.

Блок 118 видеокодера и блок 130 видеодекодера могут работать в соответствии с одним или более стандартами и/или спецификациями, такими как, например, помимо прочего, MPEG-2, H.261, H.263, H.264, H.264/AVC и/или H.264, расширенные в соответствии с расширениями SVC (H.264/SVC). Специалисту в данной области понятно, что способы, устройства и/или системы, описанные в настоящем документе, применимы к другим видеокодерам, декодерам и/или КОДЕКам, реализованным в соответствии с разными стандартами (и/или совместимым с ними), или к запатентованным видеокодерам, декодерам и/или КОДЕКам, включая будущие видеокодеры, декодеры и/или КОДЕКи. Методики, изложенные в настоящем документе, не ограничены каким-либо конкретным стандартом кодирования.Video encoder unit 118 and video decoder unit 130 may operate in accordance with one or more standards and/or specifications such as, for example, but not limited to MPEG-2, H.261, H.263, H.264, H.264/AVC and/or H.264 extended according to the SVC extensions (H.264/SVC). The person skilled in the art will appreciate that the methods, devices, and/or systems described herein are applicable to other video encoders, decoders, and/or CODECs implemented in accordance with (and/or compatible with) different standards, or to proprietary video encoders. , decoders and/or CODECs, including future video encoders, decoders and/or CODECs. The techniques outlined in this document are not limited to any particular coding standard.

Релевантные части 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.The relevant parts of H.264/AVC mentioned above are available from the International Telecommunication Union as ITU-T Recommendation H.264 or more specifically ITU-T Rec. H.264 and ISO/IEC 14496-10 (MPEG4-AVC), Advanced Video Coding for Generic Audiovisual Services,'v5, March 2010, which is incorporated herein by reference and which may be referred to herein as the H. 264, H.264 specification, standard and/or H.264/AVC specification. The techniques presented herein can be applied to devices that conform (eg, generally conform) to the H.264 standard.

Хотя это и не показано на фиг. 1A, каждый из блоков 118, 130 видеокодера и видеодекодера может включать в себя аудиокодер и/или аудиодекодер (при необходимости) и/или может быть объединен с ним. Блоки 118, 130 видеокодера и видеодекодера могут включать в себя соответствующие блоки MUX-DEMUX или другое аппаратное и/или программное обеспечение для обработки кодирования как аудиосигнала, так и видеосигнала в общем потоке данных и/или в отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать, например, протоколу мультиплексора и/или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP), согласно рекомендации ITU-T Recommendation H.223.Although not shown in FIG. 1A, each of the video encoder and video decoder blocks 118, 130 may include and/or be combined with an audio encoder and/or audio decoder (if necessary). The video encoder and video decoder units 118, 130 may include respective MUX-DEMUX units or other hardware and/or software for processing both audio and video encoding in a common data stream and/or in separate data streams. If applicable, the MUX-DEMUX units may conform to, for example, the multiplexer protocol and/or other protocols such as User Datagram Protocol (UDP) as per ITU-T Recommendation H.223.

Один или более блоков 118, 130 видеокодера и/или видеодекодера могут быть включены в один или более кодеров и/или декодеров, любой из них может быть интегрирован в состав КОДЕКА и может быть интегрирован и/или совмещен, помимо прочего, с соответствующей камерой, компьютером, мобильным устройством, абонентским устройством, широковещательным устройством, телевизионной приставкой и/или сервером. Блок 118 видеокодера и/или блок 130 видеодекодера могут быть реализованы в виде любой из множества подходящих схем кодера и/или декодера соответственно, таких как один или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретных логических схем, программного обеспечения, аппаратного обеспечения, микропрограммного обеспечения или любых их комбинаций. Один или оба из блоков 118, 130 видеокодера и видеодекодера могут быть по существу реализованы в виде программного обеспечения, а операции элементов блока 118 видеокодера и/или блока 130 видеодекодера могут быть выполнены с помощью соответствующих программных инструкций, исполняемых одним или более процессорами (не показаны). Такой вариант осуществления в дополнение к процессору может содержать компоненты вне кристалла, например, помимо прочего, внешнее запоминающее устройство (например, в виде энергонезависимого запоминающего устройства) и/или интерфейсы ввода/вывода.One or more video encoder and/or video decoder blocks 118, 130 may be included in one or more encoders and/or decoders, any of which may be integrated into a CODEC and may be integrated and/or combined with, among other things, a corresponding camera, computer, mobile device, subscriber device, broadcast device, set-top box and/or server. Video encoder unit 118 and/or video decoder unit 130 may be implemented as any of a variety of suitable encoder and/or decoder circuits, respectively, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gates. arrays (FPGAs), discrete logic circuits, software, hardware, firmware, or any combination thereof. One or both of the video encoder and video decoder units 118, 130 may be substantially implemented in software, and the operations of the elements of video encoder unit 118 and/or video decoder unit 130 may be performed by appropriate software instructions executed by one or more processors (not shown). ). Such an embodiment may include off-chip components in addition to the processor, such as, but not limited to, external storage (eg, in the form of non-volatile storage) and/or I/O interfaces.

В любом варианте осуществления, в котором операции элементов блоков 118, 130 видеокодера и/или видеодекодера могут выполняться с помощью программных инструкций, исполняемых одним или более процессорами, программные инструкции могут храниться на машиночитаемом носителе, включая, например, помимо прочего, магнитные диски, оптические диски, любое другое энергозависимое (например, оперативное запоминающее устройство (ОЗУ)), энергонезависимое (например, постоянное запоминающее устройство (ПЗУ)) и/или запоминающее устройство большой емкости, считываемое ЦП. Машиночитаемый носитель может включать в себя взаимодействующий или взаимосвязанный машиночитаемый носитель, который может применяться исключительно в системе обработки и/или распределен между множеством взаимосвязанных систем обработки, которые могут быть локальными или удаленными по отношению к указанной системе обработки.In any embodiment in which the operations of the elements of video encoder and/or video decoder blocks 118, 130 may be performed by software instructions executable by one or more processors, the software instructions may be stored on a computer-readable medium, including, for example, but not limited to, magnetic disks, optical disks, any other volatile (eg, random access memory (RAM)), non-volatile (eg, read only memory (ROM)) and/or mass storage device readable by the CPU. The computer-readable medium may include an interoperable or interconnected computer-readable medium that may be used exclusively within a processing system and/or distributed among a plurality of interconnected processing systems, which may be local or remote to said processing system.

На фиг. 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). Специалисту в данной области будет понятно, что способы, устройства и/или системы, представленные в настоящем документе, могут быть применимы к другим видеокодерам, реализованным в соответствии с различными стандартами и/или запатентованными КОДЕКами, включая будущие КОДЕКи.In FIG. 1B is a block diagram illustrating an example video encoder block 118 for use with a video encoding and/or decoding system, such as system 100. Video encoder block 118 may include a video encoder 133, an output buffer 134, and a system controller 136. Video encoder 133 (or one or more of its elements) may be implemented in accordance with one or more standards and/or specifications, such as, for example, but not limited to, H.261, H.263, H.264, H.264/AVC, SVC H. 264/AVC (H.264/AVC Annex G), HEVC and/or Scalable HEVC Extensions (SHVC). One skilled in the art will appreciate that the methods, devices, and/or systems presented herein may be applicable to other video encoders implemented in accordance with various standards and/or proprietary CODECs, including future CODECs.

Видеокодер 133 может принимать видеосигнал, поступающий от источника видео, такого как источник 124 видео и/или внешний источник видео. Этот видеосигнал может включать в себя некодированное видео. Видеокодер 133 может кодировать некодированное видео и предоставлять на своем выходе кодированный (т.е. сжатый) битовый поток (BS) видео.Video encoder 133 may receive video from a video source, such as video source 124 and/or an external video source. This video signal may include unencoded video. Video encoder 133 may encode unencoded video and provide encoded (ie, compressed) video bitstream (BS) at its output.

Кодированный битовый видеопоток BS может быть передан в выходной буфер 134. Выходной буфер 134 может буферизовать кодированный битовый видеопоток BS и может предоставлять такой кодированный битовый видеопоток BS в виде буферизованного битового потока (BBS) для передачи по каналу 116 связи.The encoded video bitstream of the BS may be sent to an output buffer 134. The output buffer 134 may buffer the encoded video bitstream of the BS and may provide such encoded video bitstream of the BS as a buffered bitstream (BBS) for transmission over the communication channel 116.

Буферизованный битовый поток BBS, выводимый из выходного буфера 134, может быть отправлен на устройство хранения (не показано) для последующего просмотра или передачи. В некоторых типовых вариантах осуществления блок 118 видеокодера может быть выполнен с возможностью визуальной связи, при которой буферизованный битовый поток BBS может быть передан по каналу 116 связи с заданной постоянной и/или переменной битовой скоростью (например, с задержкой (например, с очень низкой или минимальной задержкой)).The buffered BBS bitstream output from output buffer 134 may be sent to a storage device (not shown) for later viewing or transmission. In some exemplary embodiments, video encoder unit 118 may be configured for visual communication, in which a buffered BBS bitstream may be transmitted over communication channel 116 at a predetermined constant and/or variable bit rate (e.g., latency (e.g., very low or minimum delay.

Кодированный битовый видеопоток BS и в свою очередь буферизованный битовый поток BBS могут переносить биты кодированной видеоинформации. Биты буферизованного битового потока BBS могут быть упорядочены в виде потока кодированных видеокадров. Кодированные видеокадры могут представлять собой интракодированные кадры (например, I-кадры) или интеркодированные кадры (например, B-кадры и/или P-кадры). Поток кодированных видеокадров может быть упорядочен, например, в виде серии групп изображений (GOP), причем кодированные видеокадры каждой GOP расположены в указанном порядке. Как правило, каждая GOP может начинаться с интракодированного кадра (например, I-кадра), за которым следуют один или более интеркодированных кадров (например, P-кадры и/или B-кадры). Каждая GOP может включать в себя только один интракодированный кадр, хотя любая из групп GOP может включать в себя множество таких кадров. Предполагается, что B-кадры могут не использоваться для приложений в реальном времени с низкой задержкой, поскольку, например, двунаправленное прогнозирование может приводить к дополнительной задержке кодирования по сравнению с однонаправленным прогнозированием (P-кадры). Можно использовать дополнительные и/или другие типы кадров, и конкретный порядок кодированных видеокадров можно изменить, как будет понятно специалисту в данной области.The encoded video bitstream BS and in turn the buffered bitstream BBS may carry bits of encoded video information. The bits of the buffered BBS bitstream may be ordered as a stream of encoded video frames. The encoded video frames may be intra-coded frames (eg, I-frames) or inter-coded frames (eg, B-frames and/or P-frames). The encoded video frame stream may be ordered, for example, as a series of groups of pictures (GOPs), with the encoded video frames of each GOP arranged in that order. Typically, each GOP may begin with an intra-coded frame (eg, I-frame) followed by one or more inter-coded frames (eg, P-frames and/or B-frames). Each GOP may include only one intra-coded frame, although any of the GOPs may include multiple such frames. It is contemplated that B-frames may not be used for low latency real-time applications because, for example, bidirectional prediction may result in additional coding delay compared to unidirectional prediction (P-frames). Additional and/or other types of frames may be used, and the specific order of the encoded video frames may be changed, as will be appreciated by one of ordinary skill in the art.

Каждая GOP может включать в себя данные синтаксиса («данные синтаксиса GOP»). Данные синтаксиса GOP могут быть расположены в заголовке GOP, в заголовке одного или более кадров GOP и/или в другом месте. Данные синтаксиса GOP могут указывать порядок, количество или тип и/или описывать кодированные видеокадры соответствующей GOP. Каждый кодированный видеокадр может включать в себя данные синтаксиса («данные синтаксиса кодированного кадра»). Данные синтаксиса кодированного кадра могут указывать и/или описывать режим кодирования для соответствующего кодированного видеокадра.Each GOP may include syntax data ("GOP syntax data"). The GOP syntax data may be located in the GOP header, in the header of one or more GOP frames, and/or elsewhere. The GOP syntax data may indicate the order, number, or type and/or describe the encoded video frames of the corresponding GOP. Each encoded video frame may include syntax data ("encoded frame syntax data"). The encoded frame syntax data may indicate and/or describe an encoding mode for a corresponding encoded video frame.

Системный контроллер 136 может отслеживать различные параметры и/или ограничения, связанные с каналом 116, вычислительные возможности блока 118 видеокодера, требования пользователей и т. п. и может устанавливать целевые параметры для обеспечения сопутствующего качества восприятия услуг (QoE), подходящего для указанных ограничений и/или условий канала 116. Один или более целевых параметров могут корректироваться по времени или периодически в зависимости от указанных ограничений и/или состояний канала. В качестве примера QoE можно оценивать количественно с использованием одного или более показателей для оценки качества видео, включая, например, показатель, обычно называемый относительным качеством восприятия кодированных видеопоследовательностей. Относительное качество восприятия кодированных видеопоследовательностей, измеренное, например, с помощью пикового отношения сигнал/шум (PSNR), может контролироваться скоростью передачи битов (BR) кодированного битового потока BS. Один или более целевых параметров (включая, например, параметр квантования (QP)) можно скорректировать для максимального увеличения относительного качества восприятия видео в пределах ограничений, связанных со скоростью передачи битов в кодированном битовом потоке BS.The system controller 136 may monitor various parameters and/or constraints associated with the channel 116, the processing capability of the video encoder unit 118, user requirements, and the like, and may set targets to provide a concomitant Quality of Experience (QoE) that is appropriate for the specified constraints and /or channel conditions 116. One or more target parameters may be adjusted over time or periodically depending on specified constraints and/or channel conditions. As an example, QoE can be quantified using one or more metrics for evaluating video quality, including, for example, a metric commonly referred to as relative perceptual quality of coded video sequences. The relative perceptual quality of encoded video sequences, measured for example by peak signal-to-noise ratio (PSNR), may be monitored by the bit rate (BR) of the encoded BS bitstream. One or more target parameters (including, for example, a quantization parameter (QP)) may be adjusted to maximize the relative perceptual quality of the video within limits associated with the bit rate in the encoded BS bitstream.

На фиг. 2 показана блок-схема гибридного блочного видеокодера 200 для использования с системой кодирования и/или декодирования видео, такой как система 100.In FIG. 2 shows a block diagram of a hybrid block video encoder 200 for use with a video encoding and/or decoding system, such as system 100.

Как показано на фиг. 2, гибридная система 200 блочного кодирования может включать в себя, помимо прочего, блок 204 преобразования, блок 206 квантования, блок 208 энтропийного кодирования, блок 210 обратного квантования, блок 212 обратного преобразования, первый сумматор 216, второй сумматор 226, блок 260 пространственного прогнозирования, блок 262 прогнозирования движения, хранилище 264 эталонных изображений, один или более фильтров 266 (например, петлевых фильтров) и/или блок 280 выбора режима и управления кодером.As shown in FIG. 2, the hybrid block coding system 200 may include, but is not limited to, a transform block 204, a quantizer 206, an entropy coding block 208, an inverse quantizer 210, an inverse transform block 212, a first adder 216, a second adder 226, a spatial prediction block 260. , a motion predictor 262, a reference image store 264, one or more filters 266 (eg, loop filters), and/or a mode selector and encoder control 280.

Подробная информация о видеокодере 200 приведена исключительно в качестве иллюстрации, и реальные варианты реализации могут различаться. Например, практический вариант реализации может включать в себя большее, меньшее количество элементов и/или разные элементы, и/или он может быть организован иным образом по отношению к компоновке, показанной на фиг. 2. Например, некоторые или все функциональные возможности как блока преобразования 204, так и блока квантования 206, хотя они и показаны отдельно, можно в значительной степени интегрировать в некоторые практические варианты реализации, такие как, например, варианты реализации, в которых используют базовое преобразование по стандарту H.264. Аналогично блок 210 обратного квантования и блок 212 обратного преобразования можно в значительной степени интегрировать в некоторые практические варианты реализации (например, варианты реализации, совместимые со стандартами H.264 или HEVC), но они также проиллюстрированы отдельно для концептуальных целей.The details of video encoder 200 are provided for illustrative purposes only and actual implementations may vary. For example, a practical implementation may include more, fewer, and/or different elements, and/or it may be organized differently from the arrangement shown in FIG. 2. For example, some or all of the functionality of both transform block 204 and quantizer 206, although shown separately, can be largely integrated into some practical implementations, such as, for example, implementations that use a basic transform. according to the H.264 standard. Similarly, inverse quantizer 210 and inverse transform 212 can be largely integrated into some practical implementations (eg, H.264 or HEVC compliant implementations), but they are also illustrated separately for conceptual purposes.

Как описано выше, видеокодер 200 может принимать видеосигнал на своем входе 202. Видеокодер 200 может формировать кодированную видеоинформацию из принятого некодированного видео и выводить кодированную видеоинформацию (например, любой из интракадров или интеркадров) со своего выхода 220 в форме кодированного битового видеопотока BS. Видеокодер 200 может функционировать, например, как гибридный видеокодер и использовать способ блочного кодирования для кодирования некодированного видео. При выполнении такого способа кодирования видеокодер 200 может работать с отдельными кадрами, картинками и/или изображениями (обобщенно называемыми «некодированными изображениями») некодированного видео.As described above, video encoder 200 may receive video at its input 202. Video encoder 200 may generate encoded video information from the received unencoded video and output encoded video information (eg, any of the intraframes or interframes) from its output 220 in the form of an encoded video bitstream BS. Video encoder 200 may function as a hybrid video encoder, for example, and use a block coding technique to encode unencoded video. When performing such an encoding method, video encoder 200 may operate on individual frames, pictures, and/or images (collectively referred to as "non-encoded pictures") of non-encoded video.

Для упрощения способа блочного кодирования видеокодер 200 может нарезать, разбивать, разделять и/или сегментировать (обобщенно — «сегментировать») каждое некодированное изображение, полученное на его входе 202, на множество некодированных видеоблоков. Например, видеокодер 200 может сегментировать некодированное изображение на множество некодированных видеосегментов (например, срезов) и может (например, впоследствии может) сегментировать каждый из некодированных видеосегментов на некодированные видеоблоки. Видеокодер 200 может передавать, подавать, отправлять или предоставлять некодированные видеоблоки блоку 260 пространственного прогнозирования, блоку 262 прогнозирования движения, блоку 280 выбора режима и управления кодером и/или первому сумматору 216. Как более подробно описано ниже, некодированные видеоблоки могут быть предоставлены поблочно.To simplify the block coding method, video encoder 200 may slice, split, split, and/or segment (generally, "segment") each non-encoded image received at its input 202 into a plurality of non-encoded video blocks. For example, video encoder 200 may segment a non-encoded image into multiple non-encoded video segments (eg, slices) and may (eg, subsequently may) segment each of the non-encoded video segments into non-encoded video blocks. Video encoder 200 may transmit, submit, send, or provide uncoded video blocks to spatial predictor 260, motion predictor 262, mode selector and encoder control 280, and/or first adder 216. As described in more detail below, uncoded video blocks may be provided block by block.

Блок 260 пространственного прогнозирования может принимать некодированные видеоблоки и кодировать такие видеоблоки в интрарежиме. Термин «интрарежим» относится к любому из нескольких режимов пространственного сжатия, и кодирование в интрарежиме обеспечивает пространственное сжатие некодированного изображения. Пространственное сжатие, при наличии, может быть результатом уменьшения или удаления пространственной избыточности видеоинформации в некодированном изображении. При формировании блоков прогнозирования блок 260 пространственного прогнозирования может выполнять пространственное прогнозирование (или «интрапрогнозирование») каждого некодированного видеоблока по отношению к одному или более видеоблокам некодированного изображения, которые уже подверглись кодированию («кодированные видеоблоки») и/или были восстановлены («восстановленные видеоблоки»). Кодированные и/или восстановленные видеоблоки могут быть соседними, смежными или расположенными рядом (например, в непосредственной близости) с некодированным видеоблоком.Spatial predictor 260 may receive uncoded video blocks and encode such video blocks in intra mode. The term "intra mode" refers to any of several spatial compression modes, and intra mode coding provides spatial compression of an uncoded image. Spatial compression, if present, may result from the reduction or removal of spatial redundancy of video information in the uncoded image. When generating prediction blocks, spatial predictor 260 may perform spatial prediction (or "intra-prediction") of each non-encoded video block with respect to one or more video blocks of the non-encoded image that have already been encoded ("encoded video blocks") and/or have been reconstructed ("reconstructed video blocks"). "). The encoded and/or reconstructed video blocks may be adjacent, contiguous, or adjacent to (eg, in close proximity to) an unencoded video block.

Блок 262 прогнозирования движения может принимать некодированные видеоблоки со входа 202 и кодировать их в интеррежиме. Термин «интеррежим» относится к любому из нескольких режимов временного сжатия, включая, например, P-режим (однонаправленное прогнозирование) и/или B-режим (двунаправленное прогнозирование). Кодирование в интеррежиме обеспечивает временное сжатие некодированного изображения. Временное сжатие, при наличии, может быть результатом уменьшения или удаления временной избыточности видеоинформации между некодированным изображением и одним или более эталонными (например, смежными) изображениями. Блок 262 временного прогнозирования / прогнозирования движения может выполнять временное прогнозирование (или «интерпрогнозирование») каждого некодированного видеоблока относительно одного или более видеоблоков эталонных изображений («эталонных видеоблоков»). Выполняемое временное прогнозирование может представлять собой однонаправленное прогнозирование (например, для P-режима) и/или двунаправленное прогнозирование (например, для B-режима).Motion predictor 262 may receive unencoded video blocks from input 202 and encode them in intermode. The term "intermode" refers to any of several temporal compression modes, including, for example, P-mode (unidirectional prediction) and/or B-mode (bidirectional prediction). Intermode encoding provides temporal compression of the non-encoded image. Temporal compression, if present, may be the result of reducing or removing temporal video redundancy between an uncoded picture and one or more reference (eg, adjacent) pictures. The temporal prediction/motion prediction unit 262 may perform temporal prediction (or “inter prediction”) of each non-encoded video block with respect to one or more reference picture video blocks (“reference video blocks”). The temporal prediction performed may be unidirectional prediction (eg, for P-mode) and/or bidirectional prediction (eg, for B-mode).

Для однонаправленного прогнозирования эталонные видеоблоки могут быть получены из одного или более ранее кодированных и/или восстановленных изображений. Кодированное и/или восстановленное изображение или изображения может (могут) быть соседним(-ими), смежным(-ыми) или расположенным(-ыми) рядом с некодированным изображением.For unidirectional prediction, reference video blocks may be obtained from one or more previously encoded and/or reconstructed pictures. The encoded and/or reconstructed image or images may be neighboring(s), adjacent(s), or adjacent(s) to the unencoded image.

Для двунаправленного прогнозирования эталонные видеоблоки могут быть получены из одного или более ранее кодированных и/или восстановленных изображений. Кодированные и/или восстановленные изображения могут быть соседними, смежными или расположенными рядом с некодированным изображением.For bidirectional prediction, reference video blocks may be obtained from one or more previously encoded and/or reconstructed pictures. The encoded and/or reconstructed pictures may be adjacent, contiguous, or adjacent to the non-encoded picture.

При использовании множества эталонных изображений (что может относиться к последним стандартам кодирования видео, таким как H.264/AVC и/или HEVC) индекс эталонного изображения для каждого видеоблока может быть отправлен в блок 208 энтропийного кодирования для последующего вывода и/или передачи. Эталонный индекс можно использовать для идентификации того, от какого эталонного изображения или изображений в хранилище 264 эталонных изображений поступает сигнал временного прогнозирования.When using multiple reference pictures (which may be the latest video coding standards such as H.264/AVC and/or HEVC), a reference picture index for each video block may be sent to entropy encoding unit 208 for subsequent output and/or transmission. The reference index may be used to identify from which reference image or images in the reference image store 264 the temporal prediction signal is derived.

Хотя обычно функции блока 262 временного прогнозирования/прогнозирования движения для оценки движения и компенсации движения в значительной степени интегрированы, они могут выполняться отдельными объектами или блоками (не показаны). Оценку движения можно выполнять для оценки движения для каждого некодированного видеоблока относительно видеоблоков эталонного изображения, и это может включать генерирование вектора движения для некодированного видеоблока. Вектор движения может указывать смещение блока прогнозирования относительно кодируемого некодированного видеоблока. Этот блок прогнозирования представляет собой видеоблок эталонного изображения, который, как обнаружено, имеет близкое соответствие, например, с точки зрения разности пикселей кодируемого некодированного видеоблока. Соответствие может быть определено суммой абсолютной разности (SAD), суммой квадратичной разности (SSD) и/или другими показателями разности. Компенсация движения может включать выборку и/или генерирование блока прогнозирования на основе вектора движения, определенного посредством оценки движения.While typically highly integrated, the functions of temporal prediction/motion prediction unit 262 for motion estimation and motion compensation may be performed by separate entities or units (not shown). Motion estimation may be performed to estimate the motion for each non-encoded video block relative to the video blocks of the reference picture, and this may include generating a motion vector for the non-encoded video block. The motion vector may indicate the offset of the prediction block relative to the encoded uncoded video block. This prediction block is a reference picture video block found to have a close match, for example, in terms of pixel difference of the encoded non-coded video block. Compliance can be determined by the sum of the absolute difference (SAD), the sum of the quadratic difference (SSD) and/or other indicators of the difference. Motion compensation may include fetching and/or generating a prediction block based on a motion vector determined by motion estimation.

Блок 262 прогнозирования движения может вычислять вектор движения для некодированного видеоблока путем сравнения некодированного видеоблока с эталонными видеоблоками из эталонных изображений в хранилище 264 эталонных изображений. Блок 262 прогнозирования движения может вычислять значения для положений дробных пикселей эталонного изображения, включенного в хранилище 264 эталонных изображений. В некоторых случаях сумматор 226 или другой блок видеокодера 200 может вычислять значения положений дробных пикселей для восстановленных видеоблоков и может сохранять восстановленные видеоблоки с вычисленными значениями для положений дробных пикселей в хранилище 264 эталонных изображений. Блок 262 прогнозирования движения может интерполировать субцелочисленные пиксели эталонного изображения (например, I-кадра, и/или P-кадра, и/или B-кадра).Motion predictor 262 may calculate a motion vector for an uncoded video block by comparing the uncoded video block with reference video blocks from reference pictures in reference picture store 264 . The motion predictor 262 may calculate values for the fractional pixel positions of the reference image included in the reference image store 264 . In some cases, adder 226 or another unit of video encoder 200 may calculate fractional pixel position values for reconstructed video blocks and may store the reconstructed video blocks with calculated values for fractional pixel positions in reference image store 264 . Motion predictor 262 may interpolate sub-integer pixels of a reference image (eg, I-frame and/or P-frame and/or B-frame).

Блок 262 прогнозирования движения может быть выполнен с возможностью кодирования вектора движения относительно выбранного параметра прогнозирования движения. Параметр прогнозирования движения, выбранный блоком 262 временного прогнозирования / прогнозирования движения, может представлять собой, например, вектор, эквивалентный среднему значению векторов движения соседних блоков, которые уже подвергались кодированию. Для кодирования вектора движения некодированного видеоблока блок 262 временного прогнозирования/прогнозирования движения может вычислять разницу между вектором движения и параметром прогнозирования движения для формирования значения разницы вектора движения.The motion predictor 262 may be configured to encode a motion vector with respect to a selected motion prediction parameter. The motion prediction parameter selected by the temporal prediction/motion prediction block 262 may be, for example, a vector equivalent to the average of the motion vectors of adjacent blocks that have already been coded. To encode the motion vector of a non-encoded video block, temporal prediction/motion prediction unit 262 may calculate a difference between the motion vector and the motion prediction parameter to generate a motion vector difference value.

В стандартах H.264 и HEVC набор потенциальных эталонных кадров рассматривают как «список». Такому списку эталонных кадров может соответствовать набор эталонных изображений в хранилище 264 эталонных изображений. Блок 262 временного прогнозирования / прогнозирования движения может сравнивать эталонные видеоблоки эталонных изображений из хранилища 264 эталонных изображений с некодированным видеоблоком (например, P-кадра или B-кадра). Когда эталонные изображения в хранилище 264 эталонных изображений включают значения для субцелочисленных пикселей, вектор движения, вычисленный блоком 262 временного прогнозирования / прогнозирования движения, может относиться к субцелочисленному местоположению пикселя эталонного изображения. Блок 262 временного прогнозирования / прогнозирования движения может отправлять вычисленный вектор движения в блок 208 энтропийного кодирования и функциям компенсации движения блока 262 временного прогнозирования / прогнозирования движения. Блок 262 прогнозирования движения (или его функции компенсации движения) может (могут) вычислять значения ошибок для блока прогнозирования относительно кодируемого некодированного видеоблока. Блок 262 прогнозирования движения может вычислять данные для прогнозирования на основе блока прогнозирования.In the H.264 and HEVC standards, a set of potential reference frames is considered as a "list". Such a list of reference frames may correspond to a set of reference images in the reference image store 264 . The temporal/motion predictor 262 may compare the reference video blocks of the reference pictures from the reference picture store 264 with an uncoded video block (eg, a P-frame or a B-frame). When the reference images in the reference image store 264 include values for sub-integer pixels, the motion vector computed by the temporal/motion prediction unit 262 may refer to the sub-integer pixel location of the reference image. The temporal/motion predictor 262 may send the computed motion vector to the entropy encoding unit 208 and the motion compensation functions of the temporal/motion prediction unit 262. The motion predictor 262 (or its motion compensation functions) may compute error values for the prediction block with respect to the encoded uncoded video block. The motion prediction block 262 may calculate prediction data based on the prediction block.

Блок 280 выбора режима и управления кодером может выбирать один из режимов кодирования — интрарежим или интеррежим. Блок 280 выбора режима и управления кодером может выполнять это на основании, например, способа оптимизации соотношения «искажения – скорость передачи данных» и/или результатов ошибок, полученных в каждом режиме.Block 280 mode selection and encoder control can select one of the coding modes - intramode or intermode. The mode selector and encoder control unit 280 may do this based on, for example, a method for optimizing the distortion-to-data rate ratio and/or the error results obtained in each mode.

Видеокодер 200 может формировать блок остатков («остаточный видеоблок») путем вычитания данных для прогнозирования, предоставляемых блоком 262 прогнозирования движения, из кодируемого некодированного видеоблока. Сумматор 216 представляет собой элемент или множество элементов, которые могут выполнять эту операцию вычитания.Video encoder 200 may generate a residual block ("residual video block") by subtracting the prediction data provided by motion predictor 262 from the encoded uncoded video block. The adder 216 is an element or a plurality of elements that can perform this subtraction operation.

Блок 204 преобразования может применять преобразование к остаточному видеоблоку для преобразования такого остаточного видеоблока из области значений пикселя в область преобразования, такую как частотная область. Преобразование может представлять собой, например, любое из представленных в настоящем документе преобразований, дискретное косинусное преобразование (DCT) или концептуально подобное преобразование. Другие примеры преобразования включают в себя преобразования, помимо прочего, определенные в H.264 и/или HEVC, вейвлет-преобразования, целочисленные преобразования и/или поддиапазонные преобразования. Когда блок 204 преобразования применяет преобразование к остаточному видеоблоку, создается соответствующий блок коэффициентов преобразования остаточного видеоблока («коэффициенты остаточного преобразования»). Эти коэффициенты остаточного преобразования могут представлять собой величины частотных компонентов остаточного видеоблока. Блок 204 преобразования может пересылать коэффициенты остаточного преобразования в блок 206 квантования.A transform block 204 may apply a transform to the residual video block to transform such a residual video block from a pixel domain to a transform domain, such as a frequency domain. The transform may be, for example, any of the transforms presented herein, a discrete cosine transform (DCT), or a conceptually similar transform. Other transform examples include those defined in H.264 and/or HEVC, wavelet transforms, integer transforms, and/or subband transforms, among others. When transform block 204 applies a transform to a residual video block, a corresponding block of residual video block transform coefficients ("residual transform coefficients") is created. These residual transform coefficients may be the magnitudes of the frequency components of the residual video block. Transform block 204 may send the residual transform coefficients to quantizer 206 .

Блок 206 квантования может квантовать коэффициенты остаточного преобразования для дополнительного уменьшения скорости передачи кодированных битов. Например, процесс квантования может уменьшать битовую глубину, связанную с некоторыми или всеми коэффициентами остаточного преобразования. В определенных случаях блок 206 квантования может выполнять деление значения коэффициентов остаточного преобразования на уровень квантования, соответствующий QP, с формированием блока квантованных коэффициентов преобразования. Степень квантования можно изменять путем регулирования значения QP. Блок 206 квантования может применять квантование для представления коэффициентов остаточного преобразования с использованием желаемого числа шагов квантования; количество используемых шагов (или значение уровня квантования соответственно) может определять количество кодированных видеобитов, используемых для представления остаточного видеоблока. Блок 206 квантования может получать значение QP от контроллера скорости передачи (не показано). После квантования блок 206 квантования может предоставлять квантованные коэффициенты преобразования в блок 208 энтропийного кодирования и в блок 210 обратного квантования.Quantizer 206 may quantize the residual transform coefficients to further reduce the encoded bit rate. For example, the quantization process may reduce the bit depth associated with some or all of the residual transform coefficients. In certain cases, the quantizer 206 may divide the value of the residual transform coefficients by the quantization level corresponding to QP to form a block of quantized transform coefficients. The degree of quantization can be changed by adjusting the QP value. Quantizer 206 may apply quantization to represent residual transform coefficients using a desired number of quantization steps; the number of steps used (or quantization level value, respectively) may determine the number of encoded video bits used to represent the residual video block. Quantizer 206 may receive the QP value from a rate controller (not shown). After quantization, quantizer 206 may provide the quantized transform coefficients to entropy coding unit 208 and to inverse quantizer 210 .

Блок 208 энтропийного кодирования может применять энтропийное кодирование к квантованным коэффициентам преобразования для формирования энтропийно-кодированных коэффициентов (т.е. битового потока). Для формирования коэффициентов энтропийного кодирования блок 208 энтропийного кодирования может использовать адаптивное кодирование с переменной длиной (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и/или другую методику энтропийного кодирования. Для кодирования CABAC, как понятно специалистам в данной области, может требоваться ввод контекстной информации («контекста»). Например, этот контекст может быть основан на соседних видеоблоках.Entropy encoding unit 208 may apply entropy encoding to the quantized transform coefficients to generate entropy-coded coefficients (ie, a bitstream). Entropy encoding unit 208 may use adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), and/or other entropy coding technique to generate the entropy coding coefficients. CABAC encoding, as those skilled in the art will appreciate, may require the input of contextual information ("context"). For example, this context may be based on adjacent video blocks.

Блок 208 энтропийного кодирования может предоставлять энтропийно-кодированные коэффициенты вместе с векторами движения и одним или более индексами эталонных изображений в виде битового потока необработанного кодированного видео для внутреннего формата битового потока (не показан). Этот формат битового потока может формировать кодированный битовый видеопоток BS, поступающий в выходной буфер 134 (фиг. 1B), путем добавления дополнительной информации о необработанном кодированном битовом видеопотоке, включая заголовки и/или другую информацию, позволяющую, например, блоку 300 видеодекодера (фиг. 3) декодировать кодированный видеоблок из необработанного кодированного битового видеопотока. После энтропийного кодирования кодированный битовый видеопоток BS, полученный из блока 208 энтропийного кодирования, может выводиться, например, в выходной буфер 134 и может передаваться, например, в устройство 114 назначения по каналу 116 или архивироваться для последующей передачи или извлечения.Entropy encoding unit 208 may provide entropy-coded coefficients along with motion vectors and one or more reference picture indices as a raw encoded video bitstream for an internal bitstream format (not shown). This bitstream format can generate an encoded BS video bitstream input to output buffer 134 (FIG. 1B) by adding additional information about the raw encoded video bitstream, including headers and/or other information allowing, for example, video decoder unit 300 (FIG. 3) decode the encoded video block from the raw encoded video bitstream. After entropy encoding, the encoded BS video bitstream obtained from entropy encoding unit 208 may be output to, for example, output buffer 134 and may be transmitted, for example, to destination device 114 over channel 116, or archived for later transmission or retrieval.

В определенных типовых вариантах осуществления блок 208 энтропийного кодирования или другой блок 133, 200 видеокодера может быть выполнен с возможностью выполнения других функций кодирования в дополнение к энтропийному кодированию. Например, блок 208 энтропийного кодирования может быть выполнен с возможностью определения значений шаблона блока кода (CBP) для видеоблоков. В некоторых типовых вариантах осуществления блок 208 энтропийного кодирования может выполнять кодирование длин серий квантованных коэффициентов преобразования в видеоблоке. В качестве примера блок 208 энтропийного кодирования может применять зигзагообразное сканирование или другой шаблон сканирования для упорядочения квантованных коэффициентов преобразования в видеоблоке и кодирования серий нулей для дополнительного сжатия. Блок 208 энтропийного кодирования может создавать информацию заголовка с соответствующими элементами синтаксиса для передачи в кодированном битовом видеопотоке BS.In certain exemplary embodiments, entropy encoding unit 208 or another video encoder unit 133, 200 may be configured to perform other encoding functions in addition to entropy encoding. For example, entropy encoding block 208 may be configured to determine code block template (CBP) values for video blocks. In some exemplary embodiments, entropy encoding block 208 may perform run-length encoding of quantized transform coefficients in a video block. As an example, entropy encoding unit 208 may apply a zigzag scan or other scanning pattern to arrange the quantized transform coefficients in a video block and encode runs of zeros for additional compression. Entropy encoding unit 208 may generate header information with appropriate syntax elements for transmission in the encoded video bitstream BS.

Блок 210 обратного квантования и блок 212 обратного преобразования могут применять обратное квантование и обратное преобразование соответственно для восстановления остаточного видеоблока в пиксельной области, например, для последующего использования в качестве одного из эталонных видеоблоков (например, в одном из эталонных изображений в списке эталонных изображений).An inverse quantizer 210 and an inverse transform 212 may apply inverse quantization and inverse transform, respectively, to reconstruct the residual video block in the pixel region, for example, for later use as one of the reference video blocks (for example, in one of the reference pictures in the reference picture list).

Блок 280 выбора режима и управления кодером может вычислять эталонный видеоблок путем добавления восстановленного остаточного видеоблока к блоку прогнозирования одного из эталонных изображений в хранилище 264 эталонных изображений. Блок 280 выбора режима и управления кодером может применять один или более интерполяционных фильтров к восстановленному остаточному видеоблоку для вычисления значений субцелочисленных пикселей (например, для положений полупикселей) при использовании в оценке движения.The mode selection and encoder control block 280 may calculate a reference video block by adding the reconstructed residual video block to a prediction block of one of the reference pictures in the reference picture store 264 . The mode selection and encoder control block 280 may apply one or more interpolation filters to the reconstructed residual video block to calculate sub-integer pixel values (eg, for half-pixel positions) when used in motion estimation.

Сумматор 226 может добавлять восстановленный остаточный видеоблок к видеоблоку прогнозирования с компенсацией движения, чтобы сформировать восстановленный видеоблок для хранения в хранилище 264 эталонных изображений. Восстановленный видеоблок (в области значений пикселей) может использоваться блоком 262 прогнозирования движения (или его функциями оценки движения и/или его функциями компенсации движения) в качестве одного из эталонных блоков для интеркодирования некодированного видеоблока в последующем некодированном видео.Adder 226 may add the reconstructed residual video block to the motion-compensated prediction video block to generate a reconstructed video block for storage in reference image store 264. The reconstructed video block (in pixel range) may be used by motion prediction block 262 (or its motion estimation functions and/or its motion compensation functions) as one of the reference blocks for intercoding an uncoded video block in subsequent uncoded video.

Фильтры 266 (например, петлевые фильтры) могут включать в себя фильтр деблокирования. Фильтр деблокирования может функционировать с возможностью удаления визуальных артефактов, которые могут присутствовать в восстановленных макроблоках. Эти артефакты могут вводиться в процесс кодирования, например, из-за использования различных режимов кодирования, таких как режим I-типа, P-типа или B-типа. Артефакты могут присутствовать, например, на границах и/или краях принятых видеоблоков, а фильтр деблокирования может функционировать с возможностью сглаживания границ и/или краев видеоблоков для улучшения визуального качества. Фильтр деблокирования может фильтровать выходной сигнал сумматора 226. Фильтры 266 могут включать в себя другие внутрипетлевые фильтры, такие как фильтр адаптивного смещения отсчетов (SAO), поддерживаемый стандартом HEVC.Filters 266 (eg, loop filters) may include a deblocking filter. The deblocking filter may be operable to remove visual artifacts that may be present in the reconstructed macroblocks. These artifacts may be introduced into the encoding process, for example, due to the use of different encoding modes such as I-type, P-type, or B-type. Artifacts may be present, for example, at the boundaries and/or edges of the received video blocks, and the deblocking filter may function to smooth the boundaries and/or edges of the video blocks to improve visual quality. The deblocking filter may filter the output of adder 226. Filters 266 may include other in-loop filters such as the adaptive sample offset (SAO) filter supported by the HEVC standard.

На фиг. 3 приведена блок-схема, иллюстрирующая пример видеодекодера 300 для использования с блоком видеодекодера, таким как блок 130 видеодекодера, показанный на фиг. 1A. Видеодекодер 300 может включать в себя вход 302, блок 308 энтропийного декодирования, блок 362 прогнозирования с компенсацией движения, блок 360 пространственного прогнозирования, блок 310 обратного квантования, блок 312 обратного преобразования, хранилище 364 эталонных изображений, фильтры 366, сумматор 326 и выход 320. Видеодекодер 300 может выполнять способ декодирования, который по существу обратен способу кодирования применительно к видеокодеру 133, 200. Этот процесс декодирования может быть выполнен, как описано ниже.In FIG. 3 is a block diagram illustrating an example of a video decoder 300 for use with a video decoder unit, such as the video decoder unit 130 shown in FIG. 1A. Video decoder 300 may include an input 302, an entropy decoder 308, a motion compensated predictor 362, a spatial predictor 360, an inverse quantizer 310, an inverse transform 312, a reference image store 364, filters 366, an adder 326, and an output 320. Video decoder 300 may perform a decoding method that is essentially the reverse of the encoding method applied to video encoder 133, 200. This decoding process may be performed as described below.

Блок 362 прогнозирования с компенсацией движения может генерировать данные для прогнозирования на основе векторов движения, полученных от блока 308 энтропийного декодирования. Векторы движения могут быть кодированы относительно параметра прогнозирования движения для видеоблока, соответствующего кодированному вектору движения. Блок 362 прогнозирования с компенсацией движения может определять параметр прогнозирования движения, например, как медиану векторов движения блоков, смежных с видеоблоком, подлежащим декодированию. После определения параметра прогнозирования движения блок 362 прогнозирования с компенсацией движения может декодировать кодированный вектор движения посредством извлечения значения разницы векторов движения из кодированного битового видеопотока BS и добавления значения разницы векторов движения к параметру прогнозирования движения. Блок 362 прогнозирования с компенсацией движения может квантовать параметр прогнозирования движения до того же разрешения, что и кодированный вектор движения. В определенных типовых вариантах осуществления блок 362 прогнозирования с компенсацией движения может использовать одну и ту же точность для некоторых или всех кодированных параметров прогнозирования движения. В качестве другого примера блок 362 прогнозирования с компенсацией движения может быть выполнен с возможностью использования любого из вышеуказанных способов и определения того, какой способ следует использовать, путем анализа данных, включенных в набор параметров последовательности, набор параметров среза или набор параметров изображения, полученных из кодированного битового видеопотока BS.The motion compensated predictor 362 may generate prediction data based on the motion vectors received from the entropy decoder 308 . The motion vectors may be encoded with respect to a motion prediction parameter for the video block corresponding to the encoded motion vector. The motion compensated predictor 362 may determine a motion prediction parameter, for example, as a median of motion vectors of blocks adjacent to the video block to be decoded. After determining the motion prediction parameter, the motion compensation predictor 362 may decode the encoded motion vector by extracting the motion vector difference value from the encoded video bitstream BS and adding the motion vector difference value to the motion prediction parameter. The motion compensated predictor 362 may quantize the motion prediction parameter to the same resolution as the encoded motion vector. In certain exemplary embodiments, motion compensated predictor 362 may use the same accuracy for some or all of the encoded motion prediction parameters. As another example, motion compensation predictor 362 may be configured to use any of the above methods and determine which method to use by analyzing data included in a sequence parameter set, a slice parameter set, or a picture parameter set derived from the encoded video bitstream BS.

После декодирования вектора движения блок 362 прогнозирования с компенсацией движения может извлекать видеоблок прогнозирования, идентифицированный вектором движения, из эталонного изображения хранилища 364 эталонных изображений. Если вектор движения указывает на положение дробного пикселя, например на полупиксель, блок 362 прогнозирования с компенсацией движения может интерполировать значения для положений дробных пикселей. Блок 362 прогнозирования с компенсацией движения может использовать адаптивные интерполяционные фильтры или фиксированные интерполяционные фильтры для интерполяции этих значений. Блок 362 прогнозирования с компенсацией движения может получать указания о том, какой из фильтров 366 использовать, и в различных типовых вариантах осуществления — коэффициенты для фильтров 366 из принятого кодированного битового видеопотока BS.After the motion vector is decoded, the motion compensated predictor 362 may extract the prediction video block identified by the motion vector from the reference image of the reference image store 364 . If the motion vector points to a position of a fractional pixel, such as a half pixel, the motion compensated predictor 362 may interpolate values for the positions of the fractional pixels. Motion compensated predictor 362 may use adaptive interpolation filters or fixed interpolation filters to interpolate these values. The motion compensated predictor 362 may receive indications as to which of the filters 366 to use and, in various exemplary embodiments, the coefficients for the filters 366 from the received encoded video bitstream BS.

Блок 360 пространственного прогнозирования может использовать режимы интрапрогнозирования, принятые в кодированном битовом видеопотоке BS, для формирования видеоблока прогнозирования из пространственно смежных блоков. Блок 310 обратного квантования может обратно квантовать (например, деквантовать квантованные коэффициенты блоков, предоставленные в закодированном битовом видеопотоке BS и декодированные блоком 308 энтропийного декодирования). Способ обратного квантования может включать стандартный способ, например согласно стандарту H.264. Способ обратного квантования может включать использование параметра QP квантования, вычисленного видеокодером 133, 200 для каждого видеоблока, для определения степени квантования и/или степени обратного квантования, которую будут использовать.The spatial predictor 360 may use the intra prediction modes received in the encoded video bitstream of the BS to form a prediction video block from spatially contiguous blocks. An inverse quantizer 310 may inverse quantize (eg, dequantize the quantized block coefficients provided in the encoded BS video bitstream and decoded by entropy decoder 308). The inverse quantization method may include a standard method, such as according to the H.264 standard. The inverse quantization method may include using the quantization parameter QP calculated by video encoder 133, 200 for each video block to determine the quantization rate and/or inverse quantization rate to be used.

В блоке 312 обратного преобразования к коэффициентам преобразования может применяться обратное преобразование (например, обратное любому из представленных в настоящем документе преобразований, обратное DCT, обратное целочисленное преобразование или концептуально аналогичный способ обратного преобразования) для получения остаточных видеоблоков в пиксельной области. Блок 362 прогнозирования с компенсацией движения может создавать блоки с компенсацией движения и может выполнять интерполяцию на основе интерполяционных фильтров. Идентификаторы интерполяционных фильтров для использования при оценке движения с точностью до субпикселя могут быть включены в элементы синтаксиса видеоблока. Блок 362 прогнозирования с компенсацией движения может использовать интерполяционные фильтры, используемые видеокодером 133, 200 во время кодирования видеоблока, для вычисления интерполированных значений для субцелочисленных пикселей эталонного блока. Блок 362 прогнозирования с компенсацией движения может определять интерполяционные фильтры, используемые видеокодером 133, 200, в соответствии с принятой синтаксической информацией и использовать интерполяционные фильтры для создания блоков прогнозирования.At inverse transform block 312, an inverse transform (eg, inverse of any of the transforms presented herein, inverse DCT, inverse integer transform, or a conceptually similar inverse transform) may be applied to the transform coefficients to obtain residual video blocks in the pixel domain. The motion compensated predictor 362 may create motion compensated blocks and may interpolate based on the interpolation filters. Interpolation filter identifiers for use in sub-pixel motion estimation may be included in the video block syntax elements. Motion compensated predictor 362 may use the interpolation filters used by video encoder 133, 200 during video block encoding to calculate interpolated values for the sub-integer pixels of the reference block. The motion-compensated predictor 362 may determine the interpolation filters used by the video encoder 133, 200 according to the received syntax information and use the interpolation filters to create prediction blocks.

Блок 262 прогнозирования с компенсацией движения может использовать: (1) синтаксическую информацию для определения размеров видеоблоков, используемых для кодирования одного или более изображений кодированной видеопоследовательности; (2) информацию о разделах, которая описывает разделение каждого видеоблока кадра кодированной видеопоследовательности; (3) режимы (или информацию о режиме), указывающие, как кодируется каждый раздел; (4) одно или более эталонных изображений для каждого интеркодированного видеоблока и/или (5) другую информацию для декодирования кодированной видеопоследовательности.The motion-compensated predictor 262 may use: (1) syntax information to determine the sizes of video blocks used to encode one or more pictures of the encoded video sequence; (2) section information that describes the division of each video block of a frame of the encoded video sequence; (3) modes (or mode information) indicating how each section is encoded; (4) one or more reference pictures for each intercoded video block; and/or (5) other information for decoding the encoded video sequence.

Сумматор 326 может суммировать остаточные блоки с соответствующими блоками прогнозирования, сгенерированными блоком 362 прогнозирования с компенсацией движения или блоком 360 пространственного прогнозирования, для формирования декодированных видеоблоков. Петлевые фильтры 366 (например, фильтры деблокирования или фильтры SAO) можно применять для фильтрации декодированных видеоблоков для удаления артефактов блочности и/или для улучшения визуального качества. Декодированные видеоблоки могут храниться в хранилище 364 эталонных изображений, которое может обеспечивать эталонные видеоблоки для последующей компенсации движения, и возможно создание декодированного видео для представления на устройстве отображения (не показано).An adder 326 may add the residual blocks with the corresponding prediction blocks generated by the motion compensation predictor 362 or the spatial predictor 360 to generate decoded video blocks. Loop filters 366 (eg, deblocking filters or SAO filters) can be applied to filter decoded video blocks to remove blocking artifacts and/or to improve visual quality. The decoded video blocks may be stored in a reference image store 364, which may provide reference video blocks for subsequent motion compensation, and decoded video may be generated for presentation on a display device (not shown).

Сжатие облака точекPoint cloud compression

На фиг. 4 показана структура битового потока для сжатия облака точек на основе видео (V-PCC). Сгенерированные битовые видеопотоки и метаданные мультиплексируют вместе для генерирования конечного битового потока V-PCC.In FIG. 4 shows a bitstream structure for video-based point cloud compression (V-PCC). The generated video bitstreams and metadata are multiplexed together to generate the final V-PCC bitstream.

Битовый поток 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 для атрибута также определяет тип атрибута и его индекс, что позволяет поддерживать множество экземпляров одного и того же типа атрибута.The V-PCC bitstream consists of a set of V-PCC blocks as shown in FIG. 4. The V-PCC block syntax as defined in the latest version of the V-PCC Standard Community Draft (V-PCC CD) is shown in Table 1, where each V-PCC block has a V-PCC block header and a V-PCC block payload. The V-PCC block header describes the V-PCC block type (Table 2). V-PCC blocks with block types 2, 3, and 4 are blocks of occupancy, geometry, and attribute data as defined by the community project. These data blocks are the three main components needed to restore a point cloud. In addition to the V-PCC box type, the V-PCC box header for an attribute also defines the attribute type and its index, which allows multiple instances of the same attribute type to be supported.

Полезная нагрузка блоков V-PCC для занятости, геометрии и атрибута (таблица 3) соответствует блокам видеоданных (например, блокам NAL (уровня сетевой абстракции) HEVC), которые могут быть декодированы видеодекодером, указанным в соответствующем блоке V-PCC набора параметров занятости, геометрии и атрибутов.The payload of the Occupancy, Geometry, and Attribute V-PCC blocks (Table 3) corresponds to video data blocks (e.g., HEVC NAL blocks) that can be decoded by the video decoder specified in the corresponding V-PCC block of the Occupancy, Geometry Parameter Set and attributes.

Таблица 1. Синтаксис блока V-PCCTable 1. V-PCC Block Syntax

vpcc_unit( ) {vpcc_unit( ) { DescriptorDescriptor vpcc_unit_header( )vpcc_unit_header( ) vpcc_unit_payload( )vpcc_unit_payload( ) }}

Таблица 2. Синтаксис заголовка блока V-PCCTable 2. V-PCC Block Header Syntax

vpcc_unit_header( ) {vpcc_unit_header( ) { DescriptorDescriptor vpcc_unit_typevpcc_unit_type u(5)u(5) if( vpcc_unit_type = = VPCC_AVD | | vpcc_unit_type = = VPCC_GVD | |
vpcc_unit_type = = VPCC_OVD | | vpcc_unit_type = = VPCC_PSD )
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_idvpcc_sequence_parameter_set_id u(4)u(4) if( vpcc_unit_type = = VPCC_AVD ) {if(vpcc_unit_type==VPCC_AVD) { vpcc_attribute_indexvpcc_attribute_index u(7)u(7) if( sps_multiple_layer_streams_present_flag ) {if( sps_multiple_layer_streams_present_flag ) { vpcc_layer_indexvpcc_layer_index u(4)u(4) pcm_separate_video_data( 11 )pcm_separate_video_data( 11 ) }} elseelse pcm_separate_video_data( 15 )pcm_separate_video_data( 15 ) } else if( vpcc_unit_type = = VPCC_GVD ) {} else if( vpcc_unit_type = = VPCC_GVD ) { if( sps_multiple_layer_streams_present_flag ) {if( sps_multiple_layer_streams_present_flag ) { vpcc_layer_indexvpcc_layer_index u(4)u(4) pcm_separate_video_data( 18 )pcm_separate_video_data( 18 ) }} elseelse pcm_separate_video_data( 22 )pcm_separate_video_data( 22 ) } else if( vpcc_unit_type = = VPCC_OVD | | vpcc_unit_type = = VPCC_PSD ) {} else if( vpcc_unit_type = = VPCC_OVD | vpcc_reserved_zero_23bitsvpcc_reserved_zero_23bits u(23)u(23) } else} else vpcc_reserved_zero_27bitsvpcc_reserved_zero_27bits u(27)u(27) }}

Таблица 3. Синтаксис полезной нагрузки блока V-PCCTable 3. V-PCC Block Payload Syntax

vpcc_unit_payload( ) {vpcc_unit_payload( ) { DescriptorDescriptor if( vpcc_unit_type = = VPCC_SPS )if(vpcc_unit_type==VPCC_SPS) sequence_parameter_set( )sequence_parameter_set( ) else if( vpcc_unit_type = = VPCC_PSD )else if( vpcc_unit_type = = VPCC_PSD ) patch_sequence_data_unit( )patch_sequence_data_unit( ) else if( vpcc_unit_type = = VPCC_OVD | |
vpcc_unit_type = = VPCC_GVD | |
vpcc_unit_type = = VPCC_AVD)
else if( vpcc_unit_type == VPCC_OVD | |
vpcc_unit_type == VPCC_GVD | |
vpcc_unit_type == VPCC_AVD)
video_data_unit( )video_data_unit( ) }}

Динамическая потоковая передача по HTTP (DASH) Dynamic Streaming over HTTP (DASH)

Динамическая адаптивная потоковая передача MPEG по HTTP (MPEG-DASH) представляет собой универсальный формат доставки, который обеспечивает конечным пользователям наилучшее возможное видеовосприятие путем динамической адаптации к изменяющимся сетевым условиям.MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH) is a generic delivery format that provides end users with the best possible video experience by dynamically adapting to changing network conditions.

Адаптивная потоковая передача по HTTP, например MPEG-DASH, требует доступности на сервере различных вариантов скорости передачи данных мультимедийного содержимого. Кроме того, мультимедийное содержимое может содержать несколько мультимедийных компонентов (например, аудио-, видео-, текстовых), каждый из которых может иметь разные характеристики. В MPEG-DASH эти характеристики представлены в описании представления мультимедиа (MPD).Adaptive streaming over HTTP, such as MPEG-DASH, requires that different bit rates of the media content be available on the server. In addition, the multimedia content may contain several multimedia components (eg, audio, video, text), each of which may have different characteristics. In MPEG-DASH, these characteristics are represented in the multimedia presentation description (MPD).

На фиг. 5 показана иерархическая модель данных MPD. MPD описывает последовательность периодов, в которой согласованный набор кодированных версий компонентов мультимедийного содержимого не изменяется в течение периода. Каждый период имеет время начала и продолжительность и состоит из одного или множества наборов адаптации (AdaptationSet).In FIG. 5 shows the hierarchical data model of the MPD. The MPD describes a sequence of periods in which the agreed set of coded versions of the media content components does not change during the period. Each period has a start time and duration and consists of one or more adaptation sets (AdaptationSet).

AdaptationSet представляет собой набор закодированных версий одного или нескольких компонентов мультимедийного содержимого с идентичными свойствами, такими как язык, тип мультимедиа, соотношение сторон изображения, роль, доступность и показатель рейтинга. Например, AdaptationSet может содержать различные скорости передачи данных видеокомпонента с одинаковым мультимедийным содержимым. Другой AdaptationSet может содержать различные скорости передачи данных аудиокомпонента (например, более низкое качество для стереозвука и более высокое качество для объемного звука) с одинаковым мультимедийным содержимым. Каждый AdaptationSet обычно включает в себя множество представлений (Representation).An AdaptationSet is a set of coded versions of one or more media content components with identical properties such as language, media type, aspect ratio, role, accessibility, and rating score. For example, an AdaptationSet may contain different bit rates of a video component with the same media content. Another AdaptationSet may contain different audio component bit rates (eg lower quality for stereo and higher quality for surround sound) with the same media content. Each AdaptationSet usually includes a set of representations (Representation).

Representation описывает доставляемую кодируемую версию одного или нескольких компонентов мультимедиа, отличающихся от других представлений скоростью передачи данных, разрешением, числом каналов или другими характеристиками. Каждое представление состоит из одного или множества сегментов. Атрибуты элемента Representation, такие как @id, @bandwidth, @qualityRanking и @dependencyId, используют для указания свойств связанного Representation. Представления также могут включать в себя субпредставления, которые являются частью представления, для описания и извлечения частичной информации из представления. Субпредставления могут обеспечивать возможность доступа к версии с более низким качеством представления, в которой они содержатся.A representation describes a delivered encoded version of one or more media components that differ from other representations in bit rate, resolution, number of channels, or other characteristics. Each view consists of one or more segments. Representation element attributes such as @id, @bandwidth, @qualityRanking, and @dependencyId are used to specify the properties of the associated Representation. Views may also include subviews that are part of the view to describe and extract partial information from the view. Subviews may provide access to a lower quality version of the view in which they are contained.

Сегмент (Segment) представляет собой наибольший блок данных, который можно получить с помощью одного HTTP-запроса. Каждый сегмент имеет URL-адрес, т.е. адресуемое местоположение на сервере, его можно загрузить с использованием HTTP GET или HTTP GET с байтовыми диапазонами.A Segment is the largest block of data that can be retrieved with a single HTTP request. Each segment has a URL, i.e. addressable location on the server, it can be downloaded using HTTP GET or HTTP GET with byte ranges.

Для использования этой модели данных DASH-клиент анализирует XML-документ MPD, выбирает подборку наборов AdaptationSet, подходящих для своей окружающей среды, на основании информации, приведенной в каждом из элементов AdaptationSet. В каждом AdaptationSet клиент выбирает одно Representation, как правило, на основании значения атрибута @bandwidth (ширины полосы), а также учитывает возможности клиента по декодированию и визуализации. Клиент загружает сегмент инициализации выбранных представлений, а затем получает доступ к содержимому, запрашивая все сегменты или байтовые диапазоны сегментов. После запуска представления клиент продолжает использовать мультимедийное содержимое, непрерывно запрашивая мультимедийные сегменты или части мультимедийных сегментов и проигрывая содержимое в соответствии с временной шкалой представления мультимедиа. Клиент может переключать представления с учетом обновленной информации из своего окружения. Клиент должен воспроизводить содержимое непрерывно по всем периодам. Как только клиент получает мультимедиа, содержащееся в Segment, ближе к концу объявленного мультимедиа в Representation, то либо прекращается представление мультимедиа, либо запускается новый период (Period), либо требуется повторная выборка MPD.To use this data model, the DASH client parses the MPD XML document, selects a selection of AdaptationSets appropriate for its environment, based on the information provided in each of the AdaptationSet elements. In each AdaptationSet, the client selects one Representation, typically based on the value of the @bandwidth attribute (bandwidth), and also considers the client's decoding and rendering capabilities. The client loads the initialization segment of the selected views and then accesses the content by requesting all segments or byte ranges of the segments. After the presentation is started, the client continues to consume the media content by continuously requesting media segments or portions of media segments and playing the content according to the media presentation timeline. The client can switch views based on updated information from its environment. The client must play the content continuously for all periods. As soon as the client receives the media contained in the Segment near the end of the declared media in the Representation, either the presentation of the media is terminated, a new Period is started, or an MPD refetch is required.

Дескрипторы в DASHDescriptors in DASH

MPEG-DASH вводит концепцию дескрипторов для предоставления ориентированной на конкретное приложение информации о мультимедийном содержимом. Все элементы дескриптора структурированы одинаково, а именно: они содержат атрибут @schemeIdUri, который обеспечивает URI для идентификации схемы, необязательный атрибут @value и необязательный атрибут @id. Семантика элемента зависит от используемой схемы. URI, идентифицирующий схему, может представлять собой универсальное имя ресурса (URN) или универсальный указатель ресурса (URL). MPD не предоставляет какую-либо конкретную информацию о том, как использовать эти элементы. Это зависит от приложения, которое использует форматы DASH для создания экземпляров элементов дескриптора с соответствующей информацией о схеме. DASH-приложения, в которых используется один из этих элементов, сначала должны определять идентификатор схемы в виде URI, а затем определять пространство значений для элемента при использовании этого идентификатора схемы. Если требуются структурированные данные, то любой элемент или атрибут расширения может быть определен в отдельном пространстве имен. Дескрипторы могут появляться на нескольких уровнях в MPD.MPEG-DASH introduces the concept of descriptors to provide application-specific information about multimedia content. All descriptor elements are structured in the same way: they contain a @schemeIdUri attribute that provides a URI to identify the scheme, an optional @value attribute, and an optional @id attribute. The semantics of the element depends on the schema used. The URI identifying the scheme can be a Uniform Resource Name (URN) or a Uniform Resource Locator (URL). MPD does not provide any specific information on how to use these elements. It depends on the application that uses DASH formats to instantiate descriptor elements with appropriate schema information. DASH applications that use one of these elements must first define a schema identifier as a URI, and then determine the value space for the element when using that schema identifier. If structured data is required, then any extension element or attribute can be defined in a separate namespace. Descriptors can appear at several levels in the MPD.

- Наличие элемента на уровне MPD означает, что этот элемент является дочерним по отношению к элементу MPD.- The presence of an element at the MPD level means that this element is a child of the MPD element.

- Наличие элемента на уровне набора адаптации означает, что этот элемент является дочерним по отношению к элементу AdaptationSet.- The presence of an element at the adaptation set level means that this element is a child of the AdaptationSet element.

- Наличие элемента на уровне представления означает, что этот элемент является дочерним по отношению к элементу Representation.- The presence of an element in the presentation layer means that this element is a child of the Representation element.

ПреднаборыPresets

В MPEG-DASH пакет представляет собой набор компонентов мультимедиа, которые могут совместно использоваться одним экземпляром декодера. Каждый пакет включает в себя основной компонент мультимедиа, который содержит специфичную для декодера информацию и загружает декодер. Преднабор (PreSelection) определяет подмножество компонентов мультимедиа в пакете, которые, как ожидается, будут использоваться совместно.In MPEG-DASH, a package is a collection of media components that can be shared by a single decoder instance. Each package includes a main media component that contains decoder-specific information and loads the decoder. A PreSelection defines a subset of media components in a package that are expected to be shared.

Набор AdaptationSet, который содержит основной компонент мультимедиа, называют основным AdaptationSet. Основной компонент мультимедиа всегда включен в любой PreSelection, связанный с пакетом. Кроме того, каждый пакет может включать в себя один или множество частичных наборов AdaptationSet. Частичные наборы AdaptationSet можно обрабатывать только в комбинации с основным AdaptationSet.The AdaptationSet that contains the main media component is called the main AdaptationSet. The main media component is always included in any PreSelection associated with a package. In addition, each package may include one or more partial AdaptationSets. Partial AdaptationSets can only be processed in combination with the main AdaptationSet.

PreSelection может быть определен с помощью элемента PreSelection, как определено в таблице 4. Выбор PreSelection основан на атрибутах и элементах, содержащихся в элементе PreSelection.A PreSelection may be defined using a PreSelection element as defined in Table 4. The PreSelection selection is based on the attributes and elements contained in the PreSelection element.

Таблица 4. Семантика элемента PreSelectionTable 4. Semantics of the PreSelection element

Наименование элемента или атрибутаElement or attribute name ПрименениеApplication ОписаниеDescription PreselectionPreselection @id@id OD
по умолчанию = 1
OD
default = 1
Указывает идентификатор (id) элемента Preselection. Он будет уникальным в пределах одного периода времени.Specifies the id of the Preselection element. It will be unique within one time period.
@preselectionComponents@preselectionComponents МM Указывает идентификаторы содержащихся наборов адаптации или компонентов содержимого, принадлежащих к этому преднабору, в виде отдельного списка с разделением пробелами в порядке обработки, где первый идентификатор представляет собой идентификатор для основного компонента мультимедиа. Specifies the identifiers of the contained customization sets or content components belonging to this preset as a separate, space-separated list in processing order, where the first identifier is the identifier for the primary media component. @lang@lang OO Заявляет код языка для PreSelection в соответствии с синтаксисом и семантикой IETF RFC 5646.Declares a language code for a PreSelection according to the syntax and semantics of IETF RFC 5646. ДоступностьAvailability 0 … N0…N Указывает информацию о схеме доступности.Specifies information about the accessibility scheme. РольRole 0 … N0…N Указывает информацию о схеме комментирования роли.Specifies information about the commenting scheme of a role. РейтингRating 0 … N0…N Указывает информацию о схеме рейтинга.Specifies information about the rating scheme. Точка просмотраViewpoint 0 … N0…N Указывает информацию о схеме комментирования точки просмотра.Specifies information about the viewpoint commenting scheme. CommonAttributesElementsCommonAttributesElements -- Указывает общие атрибуты и элементы (атрибуты и элементы из базового типа RepresentationBaseType).Specifies common attributes and elements (attributes and elements from the underlying RepresentationBaseType). Условные обозначения:
Для атрибутов: M = обязательный, O = дополнительный, OD = дополнительный со значением по умолчанию, CM = условно обязательный.
Для элементов: <minOccurs>..<maxOccurs> (N=unbounded)
Элементы выделены жирным шрифтом; атрибуты не выделены жирными шрифтом, и им предшествует знак @.
Legend:
For attributes: M = required, O = optional, OD = optional with default value, CM = conditionally required.
For elements: <minOccurs>..<maxOccurs> (N=unbounded)
Elements are in bold; attributes are not in bold and are preceded by an @ sign.

Адаптивная потоковая передача облаков точекAdaptive Point Cloud Streaming

Хотя традиционные приложения мультимедиа, такие как видео, по-прежнему популярны, наблюдается значительный интерес к новым мультимедиа, таким как виртуальная реальность (VR) и иммерсивная 3D-графика. В последнее время появились высококачественные 3D-облака точек — продвинутое представление иммерсивных мультимедиа, что позволяет создавать новые формы взаимодействия и обмена данными с виртуальными мирами. Большой объем информации, необходимый для представления таких динамических облаков точек, требует эффективных алгоритмов кодирования. Рабочая группа 3DG группы MPEG в настоящее время работает над разработкой стандарта для сжатия облака точек на основе видео с выпущенной на собрании № 124 группы MPEG версией проекта сообщества (CD). Последняя версия CD определяет битовый поток для сжатых динамических облаков точек. Параллельно MPEG также разрабатывает стандарт систем для пересылки данных облака точек.While traditional media applications such as video are still popular, there has been significant interest in new media such as virtual reality (VR) and immersive 3D graphics. Recently, high-quality 3D point clouds have emerged - an advanced representation of immersive multimedia, which allows you to create new forms of interaction and data exchange with virtual worlds. The large amount of information required to represent such dynamic point clouds requires efficient coding algorithms. The MPEG 3DG Working Group is currently working on developing a standard for video-based point cloud compression with a community draft (CD) version released at MPEG meeting #124. The latest version of the CD defines a bitstream for compressed dynamic point clouds. In parallel, MPEG is also developing a system standard for transporting point cloud data.

Вышеупомянутые стандарты облаков точек касаются только аспектов кодирования и хранения облаков точек. Однако предполагается, что для практических приложений облака точек потребуется потоковая передача данных облака точек по сети. Такие приложения могут выполнять потоковую передачу содержимого облака точек в реальном времени или по запросу, в зависимости от того, как было сгенерировано это содержимое. Кроме того, из-за большого объема информации, необходимой для представления облаков точек, такие приложения должны поддерживать адаптивные методики потоковой передачи, чтобы избежать перегрузки сети и обеспечить оптимальное восприятие просмотра в любой конкретный момент времени с точки зрения пропускной способности сети в данный момент.The point cloud standards mentioned above only deal with the encoding and storage aspects of point clouds. However, practical point cloud applications are expected to require point cloud data to be streamed over a network. Such applications can stream point cloud content in real time or on demand, depending on how the content was generated. In addition, due to the large amount of information required to represent point clouds, such applications must support adaptive streaming techniques to avoid network congestion and provide an optimal viewing experience at any given time in terms of network bandwidth at that moment.

Одним из хороших потенциальных способов адаптивной доставки облаков точек является динамическая адаптивная потоковая передача по HTTP (DASH). Однако текущий стандарт MPEG-DASH не обеспечивает никакого механизма сигнализации для среды облака точек, включая потоки облака точек на основе стандарта V-PCC MPEG. Таким образом, важно определить новые элементы сигнализации, которые позволят клиентам потоковой передачи идентифицировать потоки облака точек и их субпотоки компонентов в файле дескриптора представления мультимедиа (MPD). Кроме того, также необходимо сигнализировать о различных видах метаданных, связанных с компонентами облака точек, чтобы клиент потоковой передачи мог выбирать наилучшую(-ие) версию(-и) облака точек или его компонентов, которую(-ые) он способен поддерживать.One good potential way to adaptively deliver point clouds is Dynamic Adaptive Streaming over HTTP (DASH). However, the current MPEG-DASH standard does not provide any signaling mechanism for a point cloud environment, including point cloud streams based on the V-PCC MPEG standard. Thus, it is important to define new signaling elements that will allow streaming clients to identify point cloud streams and their component substreams in a media presentation descriptor (MPD) file. In addition, it is also necessary to signal the various kinds of metadata associated with the point cloud components so that the streaming client can select the best version(s) of the point cloud or its components that it is capable of supporting.

В отличие от традиционного мультимедийного содержимого мультимедийное содержимое V-PCC состоит из ряда компонентов, причем некоторые компоненты имеют множество уровней. Каждый компонент (и/или уровень) отдельно кодируют как субпоток битового потока V-PCC. Некоторые субпотоки компонентов, такие как геометрия и карта занятости (в дополнение к некоторым атрибутам, таким как текстура), кодируют с использованием традиционных видеокодеров (например, H.264/AVC или HEVC). Однако эти субпотоки необходимо совместно декодировать вместе с дополнительными метаданными, чтобы визуализировать облако точек.Unlike traditional multimedia content, V-PCC multimedia content consists of a number of components, with some components having multiple layers. Each component (and/or layer) is separately encoded as a substream of the V-PCC bitstream. Some component substreams such as geometry and occupancy map (in addition to some attributes such as texture) are encoded using traditional video encoders (eg H.264/AVC or HEVC). However, these substreams need to be jointly decoded along with additional metadata in order to render the point cloud.

Определен ряд элементов и атрибутов XML. Эти элементы XML определены в отдельном пространстве имен urn:mpeg:mpegI:vpcc:2019. В данном документе для ссылки на это пространство имен используется дескриптор vpccc: пространства имен.A number of XML elements and attributes are defined. These XML elements are defined in a separate namespace urn:mpeg:mpegI:vpcc:2019. This document uses the vpccc: namespace descriptor to refer to this namespace.

Сигнализация компонентов V-PCC в MPD DASHV-PCC component signaling in MPD DASH

Каждый компонент V-PCC и/или уровень компонента может быть представлен в файле манифеста DASH (MPD) как отдельный AdaptationSet (далее «компонент AdaptationSet») с дополнительным AdaptationSet в качестве основной точки доступа для содержимого V-PCC (далее «основной AdaptationSet»). В другом варианте осуществления один набор адаптации передают по каждому компоненту для каждого разрешения.Each V-PCC component and/or component level may be represented in a DASH manifest (MPD) file as a separate AdaptationSet (hereinafter "AdaptationSet component") with an additional AdaptationSet as the primary access point for the contents of the V-PCC (hereinafter "primary AdaptationSet") . In another embodiment, one adaptation set is sent on each component for each grant.

В одном варианте осуществления наборы адаптации для потока 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).In one embodiment, adaptation sets for a V-PCC flow, including all V-PCC AdaptationSet components, must have the @codecs attribute value (e.g., as defined for V-PCC) set to vpc1, which would indicate that the MPD refers to the point clouds. In another embodiment, only the underlying AdaptationSet has the @codecs attribute set to vpc1, while the @codecs attribute for the point cloud AdaptationSet component (or the corresponding Representations if no @codecs is passed for the AdaptationSet element) is set based on the corresponding codec used to encode the component . For video encoded components, the value of @codecs should be set to resv.pccv.XXXX, where XXXX corresponds to the four-character code (4CC) of the video codec (eg avc1 or hvc1).

Для определения типа компонента(-ов) V-PCC (например, карты занятости, геометрии или атрибута) в компоненте AdaptationSet можно использовать дескриптор EssentialProperty с атрибутом @schemeIdUri, равным urn:mpeg:mpegI:vpcc:2019:component. Данный дескриптор называется дескриптором VPCCComponent.An EssentialProperty descriptor with a @schemeIdUri attribute of urn:mpeg:mpegI:vpcc:2019:component can be used to define the type of V-PCC component(s) (for example, occupancy map, geometry, or attribute) in an AdaptationSet component. This descriptor is called the VPCCComponent Descriptor.

На уровне набора адаптации один дескриптор VPCCComponent может быть сигнализирован для каждого компонента облака точек, который присутствует в Representation набора адаптации.At the adaptation set level, one VPCCComponent descriptor may be signaled for each point cloud component that is present in the Representation of the adaptation set.

В варианте осуществления атрибут @value дескриптора VPCCComponent присутствовать не должен. Дескриптор VPCCComponent может включать в себя элементы и атрибуты, указанные в таблице 5.In an embodiment, the @value attribute of the VPCCComponent descriptor shall not be present. The VPCCComponent Descriptor may include the elements and attributes specified in Table 5.

Таблица 5. Элементы и атрибуты для дескриптора VPCCComponentTable 5. Elements and attributes for the VPCCComponent descriptor

Элементы и атрибуты для дескриптора VPCCComponentElements and Attributes for the VPCCComponent Descriptor Приме-
нение
Note-
knowledge
Тип данныхData type ОписаниеDescription
компонентcomponent 0..N0..N vpcc:vpccComponentTypevpcc:vpccComponentType Элемент, атрибуты которого указывают информацию для одного из компонентов облака точек, присутствующих в представлении (-ях) набора для адаптации.An element whose attributes specify information for one of the point cloud components present in the adaptation set representation(s). component@component_typecomponent@component_type МM xs:stringxs:string Указывает тип компонента облака точек. Значение geom обозначает компонент геометрии, occp обозначает компонент занятости, и attr обозначает компонент атрибута.Specifies the type of point cloud component. The geom value denotes a geometry component, occp denotes an occupancy component, and attr denotes an attribute component. component@min_layer_indexcomponent@min_layer_index OO xs:integerxs:integer Указывает индекс первого уровня компонента, представленного набором AdaptationSet, в котором присутствует дескриптор VPCCComponent.
Если в представлениях набора AdaptationSet присутствует только один уровень, min_layer_index и max_layer_index должны иметь одно и то же значение.
Specifies the index of the first level of the component represented by the AdaptationSet that contains the VPCCComponent descriptor.
If there is only one layer in the AdaptationSet views, min_layer_index and max_layer_index must be the same value.
component@max_layer_indexcomponent@max_layer_index CMCM xs:integerxs:integer Указывает индекс последнего уровня компонента, представленного набором AdaptationSet, в котором присутствует дескриптор VPCCComponent.
Должен присутствовать только при наличии уровня min_layer.
Если в представлениях набора адаптации присутствует только один уровень, min_layer_index и max_layer_index должны иметь одно и то же значение.
Specifies the index of the last level of the component represented by the AdaptationSet that contains the VPCCComponent descriptor.
Should only be present if min_layer is present.
If there is only one layer in the country set views, min_layer_index and max_layer_index must be the same value.
component@attribute_typecomponent@attribute_type CMCM xs:unsignedBytexs:unsignedByte Указывает тип атрибута (см. таблицу 7.2 в CD V-PCC). Допускаются только значения от 0 до 15 включительно.
Должен присутствовать только в том случае, если компонент представляет собой атрибут облака точек (т.е. component_type имеет значение attr).
Indicates the attribute type (see Table 7.2 in the V-PCC CD). Only values between 0 and 15 are allowed.
Should only be present if the component is a point cloud attribute (i.e. component_type is attr).
component@attribute_indexcomponent@attribute_index CMCM xs:unsignedBytexs:unsignedByte Указывает индекс атрибута. Должен иметь значение от 0 до 127 включительно.
Должен присутствовать только в том случае, если компонент представляет собой атрибут облака точек (т.е. component_type имеет значение attr).
Specifies the index of the attribute. Must be between 0 and 127 inclusive.
Should only be present if the component is a point cloud attribute (i.e. component_type is attr).
Условные обозначения:
Для атрибутов: M = обязательный, O = дополнительный, OD = дополнительный со значением по умолчанию, CM = условно обязательный.
Для элементов: <minOccurs>..<maxOccurs> (N=unbounded)
Элементы выделены жирным шрифтом; атрибуты не выделены жирными шрифтом, и им предшествует знак @.
Legend:
For attributes: M = required, O = optional, OD = optional with default value, CM = conditionally required.
For elements: <minOccurs>..<maxOccurs> (N=unbounded)
Elements are in bold; attributes are not in bold and are preceded by an @ sign.

Типы данных для различных элементов и атрибутов дескриптора VPCCComponent могут быть такими, как определено в следующей схеме XML.The data types for the various elements and attributes of the VPCCComponent descriptor may be as defined in the following XML schema.

Figure 00000001
Figure 00000001

В одном варианте осуществления основной 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, который предоставляет информацию о метаданных, описывающую треки на уровне формата файла и зависимость между ними.In one embodiment, the main AdaptationSet must contain either one initialization segment at the adaptation set level or multiple initialization segments at the presentation layer (one for each Representation). In one embodiment, the initialization segments must contain sets of V-PCC sequence parameters, as defined in the community draft, that are used to initialize the V-PCC decoder. In the case of a single initialization segment, the V-PCC sequence parameter sets for all Representations may be contained in the initialization segment. When more than one Representation is sent in the main AdaptationSet, the initialization segment of each Representation may contain sets of V-PCC sequence parameters for that particular Representation. When using the ISO Basic Media File Format (ISOBMFF) as the media container for V-PCC content as defined in ISO/IEC 23090-10 WD, initialization segments may also include a metadata container as defined in ISO/IEC 14496-12 . This metabox contains one or more instances of the VPCCGroupBox, as defined in the VPCC CD, which provides metadata information describing the tracks at the file format level and the relationship between them.

В варианте осуществления сегменты мультимедиа для Representation основного AdaptationSet содержат один или более трековых фрагментов трека V-PCC, определенных в проекте сообщества. Сегменты мультимедиа для Representation компонентов AdaptationSet содержат один или более фрагментов треков соответствующего трека компонента на уровне формата файла.In an embodiment, the media segments for the Representation of the main AdaptationSet comprise one or more track tiles of a V-PCC track defined in a community project. Media segments for Representation AdaptationSet components contain one or more track fragments of the corresponding component track at the file format level.

В другом варианте осуществления для дескриптора VPCCComponent определяют дополнительный атрибут, называемый в данном случае атрибутом @videoCodec, значение которого указывает на кодек, используемый для кодирования соответствующего компонента облака точек. Это позволяет поддерживать сценарии, в которых в AdaptationSet или Representation присутствует более чем один компонент облака точек.In another embodiment, an additional attribute is defined for the VPCCComponent descriptor, in this case called the @videoCodec attribute, the value of which indicates the codec used to encode the corresponding point cloud component. This allows you to support scenarios where there is more than one point cloud component in an AdaptationSet or Representation.

В другом варианте осуществления элемент дескриптора Role можно использовать с вновь определенными значениями для компонентов V-PCC для указания роли соответствующего AdaptationSet или Representation (например, геометрия, карта занятости или атрибут). Например, геометрия, карта занятости и компоненты атрибутов могут иметь следующие соответствующие значения соответственно: vpcc-geometry, vpcc-occupancy и vpcc-attribute. Дополнительный элемент дескриптора EssentialProperty, аналогичный элементу, описанному в таблице 5, за исключением атрибута component_type, может быть сообщен на уровне набора адаптации для идентификации уровней компонента и типа атрибута (если компонент представляет собой атрибут облака точек).In another embodiment, the Role descriptor element may be used with newly defined values for V-PCC components to indicate the role of the associated AdaptationSet or Representation (eg, geometry, occupancy map, or attribute). For example, the geometry, occupancy map, and attribute components may have the following corresponding values, respectively: vpcc-geometry, vpcc-occupancy, and vpcc-attribute. An optional element of the EssentialProperty descriptor, similar to the element described in Table 5, except for the component_type attribute, may be reported at the customization set level to identify component levels and attribute type (if the component is a point cloud attribute).

Группирование наборов адаптации V-PCCGrouping V-PCC Adaptation Sets

Клиент потоковой передачи способен идентифицировать тип компонента облака точек в AdaptationSet или Representation путем проверки дескриптора VPCCComponent внутри соответствующего элемента. Однако клиент потоковой передачи также должен отличать различные потоки облака точек, присутствующие в файле MPD, и идентифицировать их соответствующие потоки компонентов.The streaming client is able to identify the type of point cloud component in an AdaptationSet or Representation by examining the VPCCComponent descriptor within the corresponding element. However, the streaming client must also distinguish between the various point cloud streams present in the MPD file and identify their respective component streams.

Может быть введен элемент EssentialProperty с атрибутом @schemeIdUri, равным urn:mpeg:mpegI:vpcc:2019:vpc, который в настоящем документе называется дескриптором VPCC. На уровне набора адаптации для основного AdaptationSet облака точек может присутствовать максимум один дескриптор VPCC. Если в основном AdaptationSet присутствует более чем одно Representation, то на уровне представления (т.е. внутри каждого элемента Representation) может присутствовать не более чем один дескриптор VPCC. В таблице 6 проиллюстрированы атрибуты дескриптора VPCC в соответствии с вариантом осуществления.An EssentialProperty element with an @schemeIdUri attribute of urn:mpeg:mpegI:vpcc:2019:vpc, which is referred to as a VPCC descriptor in this document, may be introduced. At the adaptation set level, a maximum of one VPCC descriptor may be present for the main AdaptationSet of the point cloud. If more than one Representation is present in the main AdaptationSet, then no more than one VPCC descriptor may be present at the presentation layer (ie, within each Representation element). Table 6 illustrates the attributes of a VPCC descriptor according to an embodiment.

Таблица 6. Атрибуты для дескриптора VPCCTable 6. Attributes for the VPCC Descriptor

Атрибуты для дескриптора VPCCAttributes for the VPCC Descriptor Приме-нениеApplication Тип данныхData type ОписаниеDescription vpcc:@pcIdvpcc:@pcId CMCM xs:stringxs:string Идентификатор (id) облака точек. Этот атрибут должен присутствовать, если множество версий одного и того же облака точек сообщают в отдельных наборах AdapatationSet.Identifier (id) of the point cloud. This attribute shall be present if multiple versions of the same point cloud are reported in separate AdaptationSets. vpcc:@occupancyIdvpcc:@occupancyId МM StringVectorTypeStringVectorType Идентификатор компонента AdaptationSet или Representation карты занятости облака точек.The identifier for the AdaptationSet or Representation component of the point cloud occupancy map. vpcc:@geometryIdvpcc:@geometryId МM StringVectorTypeStringVectorType Список разделенных пробелами идентификаторов, соответствующих значениям атрибута @id для AdaptationSet и/или Representation компонента геометрии облака точек.A space-separated list of identifiers corresponding to the values of the @id attribute for the AdaptationSet and/or Representation of the point cloud geometry component. vpcc:@attributeIdvpcc:@attributeId МM StringVectorTypeStringVectorType Список разделенных пробелами идентификаторов, соответствующих значениям атрибута @id для AdaptationSet и/или Representation компонентов атрибута облака точек.A space-separated list of identifiers corresponding to the @id attribute values for the AdaptationSet and/or Representation attribute components of the point cloud.

При наличии более чем одной версии облака точек (например, с разным разрешением) каждая версия может присутствовать в отдельном компоненте AdaptationSet, содержащем одно Representation, а также дескриптор VPCC с одинаковым значением для атрибута @pcId. В другом варианте осуществления различные версии облака точек могут быть сообщены как Representation одного (основного) AdaptationSet. В таком случае дескриптор VPCC должен присутствовать в каждом Representation, а атрибут @pcId может быть либо сигнализирован с одним и тем же значением для всех Representation в основном AdaptationSet, либо опущен.If there is more than one version of the point cloud (for example, with different resolutions), each version may be present in a separate AdaptationSet containing one Representation, as well as a VPCC descriptor with the same value for the @pcId attribute. In another embodiment, different versions of the point cloud may be reported as a Representation of the same (main) AdaptationSet. In such a case, the VPCC Descriptor shall be present in each Representation, and the @pcId attribute may either be signaled with the same value for all Representations in the main AdaptationSet or omitted.

В другом варианте осуществления о PreSelection сигнализируют в MPD со значением атрибута @preselectionComponents, включая идентификатор основного AdaptationSet для облака точек, за которым следуют идентификаторы наборов компонентов AdaptationSet, соответствующих компонентам облака точек. Атрибут @codecs для PreSelection должен быть установлен на vpc1, указывая, что мультимедиа PreSelection представляет собой облако точек, основанное на видео. О PreSelection можно оповещать посредством элемента PreSelection в элементе Period, либо дескриптора преднабора на уровне набора адаптаций (или уровне представления, когда для одного облака точек доступно множество версий/представлений). При использовании элемента PreSelection и наличии более одной версии одного и того же облака точек о каждой версии оповещают в отдельном элементе PreSelection, при этом первый идентификатор в списке идентификаторов атрибута @preselectionComponents представляет собой идентификатор Representation соответствующей версии облака точек в основном AdaptationSet. На фиг. 6 представлен пример DASH-конфигурации для группирования компонентов V-PCC, принадлежащих облаку с единственной точкой, в файле MPD MPEG-DASH.In another embodiment, the PreSelection is signaled in MPD with the value of the @preselectionComponents attribute, including the identifier of the main AdaptationSet for the point cloud, followed by the identifiers of the AdaptationSet components corresponding to the components of the point cloud. The @codecs attribute for PreSelection should be set to vpc1, indicating that the PreSelection media is a video-based point cloud. PreSelection can be advertised through the PreSelection element in the Period element, or a preset descriptor at the adaptation set level (or presentation level when multiple versions/views are available for the same point cloud). When a PreSelection element is used and there is more than one version of the same point cloud, each version is advertised in a separate PreSelection element, with the first identifier in the @preselectionComponents attribute's list of identifiers being the Representation identifier of the corresponding point cloud version in the main AdaptationSet. In FIG. 6 shows an example of a DASH configuration for grouping V-PCC components belonging to a single point cloud in an MPEG-DASH MPD file.

С использованием дескриптора преднабора об этом группировании/этой ассоциации можно оповещать следующим образом.Using the preset descriptor, this grouping/this association can be signaled as follows.

Figure 00000002
Figure 00000002

В другом варианте осуществления в основном AdaptationSet облака точек или его Representation могут быть перечислены идентификаторы наборов компонентов AdaptationSet и/или Representation с использованием атрибута @associationId, определенного в ISO/IEC 23009-1, причем значения @associationType устанавливают равными 4CC при V-PCC (т. Е. vpc1).In another embodiment, the main AdaptationSet of the point cloud or its Representation may enumerate the identifiers of the AdaptationSet and/or Representation component sets using the @associationId attribute defined in ISO/IEC 23009-1, with @associationType values set to 4CC at V-PCC( i.e. vpc1).

В другом варианте осуществления в основном AdaptationSet облака точек или его Representation могут быть перечислены идентификаторы наборов компонентов AdaptationSet и/или Representation с использованием атрибута @dependencyId, определенного в ISO/IEC 23009-1. Это связано с существованием внутренней зависимости, поскольку для восстановления облака точек необходимо декодировать сегменты в основном AdaptationSet вместе с сегментами из наборов компонентов AdaptationSet облака точек.In another embodiment, the point cloud's main AdaptationSet or its Representation may list the identifiers of the AdaptationSet and/or Representation component sets using the @dependencyId attribute defined in ISO/IEC 23009-1. This is due to the existence of an internal dependency, since in order to restore the point cloud, it is necessary to decode the segments in the main AdaptationSet along with the segments from the component sets of the AdaptationSet of the point cloud.

Сигнализация метаданных о компонентеComponent metadata signaling

Метаданные о геометрии и атрибутах обычно используют для визуализации. О них оповещают в наборах параметров битового потока V-PCC. Однако может быть необходимо оповещение об этих элементах метаданных в MPD, чтобы клиент потоковой передачи мог получать информацию как можно раньше. Кроме того, клиент потоковой передачи может принимать решения о выборе между множеством версий облака точек с различными значениями метаданных о геометрии и атрибутах (например, на основании того, поддерживает клиент сообщенные значения или нет).Metadata about geometry and attributes is commonly used for visualization. They are advertised in the V-PCC bitstream parameter sets. However, it may be necessary to advertise these metadata elements in the MPD so that the streaming client can receive the information as early as possible. In addition, the streaming client may make decisions to choose between multiple point cloud versions with different geometry and attribute metadata values (eg, based on whether the client supports the reported values or not).

Сигнализация метаданных о геометрииGeometry metadata signaling

Может быть введен элемент SupplementalProperty с атрибутом @schemeIdUri, равным urn:mpeg:mpegI:vpcc:2019:geom_meta, который в настоящем документе называется дескриптором метаданных о геометрии или дескриптором geoMeta. Не более чем один дескриптор geomMeta может присутствовать на уровне MPD, и в этом случае он применим к компонентам геометрии для всех облаков точек, о которых оповещают в MPD, если только он не будет переопределен дескриптором geomMeta на более низком уровне, как описано ниже. Не более одного дескриптора geomMeta может присутствовать на уровне набора адаптации в основном AdaptationSet. Не более одного дескриптора geomMeta может присутствовать на уровне представления в основном AdaptationSet. Если дескриптор geomMeta присутствует на определенном уровне, он замещает любой дескриптор geomMeta, переданный на более высоком уровне.A SupplementalProperty element with a @schemeIdUri attribute of urn:mpeg:mpegI:vpcc:2019:geom_meta may be introduced, which is referred to in this document as a geometry metadata descriptor or geoMeta descriptor. At most one geomMeta descriptor may be present at the MPD level, in which case it is applicable to the geometry components for all point clouds advertised in the MPD, unless it is overridden by a geomMeta descriptor at a lower level, as described below. At most one geomMeta descriptor may be present at the adaptation set level in the main AdaptationSet. At most one geomMeta descriptor may be present at the presentation level in the main AdaptationSet. If a geomMeta descriptor is present at a particular level, it overrides any geomMeta descriptor passed at a higher level.

В варианте осуществления атрибут @value дескриптора geomMeta присутствовать не должен. В варианте осуществления дескриптор geomMeta включает в себя элементы и атрибуты, указанные в таблице 7.In an embodiment, the @value attribute of the geomMeta descriptor shall not be present. In an embodiment, the geomMeta descriptor includes the elements and attributes specified in Table 7.

Таблица 7. Элементы и атрибуты для дескриптора geomMetaTable 7. Elements and attributes for the geomMeta descriptor

Элементы и атрибуты для дескриптора geomMetaElements and Attributes for the geomMeta Descriptor Приме-нениеApplication Тип данныхData type ОписаниеDescription geomgeom 0..10..1 vpcc:geometryMetadataTypevpcc:geometryMetadataType Элемент контейнера, атрибуты и элементы которого определяют информацию метаданных о геометрии.A container element whose attributes and elements define metadata information about the geometry. geom@point_shapegeom@point_shape OO xs:unsignedBytexs:unsignedByte Указывает геометрическую форму точки, которую следует использовать для визуализации. Поддерживаемые значения находятся в диапазоне от 0 до 15 включительно. Соответствующая форма получена из таблицы 7-2 в проекте сообщества. При отсутствии значение по умолчанию должно составлять 0.Specifies the point geometry to use for rendering. Supported values range from 0 to 15 inclusive. The corresponding form is derived from table 7-2 in the community draft. If absent, the default value should be 0. geom@point_sizegeom@point_size OO xs:unsignedShortxs:unsignedShort Указывает геометрический размер точки, который следует использовать для визуализации. Допустимые значения должны находиться в диапазоне от 1 до 65535 включительно. При отсутствии значение по умолчанию должно быть выведено равным 1.Specifies the point geometric dimension to use for rendering. Valid values must be between 1 and 65535 inclusive. If absent, the default value should be inferred to be 1. geom.geomSmoothinggeom.geomSmoothing 0..10..1 vpcc:geometrySmoothingTypevpcc:geometrySmoothingType Элемент, атрибуты которого обеспечивают информацию о сглаживании геометрии.An element whose attributes provide geometry smoothing information. geom.geomSmoothing@grid_sizegeom.geomSmoothing@grid_size МM xs:unsignedBytexs:unsignedByte Определяет размер сетки для сглаживания геометрии. Допустимые значения должны находиться в диапазоне от 2 до 128 включительно.
Если элемент geom.geomSmoothing отсутствует, размер сетки по умолчанию должен быть выведен равным 8.
Specifies the mesh size for geometry smoothing. Valid values must be between 2 and 128 inclusive.
If there is no geom.geomSmoothing element, the grid size should default to 8.
geom. geomSmoothing@thresholdgeom. geomSmoothing@threshold МM xs:unsignedBytexs:unsignedByte Порог сглаживания.
Если элемент geom.geomSmoothing отсутствует, порог по умолчанию должен быть выведен равным 64.
Smoothing threshold.
If there is no geom.geomSmoothing element, the default threshold should be inferred to be 64.
geom.geomScalegeom.geomScale 0..10..1 vpcc:geometryScaleTypevpcc:geometryScaleType Элемент, атрибуты которого обеспечивают информацию о масштабировании геометрии.An element whose attributes provide geometry scaling information. geom. geomScale@xgeom. geomScale@x МM xs:unsignedIntxs:unsignedInt Значение масштаба по оси X. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 1.X scale value. If there is no geom.geomSmoothing element, the default value should be 1. geom. geomScale@ygeom. geomScale@y МM xs:unsignedIntxs:unsignedInt Значение масштаба по оси Y. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 1.Y-axis scale value. If there is no geom.geomSmoothing element, the default value should be 1. geom. geomScale@zgeom. geomScale@z МM xs:unsignedIntxs:unsignedInt Значение масштаба вдоль оси Z. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 1.Scale value along the Z axis. If the geom.geomSmoothing element is not present, the default value should be 1. geom.geomOffsetgeom.geomOffset 0..10..1 vpcc:GeometryOffsetTypevpcc:GeometryOffsetType Элемент, атрибуты которого предоставляют информацию о смещении геометрии.An element whose attributes provide information about the offset of the geometry. geom.geomOffset@xgeom.geomOffset@x МM xs:intxs:int Значение смещения по оси X. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.X offset value. If there is no geom.geomSmoothing element, the default value should be 0. geom.geomOffset@ygeom.geomOffset@y МM xs:intxs:int Значение смещения по оси Y. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.Y-axis offset value. If there is no geom.geomSmoothing element, the default value should be 0. geom.geomOffset@zgeom.geomOffset@z МM xs:intxs:int Значение смещения по оси Z. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.Z offset value. If there is no geom.geomSmoothing element, the default value should be 0. geom.geomRotationgeom.geomRotation 0..10..1 vpcc:geometryRotationTypevpcc:geometryRotationType Элемент, атрибуты которого предоставляют информацию о вращении геометрии.An element whose attributes provide information about the rotation of the geometry. geom. geomRotation@xgeom. geomRotation@x МM xs:intxs:int Значение вращения по оси X в единицах 2-16 градусов. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.X-axis rotation value in units of 2 -16 degrees. If there is no geom.geomSmoothing element, the default value should be 0. geom. geomRotation@ygeom. geomRotation@y МM xs:intxs:int Значение вращения по оси Y составляет 2-16 градусов. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.The Y-axis rotation value is 2 -16 degrees. If there is no geom.geomSmoothing element, the default value should be 0. geom. geomRotation@zgeom. geomRotation@z МM xs:intxs:int Значение вращения по оси Z составляет 2-16 градусов. Если элемент geom.geomSmoothing отсутствует, значение по умолчанию должно быть выведено равным 0.The Z rotation value is 2 -16 degrees. If there is no geom.geomSmoothing element, the default value should be 0. Условные обозначения:
Для атрибутов: M = обязательный, O = дополнительный, OD = дополнительный со значением по умолчанию, CM = условно обязательный.
Для элементов: <minOccurs>..<maxOccurs> (N=unbounded)
Элементы выделены жирным шрифтом; атрибуты не выделены жирными шрифтом, и им предшествует знак @.
Legend:
For attributes: M = required, O = optional, OD = optional with default value, CM = conditionally required.
For elements: <minOccurs>..<maxOccurs> (N=unbounded)
Elements are in bold; attributes are not in bold and are preceded by an @ sign.

В варианте осуществления типы данных для различных элементов и атрибутов дескриптора geomMeta могут быть такими, как определено в следующей схеме XML.In an embodiment, the data types for the various elements and attributes of the geomMeta descriptor may be as defined in the following XML schema.

Figure 00000003
Figure 00000003

Figure 00000004
Figure 00000004

Сигнализация метаданных об атрибутахAttribute metadata signaling

Может быть введен элемент SupplementalProperty с атрибутом @schemeIdUri, равным urn:mpeg:mpegI:vpcc:2019:attr_meta, который в настоящем документе называется дескриптором метаданных об атрибуте или дескриптором attrMeta. Не более одного дескриптора attrMeta может присутствовать на уровне набора адаптаций в основном AdaptationSet. Не более одного дескриптора attrMeta может присутствовать на уровне представления в основном AdaptationSet. Если на уровне представления дескриптор attrMeta присутствует, он замещает любой дескриптор attrMeta, сообщенный на уровне набора адаптации для AdaptationSet, к которому относится Representation.A SupplementalProperty element with a @schemeIdUri attribute of urn:mpeg:mpegI:vpcc:2019:attr_meta may be introduced, which is referred to in this document as an attribute metadata descriptor or attrMeta descriptor. At most one attrMeta descriptor may be present at the adaptation set level in the main AdaptationSet. At most one attrMeta descriptor may be present at the presentation layer in the main AdaptationSet. If an attrMeta descriptor is present at the presentation layer, it overrides any attrMeta descriptor reported at the adaptation set layer for the AdaptationSet to which the Representation belongs.

В варианте осуществления атрибут @value дескриптора attrMeta отсутствует. В варианте осуществления дескриптор attrMeta может включать в себя элементы и атрибуты, указанные в таблице 8.In an embodiment, the @value attribute of the attrMeta descriptor is omitted. In an embodiment, the attrMeta descriptor may include the elements and attributes specified in Table 8.

Таблица 8. Элементы и атрибуты для дескриптора attrMetaTable 8. Elements and attributes for the attrMeta descriptor

Элементы и атрибуты для дескриптора attrMetaElements and Attributes for the attrMeta Descriptor Приме-нениеApplication Тип данныхData type ОписаниеDescription attmattm 0..N0..N vpcc:attributeMetadataTypevpcc:attributeMetadataType Элемент контейнера, атрибуты и элементы которого указывают информацию о метаданных для атрибута облака точек.A container element whose attributes and elements specify metadata information for a point cloud attribute. attm@indexattm@index МM xs:unsignedBytexs:unsignedByte Указывает индекс атрибута. Должен иметь значение от 0 до 127 включительно.Specifies the index of the attribute. Must be between 0 and 127 inclusive. attm@num_dimensionsattm@num_dimensions МM xs:unsignedBytexs:unsignedByte Количество измерений для атрибута облака точек.The number of measurements for the point cloud attribute. attm.attrSmoothingattm.attrSmoothing 0..10..1 vpcc:attributeSmoothingTypevpcc:attributeSmoothingType Элемент, атрибуты которого обеспечивают информацию о сглаживании для атрибута облака точек.An element whose attributes provide anti-aliasing information for the point cloud attribute. attm. attrSmoothing@radiusatm. attrSmoothing@radius МM xs:unsignedBytexs:unsignedByte Радиус для обнаружения соседей для атрибута сглаживания. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.The radius to detect neighbors for the smoothing attribute. If there is no attm.attmSmoothing element, then the default value should be inferred to be 0. attm. attrSmoothing@neighbor_countatm. attrSmoothing@neighbor_count МM xs:unsignedBytexs:unsignedByte Максимальное число соседних точек, используемых для атрибута сглаживания. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.The maximum number of neighboring points used for the smoothing attribute. If there is no attm.attmSmoothing element, then the default value should be inferred to be 0. attm. attrSmoothing@radius2_boundaryatm. attrSmoothing@radius2_boundary МM xs:unsignedBytexs:unsignedByte Радиус для обнаружения граничных точек. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.Radius to detect edge points. If there is no attm.attmSmoothing element, then the default value should be inferred to be 0. attm. attrSmoothing@thresholdatm. attrSmoothing@threshold МM xs:unsignedBytexs:unsignedByte Порог атрибута сглаживания. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.Smoothing attribute threshold. If there is no attm.attmSmoothing element, then the default value should be inferred to be 0. attm. attrSmoothing@threshold_local_entropyatm. attrSmoothing@threshold_local_entropy МM xs:unsignedBytexs:unsignedByte Локальный порог энтропии в окрестности граничной точки. Значение для этого атрибута должно находиться в диапазоне от 0 до 7 включительно. Если элемент attm.attmSmoothing отсутствует, то значение по умолчанию должно быть выведено равным 0.Local entropy threshold in the neighborhood of a boundary point. The value for this attribute must be between 0 and 7, inclusive. If there is no attm.attmSmoothing element, then the default value should be inferred to be 0. attm.attrScaleattm.attrScale 0..10..1 vpcc:attributeScaleTypevpcc:attributeScaleType Элемент, атрибут которого предоставляет информацию о масштабировании вдоль каждого измерения атрибута облака точек.An element whose attribute provides scaling information along each dimension of the point cloud attribute. attm.attrScale@valuesattm.attrScale@values МM xs:stringxs:string Строка значений масштаба, разделенных запятыми, для каждого измерения атрибута облака точек.A string of comma-separated scale values for each point cloud attribute dimension. attm.attrOffsetattm.attrOffset 0..10..1 vpcc:attributeOffsetTypevpcc:attributeOffsetType Элемент, атрибут которого предоставляет информацию о смещении вдоль каждого измерения атрибута облака точек.An element whose attribute provides information about the offset along each dimension of the point cloud attribute. attm.attrOffset@valuesattm.attrOffset@values МM xs:stringxs:string Строка значений смещений, разделенных точками, для каждого измерения атрибута облака точек.A string of point-separated offset values for each point cloud attribute dimension. Условные обозначения:
Для атрибутов: M = обязательный, O = дополнительный, OD = дополнительный со значением по умолчанию, CM = условно обязательный.
Для элементов: <minOccurs>..<maxOccurs> (N=unbounded)
Элементы выделены жирным шрифтом; атрибуты не выделены жирными шрифтом, и им предшествует знак @.
Legend:
For attributes: M = required, O = optional, OD = optional with default value, CM = conditionally required.
For elements: <minOccurs>..<maxOccurs> (N=unbounded)
Elements are in bold; attributes are not in bold and are preceded by an @ sign.

В варианте осуществления типы данных для различных элементов и атрибутов дескриптора attrMeta могут быть такими, как определено в следующей схеме XML.In an embodiment, the data types for the various elements and attributes of the attrMeta descriptor may be as defined in the following XML schema.

Figure 00000005
Figure 00000005

Поведение клиента потоковой передачиStreaming Client Behavior

DASH-клиент (узел декодера) руководствуется информацией, предоставленной в MPD. Ниже приведен пример поведения клиента при обработке содержимого облака точек потоковой передачи в соответствии с сигнализацией, представленной в настоящем описании, с учетом варианта осуществления, в котором об ассоциации наборов компонентов AdaptationSet с основным AdaptationSet облака точек оповещают с использованием дескриптора VPCC. На фиг. 7 представлена блок-схема, иллюстрирующая пример клиентского процесса потоковой передачи в соответствии с вариантом осуществления.The DASH client (decoder node) is guided by the information provided in the MPD. The following is an example of client behavior when processing streaming point cloud content in accordance with the signaling provided herein, given an embodiment in which the association of AdaptationSets with the main AdaptationSet of the point cloud is advertised using a VPCC descriptor. In FIG. 7 is a flowchart illustrating an example of a streaming client process according to an embodiment.

На этапе 711 клиент сначала выдает HTTP-запрос и загружает MPD-файл с сервера содержимого. Затем клиент анализирует MPD-файл для создания соответствующего представления в памяти элементов XML в MPD-файле.At block 711, the client first issues an HTTP request and downloads the MPD file from the content server. The client then parses the MPD file to create the appropriate in-memory representation of the XML elements in the MPD file.

Затем на этапе 713 для определения доступного мультимедийного содержимого облака точек в Period клиент потоковой передачи сканирует элементы AdaptationSet для поиска наборов AdaptationSet с атрибутом @codecs, установленным на vpc1, и элементом дескриптора VPCC. Полученная подгруппа представляет собой набор основных AdaptationSet для содержимого облака точек.Then, at block 713, to determine the available point cloud media content in the Period, the streaming client scans the AdaptationSet elements for AdaptationSets with the @codecs attribute set to vpc1 and the VPCC descriptor element. The resulting subgroup is a set of basic AdaptationSets for point cloud content.

Далее на этапе 715 клиент потоковой передачи идентифицирует число уникальных облаков точек путем проверки дескрипторов VPCC этих AdaptationSet и AdaptationSet групп с таким же значением @pcId в их дескрипторе VPCC, что и в версиях одного и того же содержимого.Next, at step 715, the streaming client identifies the number of unique point clouds by checking the VPCC descriptors of these AdaptationSet and AdaptationSet groups with the same @pcId value in their VPCC descriptor as in versions of the same content.

На этапе 717 идентифицируют группу AdaptationSet со значением @pcId, соответствующим содержимому облака точек, которое пользователь желает получить в потоковой передаче. Если группа содержит более одного AdaptationSet, клиент потоковой передачи выбирает AdaptationSet с поддерживаемой версией (например, разрешение видео). В противном случае выбирают единственный AdaptationSet группы.At block 717, an AdaptationSet is identified with an @pcId value corresponding to the content of the point cloud that the user wishes to stream. If the group contains more than one AdaptationSet, the streaming client selects an AdaptationSet with a supported version (eg, video resolution). Otherwise, a single AdaptationSet of the group is chosen.

Затем на этапе 719 клиент потоковой передачи проверяет дескриптор VPCC выбранного AdaptationSet, чтобы идентифицировать наборы AdaptationSet для компонентов облака точек. Их идентифицируют по значениям атрибутов @occupancyId, @geometryId и @attributeId. Если в выбранном основном AdaptationSet присутствуют дескрипторы geomMeta и/или attrMeta, клиент потоковой передачи может до загрузки каких-либо сегментов определить, поддерживает ли он сообщенную конфигурацию визуализации для потока облака точек. В противном случае клиенту необходимо извлечь эту информацию из сегмента инициализации.Then, at step 719, the streaming client checks the VPCC descriptor of the selected AdaptationSet to identify the AdaptationSets for the point cloud components. They are identified by the values of the @occupancyId, @geometryId and @attributeId attributes. If geomMeta and/or attrMeta descriptors are present in the selected main AdaptationSet, the streaming client may determine whether it supports the reported rendering configuration for the point cloud stream before downloading any segments. Otherwise, the client needs to extract this information from the initialization segment.

Затем на этапе 721 клиент запускает потоковую передачу облака точек путем загрузки сегмента инициализации для основного AdaptationSet, содержащего наборы параметров, необходимых для инициализации декодера V-PCC.Then, in step 721, the client starts streaming the point cloud by downloading an initialization segment for the main AdaptationSet containing the parameter sets needed to initialize the V-PCC decoder.

На этапе 723 сегменты инициализации для потоков видеокодированных компонентов загружают и кэшируют в запоминающее устройство.At block 723, the initialization segments for the video encoded component streams are downloaded and cached in a storage device.

На этапе 725 клиент потоковой передачи далее начинает загрузку синхронизированных по времени сегментов мультимедиа из основного AdaptatationSet и компонентов наборов AdatptationSet параллельно по HTTP, и загруженные сегменты сохраняются в буфере сегментов в запоминающем устройстве.At block 725, the streaming client then starts downloading the time-synchronized media segments from the main AdaptatationSet and components of the AdatptationSet in parallel over HTTP, and the downloaded segments are stored in a segment buffer in storage.

На этапе 727 синхронизированные по времени сегменты мультимедиа извлекают из их соответствующих буферов и конкатенируют с их соответствующими сегментами инициализации.At 727, the time-synchronized media segments are retrieved from their respective buffers and concatenated with their respective initialization segments.

Наконец, на этапе 729 контейнер мультимедиа (например, ISOBMFF) анализируют для извлечения информации об элементарном потоке и структурирования битового потока V-PCC в соответствии со стандартом V-PCC, после чего битовый поток поступает в декодер V-PCC.Finally, at step 729, the media container (eg, ISOBMFF) is parsed to extract elementary stream information and structure the V-PCC bitstream according to the V-PCC standard, after which the bitstream is passed to the V-PCC decoder.

Хотя признаки и элементы описаны выше в конкретных комбинациях, специалисту в данной области будет очевидно, что каждый признак или элемент можно использовать отдельно или в любой комбинации с другими признаками и элементами. Кроме того, описанные в настоящем документе способы могут быть реализованы в компьютерной программе, программном обеспечении или программно-аппаратном обеспечении, встроенном в машиночитаемый носитель и предназначенном для исполнения компьютером или процессором. Примеры энергозависимого машиночитаемого носителя информации включают в себя, без ограничений, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), регистр, кэш-память, полупроводниковые устройства хранения данных, магнитные носители, такие как внутренние жесткие диски и съемные диски, магнитооптические носители и оптические носители, такие как диски CD-ROM и цифровые универсальные диски (DVD). Процессор в сочетании с программным обеспечением можно использовать для реализации радиочастотного приемопередатчика, предназначенного для применения в составе модуля 102 WTRU, пользовательского оборудования (UE), терминала, базовой станции, контроллера RNC и/или любого главного компьютера.While the features and elements are described above in specific combinations, it will be apparent to one skilled in the art that each feature or element can be used alone or in any combination with other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware embedded in a computer-readable medium and designed to be executed by a computer or processor. Examples of volatile computer-readable storage media include, without limitation, read-only memory (ROM), random access memory (RAM), register, cache memory, semiconductor storage devices, magnetic media such as internal hard drives and removable drives, magneto-optical media and optical media such as CD-ROMs and digital versatile discs (DVDs). The processor, in conjunction with software, may be used to implement an RF transceiver for use in WTRU module 102, user equipment (UE), terminal, base station, RNC, and/or any host computer.

Кроме того, в описанных выше вариантах осуществления отмечены платформы для выполнения обработки, вычислительные системы, контроллеры и другие устройства, содержащие процессоры. Эти устройства могут содержать по меньшей мере один центральный процессор (ЦП) и запоминающее устройство. Как свидетельствует практика специалистов в области компьютерного программирования, указания на действия и символические представления этапов или команд могут быть реализованы с помощью различных ЦП и запоминающих устройств. Такие действия и этапы или команды могут упоминаться как «исполняемые», «исполняемые с помощью компьютера» или «исполняемые с помощью ЦП».In addition, in the embodiments described above, processing platforms, computing systems, controllers, and other devices containing processors are noted. These devices may include at least one central processing unit (CPU) and a storage device. As the practice of specialists in the field of computer programming shows, indications of actions and symbolic representations of steps or commands can be implemented using various CPUs and storage devices. Such actions and steps or commands may be referred to as "executable", "computer-executable", or "CPU-executable".

Для специалиста в данной области будет очевидно, что указанные действия и символически представленные этапы или команды включают управление электрическими сигналами с помощью ЦП. Электрическая система выдает биты данных, которые могут инициировать итоговое преобразование или ослабление электрических сигналов и сохранение битов данных в ячейках запоминающего устройства в системе запоминающего устройства, чтобы таким образом переконфигурировать или иным образом изменить работу ЦП, а также другую обработку сигналов. Ячейки запоминающего устройства, в которых хранятся биты данных, представляют собой физические местоположения, которые обладают определенными электрическими, магнитными, оптическими или органическими свойствами, соответствующими битам данных или характерными для битов данных. Следует понимать, что примеры осуществления не ограничены вышеупомянутыми платформами или ЦП и что другие платформы и ЦП также могут поддерживать предложенные способы.It will be apparent to a person skilled in the art that said actions and symbolically represented steps or commands involve the control of electrical signals by the CPU. The electrical system provides data bits that can cause the resulting conversion or attenuation of the electrical signals and the storage of the data bits in storage cells in the storage system to thereby reconfigure or otherwise alter CPU operation as well as other signal processing. Memory cells that store data bits are physical locations that have certain electrical, magnetic, optical, or organic properties corresponding to or characteristic of data bits. It should be understood that the exemplary embodiments are not limited to the aforementioned platforms or CPUs, and that other platforms and CPUs may also support the proposed methods.

Биты данных также могут храниться на машиночитаемом носителе, в том числе на магнитных дисках, оптических дисках и любом другом энергозависимом (например, оперативном запоминающем устройстве (ОЗУ)) или энергонезависимом (например, постоянном запоминающем устройстве (ПЗУ)) накопителе большой емкости для считывания ЦП. Машиночитаемый носитель может включать в себя взаимодействующий или взаимосвязанный машиночитаемый носитель, применяемый исключительно в системе обработки или распределенный между множеством взаимосвязанных систем обработки, которые могут быть локальными или удаленными по отношению к указанной системе обработки. При этом подразумевается, что типовые варианты осуществления не ограничены вышеупомянутыми запоминающими устройствами и что другие платформы и запоминающие устройства также могут поддерживать описанные способы.Data bits may also be stored on a computer-readable medium, including magnetic disks, optical disks, and any other volatile (eg, random access memory (RAM)) or non-volatile (eg, read only memory (ROM)) mass storage device for reading by the CPU. . Computer-readable media may include co-operating or interconnected computer-readable media used exclusively within a processing system or distributed among a plurality of interconnected processing systems, which may be local or remote to said processing system. This implies that exemplary embodiments are not limited to the aforementioned storage devices and that other platforms and storage devices may also support the described methods.

В иллюстративном варианте осуществления любые этапы, способы и т.п., описанные в настоящем документе, могут быть реализованы в виде машиночитаемых команд, хранящихся на машиночитаемом носителе. Процессор мобильного устройства, сетевой элемент и/или любое другое вычислительное устройство могут быть выполнены с возможностью исполнения машиночитаемых команд.In an exemplary embodiment, any of the steps, methods, and the like described herein may be implemented as computer-readable instructions stored on a computer-readable medium. The mobile device processor, network element, and/or any other computing device may be configured to execute machine-readable instructions.

Между аппаратными и программными реализациями аспектов систем остаются незначительные различия. Использование аппаратного или программного обеспечения, как правило (но не всегда, поскольку в определенных контекстах различие между аппаратным и программным обеспечением может стать значительным), предполагает выбор конструкции, представляющей собой компромисс между затратами и эффективностью. Могут существовать различные средства, с помощью которых могут быть реализованы способы и/или системы, и/или другие технологии, описанные в данном документе (например, аппаратное обеспечение, программное обеспечение и/или микропрограммное обеспечение), а предпочтительное средство может варьироваться в зависимости от контекста, в котором развернуты указанные способы и/или системы, и/или другие технологии. Например, если разработчик определяет, что скорость и точность имеют первостепенное значение, он может применять главным образом аппаратное и/или микропрограммное средство. Если самым важным аспектом является гибкость, разработчик может выбирать реализацию главным образом в виде программного обеспечения. В альтернативном варианте осуществления разработчик может применять комбинацию аппаратного обеспечения, программного обеспечения и/или микропрограммного обеспечения.Minor differences remain between hardware and software implementations of aspects of systems. The use of hardware or software typically (but not always, as the distinction between hardware and software can become significant in certain contexts) involves choosing a design that represents a trade-off between cost and efficiency. There may be various means by which the methods and/or systems and/or other technologies described herein can be implemented (e.g., hardware, software, and/or firmware), and the preferred means may vary depending on the context in which said methods and/or systems and/or other technologies are deployed. For example, if the developer determines that speed and accuracy are of paramount importance, he may use mostly hardware and/or firmware. If flexibility is the most important aspect, the developer may choose to implement it primarily in software. In an alternative embodiment, the developer may use a combination of hardware, software, and/or firmware.

В приведенном выше подробном описании изложены различные варианты осуществления устройств и/или способов с применением блок-схем, структурных схем и/или примеров. Поскольку такие блок-схемы, структурные схемы и/или примеры содержат одну или более функций и/или операций, для специалистов в данной области будет очевидно, что каждая функция и/или операция в таких блок-схемах, структурных схемах или примерах может быть реализована, отдельно и/или совместно, с применением широкого спектра аппаратного обеспечения, программного обеспечения, микропрограммного обеспечения или по существу любой их комбинации. В качестве примера подходящие процессоры включают процессор общего назначения, процессор специального назначения, стандартный процессор, цифровой сигнальный процессор (DSP), множество микропроцессоров, один или более микропроцессоров, связанных с ядром DSP, контроллер, микроконтроллер, специализированные интегральные микросхемы (ASIC), стандартные части специализированной интегральной схемы (ASSP); программируемую пользователем вентильную матрицу (FPGA), интегральную схему (IC) любого другого типа и/или конечный автомат.In the above detailed description, various embodiments of devices and/or methods are set forth using block diagrams, block diagrams, and/or examples. Since such block diagrams, block diagrams and/or examples contain one or more functions and/or operations, it will be obvious to those skilled in the art that each function and/or operation in such block diagrams, block diagrams or examples can be implemented , separately and/or together, using a wide range of hardware, software, firmware, or essentially any combination thereof. By way of example, suitable processors include a general purpose processor, a special purpose processor, a standard processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors associated with a DSP core, a controller, a microcontroller, application specific integrated circuits (ASICs), standard parts application specific integrated circuit (ASSP); a field programmable gate array (FPGA), any other type of integrated circuit (IC), and/or a state machine.

Хотя признаки и элементы представлены выше в конкретных комбинациях, специалисту в данной области будет очевидно, что каждый признак или элемент может быть использован отдельно или в любой комбинации с другими признаками и элементами. Настоящее изобретение не ограничивается описанными в настоящей заявке конкретными вариантами осуществления, которые предназначены для иллюстрации различных аспектов. Для специалистов в данной области будет очевидно, что возможно внесение множества модификаций и изменений без отступления от сущности и объема настоящего изобретения. Никакие элементы, действия или команды, используемые в описании настоящей заявки, не следует рассматривать как критические или существенные для изобретения, если явным образом не указано иное. Функционально эквивалентные способы и устройства, входящие в объем описания, в дополнение к перечисленным в настоящем документе станут очевидными для специалистов в данной области после ознакомления с представленными выше описаниями. Предполагается, что такие модификации и вариации включены в объем приложенной формулы изобретения. Настоящее описание ограничивается исключительно прилагаемой формулой изобретения, а также полным диапазоном эквивалентов, к которым относится такая формула изобретения. Следует понимать, что настоящее описание не ограничивается конкретными способами или системами.While the features and elements are presented above in specific combinations, it will be apparent to one skilled in the art that each feature or element may be used alone or in any combination with other features and elements. The present invention is not limited to the specific embodiments described in this application, which are intended to illustrate various aspects. It will be apparent to those skilled in the art that many modifications and changes are possible without departing from the spirit and scope of the present invention. None of the elements, actions or commands used in the description of this application should not be considered critical or essential to the invention, unless expressly stated otherwise. Functionally equivalent methods and devices within the scope of the description, in addition to those listed herein, will become apparent to those skilled in the art upon review of the above descriptions. Such modifications and variations are intended to be included within the scope of the appended claims. The present description is limited solely by the appended claims, as well as the full range of equivalents to which such claims apply. It should be understood that the present description is not limited to specific methods or systems.

Кроме того, следует понимать, что применяемые в настоящем документе термины используют только в целях описания конкретных вариантов осуществления настоящего изобретения и они не носят ограничительного характера. Используемые в настоящем документе термины «станция» и его аббревиатура STA, «пользовательское оборудование» и его аббревиатура UE могут означать (i) модуль беспроводной передачи/приема (WTRU), например, как описано ниже; (ii) любой из некоторого количества вариантов осуществления WTRU, например, как описано ниже; (iii) беспроводное и/или проводное (например, подключаемое) устройство, выполненное, в частности, с применением некоторых или всех конструкций и функциональных возможностей WTRU, например, как описано ниже; (iii) беспроводное и/или проводное устройство, выполненное не со всеми конструкциями и функциональными возможностями WTRU, например, как описано ниже; или (iv) и т.п.In addition, it should be understood that the terms used herein are used only for the purpose of describing specific embodiments of the present invention and they are not restrictive. As used herein, the terms "station" and its abbreviation STA, "user equipment" and its abbreviation UE may mean (i) a wireless transmit/receive unit (WTRU), for example, as described below; (ii) any of a number of WTRU embodiments, eg, as described below; (iii) a wireless and/or wired (eg, pluggable) device specifically configured using some or all of the WTRU designs and functionality, eg, as described below; (iii) a wireless and/or wired device not configured with all of the WTRU designs and functionality, eg as described below; or (iv) etc.

В определенных типовых вариантах осуществления некоторые части объекта изобретения, описанного в настоящем документе, могут быть реализованы с помощью специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), цифровых сигнальных процессоров (DSP) и/или интегральных схем других форматов. Однако для специалистов в данной области будет очевидно, что некоторые аспекты описанных в настоящем документе вариантов осуществления полностью или частично могут быть эквивалентно реализованы в интегральных схемах в виде одной или более компьютерных программ, выполняемых на одном или более компьютерах (например, в виде одной или более программ, выполняемых в одной или более компьютерных системах), в виде одной или более программ, выполняемых на одном или более процессорах (например, в виде одной или более программ, выполняемых на одном или более микропроцессорах), в виде микропрограммного обеспечения или в виде по существу любой их комбинации и что разработка схем и/или написание кода для программного обеспечения и/или микропрограммного обеспечения будет вполне по силам специалисту в данной области после ознакомления с настоящим описанием. Кроме того, для специалистов в данной области будет очевидно, что механизмы объекта изобретения, описанные в настоящем документе, могут быть распределены в виде программного продукта в множестве форм и что иллюстративный вариант осуществления объекта изобретения, описанный в настоящем документе, применяют независимо от конкретного типа среды передачи сигналов, используемой для фактического осуществления такого распределения. Примеры носителя сигнала включают в себя, без ограничений, следующее: носитель, выполненный с возможностью записи, например, гибкий диск, накопитель на жестком диске, CD, DVD, магнитную ленту для цифровой записи, запоминающее устройство компьютера и т.д., а также носитель, выполненный с возможностью передачи, такой как цифровая и/или аналоговая среда передачи данных (например, оптоволоконный кабель, волновод, проводная линия связи, беспроводная линия связи и т.д.).In certain exemplary embodiments, certain portions of the subject matter described herein may be implemented with application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital signal processors (DSPs), and/or other integrated circuit formats. However, those skilled in the art will appreciate that certain aspects of the embodiments described herein, in whole or in part, may equivalently be implemented in integrated circuits as one or more computer programs executing on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or as software. essentially any combination thereof, and that designing circuits and/or writing code for software and/or firmware would be well within the ability of a person skilled in the art upon reading this disclosure. In addition, it will be apparent to those skilled in the art that the mechanisms of the subject matter described herein may be distributed as a software product in a variety of forms and that the exemplary embodiment of the subject matter described herein is applicable regardless of the particular type of environment. the signaling used to actually make that allocation. Examples of the signal medium include, without limitation, the following: a recordable medium such as floppy disk, hard disk drive, CD, DVD, digital tape, computer storage device, etc., and a medium capable of transmission, such as a digital and/or analog data transmission medium (eg, fiber optic cable, waveguide, wired link, wireless link, etc.).

Описанный в настоящем документе объект изобретения иногда иллюстрирует различные компоненты, содержащиеся внутри различных других компонентов или соединенные с ними. Следует понимать, что такие показанные архитектуры являются лишь примерами и что фактически можно реализовать различные другие архитектуры с такой же функциональностью. В концептуальном смысле любая конструкция компонентов для получения такой же функциональности практически «связана» с возможностью обеспечения желаемой функциональности. Следовательно, любые два компонента, скомбинированные в настоящем документе для достижения конкретной функциональности, можно рассматривать как «связанные» друг с другом с возможностью обеспечения желаемой функциональности, независимо от архитектур или промежуточных компонентов. Аналогично любые два компонента, соединенные таким образом, можно также рассматривать как «функционально соединенные» или «функционально связанные» друг с другом для обеспечения желаемой функциональности, и любые два компонента, которые могут быть связаны таким образом, также можно рассматривать как «имеющие возможность функционального соединения» друг с другом для обеспечения желаемой функциональности. Конкретные примеры функционально соединяемых компонентов включают в себя, без ограничений, компоненты, выполненные с возможностью физического сопряжения, и/или физического, и/или логического, и/или беспроводного взаимодействия, и/или компоненты, взаимодействующие логически и/или беспроводным образом.The subject matter described herein sometimes illustrates various components contained within or connected to various other components. It should be understood that such illustrated architectures are merely examples and that various other architectures with the same functionality could in fact be implemented. In a conceptual sense, any design of components to achieve the same functionality is practically "related" to the ability to provide the desired functionality. Therefore, any two components combined herein to achieve a particular functionality can be considered to be "related" to each other to provide the desired functionality, regardless of architectures or intermediate components. Similarly, any two components that are connected in this way can also be considered to be "operably connected" or "operably linked" to each other to provide the desired functionality, and any two components that can be connected in this way can also be considered to be "capable of being functionally connections" with each other to provide the desired functionality. Specific examples of operably connected components include, without limitation, components capable of physical interfacing and/or physical and/or logical and/or wireless interaction and/or components that interact logically and/or wirelessly.

В отношении применения по существу любых вариантов множественного и/или единственного числа для терминов в настоящем документе специалисты в данной области могут изменять множественное число на единственное и/или единственное число на множественное в соответствии с требованиями контекста и/или сферой применения. В настоящем документе различные комбинации единственного/множественного числа для ясности могут быть указаны явным образом.With respect to the application of essentially any plural and/or singular variations for terms herein, those skilled in the art may change plural to singular and/or singular to plural as required by the context and/or scope. In this document, various combinations of singular/plural may be explicitly indicated for clarity.

Для специалистов в данной области будет очевидно, что в целом термины, используемые в настоящем документе и, в частности, в прилагаемой формуле изобретения (например, в главной части прилагаемой формулы изобретения), как правило, считаются «неограничивающими» терминами (например, термин «включающий» следует интерпретировать как «включающий, без ограничений», термин «имеющий» следует интерпретировать как «имеющий по меньшей мере», термин «включает» следует интерпретировать как «включает, без ограничений» и т.д.). Кроме того, для специалистов в данной области будет очевидно, что в случае, если предполагается конкретное количество включенных пунктов с изложением формулы изобретения, такое намерение будет явным образом указано в формуле изобретения, а в отсутствие такого упоминания такого намерения нет. Например, если речь идет только об одном элементе, может быть использован термин «один» или аналогичный термин. Для облегчения понимания нижеследующая прилагаемая формула изобретения и/или описания в данном документе могут содержать вводные фразы «по меньшей мере один» и «один или более» для введения перечисления пунктов формулы изобретения. Однако использование таких фраз не следует истолковывать как подразумевающее, что введение перечисления пунктов формулы изобретения с грамматическими формами единственного числа ограничивает любой конкретный пункт формулы изобретения, содержащий такое введенное перечисление пунктов формулы изобретения, вариантами осуществления, содержащими только одно такое перечисление, даже если тот же пункт включает вводные фразы «один или более» или «по меньшей мере один» и грамматические формы единственного числа (например, грамматические формы единственного числа следует интерпретировать как означающие «по меньшей мере» или «один или более»). То же самое справедливо в отношении применения определенных грамматических форм, используемых для введения перечисления пунктов формулы изобретения. Кроме того, даже если явным образом указано конкретное количество включенных перечисленных пунктов формулы изобретения, для специалистов в данной области будет очевидно, что такое перечисление следует интерпретировать как означающее по меньшей мере указанное количество (например, простое указание «двух пунктов» без других определений означает по меньшей мере два пункта же два или более пунктов). Кроме того, в случае использования правила, аналогичного правилу «по меньшей мере одно из 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». Кроме того, используемый в настоящем документе термин «любой из», после которого следует перечень множества элементов и/или множества категорий элементов, должен включать «любой из», «любая комбинация из», «любое множество из» и/или «любая комбинация из множества» элементов и/или категорий элементов, по отдельности или в сочетании с другими элементами и/или другими категориями элементов. Кроме того, используемый в настоящем документе термин «набор» или «группа» включает в себя любое количество элементов, в том числе ноль. Кроме того, используемый в настоящем документе термин «количество» включает в себя любое количество, в том числе ноль.It will be apparent to those skilled in the art that, in general, terms used herein and in particular in the appended claims (e.g., in the main body of the appended claims) are generally considered to be "non-limiting" terms (e.g., the term " including" should be interpreted as "including, without limitation", the term "having" should be interpreted as "having at least", the term "includes" should be interpreted as "includes, without limitation", etc.). In addition, those skilled in the art will appreciate that if a specific number of claims are intended to be included, that intent will be explicitly stated in the claims, and in the absence of such mention, there is no such intention. For example, if only one element is involved, the term "one" or a similar term may be used. For ease of understanding, the following appended claims and/or descriptions herein may contain the introductory phrases "at least one" and "one or more" to introduce a listing of claims. However, the use of such phrases should not be construed as implying that the introduction of a claim enumeration with singular grammatical forms limits any particular claim containing such an introduced enumeration of claims to embodiments containing only one such enumeration, even if the same claim includes the introductory phrases "one or more" or "at least one" and singular grammatical forms (eg, singular grammatical forms should be interpreted to mean "at least" or "one or more"). The same is true for the use of certain grammatical forms used to introduce a listing of claims. In addition, even if a specific number of included listed claims is explicitly indicated, it will be obvious to those skilled in the art that such a listing should be interpreted to mean at least the specified number (for example, simply indicating "two claims" without other definitions means by at least two points and two or more points). In addition, in the case of using a rule similar to the rule "at least one of A, B and C, etc.", in general, a person skilled in the art understands the rule implied by such a construction (for example, "a system containing at least one of A, B and C" will include, without limitation, systems that contain only A, only B, only C, both A and B, both A and C, both B and C, and/or both A, B and C, etc.). In the case of using a rule similar to the rule "at least one of A, B or C, etc.", in general, a person skilled in the art understands the rule implied by such a design (for example, "a system containing at least one of A, B or C" will include, without limitation, systems that contain only A, only B, only C, both A and B, both A and C, both B and C, and/or both A, B and C, etc.). In addition, it will be obvious to those skilled in the art that essentially any separating word and/or separating phrase representing two or more alternative terms, whether in the description, claims, or drawings, is intended to include one of the terms, any of terms or both terms. For example, the phrase "A or B" would imply the inclusion of the possibilities "A" or "B" or "A and B". In addition, as used herein, the term "any of" followed by a list of a plurality of elements and/or a plurality of categories of elements shall include "any of", "any combination of", "any plurality of", and/or "any combination of from a plurality of elements and/or categories of elements, either alone or in combination with other elements and/or other categories of elements. In addition, as used herein, the term "set" or "group" includes any number of elements, including zero. In addition, as used herein, the term "amount" includes any number, including zero.

Кроме того, если признаки или аспекты описания представлены в терминах групп Маркуша, специалистам в данной области будет очевидно, что описание, таким образом, также представлено в терминах любого отдельного члена или подгруппы членов группы Маркуша.In addition, if features or aspects of the description are presented in terms of Markush groups, it will be apparent to those skilled in the art that the description is thus also presented in terms of any individual member or subgroup of members of the Markush group.

Как будет очевидно для специалиста в данной области, для всех целей, таких как обеспечение письменного описания, все диапазоны, описанные в настоящем документе, также охватывают все их возможные поддиапазоны и комбинации поддиапазонов. Любой из перечисленных диапазонов можно легко распознать как представляющий достаточное описание и как диапазон, который можно разбить на по меньшей мере равные половины, трети, четверти, пятые части, десятые части и т.д. В примере, не имеющем ограничительного характера, каждый диапазон, описанный в данном документе, можно легко разбить в нижнюю треть, среднюю треть и верхнюю треть, и т.д. Как будет очевидно для специалиста в данной области, все термины, такие как «вплоть до», «по меньшей мере», «более чем», «менее чем» и т.п., включают в себя указанное число и относятся к диапазонам, которые можно впоследствии разбить на поддиапазоны, как описано выше. И наконец, как будет очевидно для специалиста в данной области, диапазон включает в себя каждый отдельный элемент. Таким образом, например, группа, содержащая 1–3 соты, относится к группам, содержащим 1, 2 или 3 соты. Аналогично группа, содержащая 1–5 сот, относится к группам, содержащим 1, 2, 3, 4 или 5 сот, и т.д.As will be apparent to one of skill in the art, for all purposes, such as providing a written description, all ranges described herein also cover all of their possible subranges and combinations of subranges. Any of the listed ranges can be easily recognized as providing a sufficient description and as a range that can be broken down into at least equal halves, thirds, quarters, fifths, tenths, etc. In a non-limiting example, each range described herein can be easily broken down into lower third, middle third, and upper third, and so on. As will be apparent to one of ordinary skill in the art, all terms such as "up to", "at least", "more than", "less than", etc., include the cited number and refer to ranges which can be further divided into subranges as described above. Finally, as will be apparent to those skilled in the art, the range includes every single element. Thus, for example, a group containing 1-3 cells refers to groups containing 1, 2, or 3 cells. Similarly, a group containing 1-5 cells refers to groups containing 1, 2, 3, 4 or 5 cells, etc.

Кроме того, формулу изобретения не следует рассматривать как ограниченную предложенным порядком или элементами, если не указано иное. Кроме того, использование термина «предназначенный для» в любом пункте формулы изобретения предполагает ссылку на Свод законов США (U.S.C.) 35 §112(f) или формат пункта формулы изобретения «предназначенный для плюс функция», и любой пункт формулы изобретения, не содержащий термин «предназначенный для», не указывает на это.In addition, the claims should not be construed as being limited to the proposed order or elements, unless otherwise indicated. In addition, use of the term "intended for" in any claim implies reference to 35 U.S.C. "intended for" does not indicate this.

Хотя изобретение проиллюстрировано и описано в настоящем документе применительно к конкретным вариантам осуществления, изобретение не ограничено представленным подробным описанием. Напротив, в подробное описание в пределах объема и диапазона эквивалентов формулы изобретения могут быть внесены различные изменения без отступления от настоящего изобретения.Although the invention has been illustrated and described herein in connection with specific embodiments, the invention is not limited to the detailed description provided. On the contrary, various changes may be made to the detailed description within the scope and range of equivalents of the claims without departing from the present invention.

Для специалистов в данной области будет очевидно, что в настоящем описании некоторые типовые варианты осуществления можно использовать в альтернативном варианте осуществления или в сочетании с другими типовыми вариантами осуществления.It will be apparent to those skilled in the art that, in the present disclosure, certain exemplary embodiments may be used in an alternative embodiment or in combination with other exemplary embodiments.

Хотя признаки и элементы описаны выше в конкретных комбинациях, специалисту в данной области будет очевидно, что каждый признак или элемент можно использовать отдельно или в любой комбинации с другими признаками и элементами. Кроме того, описанные в настоящем документе способы могут быть реализованы в компьютерной программе, программном обеспечении или программно-аппаратном обеспечении, встроенном в машиночитаемый носитель и предназначенном для исполнения компьютером или процессором. Примеры энергозависимого машиночитаемого носителя информации включают в себя, без ограничений, постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ), регистр, кэш-память, полупроводниковые устройства хранения данных, магнитные носители, такие как внутренние жесткие диски и съемные диски, магнитооптические носители и оптические носители, такие как диски CD-ROM и цифровые универсальные диски (DVD). Процессор в сочетании с программным обеспечением можно использовать для реализации радиочастотного приемопередатчика, предназначенного для применения в составе модуля WTRU, UE, терминала, базовой станции, контроллера RNC или любого главного компьютера.While the features and elements are described above in specific combinations, it will be apparent to one skilled in the art that each feature or element can be used alone or in any combination with other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware embedded in a computer-readable medium and designed to be executed by a computer or processor. Examples of volatile computer-readable storage media include, without limitation, read-only memory (ROM), random access memory (RAM), register, cache memory, semiconductor storage devices, magnetic media such as internal hard drives and removable drives, magneto-optical media and optical media such as CD-ROMs and digital versatile discs (DVDs). The processor, in conjunction with software, may be used to implement an RF transceiver for use in a WTRU, UE, terminal, base station, RNC, or any host computer.

Кроме того, в описанных выше вариантах осуществления отмечены платформы для выполнения обработки, вычислительные системы, контроллеры и другие устройства, содержащие процессоры. Эти устройства могут содержать по меньшей мере один центральный процессор (ЦП) и запоминающее устройство. Как свидетельствует практика специалистов в области компьютерного программирования, указания на действия и символические представления этапов или команд могут быть реализованы с помощью различных ЦП и запоминающих устройств. Такие действия и этапы или команды могут упоминаться как «исполняемые», «исполняемые с помощью компьютера» или «исполняемые с помощью ЦП».In addition, in the embodiments described above, processing platforms, computing systems, controllers, and other devices containing processors are noted. These devices may include at least one central processing unit (CPU) and a storage device. As the practice of specialists in the field of computer programming shows, indications of actions and symbolic representations of steps or commands can be implemented using various CPUs and storage devices. Such actions and steps or commands may be referred to as "executable", "computer-executable", or "CPU-executable".

Для специалиста в данной области будет очевидно, что указанные действия и символически представленные этапы или команды включают управление электрическими сигналами с помощью ЦП. Электрическая система выдает биты данных, которые могут инициировать итоговое преобразование или ослабление электрических сигналов и сохранение битов данных в ячейках запоминающего устройства в системе запоминающего устройства, чтобы таким образом переконфигурировать или иным образом изменить работу ЦП, а также другую обработку сигналов. Ячейки запоминающего устройства, в которых хранятся биты данных, представляют собой физические местоположения, которые обладают определенными электрическими, магнитными, оптическими или органическими свойствами, соответствующими битам данных или характерными для битов данных.It will be apparent to a person skilled in the art that said actions and symbolically represented steps or commands involve the control of electrical signals by the CPU. The electrical system provides data bits that can cause the resulting conversion or attenuation of the electrical signals and the storage of the data bits in storage cells in the storage system to thereby reconfigure or otherwise alter CPU operation as well as other signal processing. Memory cells that store data bits are physical locations that have certain electrical, magnetic, optical, or organic properties corresponding to or characteristic of data bits.

Биты данных также могут храниться на машиночитаемом носителе, в том числе на магнитных дисках, оптических дисках и любом другом энергозависимом (например, оперативном запоминающем устройстве (ОЗУ)) или энергонезависимом (например, постоянном запоминающем устройстве (ПЗУ)) накопителе большой емкости, считываемом ЦП. Машиночитаемый носитель может включать в себя взаимодействующий или взаимосвязанный машиночитаемый носитель, применяемый исключительно в системе обработки или распределенный между множеством взаимосвязанных систем обработки, которые могут быть локальными или удаленными по отношению к указанной системе обработки. При этом подразумевается, что типовые варианты осуществления не ограничены вышеупомянутыми запоминающими устройствами и что другие платформы и запоминающие устройства также могут поддерживать описанные способы.Data bits may also be stored on a computer-readable medium, including magnetic disks, optical disks, and any other volatile (eg, random access memory (RAM)) or non-volatile (eg, read only memory (ROM)) mass storage device readable by the CPU. . Computer-readable media may include co-operating or interconnected computer-readable media used exclusively within a processing system or distributed among a plurality of interconnected processing systems, which may be local or remote to said processing system. This implies that exemplary embodiments are not limited to the aforementioned storage devices and that other platforms and storage devices may also support the described methods.

Ни одни из элементов, действий или инструкций, используемых в описании настоящей заявки, не следует рассматривать как критические или существенные для настоящего изобретения, если явным образом не описано иное. Кроме того, используемая в настоящем документе грамматическая форма единственного числа предполагает включение одного или более элементов. Если подразумевается только один элемент, используют термин «один» или аналогичный термин. Кроме того, используемый в настоящем документе термин «любой из», после которого следует перечень множества элементов и/или множества категорий элементов, должен включать «любой из», «любая комбинация из», «любое множество из» и/или «любая комбинация из множества» элементов и/или категорий элементов, по отдельности или в сочетании с другими элементами и/или другими категориями элементов. Кроме того, используемый в настоящем документе термин «набор» включает любое количество элементов, в том числе ноль. Кроме того, используемый в настоящем документе термин «количество» включает любое количество, включая ноль.None of the elements, acts or instructions used in the description of this application should not be considered critical or essential to the present invention, unless expressly described otherwise. In addition, as used herein, the singular grammatical form is intended to include one or more elements. If only one element is intended, use the term "one" or a similar term. In addition, as used herein, the term "any of" followed by a list of a plurality of elements and/or a plurality of categories of elements shall include "any of", "any combination of", "any plurality of", and/or "any combination of "multiple" elements and/or categories of elements, either alone or in combination with other elements and/or other categories of elements. In addition, as used herein, the term "set" includes any number of elements, including zero. In addition, as used herein, the term "amount" includes any number, including zero.

Кроме того, формулу изобретения не следует рассматривать как ограниченную описанным порядком или элементами, если не указано иное. Кроме того, использование термина «средство» в любом пункте формулы изобретения предполагает ссылку на Свод законов США (U.S.C.) 35 §112(f), и любой пункт формулы изобретения, не содержащий термин «средство», не указывает на это.In addition, the claims should not be construed as being limited to the order or elements described, unless otherwise indicated. In addition, the use of the term “remedy” in any claim implies reference to 35 U.S.C.

В качестве примера подходящие процессоры включают процессор общего назначения, процессор специального назначения, стандартный процессор, цифровой сигнальный процессор (DSP), множество микропроцессоров, один или более микропроцессоров, связанных с ядром DSP, контроллер, микроконтроллер, специализированные интегральные микросхемы (ASIC), стандартные части специализированной интегральной схемы (ASSP); программируемую пользователем вентильную матрицу (FPGA), интегральную схему (IC) любого другого типа и/или конечный автомат.By way of example, suitable processors include a general purpose processor, a special purpose processor, a standard processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors associated with a DSP core, a controller, a microcontroller, application specific integrated circuits (ASICs), standard parts application specific integrated circuit (ASSP); a field programmable gate array (FPGA), any other type of integrated circuit (IC), and/or a state machine.

Процессор в сочетании с программным обеспечением можно использовать для реализации радиочастотного приемопередатчика для использования в модуле беспроводной передачи/приема (WRTU), оборудовании пользователя (UE), терминале, базовой станции, объекте управления мобильностью (MME) или усовершенствованном пакетном ядре (EPC) или любом главном компьютере. WRTU можно использовать в сочетании с модулями, реализованными в аппаратном и/или программном обеспечении, включая систему радиосвязи с программируемыми параметрами (SDR) и другие компоненты, такие как камера, модуль видеокамеры, видеотелефон, телефон с громкоговорителем, вибрационное устройство, динамик, микрофон, телевизионный приемопередатчик, наушники с микрофоном, клавиатура, модуль Bluetooth®, радиомодуль с частотной модуляцией (FM), модуль ближней радиосвязи (NFC), блок жидкокристаллического дисплея (LCD), блок дисплея на органических светодиодах (OLED), цифровой музыкальный проигрыватель, мультимедийный проигрыватель, модуль устройства для воспроизведения видеоигр, Интернет-браузер и/или любая беспроводная локальная сеть (WLAN) или модуль сверхширокополосной связи (UWB).The processor, in combination with software, can be used to implement an RF transceiver for use in a wireless transmit/receive unit (WRTU), user equipment (UE), terminal, base station, mobility management entity (MME), or evolved packet core (EPC), or any main computer. The WRTU may be used in conjunction with modules implemented in hardware and/or software, including Software Defined Radio (SDR) and other components such as a camera, video camera module, video phone, loudspeaker phone, vibration device, speaker, microphone, TV transceiver, headphones with microphone, keyboard, Bluetooth® module, frequency modulation (FM) radio module, near field communication (NFC) module, liquid crystal display (LCD) unit, organic light emitting diode (OLED) display unit, digital music player, media player , a video game playback device module, an Internet browser, and/or any wireless local area network (WLAN) or ultra-wideband (UWB) module.

Хотя изобретение описано в контексте систем связи, предполагается, что указанные системы могут быть реализованы в виде программного обеспечения в микропроцессорах/компьютерах общего назначения (не показаны). В определенных вариантах осуществления одна или более функций различных компонентов могут быть реализованы в программном обеспечении, управляющем компьютером общего назначения.While the invention has been described in the context of communications systems, it is contemplated that these systems may be implemented as software in general purpose microprocessors/computers (not shown). In certain embodiments, one or more functions of the various components may be implemented in software that controls a general purpose computer.

Кроме того, хотя изобретение проиллюстрировано и описано в настоящем документе применительно к конкретным вариантам осуществления, изобретение не ограничено представленным подробным описанием. Напротив, в подробное описание в пределах объема и диапазона эквивалентов формулы изобретения могут быть внесены различные изменения без отступления от настоящего изобретения.In addition, although the invention has been illustrated and described herein in connection with specific embodiments, the invention is not limited to the detailed description provided. On the contrary, various changes may be made to the detailed description within the scope and range of equivalents of the claims without departing from the present invention.

Claims (39)

1. Узел сети, содержащий схему, включающую в себя любое из передатчика, приемника, процессора и запоминающего устройства, для потоковой передачи данных (PCD) облака точек (PC), соответствующих PC, по сети с использованием протокола передачи гипертекста (HTTP), включающий в себя множество компонентов сжатия облака точек на основе видео (V-PCC), составляющих PC, причем узел сети выполнен с возможностью:1. A network node comprising a circuit including any of a transmitter, a receiver, a processor, and a storage device for streaming data (PCD) of a point cloud (PC) corresponding to a PC over a network using a Hypertext Transfer Protocol (HTTP), including a plurality of video-based point cloud compression (V-PCC) components constituting a PC, wherein the network node is configured to: передачи информации, связанной с PCD облака PC, в описании представления мультимедиа (MPD) для динамической адаптивной потоковой передачи по HTTP (DASH), при этом MPD DASH включает в себя информацию, указывающую по меньшей мере:transmitting PC cloud PCD related information in a Media Presentation Description (MPD) for Dynamic Adaptive Streaming over HTTP (DASH), wherein the DASH MPD includes information indicating at least: (1) основной набор адаптации (AS) для PC, причем основной AS включает в себя информацию, указывающую по меньшей мере: (i) значение атрибута кодека, указывающее на то, что основной AS соответствует данным V-PCC, и (ii) сегмент инициализации, содержащий по меньшей мере один набор параметров последовательности V-PCC для представления PC, и(1) a basic adaptation set (AS) for a PC, where the basic AS includes information indicating at least: (i) a codec attribute value indicating that the basic AS corresponds to the V-PCC data, and (ii) a segment initialization containing at least one set of V-PCC sequence parameters for representing the PC, and (2) множество компонентов наборов AS, при этом каждый из множества компонентов AS соответствует одному из компонентов V-PCC и включает в себя информацию, указывающую по меньшей мере: (a) дескриптор V-PCC Component, определяющий тип соответствующего компонента V-PCC, который содержит геометрию, занятость или атрибут и (b) по меньшей мере одно свойство соответствующего компонента V-PCC; и(2) a plurality of AS set components, wherein each of the plurality of AS components corresponds to one of the V-PCC components and includes information indicating at least: (a) a V-PCC Component descriptor defining the type of the corresponding V-PCC component, which contains a geometry, occupancy, or attribute, and (b) at least one property of a corresponding V-PCC component; And передачи MPD DASH по сети.transferring MPD DASH over the network. 2. Узел сети по п. 1, выполненный с возможностью передачи PCD по сети, 2. The network node according to claim 1, configured to transmit the PCD over the network, причем в качестве контейнера мультимедиа для содержимого V-PCC используют базовый формат медиафайлов (ISOBMFF) Международной организации по стандартизации (ISO), иwherein, as the media container for the V-PCC content, an International Standards Organization (ISO) Basic Media File Format (ISOBMFF) is used, and при этом сегмент инициализации основного AS включает в себя контейнер метаданных, содержащий один или более экземпляров V-PCCGroupBox, обеспечивающих информацию о метаданных, связанную с треками V-PCC.wherein the base AS initialization segment includes a metadata container containing one or more V-PCCGroupBox instances providing metadata information associated with V-PCC tracks. 3. Узел сети по п. 1, в котором сегмент инициализации основного AS включает в себя информацию, указывающую: (1) единственный сегмент инициализации на уровне адаптации, и (2) наборы параметров последовательности V-PCC для всех представлений основного AS.3. The network node of claim 1, wherein the primary AS initialization segment includes information indicating: (1) a single initialization segment in the adaptation layer, and (2) sets of V-PCC sequence parameters for all representations of the primary AS. 4. Узел сети по п. 1, в котором основной AS включает в себя информацию, указывающую сегмент инициализации для каждого из множества представлений PC,4. The network node of claim. 1, wherein the main AS includes information indicating an initialization segment for each of the plurality of PC representations, причем каждый сегмент инициализации, который соответствует представлению PC, включает в себя набор параметров последовательности V-PCC для этого представления.wherein each initialization segment that corresponds to a PC representation includes a set of V-PCC sequence parameters for that representation. 5. Узел сети по п. 1, в котором дескриптор компонента V-PCC включает в себя информацию, указывающую атрибут видеокодека для кодека, используемого для кодирования соответствующего компонента V-PCC.5. The network node of claim 1, wherein the V-PCC component descriptor includes information indicating a video codec attribute for the codec used to encode the corresponding V-PCC component. 6. Узел сети по п. 1, в котором AS включает в себя информацию, указывающую элемент DASH дескриптора роли со значением, указывающим одно из геометрии, карты занятости или атрибута соответствующего компонента.6. The network node of claim 1, wherein the AS includes information indicating a DASH element of the role descriptor with a value indicating one of the geometry, occupancy map, or attribute of the corresponding component. 7. Узел сети по п. 1, в котором информация о дескрипторе компонента V-PCC идентифицирует любой из уровней соответствующего компонента V-PCC или типа атрибута соответствующего компонента V-PPC.7. The network node of claim 1, wherein the V-PCC component descriptor information identifies any of the levels of the corresponding V-PCC component or the attribute type of the corresponding V-PPC component. 8. Узел сети по п. 1, в котором основной AS указывает дескриптор V-PCC для конкретного облака точек, которому соответствует основной AS, и идентификаторы для компонентов наборов AS.8. The network node of claim 1, wherein the primary AS specifies a V-PCC descriptor for the specific point cloud to which the primary AS corresponds, and identifiers for AS set components. 9. Узел сети по п. 8, если данные V-PCC для PC включают в себя более одной версии PC, дополнительно выполненный с возможностью сигнализации каждой версии PC в отдельных основных AS, соответственно содержащих единственное представление, соответствующее версии PC, и соответствующий дескриптор V-PCC, причем все отдельные основные AS, соответствующие отличающимся версиям PC, имеют одинаковое значение для атрибута идентификатора (ID) PC.9. The network node of claim 8, if the PC V-PCC data includes more than one PC version, further configured to signal each PC version to separate primary ASs, respectively containing a single representation corresponding to the PC version and a corresponding V descriptor. -PCC, with all distinct base ASs corresponding to different PC versions having the same value for the PC ID attribute. 10. Узел сети по п. 8, дополнительно выполненный с возможностью сигнализации разных версий PC в качестве разных представлений основного AS,10. The network node according to claim 8, further configured to signal different versions of the PC as different representations of the main AS, причем для каждого представления основного AS присутствует соответствующий дескриптор V-PCC, иwherein for each representation of the base AS, there is a corresponding V-PCC descriptor, and при этом атрибут идентификатора PC отвечает любому из условий: (1) присутствует в каждом представлении и передается с одинаковым значением для всех представлений в основном AS, или (2) опущен.where the PC identifier attribute meets either of the conditions: (1) present in every representation and passed with the same value for all representations in the main AS, or (2) omitted. 11. Узел сети по п. 8, в котором MPD DASH включает в себя информацию о преднаборе, указывающую значение атрибута, включающего в себя идентификатор (ID) основного AS для PC, и идентификаторы, связанные с множеством компонентов наборов AS, соответствующих компонентам PC,11. The network node of claim 8, wherein the MPD DASH includes preset information indicating an attribute value including a base AS identifier (ID) for the PC and identifiers associated with a plurality of AS set components corresponding to the PC components, причем атрибут представляет собой атрибут preselectionComponents,where the attribute is the preselectionComponents attribute, при этом доступна более чем одна версия одного и того же PC,more than one version of the same PC is available, причем каждую из более чем одной версии передают посредством сигнализации в соответствующем элементе PreSelection, иwherein each of more than one version is signaled in the corresponding PreSelection element, and при этом первый идентификатор в списке идентификаторов атрибута preselectionComponents представляет собой идентификатор представления соответствующей одной из более чем одной версии одного и того же PC в основном AS.wherein the first identifier in the list of identifiers of the preselectionComponents attribute is the presentation identifier of the corresponding one of more than one version of the same PC in the main AS. 12. Узел сети по п. 8, в котором основной AS PC включает в себя информацию, указывающую список идентификаторов компонентов AS в атрибуте идентификатора ассоциации, причем значение атрибута типа ассоциации установлено равным 4CC для V-PCC.12. The network node of claim 8, wherein the main PC AS includes information indicating a list of AS component identifiers in an association identifier attribute, with the value of the association type attribute set to 4CC for the V-PCC. 13. Узел сети по п. 8, в котором основной AS PC включает в себя информацию, указывающую список идентификаторов любого из компонентов наборов AS с использованием атрибута идентификатора зависимости.13. The network node of claim 8, wherein the main PC AS includes information indicating a list of identifiers of any of the AS set components using a dependency identifier attribute. 14. Узел сети по п. 1, в котором MPD DASH включает в себя информацию, указывающую по меньшей мере одно из метаданных о геометрии и метаданных об атрибутах для PC.14. The network node of claim 1, wherein the MPD DASH includes information indicative of at least one of geometry metadata and attribute metadata for the PC. 15. Узел сети по п. 14, в котором информация, указывающая метаданные о геометрии, включена в атрибут универсального индикатора ресурса (URI) идентификатора схемы.15. The network node of claim 14, wherein information indicative of geometry metadata is included in a URI attribute of the schema identifier. 16. Узел сети по п. 14, в котором информация, указывающая метаданные об атрибутах, включена в атрибут универсального индикатора ресурса (URI) идентификатора схемы.16. The network node of claim 14, wherein information indicative of attribute metadata is included in a URI attribute of the schema identifier. 17. Способ для потоковой передачи данных (PCD) облака точек (PC) сетевого узла, соответствующих PC, по сети с использованием протокола передачи гипертекста (HTTP), включающий множество компонентов сжатия PC на основе видео (V-PCC), составляющих PC, причем способ включает:17. A method for streaming data (PCD) of a point cloud (PC) of a network node corresponding to a PC over a network using a hypertext transfer protocol (HTTP), including a plurality of video-based PC compression components (V-PCC) constituting a PC, wherein way includes: передачу информации, связанной с PCD PC, в описании представления мультимедиа (MPD) для динамической адаптивной потоковой передачи по HTTP (DASH), при этом MPD DASH включает в себя информацию, указывающую по меньшей мере:transmitting PCD related information in a Media Presentation Description (MPD) for Dynamic Adaptive Streaming over HTTP (DASH), wherein the DASH MPD includes information indicating at least: (1) основной набор адаптации (AS) для облака точек, причем основной AS включает в себя информацию, указывающую по меньшей мере: (i) уникальное значение атрибута кодека, указывающее на то, что основной AS соответствует данным V-PCC, (ii) сегмент инициализации, содержащий по меньшей мере один набор параметров последовательности V-PCC для представления PC, и(1) a basic adaptation set (AS) for the point cloud, the basic AS including information indicating at least: (i) a unique codec attribute value indicating that the basic AS corresponds to the V-PCC data, (ii) an initialization segment containing at least one set of V-PCC sequence parameters for representing the PC, and (2) множество компонентов наборов AS, при этом каждый из множества компонентов AS соответствует одному из множества компонентов V-PCC и включает в себя информацию, указывающую по меньшей мере: (a) дескриптор V-PCC Component, определяющий тип соответствующего компонента V-PCC, и (b) по меньшей мере одно свойство соответствующего компонента V-PCC; и(2) a plurality of AS set components, wherein each of the plurality of AS components corresponds to one of the plurality of V-PCC components and includes information indicating at least: (a) a V-PCC Component descriptor specifying the type of the corresponding V-PCC component , and (b) at least one property of a corresponding V-PCC component; And передачу MPD DASH по сети.transmission of MPD DASH over the network. 18. Способ по п. 17, дополнительно включающий передачу PCD по сети, причем в качестве контейнера мультимедиа для содержимого V-PCC используют базовый формат медиафайлов (ISOBMFF) Международной организации по стандартизации (ISO),18. The method of claim 17, further comprising transmitting the PCD over the network, wherein the media container for the V-PCC content is using an International Organization for Standardization (ISO) Basic Media File Format (ISOBMFF), при этом в сегменте инициализации основного AS контейнер метаданных содержит один или более экземпляров VPCCGroupBox, предоставляющих информацию метаданных, связанную с треками V-PCC.wherein, in the initialization segment of the main AS, the metadata container contains one or more VPCCGroupBox instances providing metadata information associated with V-PCC tracks. 19. Способ по п. 17, в котором сегмент инициализации основного AS включает в себя информацию, указывающую единственный сегмент инициализации на уровне адаптации, причем единственный сегмент инициализации включает в себя наборы параметров последовательности VPCC для всех представлений основного AS.19. The method of claim 17, wherein the base AS initialization segment includes information indicating a single initialization segment in the adaptation layer, the single initialization segment including sets of VPCC sequence parameters for all core AS representations. 20. Способ по п. 17, в котором основной AS включает в себя информацию, указывающую сегмент инициализации для каждого из множества представлений PC,20. The method of claim 17, wherein the base AS includes information indicative of an initialization segment for each of the plurality of PC representations, причем каждый сегмент инициализации, который соответствует представлению PC, включает в себя набор параметров последовательности V-PCC для этого представления.wherein each initialization segment that corresponds to a PC representation includes a set of V-PCC sequence parameters for that representation.
RU2021128499A 2019-03-08 2020-03-06 Methods and device for adaptive point cloud streaming RU2795052C2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US62/815,725 2019-03-08
US62/866,043 2019-06-25
US62/908,630 2019-10-01

Publications (2)

Publication Number Publication Date
RU2021128499A RU2021128499A (en) 2023-03-29
RU2795052C2 true RU2795052C2 (en) 2023-04-28

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016965A1 (en) * 2010-07-13 2012-01-19 Qualcomm Incorporated Video switching for streaming video data
WO2013022540A1 (en) * 2011-08-11 2013-02-14 Qualcomm Incorporated Three-dimensional video with asymmetric spatial resolution
RU2659748C2 (en) * 2013-01-07 2018-07-03 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Syntax and semantics for buffering information to simplify video concatenation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016965A1 (en) * 2010-07-13 2012-01-19 Qualcomm Incorporated Video switching for streaming video data
WO2013022540A1 (en) * 2011-08-11 2013-02-14 Qualcomm Incorporated Three-dimensional video with asymmetric spatial resolution
RU2659748C2 (en) * 2013-01-07 2018-07-03 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Syntax and semantics for buffering information to simplify video concatenation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sebastian Schwarz et al, Emerging MPEG Standards for Point Cloud Compression, IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS, VOL. 9, NO. 1, MARCH 2019, c. 133 - 148, [Найдено 06.03.2023] в Интернет https://ieeexplore.ieee.org/ielx7/5503868/8664408/08571288.pdf?tp=&arnumber=8571288&isnumber=8664408&ref=aHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL2RvY3VtZW50Lzg1NzEyODg=, 09.12.2018, 16 с. *

Similar Documents

Publication Publication Date Title
CN113557741B (en) Method and apparatus for adaptive streaming of point clouds
JP6174139B2 (en) Tile and wavefront parallel processing
TWI633780B (en) Selection of target output layers in high efficiency video coding extensions
JP6545722B2 (en) System and method for selectively signaling different numbers of video signal information syntax structures in a parameter set
US10356448B2 (en) Multi representation edge server with enhanced open-GOP compression
US11438600B2 (en) Immersive media metrics for virtual reality content with multiple viewpoints
JP6800747B2 (en) Improved RTP payload format design
US20120170648A1 (en) Frame splitting in video coding
TWI590651B (en) Streaming adaption based on clean random access (cra) pictures
CN113170201B (en) Method and apparatus for decoding video data
TW201320754A (en) MVC based 3DVC codec supporting inside view motion prediction (IVMP) mode
JP2014513456A (en) Video coding technique for coding dependent pictures after random access
KR101870546B1 (en) Systems and methods for inter-layer rps derivation based on sub-layer reference prediction dependency
JP6701100B2 (en) Recovery point SEI message in multi-layer video codec
US20210006839A1 (en) Picture filtering method and apparatus, and video codec
TW202103496A (en) Simplification of clipping value calculation for adaptive loop filters
JP2021521720A (en) Simplified most probable mode list generation scheme
WO2019189340A1 (en) Encoding device, decoding device, encoding method, and decoding device
RU2795052C2 (en) Methods and device for adaptive point cloud streaming
TW202046733A (en) Methods and apparatus for adaptive streaming of point clouds
Akramullah et al. Video Coding Standards
Arora et al. A Review on Different Video Coding Standards
Smith Receiver-Driven Video Adaptation
JP2024516366A (en) Block Importance Mapping
JP2024513512A (en) Media file generation/reception method and device based on EOS sample group, and media file transmission method