ES2977201T3 - Dispositivo de transmisión de datos de nube de puntos, método de transmisión de datos de nube de puntos, dispositivo de recepción de datos de nube de puntos y método de recepción de datos de nube de puntos - Google Patents
Dispositivo de transmisión de datos de nube de puntos, método de transmisión de datos de nube de puntos, dispositivo de recepción de datos de nube de puntos y método de recepción de datos de nube de puntos Download PDFInfo
- Publication number
- ES2977201T3 ES2977201T3 ES20911869T ES20911869T ES2977201T3 ES 2977201 T3 ES2977201 T3 ES 2977201T3 ES 20911869 T ES20911869 T ES 20911869T ES 20911869 T ES20911869 T ES 20911869T ES 2977201 T3 ES2977201 T3 ES 2977201T3
- Authority
- ES
- Spain
- Prior art keywords
- point cloud
- information
- data
- pcc
- video
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23605—Creation or processing of packetized elementary streams [PES]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/172—Processing image signals image signals comprising non-image signal components, e.g. headers or format information
- H04N13/178—Metadata, e.g. disparity information
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21805—Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23614—Multiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4343—Extraction or processing of packetized elementary streams [PES]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4348—Demultiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Computer And Data Communications (AREA)
Abstract
Un método de transmisión de datos de nube de puntos según realizaciones puede comprender las etapas de: codificar datos de nube de puntos; y transmitir los datos de la nube de puntos. Un método de recepción de datos de nubes de puntos según realizaciones puede comprender las etapas de: recibir datos de nubes de puntos; decodificar los datos de la nube de puntos; y/o representar los datos de la nube de puntos. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Dispositivo de transmisión de datos de nube de puntos, método de transmisión de datos de nube de puntos, dispositivo de recepción de datos de nube de puntos y método de recepción de datos de nube de puntos
Campo técnico
La presente descripción provee un método para proveer contenidos de nube de puntos para proveer a un usuario diversos servicios como, por ejemplo, realidad virtual (VR, por sus siglas en inglés), realidad aumentada (AR, por sus siglas en inglés), realidad mixta (MR, por sus siglas en inglés) y servicios de conducción autónoma.
Antecedentes de la técnica
Una nube de puntos es un conjunto de puntos en un espacio tridimensional (3D). Es difícil generar datos de nube de puntos porque la cantidad de puntos en el espacio 3D es grande.
Se requiere un gran rendimiento para transmitir y recibir datos de una nube de puntos. Por ejemplo, de las publicaciones"Technologies under consideration on carriage of V-PCC data"(128. Reunión MPEG; 20191007 -20191011; GINEBRA, XP030225546) y"Report of 127th Meeting'(127. Reunión MPEG; 20190708 - 20190712; GOTEMBURGO; XP030206763) se conocen tecnologías para el transporte de datos de nubes de puntos.
Descripción
Problema técnico
Un objeto de la presente descripción es proveer un dispositivo de transmisión de datos de nube de puntos, un método de transmisión de datos de nube de puntos, un dispositivo de recepción de datos de nube de puntos y un método de recepción de datos de nube de puntos para transmitir y recibir eficientemente una nube de puntos.
Otro objeto de la presente descripción es proveer un dispositivo de transmisión de datos de nube de puntos, un método de transmisión de datos de nube de puntos, un dispositivo de recepción de datos de nube de puntos y un método de recepción de datos de nube de puntos para abordar la latencia y la complejidad de la codificación/decodificación. Las realizaciones no se limitan a los objetos descritos más arriba, y el alcance de las realizaciones puede ampliarse a otros objetos que las personas con experiencia en la técnica pueden inferir basándose en todo el contenido de la presente descripción.
Solución técnica
Para lograr estos objetos y otras ventajas y según el propósito de la descripción, como se incorpora y se describe ampliamente en la presente memoria, un método para transmitir datos de nube de puntos puede incluir codificar datos de nube de puntos, encapsular los datos de nube de puntos y/o transmitir los datos de nube de puntos como se define en la reivindicación 1. Además, características opcionales se definen en las reivindicaciones dependientes de la reivindicación 1.
En otro aspecto de la presente descripción, un aparato para transmitir datos de nube de puntos puede incluir uno o más componentes configurados para llevar a cabo el método para transmitir datos de nube de puntos según las realizaciones definidas en la reivindicación 5.
En otro aspecto de la presente descripción, un método para recibir datos de nube de puntos puede incluir recibir datos de nube de puntos, desencapsular los datos de nube de puntos y/o decodificar los datos de nube de puntos como se define en la reivindicación 9. Además, las características opcionales se definen en las reivindicaciones dependientes de la reivindicación 9.
En otro aspecto de la presente descripción, un aparato para recibir datos de nube de puntos puede incluir uno o más componentes como se define en la reivindicación 12 configurados para llevar a cabo el método para recibir datos de nube de puntos según las realizaciones.
Efectos ventajosos
El método de transmisión de datos de nube de puntos, el aparato de transmisión de datos de nube de puntos, el método de recepción de datos de nube de puntos y el aparato de recepción de datos de nube de puntos según las realizaciones pueden proveer un servicio de nube de puntos de buena calidad.
El método de transmisión de datos de nube de puntos, el aparato de transmisión de datos de nube de puntos, el método de recepción de datos de nube de puntos y el aparato de recepción de datos de nube de puntos según las realizaciones pueden lograr varios métodos de códec de vídeo.
El método de transmisión de datos de nube de puntos, el aparato de transmisión de datos de nube de puntos, el método de recepción de datos de nube de puntos y el aparato de recepción de datos de nube de puntos según las realizaciones pueden proveer contenido de nube de puntos universal como, por ejemplo, un servicio de conducción autónoma. El aparato de recepción puede acceder y procesar eficientemente un flujo de bits de nube de puntos según una ventana de visualización del usuario.
El aparato de transmisión según las realizaciones puede permitir que un reproductor o similar lleve a cabo un acceso espacial o parcial a un objeto de nube de puntos y/o al contenido de una nube de puntos según una ventana de visualización del usuario. Según las realizaciones, el aparato de transmisión puede proveer la información de vista descrita más arriba, y el aparato de recepción puede llevar a cabo la representación basándose en la información de vista. En consecuencia, el aparato de recepción puede acceder y procesar de manera adaptativa y eficiente el flujo de bits de la nube de puntos según una ventana de visualización del usuario.
Descripción de los dibujos
Los dibujos anexos, que se incluyen para proveer una mayor comprensión de la descripción y se incorporan y constituyen una parte de esta solicitud, ilustran realizaciones de la descripción y, junto con la descripción, sirven para explicar el principio de la descripción. En los dibujos:
la Figura 1 ilustra una estructura a modo de ejemplo de un sistema de transmisión/recepción para proveer contenido de nube de puntos según realizaciones;
la Figura 2 ilustra la captura de datos de nube de puntos según realizaciones;
la Figura 3 ilustra una imagen de textura, geometría y nube de puntos a modo de ejemplo según realizaciones; la Figura 4 ilustra un proceso de codificación de V-PCC a modo de ejemplo según realizaciones;
la Figura 5 ilustra un ejemplo de un plano tangente y un vector normal de una superficie según realizaciones; la Figura 6 ilustra un cuadro delimitador a modo de ejemplo de una nube de puntos según realizaciones; la Figura 7 ilustra un ejemplo de determinación de posiciones de parches individuales en un mapa de ocupación según realizaciones;
la Figura 8 muestra una relación a modo de ejemplo entre los ejes normal, tangente y bitangente según realizaciones;
la Figura 9 muestra una configuración a modo de ejemplo del modo mínimo y del modo máximo de un modo de proyección según realizaciones;
la Figura 10 ilustra un código EDD a modo de ejemplo según realizaciones;
la Figura 11 ilustra un ejemplo de recoloración basado en valores de color de puntos vecinos según realizaciones; la Figura 12 ilustra un ejemplo de relleno de fondopush-pullsegún realizaciones;
la Figura 13 muestra un posible orden transversal a modo de ejemplo para un bloque de 4*4 según realizaciones; la Figura 14 ilustra un mejor orden transversal a modo de ejemplo según realizaciones;
la Figura 15 ilustra un codificador de vídeo/imagen 2D a modo de ejemplo según realizaciones;
la Figura 16 ilustra un proceso de decodificación V-PCC a modo de ejemplo según realizaciones;
la Figura 17 muestra un decodificador de vídeo/imagen 2D a modo de ejemplo según realizaciones;
la Figura 18 es un diagrama de flujo que ilustra el funcionamiento de un dispositivo de transmisión según realizaciones de la presente descripción;
la Figura 19 es un diagrama de flujo que ilustra el funcionamiento de un dispositivo de recepción según realizaciones;
la Figura 20 ilustra una arquitectura a modo de ejemplo para almacenamiento basado en V-PCC y transmisión de datos de nube de puntos según realizaciones;
la Figura 21 es un diagrama de bloques a modo de ejemplo de un dispositivo para almacenar y transmitir datos de nube de puntos según realizaciones;
la Figura 22 es un diagrama de bloques a modo de ejemplo de un dispositivo de recepción de datos de nube de puntos según realizaciones;
la Figura 23 ilustra una estructura a modo de ejemplo que funciona en conexión con métodos/dispositivos de transmisión/recepción de datos de nube de puntos según realizaciones;
la Figura 24 ilustra un flujo de bits V-PCC multipista según realizaciones;
la Figura 25 ilustra un ejemplo de un flujo de bits V-PCC según realizaciones;
la Figura 26 muestra un ejemplo de sintaxis de un encabezado de unidad V-PCC y/o una carga útil de unidad V-PCC según realizaciones;
la Figura 27 ilustra un ejemplo de un subflujo de atlas según realizaciones;
la Figura 28 ilustra datos de nube de puntos en un formato de un archivo ISOBMFF según realizaciones; la Figura 29 muestra una entrada de muestra de V-PCC según realizaciones;
la Figura 30 ilustra las funciones de los parámetros para reconstruir o representar datos de nube de puntos según realizaciones;
la Figura 31 muestra un ejemplo de sintaxis de parámetros para reconstruir o representar datos de nube de puntos según realizaciones;
la Figura 32 muestra un ejemplo de sintaxis de parámetros para reconstruir o representar datos de nube de puntos según realizaciones;
la Figura 33 ilustra las funciones de los parámetros para reconstruir o representar datos de nube de puntos según la invención;
la Figura 34 muestra un ejemplo de sintaxis de parámetros para reconstruir o representar un objeto de datos de nube de puntos según la invención;
la Figura 35 ilustra un ejemplo de una operación de encapsular datos de nube de puntos y metadatos sobre los datos de nube de puntos según realizaciones;
la Figura 36 ilustra un método de transmisión de datos de nube de puntos y/o un método de procesamiento de datos para transmitir datos de nube de puntos según la invención; y
la Figura 37 ilustra un método de recepción de datos de nube de puntos y/o un método de procesamiento de datos para recibir datos de nube de puntos según la invención.
Mejor modo
Ahora se hará referencia en detalle a las realizaciones preferidas de la presente descripción, cuyos ejemplos se ilustran en los dibujos anexos. La descripción detallada, que se proveerá a continuación con referencia a los dibujos anexos, pretende explicar realizaciones a modo de ejemplo de la presente descripción, en lugar de mostrar las únicas realizaciones que pueden implementarse según la presente descripción. La siguiente descripción detallada incluye detalles específicos para proveer una comprensión profunda de la presente descripción. Sin embargo, será evidente para las personas con experiencia en la técnica que la presente descripción se puede practicar sin dichos detalles específicos. Aunque la mayoría de los términos utilizados en la presente descripción se han seleccionado entre los generales ampliamente utilizados en la técnica, el solicitante ha seleccionado arbitrariamente algunos términos y sus significados se explican en detalle en la siguiente descripción según sea necesario. Por lo tanto, la presente descripción debe entenderse basándose en los significados pretendidos de los términos en lugar de sus simples nombres o significados. La Figura 1 ilustra una estructura a modo de ejemplo de un sistema de transmisión/recepción para proveer contenido de nube de puntos según realizaciones.
La presente descripción provee un método para proveer contenido de nube de puntos para proveer a un usuario diversos servicios como, por ejemplo, realidad virtual (VR), realidad aumentada (AR), realidad mixta (MR) y conducción autónoma. El contenido de la nube de puntos según las realizaciones representa datos que representan objetos como puntos, y puede denominarse nube de puntos, datos de nube de puntos, datos de vídeo de nube de puntos, datos de imagen de nube de puntos o similares.
Un dispositivo 10000 de transmisión de datos de nube de puntos según la realización puede incluir un adquirente 10001 de vídeo de nube de puntos, un codificador 10002 de vídeo de nube de puntos, un módulo 10003 de encapsulación de archivos/segmentos y/o un transmisor 10004 (o módulo de comunicación). El dispositivo de transmisión según las realizaciones puede proteger y procesar vídeo de nube de puntos (o contenido de nube de puntos) y transmitirlo. Según las realizaciones, el dispositivo de transmisión puede incluir una estación fija, un sistema transceptor base (BTS, por sus siglas en inglés), una red, un dispositivo y/o sistema de inteligencia artificial (IA), un robot y un dispositivo y/o servidor AR/VR/XR. Según las realizaciones, el dispositivo 10000 de transmisión puede incluir un dispositivo robot, un vehículo, dispositivos AR/VR/XR, un dispositivo portátil, un electrodoméstico, un dispositivo de Internet de las cosas (IoT, por sus siglas en inglés) y un dispositivo/servidor de IA que están configurados para llevar a cabo la comunicación con una estación base y/u otros dispositivos inalámbricos mediante el uso de una tecnología de acceso por radio (p. ej., 5G Nueva RAT (NR), evolución a largo plazo (LTE, por sus siglas en inglés)).
El adquirente 10001 de vídeo de nube de puntos según las realizaciones adquiere un vídeo de nube de puntos a través de un proceso de captura, sintetizado o generación de un vídeo de nube de puntos.
El codificador 10002 de vídeo de nube de puntos según las realizaciones codifica los datos de vídeo de nube de puntos. Según las realizaciones, el codificador 10002 de vídeo de nube de puntos puede denominarse codificador de nube de puntos, codificador de datos de nube de puntos, codificador o similar. La codificación de compresión de nube de puntos según las realizaciones no se limita a la realización descrita anteriormente. El codificador de vídeo de nube de puntos puede generar un flujo de bits que contiene los datos de vídeo de nube de puntos codificados. El flujo de bits puede no solo incluir datos de vídeo de nube de puntos codificados, sino que también puede incluir información de señalización relacionada con la codificación de los datos de vídeo de nube de puntos.
El codificador según las realizaciones puede soportar tanto el esquema de codificación de compresión de nube de puntos basado en geometría (G-PCC, por sus siglas en inglés) como el esquema de codificación de compresión de nube de puntos basado en vídeo (V-PCC, por sus siglas en inglés). Además, el codificador puede codificar una nube de puntos (refiriéndose a datos de nube de puntos o puntos) y/o datos de señalización relacionados con la nube de puntos. La operación específica de codificación según las realizaciones se describirá a continuación.
Según su uso en la presente memoria, el término V-PCC puede significar compresión de nube de puntos basada en vídeo (V-PCC). El término V-PCC puede ser el mismo que codificación visual volumétrica basada en vídeo (V3C). Estos términos pueden utilizarse de forma complementaria.
El módulo 10003 de encapsulación de archivos/segmentos según las realizaciones encapsula los datos de la nube de puntos en forma de un archivo y/o segmento. El método/dispositivo de transmisión de datos de nube de puntos según las realizaciones puede transmitir los datos de la nube de puntos en forma de archivo y/o segmento.
El transmisor 10004 (o módulo de comunicación) según las realizaciones transmite los datos de vídeo de nube de puntos codificados en forma de un flujo de bits. Según las realizaciones, el archivo o segmento puede transmitirse a un dispositivo de recepción en una red o almacenarse en un medio de almacenamiento digital (p. ej., USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc.). El transmisor según las realizaciones es capaz de comunicarse por cable/de forma inalámbrica con el dispositivo de recepción (o el receptor) en una red de 4G, 5G, 6G, etc. Además, el transmisor puede llevar a cabo la operación de procesamiento de datos necesaria según el sistema de red (p. ej., un sistema de red de comunicación 4G, 5G o 6G). El dispositivo de transmisión puede transmitir los datos encapsulados bajo demanda.
Un dispositivo 10005 de recepción de datos de nube de puntos según las realizaciones puede incluir un receptor 10006, un módulo 10007 de desencapsulación de archivos/segmentos, un decodificador 10008 de vídeo de nube de puntos y/o un renderizador 10009. Según las realizaciones, el dispositivo de recepción puede incluir un dispositivo robot, un vehículo, dispositivos AR/VR/XR, un dispositivo portátil, un electrodoméstico, un dispositivo de Internet de las cosas (IoT) y un dispositivo/servidor de IA que están configurados para llevar a cabo la comunicación con una estación base y/u otros dispositivos inalámbricos mediante el uso de una tecnología de acceso por radio (p. ej., 5G Nueva RAT (NR), evolución a largo plazo (LTE)).
El receptor 10006 según las realizaciones recibe un flujo de bits que contiene datos de vídeo de nube de puntos. Según las realizaciones, el receptor 10006 puede transmitir información de retroalimentación al dispositivo 10000 de transmisión de datos de nube de puntos.
El módulo 10007 de desencapsulación de archivos/segmentos desencapsula un archivo y/o un segmento que contiene datos de nube de puntos. El módulo de desencapsulación según las realizaciones puede llevar a cabo un proceso inverso al proceso de encapsulación según las realizaciones.
El decodificador 10007 de vídeo de nube de puntos decodifica los datos de vídeo de nube de puntos recibidos. El decodificador según las realizaciones puede llevar a cabo un proceso inverso de codificación según las realizaciones.
El renderizador 10009 representa los datos de vídeo de la nube de puntos decodificados. Según las realizaciones, el renderizador 10009 puede transmitir la información de retroalimentación obtenida en el lado de recepción al decodificador 10008 de vídeo de nube de puntos. Los datos de vídeo de la nube de puntos según las realizaciones pueden transportar información de retroalimentación al receptor. Según las realizaciones, la información de retroalimentación recibida por el dispositivo de transmisión de nube de puntos se puede proveer al codificador de vídeo de nube de puntos.
Las flechas indicadas por líneas de puntos en el dibujo representan una ruta de transmisión de información de retroalimentación adquirida por el dispositivo 10005 de recepción. La información de retroalimentación es información para reflejar la interactividad con un usuario que consume contenido de nube de puntos e incluye información del usuario (p. ej., información de orientación de la cabeza), información de la ventana de visualización y similares). En particular, cuando el contenido de la nube de puntos es contenido para un servicio (p. ej., servicio de conducción autónoma, etc.) que requiere interacción con un usuario, la información de retroalimentación puede proveerse al lado transmisor del contenido (p. ej., el dispositivo 10000 de transmisión) y/o al proveedor del servicio. Según las realizaciones, la información de retroalimentación puede usarse en el dispositivo 10005 de recepción así como en el dispositivo 10000 de transmisión, y puede no proveerse.
La información de orientación de la cabeza según las realizaciones es información sobre la posición, orientación, ángulo, movimiento y similares de la cabeza de un usuario. El dispositivo 10005 de recepción según las realizaciones puede calcular la información de la ventana de visualización en función de la información de orientación de la cabeza. La información de la ventana de visualización puede ser información sobre una región del vídeo de la nube de puntos que el usuario está viendo. Un punto de vista es un punto donde un usuario está viendo un vídeo de nube de puntos y puede hacer referencia a un punto central de la región de la ventana de visualización. Es decir, la ventana de visualización es una región centrada en el punto de vista, y el tamaño y la forma de la región pueden estar determinados por un campo de visión (FOV, por sus siglas en inglés). En consecuencia, el dispositivo 10005 de recepción puede extraer la información de la ventana de visualización basándose en un FOV vertical u horizontal soportado por el dispositivo además de la información de orientación de la cabeza. Además, el dispositivo 10005 de recepción lleva a cabo un análisis de la mirada para comprobar cómo el usuario consume una nube de puntos, una región que el usuario mira en el vídeo de la nube de puntos, un tiempo de mirada y similares. Según las realizaciones, el dispositivo 10005 de recepción puede transmitir información de retroalimentación que incluye el resultado del análisis de la mirada al dispositivo 10000 de transmisión. La información de retroalimentación según las realizaciones puede adquirirse en el proceso de renderizado y/o visualización. La información de retroalimentación según las realizaciones puede estar asegurada por uno o más sensores incluidos en el dispositivo 10005 de recepción. Además, según las realizaciones, la información de retroalimentación puede estar asegurada por el renderizador 10009 o un elemento externo separado (o dispositivo, componente, etc.). Las líneas de puntos en la Figura 1 representan un proceso de transmisión de la información de retroalimentación asegurada por el renderizador 10009. El sistema que provee el contenido de la nube de puntos puede procesar (codificar/decodificar) datos de la nube de puntos basándose en la información de retroalimentación. En consecuencia, el decodificador 10008 de datos de vídeo de nube de puntos puede llevar a cabo una operación de decodificación basada en la información de retroalimentación. El dispositivo 10005 de recepción puede transmitir la información de retroalimentación al dispositivo de transmisión. El dispositivo de transmisión (o el codificador 10002 de datos de vídeo de nube de puntos) puede llevar a cabo una operación de codificación basada en la información de retroalimentación. En consecuencia, el sistema que provee el contenido de la nube de puntos puede procesar eficientemente los datos necesarios (p. ej., datos de la nube de puntos correspondientes a la posición de la cabeza del usuario) basándose en la información de retroalimentación en lugar de procesar (codificar/decodificar) todos los datos de la nube de puntos, y proveer contenido de la nube de puntos al usuario.
Según las realizaciones, el dispositivo 10000 de transmisión puede denominarse codificador, dispositivo de transmisión, transmisor o similar, y el dispositivo 10004 de recepción puede denominarse decodificador, dispositivo de recepción, receptor o similar.
Los datos de la nube de puntos procesados en el sistema que provee contenido de la nube de puntos de la Figura 1 según las realizaciones (a través de una serie de procesos de adquisición/codificación/transmisión/decodificación/renderización) pueden denominarse datos de contenido de nube de puntos o datos de vídeo de nube de puntos. Según las realizaciones, los datos de contenido de la nube de puntos se pueden usar como un concepto que cubre metadatos o información de señalización relacionada con los datos de la nube de puntos.
Los elementos del sistema que provee contenido de nube de puntos ilustrado en la Figura 1 pueden implementarse mediante hardware, software, un procesador y/o combinaciones de los mismos.
Las realizaciones pueden proveer un método para proveer contenido de nube de puntos para proveer a un usuario diversos servicios como, por ejemplo, realidad virtual (VR), realidad aumentada (AR), realidad mixta (MR) y conducción autónoma.
Para proveer un servicio de contenido de nube de puntos, primero se puede adquirir un vídeo de nube de puntos. El vídeo de nube de puntos adquirido puede transmitirse a través de una serie de procesos, y el lado de recepción puede procesar los datos recibidos nuevamente en el vídeo de nube de puntos original y renderizar el vídeo de nube de puntos procesado. De este modo, se puede proveer al usuario el vídeo de la nube de puntos. Las realizaciones proveen un método para llevar a cabo eficazmente esta serie de procesos.
Todos los procesos para proveer un servicio de contenido de nube de puntos (el método de transmisión de datos de nube de puntos y/o el método de recepción de datos de nube de puntos) pueden incluir un proceso de adquisición, un proceso de codificación, un proceso de transmisión, un proceso de decodificación, un proceso de renderización y/o un proceso de retroalimentación.
Según las realizaciones, el proceso de proveer contenido de nube de puntos (o datos de nube de puntos) puede denominarse proceso de compresión de nube de puntos. Según las realizaciones, el proceso de compresión de nube de puntos puede representar un proceso de compresión de nube de puntos basado en geometría.
Cada elemento del dispositivo de transmisión de datos de nube de puntos y del dispositivo de recepción de datos de nube de puntos según las realizaciones puede ser hardware, software, un procesador y/o una combinación de los mismos.
Para proveer un servicio de contenido de nube de puntos, se puede adquirir un vídeo de nube de puntos. El vídeo de nube de puntos adquirido se transmite a través de una serie de procesos, y el lado de recepción puede procesar los datos recibidos nuevamente en el vídeo de nube de puntos original y renderizar el vídeo de nube de puntos procesado. De este modo, se puede proveer al usuario el vídeo de la nube de puntos. Las realizaciones proveen un método para llevar a cabo eficazmente esta serie de procesos.
Todos los procesos para proveer un servicio de contenido de nube de puntos pueden incluir un proceso de adquisición, un proceso de codificación, un proceso de transmisión, un proceso de decodificación, un proceso de renderización y/o un proceso de retroalimentación.
El sistema de compresión de nube de puntos puede incluir un dispositivo de transmisión y un dispositivo de recepción. El dispositivo de transmisión puede generar un flujo de bits codificando un vídeo de nube de puntos y entregarlo al dispositivo de recepción a través de un medio de almacenamiento digital o una red en forma de un archivo o un flujo (segmento de flujo). El medio de almacenamiento digital puede incluir varios medios de almacenamiento como, por ejemplo, USB, s D, CD, DVD, Blu-ray, HDD y SSD.
El dispositivo de transmisión puede incluir un adquirente de vídeo de nube de puntos, un codificador de vídeo de nube de puntos, un encapsulador de archivos/segmentos y un transmisor. El dispositivo de recepción puede incluir un receptor, un desencapsulador de archivos/segmentos, un decodificador de vídeo de nube de puntos y un renderizador. El codificador puede denominarse codificador de vídeo/imagen/imagen/trama de nube de puntos, y el decodificador puede denominarse dispositivo de decodificación de vídeo/imagen/imagen/trama de nube de puntos. El transmisor puede estar incluido en el codificador de vídeo de nube de puntos. El receptor puede estar incluido en el decodificador de vídeo de nube de puntos. El renderizador puede incluir una pantalla. El renderizador y/o la pantalla pueden configurarse como dispositivos separados o componentes externos. El dispositivo de transmisión y el dispositivo de recepción pueden incluir además un módulo/unidad/componente interno o externo separado para el proceso de retroalimentación.
Según las realizaciones, el funcionamiento del dispositivo de recepción puede ser el proceso inverso del funcionamiento del dispositivo de transmisión.
El adquirente de vídeo de nube de puntos puede llevar a cabo el proceso de adquisición de vídeo de nube de puntos a través de un proceso de captura, composición o generación de vídeo de nube de puntos. En el proceso de adquisición, pueden generarse datos de posiciones 3D (x, y, z)/atributos (color, reflectancia, transparencia, etc.) de múltiples puntos, por ejemplo, un archivo de formato de polígono (PLY) (o el formato de Triángulo de Stanford). Para un vídeo que tiene varias tramas, se pueden adquirir uno o más archivos. Durante el proceso de captura, se pueden generar metadatos relacionados con la nube de puntos (p. ej., metadatos relacionados con la captura).
Un dispositivo de transmisión de datos de nubes de puntos según las realizaciones puede incluir un codificador configurado para codificar datos de nubes de puntos y un transmisor configurado para transmitir los datos de nube de puntos. Los datos pueden transmitirse en forma de un flujo de bits que contiene una nube de puntos.
Un dispositivo de recepción de datos de nube de puntos según las realizaciones puede incluir un receptor configurado para recibir datos de nube de puntos, un decodificador configurado para decodificar los datos de nube de puntos y un renderizador configurado para representar los datos de la nube de puntos.
El método/dispositivo según las realizaciones representa el dispositivo de transmisión de datos de nube de puntos y/o el dispositivo de recepción de datos de nube de puntos.
La Figura 2 ilustra la captura de datos de nube de puntos según las realizaciones.
Los datos de la nube de puntos según las realizaciones pueden adquirirse mediante una cámara o similar. Una técnica de captura según las realizaciones puede incluir, por ejemplo, mirar hacia dentro y/o mirar hacia fuera.
En la orientación hacia dentro según las realizaciones, una o más cámaras orientadas hacia dentro de un objeto de datos de nube de puntos pueden fotografiar el objeto desde fuera del objeto.
En la orientación hacia fuera según las realizaciones, una o más cámaras orientadas hacia fuera de un objeto de datos de nube de puntos pueden fotografiar el objeto. Por ejemplo, según las realizaciones, puede haber cuatro cámaras.
Los datos de la nube de puntos o el contenido de la nube de puntos según las realizaciones pueden ser un vídeo o una imagen fija de un objeto/entorno representado en varios tipos de espacios 3D. Según las realizaciones, el contenido de la nube de puntos puede incluir vídeo/audio/una imagen de un objeto.
Para la captura del contenido de la nube de puntos, se puede configurar una combinación de equipo de cámara (una combinación de un proyector de patrones de infrarrojos y una cámara de infrarrojos) capaz de adquirir profundidad y cámaras RGB capaces de extraer información de color correspondiente a la información de profundidad. Alternativamente, la información de profundidad se puede extraer a través de LiDAR, que utiliza un sistema de radar que mide las coordenadas de ubicación de un reflector emitiendo un pulso láser y midiendo el tiempo de retorno. Se puede extraer una forma de la geometría que consta de puntos en un espacio 3D a partir de la información de profundidad, y se puede extraer un atributo que representa el color/reflectancia de cada punto a partir de la información RGB. El contenido de la nube de puntos puede incluir información sobre las posiciones (x, y, z) y el color (YCbCr o RGB) o la reflectancia (r) de los puntos. Para el contenido de la nube de puntos, se pueden utilizar la técnica orientada hacia fuera para capturar un entorno externo y la técnica orientada hacia dentro para capturar un objeto central. En el entorno VR/AR, cuando un objeto (p. ej., un objeto central como, por ejemplo, un personaje, un jugador, una cosa o un actor) se configura en contenido de nube de puntos que el usuario puede ver en cualquier dirección (360 grados), la configuración de la cámara de captura puede basarse en la técnica orientada hacia dentro. Cuando el entorno circundante actual se configura en contenido de nube de puntos en un modo de vehículo, como, por ejemplo, conducción autónoma, la configuración de la cámara de captura puede basarse en la técnica orientada hacia fuera. Debido a que el contenido de la nube de puntos puede ser capturado por varias cámaras, es posible que sea necesario llevar a cabo un proceso de calibración de la cámara antes de capturar el contenido para configurar un sistema de coordenadas global para las cámaras.
El contenido de la nube de puntos puede ser un vídeo o una imagen fija de un objeto/entorno presentado en varios tipos de espacios 3D.
Además, en el método de adquisición de contenido de nube de puntos, cualquier vídeo de nube de puntos puede componerse basándose en el vídeo de nube de puntos capturado. Alternativamente, cuando se debe proveer un video de nube de puntos para un espacio virtual generado por ordenador, es posible que no se lleve a cabo la captura con una cámara real. En este caso, el proceso de captura puede sustituirse simplemente por un proceso de generación de datos relacionados.
Es posible que sea necesario un posprocesamiento del vídeo de nube de puntos capturado para mejorar la calidad del contenido. En el proceso de captura de video, la profundidad máxima/mínima se puede ajustar dentro de un rango provisto por el equipo de la cámara. Incluso después del ajuste, es posible que todavía estén presentes datos de puntos de un área no deseada. En consecuencia, se puede llevar a cabo un posprocesamiento para eliminar el área no deseada (p. ej., el fondo) o reconocer un espacio conectado y rellenar los agujeros espaciales. Además, las nubes de puntos extraídas de las cámaras que comparten un sistema de coordenadas espaciales pueden integrarse en una sola pieza de contenido mediante el proceso de transformar cada punto en un sistema de coordenadas global basado en las coordenadas de la ubicación de cada cámara adquiridas mediante un proceso de calibración. De este modo, se puede generar una pieza de contenido de nube de puntos que tenga un amplio rango, o se puede adquirir contenido de nube de puntos con una alta densidad de puntos.
El codificador de vídeo de nube de puntos puede codificar el vídeo de nube de puntos de entrada en uno o más flujos de vídeo. Un vídeo puede incluir múltiples tramas, cada una de las cuales puede corresponder a una imagen/imagen fija. En esta memoria descriptiva, un vídeo de nube de puntos puede incluir una imagen/trama/imagen/vídeo/audio de nube de puntos. Además, el término "vídeo de nube de puntos" se puede utilizar de manera intercambiable con una imagen/trama/imagen de nube de puntos. El codificador de vídeo de nube de puntos puede llevar a cabo un procedimiento de compresión de nube de puntos basado en vídeo (V-PCC). El codificador de vídeo de nube de puntos puede llevar a cabo una serie de procedimientos como, por ejemplo, predicción, transformación, cuantificación y codificación de entropía para lograr una compresión y codificación eficientes. Los datos codificados (información de vídeo/imagen codificada) pueden emitirse en forma de un flujo de bits. Basado en el procedimiento V-PCC, el codificador de video de nube de puntos puede codificar video de nube de puntos dividiéndolo en un video de geometría, un video de atributos, un video de mapa de ocupación e información auxiliar, lo cual se describirá más adelante. El vídeo de geometría puede incluir una imagen de geometría, el vídeo de atributos puede incluir una imagen de atributos y el vídeo de mapa de ocupación puede incluir una imagen de mapa de ocupación. La información auxiliar puede incluir información de parche auxiliar. El vídeo/imagen de atributos puede incluir un vídeo/imagen de textura.
El procesador 1003 de encapsulación (módulo de encapsulación de archivos/segmentos) puede encapsular los datos de vídeo de nube de puntos codificados y/o los metadatos relacionados con el vídeo de nube de puntos en forma de, por ejemplo, un archivo. Aquí, los metadatos relacionados con el vídeo de la nube de puntos pueden recibirse del procesador de metadatos. El procesador de metadatos puede incluirse en el codificador de vídeo de nube de puntos o puede configurarse como un componente/módulo separado. El procesador de encapsulación puede encapsular los datos en un formato de archivo como, por ejemplo, ISOBMFF, o procesarlos en forma de segmento DASH o similar. Según una realización, el procesador de encapsulación puede incluir los metadatos relacionados con el vídeo de la nube de puntos en el formato de archivo. Los metadatos de vídeo de la nube de puntos pueden incluirse, por ejemplo, en cajas en varios niveles en el formato de archivo ISOBMFF o como datos en una pista separada dentro del archivo. Según una realización, el procesador de encapsulación puede encapsular los metadatos relacionados con el vídeo de la nube de puntos en un archivo. El procesador de transmisión puede llevar a cabo el procesamiento para la transmisión de los datos de vídeo de la nube de puntos encapsulados según el formato del archivo. El procesador de transmisión puede incluirse en el transmisor o puede configurarse como un componente/módulo separado. El procesador de transmisión puede procesar los datos de vídeo de la nube de puntos según un protocolo de transmisión. El procesamiento para la transmisión puede incluir procesamiento para entrega en una red de transmisión y procesamiento para entrega a través de banda ancha. Según una realización, el procesador de transmisión puede recibir metadatos relacionados con el vídeo de la nube de puntos del procesador de metadatos junto con los datos de vídeo de la nube de puntos, y llevar a cabo el procesamiento de los datos de vídeo de la nube de puntos para su transmisión.
El transmisor 1004 puede transmitir la información o los datos de vídeo/imagen codificados que se emiten en forma de un flujo de bits al receptor del dispositivo de recepción a través de un medio de almacenamiento digital o una red en forma de un archivo o flujo continuo. El medio de almacenamiento digital puede incluir varios medios de almacenamiento como, por ejemplo, USB, SD, CD, DVD, Blu-ray, HDD y SSD. El transmisor puede incluir un elemento para generar un archivo multimedia en un formato de archivo predeterminado, y puede incluir un elemento para la transmisión en una red de transmisión/comunicación. El receptor puede extraer el flujo de bits y transmitir el flujo de bits extraído al dispositivo de decodificación.
El receptor 1003 puede recibir datos de vídeo de nube de puntos transmitidos por el dispositivo de transmisión de vídeo de nube de puntos según la presente descripción. Dependiendo del canal de transmisión, el receptor puede recibir los datos de vídeo de la nube de puntos en una red de transmisión o mediante una banda ancha. Alternativamente, los datos de vídeo de la nube de puntos pueden recibirse a través de un medio de almacenamiento digital.
El procesador de recepción puede procesar los datos de vídeo de nube de puntos recibidos según el protocolo de transmisión. El procesador de recepción puede estar incluido en el receptor o puede configurarse como un componente/módulo separado. El procesador de recepción puede llevar a cabo, de manera inversa, el proceso descrito anteriormente del procesador de transmisión de manera que el procesamiento corresponda al procesamiento para la transmisión llevado a cabo en el lado de transmisión. El procesador de recepción puede entregar los datos de vídeo de la nube de puntos adquiridos al procesador de desencapsulación, y los metadatos relacionados con el vídeo de la nube de puntos adquiridos al analizador de metadatos. Los metadatos relacionados con el vídeo de la nube de puntos adquiridos por el procesador de recepción pueden tomar la forma de una tabla de señalización.
El procesador 10007 de desencapsulación (módulo de desencapsulación de archivos/segmentos) puede desencapsular los datos de vídeo de la nube de puntos recibidos en forma de un archivo del procesador de recepción. El procesador de desencapsulación puede desencapsular los archivos según ISOBMFF o similar, y puede adquirir un flujo de bits de vídeo de nube de puntos o metadatos relacionados con vídeo de nube de puntos (un flujo de bits de metadatos). El flujo de bits de vídeo de nube de puntos adquirido puede entregarse al decodificador de vídeo de nube de puntos, y los metadatos relacionados con el vídeo de nube de puntos adquiridos (flujo de bits de metadatos) pueden entregarse al procesador de metadatos. El flujo de bits de vídeo de la nube de puntos puede incluir los metadatos (flujo de bits de metadatos). El procesador de metadatos puede incluirse en el descodificador de vídeo de nube de puntos o puede configurarse como un componente/módulo separado. Los metadatos relacionados con el vídeo de la nube de puntos adquiridos por el procesador de desencapsulación pueden tomar la forma de una caja o una pista en el formato de archivo. El procesador de desencapsulación puede recibir metadatos necesarios para la desencapsulación del procesador de metadatos, cuando sea necesario. Los metadatos relacionados con el vídeo de la nube de puntos pueden entregarse al decodificador de vídeo de la nube de puntos y usarse en un procedimiento de decodificación de vídeo de la nube de puntos, o pueden transferirse al renderizador y usarse en un procedimiento de renderización de vídeo de la nube de puntos.
El decodificador de vídeo de nube de puntos puede recibir el flujo de bits y decodificar el vídeo/imagen llevando a cabo una operación correspondiente a la operación del codificador de vídeo de nube de puntos. En este caso, el decodificador de vídeo de nube de puntos puede decodificar el vídeo de nube de puntos dividiéndolo en un vídeo de geometría, un vídeo de atributos, un vídeo de mapa de ocupación e información auxiliar como se describe a continuación. El vídeo de geometría puede incluir una imagen de geometría y el vídeo de atributos puede incluir una imagen de atributos. El vídeo del mapa de ocupación puede incluir una imagen del mapa de ocupación. La información auxiliar puede incluir información de parche auxiliar. El vídeo/imagen de atributos puede incluir un vídeo/imagen de textura.
La geometría 3D puede reconstruirse según la imagen de geometría decodificada, el mapa de ocupación y la información de parche auxiliar, y luego puede someterse a un proceso de suavizado. Se puede reconstruir una imagen/imagen de nube de puntos en color asignando valores de color a la geometría 3D suavizada en función de la imagen de textura. El renderizador puede renderizar la geometría reconstruida y la imagen/imagen de la nube de puntos en color. El vídeo/imagen renderizado se puede mostrar a través de la pantalla. El usuario puede ver todo o parte del resultado renderizado a través de una pantalla VR/AR o una pantalla típica.
El proceso de retroalimentación puede incluir transferir varios tipos de información de retroalimentación que se puede adquirir en el proceso de renderización/visualización al lado de transmisión o al decodificador del lado de recepción. Se puede proveer interactividad a través del proceso de retroalimentación al consumir videos de nubes de puntos. Según una realización, la información de orientación de la cabeza, la información de la ventana de visualización que indica una región actualmente vista por un usuario y similares pueden entregarse al lado de transmisión en el proceso de retroalimentación. Según una realización, el usuario puede interactuar con cosas implementadas en el entorno VR/AR/MR/autoconducción. En este caso, la información relacionada con la interacción puede entregarse al lado de transmisión o a un proveedor de servicios durante el proceso de retroalimentación. Según una realización, se puede omitir el proceso de retroalimentación.
La información de orientación de la cabeza puede representar información sobre la ubicación, ángulo y movimiento de la cabeza de un usuario. Sobre la base de esta información, se puede calcular información sobre una región del vídeo de nube de puntos que ve actualmente el usuario, es decir, información de ventana de visualización.
La información de la ventana de visualización puede ser información sobre una región del vídeo de la nube de puntos que está viendo actualmente el usuario. El análisis de la mirada se puede llevar a cabo utilizando la información de la ventana de visualización para comprobar la forma en que el usuario consume el vídeo de la nube de puntos, una región del vídeo de la nube de puntos que el usuario mira y durante cuánto tiempo el usuario mira la región. El análisis de la mirada se puede llevar a cabo en el lado de recepción y el resultado del análisis se puede entregar al lado de transmisión en un canal de retroalimentación. Un dispositivo como, por ejemplo, una pantalla VR/AR/MR puede extraer una región de ventana de visualización en función de la ubicación/dirección de la cabeza del usuario, el FOV vertical u horizontal soportado por el dispositivo, y similares.
Según una realización, la información de retroalimentación descrita anteriormente no solo puede entregarse al lado de transmisión, sino que también puede consumirse en el lado de recepción. Es decir, los procesos de decodificación y renderización en el lado de recepción se pueden llevar a cabo basándose en la información de retroalimentación antes descrita. Por ejemplo, solo el vídeo de la nube de puntos para la región vista actualmente por el usuario puede decodificarse y renderizarse preferiblemente en función de la información de orientación de la cabeza y/o la información de la ventana de visualización.
Aquí, la ventana de visualización o la región de la ventana de visualización pueden representar una región del vídeo de la nube de puntos que está viendo actualmente el usuario. Un punto de vista es un punto que ve el usuario en el vídeo de la nube de puntos y puede representar un punto central de la región de la ventana de visualización. Es decir, una ventana de visualización es una región alrededor de un punto de vista, y el tamaño y la forma de la región pueden estar determinados por el campo de visión (FOV).
La presente descripción se refiere a la compresión de vídeo de nube de puntos como se describe más arriba. Por ejemplo, los métodos/las realizaciones descritas en la presente descripción se pueden aplicar al estándar de compresión de nubes de puntos o codificación de nubes de puntos (PCC, por sus siglas en inglés) del grupo de expertos en imágenes en movimiento (MPEG, por sus siglas en inglés) o al estándar de codificación de imágenes/vídeo de próxima generación.
Según su uso en la presente memoria, una imagen/trama puede representar generalmente una unidad que representa una imagen en un intervalo de tiempo específico.
Un píxel o un pel puede ser la unidad más pequeña que constituye una imagen. Asimismo, se puede utilizar "muestra" como un término correspondiente a un píxel. Una muestra generalmente puede representar un píxel o un valor de píxel. Puede representar solo un valor de píxel/píxel de un componente luma, solo un valor de píxel/píxel de un componente croma, o solo un valor de píxel/píxel de un componente de profundidad.
Una unidad puede representar una unidad básica de procesamiento de imágenes. La unidad puede incluir al menos una de una región específica de la imagen e información relacionada con la región. La unidad puede usarse de manera intercambiable con términos como, por ejemplo, bloque o área en algunos casos. En un caso general, un bloque MxN puede incluir muestras (o una matriz de muestras) o un conjunto (o matriz) de coeficientes de transformada configurados en M columnas y N filas.
La Figura 3 ilustra un ejemplo de una nube de puntos, una imagen de geometría y una imagen de textura según las realizaciones.
Se puede introducir una nube de puntos según las realizaciones en el proceso de codificación V-PCC de la Figura 4, que se describirá más adelante, para generar una imagen geométrica y una imagen de textura. Según las realizaciones, una nube de puntos puede tener el mismo significado que los datos de la nube de puntos.
Como se muestra en la figura, la parte izquierda muestra una nube de puntos, en donde un objeto se coloca en un espacio 3D y puede representarse mediante un cuadro delimitador o similar. La parte central muestra la geometría y la parte derecha muestra una imagen de textura (imagen sin relleno).
La compresión de nubes de puntos basada en vídeo (V-PCC) según las realizaciones puede proveer un método para comprimir datos de nubes de puntos 3D basándose en un códec de vídeo 2D como, por ejemplo, HEVC o VVC. Los datos e información que se pueden generar en el proceso de compresión V-PCC son los siguientes:
Mapa de ocupación: este es un mapa binario que indica si hay datos en una posición correspondiente en un plano 2D, mediante el uso de un valor de 0 o 1 para dividir los puntos que constituyen una nube de puntos en parches y mapearlos al plano 2D. El mapa de ocupación puede representar una matriz 2D correspondiente a ATLAS, y los valores del mapa de ocupación pueden indicar si cada posición de muestra en el atlas corresponde a un punto 3D. Un atlas es una colección de cuadros delimitadores 2D colocados en una trama rectangular que corresponden a un cuadro delimitador 3D en un espacio 3D en donde se renderizan datos volumétricos y la información relacionada con ellos.
El flujo de bits del atlas es un flujo de bits para una o más tramas de atlas que constituyen un atlas y datos relacionados. La trama del atlas es una matriz rectangular 2D de muestras de atlas sobre las que se proyectan parches.
Una muestra de atlas es una posición de una trama rectangular sobre la cual se proyectan parches asociados al atlas. Una trama de atlas se puede dividir en mosaicos. Un mosaico es una unidad en donde se divide una trama 2D. Es decir, un mosaico es una unidad para dividir la información de señalización de los datos de la nube de puntos llamada atlas. Parche: un conjunto de puntos que constituyen una nube de puntos, que indica que los puntos que pertenecen al mismo parche son adyacentes entre sí en el espacio 3D y se mapean en la misma dirección entre los planos del cuadro delimitador de 6 caras en el proceso de mapeo a una imagen 2D.
Un parche es una unidad en donde se divide un mosaico. El parche es información de señalización sobre la configuración de los datos de la nube de puntos.
El dispositivo de recepción según las realizaciones puede restaurar datos de vídeo de atributos, datos de vídeo de geometría y datos de vídeo de ocupación, que son datos de vídeo reales que tienen el mismo tiempo de presentación, basándose en un atlas (mosaico, parche).
Imagen de geometría: es una imagen en forma de mapa de profundidad que presenta información de posición (geometría) sobre cada punto que constituye una nube de puntos parche por parche. La imagen de geometría puede estar compuesta de valores de píxeles de un canal. La geometría representa un conjunto de coordenadas asociadas a una trama de nube de puntos.
Imagen de textura: es una imagen que representa la información de color de cada punto que constituye una nube de puntos parche por parche. Una imagen de textura puede estar compuesta de valores de píxeles de múltiples canales (p. ej., tres canales de R, G y B). La textura está incluida en un atributo. Según las realizaciones, una textura y/o un atributo pueden interpretarse como el mismo objeto y/o tener una relación inclusiva.
Información de parche auxiliar: indica los metadatos necesarios para reconstruir una nube de puntos con parches individuales. La información de parche auxiliar puede incluir información sobre la posición, el tamaño y similares de un parche en un espacio 2D/3D.
Los datos de la nube de puntos según las realizaciones, por ejemplo, los componentes V-PCC pueden incluir un atlas, un mapa de ocupación, geometría y atributos.
Atlas representa un conjunto de cuadros delimitadores 2D. Pueden ser parches, por ejemplo, parches proyectados sobre una trama rectangular. Atlas puede corresponder a un cuadro delimitador 3D en un espacio 3D y puede representar un subconjunto de una nube de puntos.
Un atributo puede representar un escalador o un vector asociado a cada punto en la nube de puntos. Por ejemplo, los atributos pueden incluir color, reflectancia, superficie normal, marcas de tiempo e identificación del material.
Los datos de la nube de puntos según las realizaciones representan datos PCC según el esquema de compresión de nubes de puntos basado en vídeo (V-PCC). Los datos de la nube de puntos pueden incluir múltiples componentes. Por ejemplo, pueden incluir un mapa de ocupación, un parche, geometría y/o textura.
La Figura 4 ilustra un proceso de codificación V-PCC según las realizaciones.
La figura ilustra un proceso de codificación V-PCC para generar y comprimir un mapa de ocupación, una imagen de geometría, una imagen de textura e información de parche auxiliar. El proceso de codificación V-PCC de la Figura 4 puede ser procesado por el codificador 10002 de vídeo de nube de puntos de la Figura 1. Cada elemento de la Figura 4 puede realizarse mediante software, hardware, procesador y/o una combinación de los mismos.
La generación de parches o el generador 40000 de parches recibe una trama de nube de puntos (que puede tener la forma de un flujo de bits que contiene datos de nube de puntos). El generador 40000 de parches genera un parche a partir de los datos de la nube de puntos. Además, se genera información de parches que incluye información sobre la generación de parches.
El empaquetado de parches o el empaquetador 40001 de parches empaqueta parches para datos de nubes de puntos. Por ejemplo, se pueden empaquetar uno o más parches. Además, el empaquetador de parches genera un mapa de ocupación que contiene información sobre el empaquetado de parches.
La generación de imágenes de geometría o el generador 40002 de imágenes de geometría genera una imagen de geometría basada en los datos de la nube de puntos, parches y/o parches empaquetados. La imagen de geometría se refiere a datos que contienen geometría relacionada con los datos de la nube de puntos.
La generación de imágenes de textura o el generador 40003 de imágenes de textura genera una imagen de textura basada en los datos de la nube de puntos, parches y/o parches empaquetados. Además, la imagen de textura se puede generar además basándose en la geometría suavizada generada mediante el procesamiento de suavizado basado en la información del parche.
El suavizado o suavizador 40004 puede mitigar o eliminar errores contenidos en los datos de la imagen. Por ejemplo, basándose en la imagen de geometría reconstruida parcheada, las partes que pueden causar errores entre los datos pueden filtrarse suavemente para generar una geometría suavizada.
La compresión de información de parche auxiliar o el compresor 40005 de información de parche auxiliar comprime información de parche auxiliar relacionada con la información de parche generada en la generación de parche. Además, la información del parche auxiliar comprimida puede transmitirse al multiplexor. La información del parche auxiliar se puede utilizar en la generación 40002 de imágenes de geometría.
El relleno de imagen o el rellenador 40006, 40007 de imagen puede rellenar la imagen de geometría y la imagen de textura, respectivamente. Los datos de relleno se pueden rellenar con la imagen de geometría y la imagen de textura. La dilatación de grupo o el dilatador 40008 de grupo puede agregar datos a la imagen de textura de manera similar al relleno de imagen. Los datos agregados se pueden insertar en la imagen de textura.
La compresión de vídeo o el compresor 40009, 40010, 40011 de vídeo puede comprimir la imagen de geometría rellena, la imagen de textura rellena y/o el mapa de ocupación, respectivamente. La compresión puede codificar información de geometría, información de textura, información de ocupación y similares.
La compresión de entropía o el compresor 40012 de entropía puede comprimir (p. ej., codificar) el mapa de ocupación basándose en un esquema de entropía.
Según las realizaciones, la compresión de entropía y/o la compresión de vídeo se pueden llevar a cabo, respectivamente, dependiendo de si los datos de la nube de puntos no tienen pérdidas y/o tienen pérdidas.
El multiplexor 40013 multiplexa la imagen de geometría comprimida, la imagen de textura comprimida y el mapa de ocupación comprimido en un flujo de bits.
Las operaciones específicas en los respectivos procesos de la Figura 4 se describen a continuación.
Generación 40000 de parches
El proceso de generación de parches se refiere al proceso de dividir una nube de puntos en parches, que son unidades de mapeo, para mapear la nube de puntos a la imagen 2D. El proceso de generación de parches se puede dividir en tres etapas: cálculo del valor normal, segmentación y segmentación de parches.
El proceso de cálculo del valor normal se describirá en detalle con referencia a la Figura 5.
La Figura 5 ilustra un ejemplo de un plano tangente y un vector normal de una superficie según las realizaciones. La superficie de la Figura 5 se utiliza en el proceso 40000 de generación de parches del proceso de codificación V-PCC de la Figura 4 de la siguiente manera.
Cálculo normal relacionado con la generación de parches:
Cada punto de una nube de puntos tiene su propia dirección, que está representada por un vector 3D llamado vector normal. Mediante el uso de los vecinos de cada punto obtenidos usando un árbol K-D o similar, se puede obtener un plano tangente y un vector normal de cada punto que constituye la superficie de la nube de puntos como se muestra en la figura. El rango de búsqueda aplicado al proceso de búsqueda de vecinos puede ser definido por el usuario. El plano tangente se refiere a un plano que pasa por un punto de la superficie e incluye completamente una línea tangente a la curva de la superficie.
La Figura 6 ilustra un cuadro delimitador a modo de ejemplo de una nube de puntos según las realizaciones.
Un método/dispositivo según las realizaciones, por ejemplo, generación de parches, puede emplear un cuadro delimitador para generar un parche a partir de datos de nube de puntos.
El cuadro delimitador según las realizaciones se refiere a un cuadro de una unidad para dividir datos de nube de puntos basándose en un hexaedro en un espacio 3D.
El cuadro delimitador se puede utilizar en el proceso de proyectar un objeto objetivo de los datos de la nube de puntos en un plano de cada cara plana de un hexaedro en un espacio 3D. El cuadro delimitador puede ser generado y procesado por el adquirente 10000 de vídeo de nube de puntos y el codificador 10002 de vídeo de nube de puntos de la Figura 1. Además, según el cuadro delimitador, se pueden llevar a cabo la generación 40000 de parches, el empaquetado 40001 de parches, la generación 40002 de imágenes de geometría y la generación 40003 de imágenes de texturas del proceso de codificación V-PCC de la Figura 2.
Segmentación relacionada con la generación de parches.
La segmentación se divide en dos procesos: segmentación inicial y segmentación refinada.
El codificador 10002 de nube de puntos según las realizaciones proyecta un punto sobre una cara de un cuadro delimitador. Específicamente, cada punto que constituye una nube de puntos se proyecta sobre una de las seis caras de un cuadro delimitador que rodea la nube de puntos, como se muestra en la figura. La segmentación inicial es un proceso de determinación de una de las caras planas del cuadro delimitador sobre el que se proyectará cada punto, que es un valor normal correspondiente a cada una de las seis caras planas, se define de la siguiente manera: (1,0, 0,0, 0,0), (0,0, 1,0, 0,0), (0,0, 0,0, 1,0), (-1,0, 0,0, 0,0), (0,0, -1,0, 0,0), (0,0, 0,0, -1,0).
Como se muestra en la siguiente ecuación, una cara que produce el valor máximo del producto escalar del vector normal de cada punto, que se obtiene en el proceso de cálculo del valor normal, se determina como un plano de proyección del punto correspondiente. Es decir, un plano cuyo vector normal es más similar a la dirección del vector normal de un punto se determina como el plano de proyección del punto.
El plano determinado puede identificarse mediante un índice de grupo, que es uno de 0 a 5.
La segmentación refinada es un proceso de mejora del plano de proyección de cada punto que constituye la nube de puntos determinada en el proceso de segmentación inicial teniendo en cuenta los planos de proyección de los puntos vecinos. En este proceso, se crea una puntuación normal, que representa el grado de similitud entre el vector normal de cada punto y la normal de cada cara plana del cuadro delimitador que se consideran al determinar el plano de proyección en el proceso de segmentación inicial, y una puntuación suave, que indica el grado de similitud entre el plano de proyección del punto actual y los planos de proyección de puntos vecinos, pueden considerarse juntos. La puntuación suave se puede considerar asignando un peso a la puntuación normal. En este caso, el valor del peso puede ser definido por el usuario. La segmentación refinada se puede llevar a cabo repetidamente y el usuario también puede definir el número de repeticiones.
Segmentación de parches relacionada con la generación de parches
La segmentación de parches es un proceso de dividir toda la nube de puntos en parches, que son conjuntos de puntos vecinos, en función de la información del plano de proyección sobre cada punto que constituye la nube de puntos obtenida en el proceso de segmentación inicial/refinada. La segmentación del parche puede incluir las siguientes etapas:
1) calcular los puntos vecinos de cada punto que constituye la nube de puntos, utilizando el árbol K-D o similar. El número máximo de vecinos puede ser definido por el usuario;
2) cuando los puntos vecinos se proyectan en el mismo plano que el punto actual (cuando tienen el mismo índice de grupo), extraer el punto actual y los puntos vecinos como un parche;
3) calcular los valores de geometría del parche extraído. Los detalles se describen a continuación; y
4) repetir las operaciones 2) a 4) hasta que no quede ningún punto sin extraer.
El mapa de ocupación, la imagen de geometría y la imagen de textura para cada parche, así como el tamaño de cada parche, se determinan mediante el proceso de segmentación de parches.
La Figura 7 ilustra un ejemplo de determinación de posiciones de parches individuales en un mapa de ocupación según las realizaciones.
El codificador 10002 de nube de puntos según las realizaciones puede llevar a cabo el empaquetado de parches y generar un mapa de ocupación.
Empaquetado de parches y generación (40001) de mapa de ocupación
Este es un proceso de determinar las posiciones de parches individuales en una imagen 2D para mapear los parches segmentados a la imagen 2D. El mapa de ocupación, que es una especie de imagen 2D, es un mapa binario que indica si hay datos en una posición correspondiente, utilizando un valor de 0 o 1. El mapa de ocupación se compone de bloques y la resolución de los mismos puede estar determinada por el tamaño del bloque. Por ejemplo, cuando el bloque es de 1*1, se obtiene una resolución a nivel de píxel. El usuario puede determinar el tamaño del bloque de empaquetado de ocupación.
El proceso de determinar las posiciones de parches individuales en el mapa de ocupación se puede configurar de la siguiente manera:
1) establecer todas las posiciones en el mapa de ocupación en 0;
2) colocar un parche en un punto (u, v) que tenga una coordenada horizontal dentro del rango de (0, occupancySizeU - patch.sizeU0) y una coordenada vertical dentro del rango de (0, occupancySizeV - patch.sizeV0) en el plano del mapa de ocupación;
3) establecer un punto (x, y) que tenga una coordenada horizontal dentro del rango de (0, patch.sizeU0) y una coordenada vertical dentro del rango de (0, patch.sizeV0) en el plano del parche como un punto actual;
4) cambiar la posición del punto (x, y) en orden ráster y repetir las operaciones 3) y 4) si el valor de la coordenada (x, y) en el mapa de ocupación del parche es 1 (hay datos en el punto del parche) y el valor de la coordenada (u+x, v+y) en el mapa de ocupación global es 1 (el mapa de ocupación se completa con el parche anterior). En caso contrario, proceder a la operación 6);
5) cambiar la posición de (u, v) en orden ráster y repetir las operaciones 3) a 5);
6) determinar (u, v) como la posición del parche y copiar los datos del mapa de ocupación sobre el parche en la parte correspondiente del mapa de ocupación global; y
7) repetir las operaciones 2) a 7) para el siguiente parche.
occupancySizeU: indica el ancho del mapa de ocupación. La unidad del mismo es el tamaño del bloque de empaquetado de ocupación.
occupancySizeV: indica la altura del mapa de ocupación. La unidad del mismo es el tamaño del bloque de empaquetado de ocupación.
patch.sizeU0: indica el ancho del mapa de ocupación. La unidad del mismo es el tamaño del bloque de empaquetado de ocupación.
patch.sizeV0: indica la altura del mapa de ocupación. La unidad del mismo es el tamaño del bloque de empaquetado de ocupación.
Por ejemplo, como se muestra en la Figura 7, hay una caja correspondiente a un parche que tiene un tamaño de parche en una caja correspondiente a un bloque de tamaño de empaquetado de ocupación, y se puede ubicar un punto (x, y) en la caja.
La Figura 8 muestra una relación a modo de ejemplo entre los ejes normal, tangente y bitangente según las realizaciones.
El codificador 10002 de nube de puntos según las realizaciones puede generar una imagen de geometría. La imagen de geometría se refiere a datos de imagen que incluyen información de geometría sobre una nube de puntos. El proceso de generación de imágenes de geometría puede emplear tres ejes (normal, tangente y bitangente) de un parche en la Figura 8.
Generación (40002) de imágenes de geometría
En este proceso, se determinan los valores de profundidad que constituyen las imágenes de geometría de parches individuales, y se genera la imagen de geometría completa en base a las posiciones de los parches determinadas en el proceso de empaquetado de parches descrito anteriormente. El proceso de determinación de los valores de profundidad que constituyen las imágenes de geometría de parches individuales se puede configurar de la siguiente manera.
1) Calcular los parámetros relacionados con la posición y el tamaño de un parche individual. Los parámetros pueden incluir la siguiente información.
En el proceso de generación del parche anterior se obtiene un índice normal que indica el eje normal. El eje tangente es un eje coincidente con el eje horizontal u de la imagen del parche entre los ejes perpendiculares al eje normal, y el eje bitangente es un eje coincidente con el eje vertical v de la imagen del parche entre los ejes perpendiculares al eje normal. Los tres ejes se pueden expresar como se muestra en la figura.
La Figura 9 muestra una configuración a modo de ejemplo del modo mínimo y del modo máximo de un modo de proyección según las realizaciones.
El codificador 10002 de nube de puntos según las realizaciones puede llevar a cabo una proyección basada en parches para generar una imagen de geometría, y el modo de proyección según las realizaciones incluye un modo mínimo y un modo máximo.
Las coordenadas espaciales 3D de un parche se pueden calcular basándose en el cuadro delimitador del tamaño mínimo que rodea el parche. Por ejemplo, las coordenadas espaciales 3D pueden incluir el valor tangente mínimo del parche (en el eje tangente de desplazamiento 3D del parche), el valor bitangente mínimo del parche (en el eje bitangente de desplazamiento 3D del parche) y el valor normal mínimo del parche (en el eje normal de desplazamiento 3D del parche).
El tamaño 2D de un parche indica los tamaños horizontal y vertical del parche cuando el parche se empaqueta en una imagen 2D. El tamaño horizontal (parche 2d tamaño u) se puede obtener como una diferencia entre los valores tangentes máximo y mínimo del cuadro delimitador, y el tamaño vertical (parche 2d tamaño v) se puede obtener como una diferencia entre los valores bitangentes máximo y mínimo del cuadro delimitador.
2) Determinar un modo de proyección del parche. El modo de proyección puede ser el modo mínimo o el modo máximo. La información de geometría sobre el parche se expresa con un valor de profundidad. Cuando cada punto que constituye el parche se proyecta en la dirección normal del parche, se pueden generar dos capas de imágenes, una imagen construida con el valor de profundidad máximo y una imagen construida con el valor de profundidad mínimo.
En el modo mínimo, al generar las dos capas de imágenes d0 y d1, la profundidad mínima se puede configurar para d0, y la profundidad máxima dentro del espesor de la superficie a partir de la profundidad mínima se puede configurar para d1, como se muestra en la figura.
Por ejemplo, cuando una nube de puntos está ubicada en 2D como se ilustra en la figura, puede haber múltiples parches que incluyen múltiples puntos. Como se muestra en la figura, se indica que los puntos marcados con el mismo estilo de sombra pueden pertenecer al mismo parche. La figura ilustra el proceso de proyectar un parche de puntos marcados con espacios en blanco.
Al proyectar puntos marcados con espacios en blanco hacia la izquierda/derecha, la profundidad se puede incrementar en 1 como 0, 1 ,2,...,6, 7, 8, 9 con respecto al lado izquierdo, y el número para calcular las profundidades de los puntos se puede marcar en el lado derecho.
Se puede aplicar el mismo modo de proyección a todas las nubes de puntos o se pueden aplicar diferentes modos de proyección a respectivas tramas o parches según la definición del usuario. Cuando se aplican diferentes modos de proyección a las respectivas tramas o parches, se puede seleccionar de forma adaptativa un modo de proyección que pueda mejorar la eficiencia de la compresión o minimizar los puntos perdidos.
3) Calcular los valores de profundidad de los puntos individuales.
En el modo mínimo, la imagen d0 se construye con profundidad0, que es un valor obtenido restando el valor normal mínimo del parche (en el eje normal de desplazamiento 3d del parche) calculado en la operación 1) del valor normal mínimo del parche (en el eje normal de desplazamiento 3d del parche) para el valor normal mínimo de cada punto. Si hay otro valor de profundidad dentro del rango entre la profundidad0 y el espesor de la superficie en la misma posición, este valor se establece en profundidad1. De lo contrario, el valor de profundidad0 se asigna a profundidad1. La imagen d1 se construye con el valor de profundidad1.
Por ejemplo, se puede calcular un valor mínimo al determinar la profundidad de los puntos de la imagen d0 (42440 6 0 0 99 0 8 0). Al determinar la profundidad de los puntos de la imagen d1, se puede calcular un valor mayor entre dos o más puntos. Cuando solo esté presente un punto, se podrá calcular el valor del mismo (444466689988 9). En el proceso de codificación y reconstrucción de los puntos del parche, es posible que se pierdan algunos puntos (por ejemplo, en la figura, se han perdido ocho puntos).
En el modo máximo, la imagen d0 se construye con profundidad0, que es un valor obtenido restando el valor normal mínimo del parche (en el eje normal de desplazamiento 3d del parche) calculado en la operación 1) del valor normal mínimo del parche (en el eje normal de desplazamiento 3d del parche) para el valor normal máximo de cada punto. Si hay otro valor de profundidad dentro del rango entre la profundidad0 y el espesor de la superficie en la misma posición, este valor se establece en profundidad1. De lo contrario, el valor de profundidad0 se asigna a profundidad1. La imagen d1 se construye con el valor de profundidad1.
Por ejemplo, se puede calcular un valor máximo al determinar la profundidad de los puntos de d0 (4444666899 8 8 9). Además, al determinar la profundidad de los puntos de d1, se puede calcular un valor menor entre dos o más puntos. Cuando solo está presente un punto, se puede calcular el valor del mismo (424456069908 0). En el proceso de codificación y reconstrucción de los puntos del parche, es posible que se pierdan algunos puntos (por ejemplo, en la figura, se han perdido seis puntos).
La imagen de geometría completa se puede generar colocando las imágenes de geometría de los parches individuales generados a través de los procesos descritos anteriormente sobre la imagen de geometría completa en base a la información de posición del parche determinada en el proceso de empaquetado de parches.
La capa d1 de la imagen de geometría completa generada se puede codificar utilizando varios métodos. Un primer método (método d1 absoluto) consiste en codificar los valores de profundidad de la imagen d1 generada previamente. Un segundo método (método diferencial) consiste en codificar una diferencia entre los valores de profundidad de la imagen d1 generada previamente y los valores de profundidad de la imagen d0.
En el método de codificación que utiliza los valores de profundidad de las dos capas, d0 y d i como se describe anteriormente, si hay otro punto entre las dos profundidades, la información de geometría sobre el punto se pierde en el proceso de codificación y, por lo tanto, un código de profundidad delta mejorada (EDD, por sus siglas en inglés) se puede utilizar para codificación sin pérdidas.
En lo sucesivo, el código EDD se describirá en detalle con referencia a la Figura 10.
La Figura 10 ilustra un código EDD a modo de ejemplo según las realizaciones.
En algunos/todos los procesos del codificador 10002 de nube de puntos y/o codificación V-PCC (p. ej., compresión 40009 de vídeo), la información de geometría sobre los puntos puede codificarse basándose en el código EOD. Como se muestra en la figura, el código EDD se utiliza para la codificación binaria de las posiciones de todos los puntos dentro del rango de espesor de superficie, incluido d1. Por ejemplo, en la figura, los puntos incluidos en la segunda columna de la izquierda pueden representarse mediante un código EDD de 0b1001 (=9) porque los puntos están presentes en las posiciones primera y cuarta sobre D0 y las posiciones segunda y tercera están vacías. Cuando el código EDD se codifica junto con D0 y se transmite, un terminal de recepción puede restaurar la información geométrica sobre todos los puntos sin pérdida.
Por ejemplo, cuando hay un punto presente por encima de un punto de referencia, el valor es 1. Cuando no hay ningún punto, el valor es 0. Por tanto, el código puede expresarse basándose en 4 bits.
Suavizado (40004)
El suavizado es una operación para eliminar la discontinuidad que puede ocurrir en el límite del parche debido al deterioro de la calidad de la imagen que ocurre durante el proceso de compresión. El suavizado se puede llevar a cabo mediante el codificador de nube de puntos o un suavizador:
1) reconstruir la nube de puntos a partir de la imagen de geometría. Esta operación puede ser la inversa a la generación de imágenes de geometría descrita anteriormente. Por ejemplo, se puede reconstruir el proceso inverso de codificación; 2) calcular los puntos vecinos de cada punto que constituye la nube de puntos reconstruida utilizando el árbol K-D o similar;
3) determinar si cada uno de los puntos está ubicado en el límite del parche. Por ejemplo, cuando hay un punto vecino que tiene un plano de proyección diferente (índice de grupo) del punto actual, se puede determinar que el punto está posicionado en el límite del parche;
4) si hay un punto presente en el límite del parche, mover el punto al centro de masa de los puntos vecinos (ubicado en las coordenadas promedio x, y, z de los puntos vecinos). Es decir, cambiar el valor de la geometría. De lo contrario, mantener el valor de geometría anterior.
La Figura 11 ilustra un ejemplo de recoloración basada en valores de color de puntos vecinos según las realizaciones. El codificador de nube de puntos o el generador 40003 de imágenes de textura según las realizaciones pueden generar una imagen de textura basada en la recoloración.
Generación (40003) de imágenes de textura
El proceso de generación de imágenes de textura, que es similar al proceso de generación de imágenes de geometría descrito anteriormente, incluye generar imágenes de textura de parches individuales y generar una imagen de textura completa disponiendo las imágenes de textura en posiciones determinadas. Sin embargo, en la operación de generar imágenes de textura de parches individuales, se genera una imagen con valores de color (p. ej., valores R, G y B) de los puntos que constituyen una nube de puntos correspondiente a una posición en lugar de los valores de profundidad para la generación de geometría.
Al estimar un valor de color de cada punto que constituye la nube de puntos, se puede utilizar la geometría obtenida previamente mediante el proceso de suavizado. En la nube de puntos suavizada, es posible que las posiciones de algunos puntos se hayan desplazado con respecto a la nube de puntos original y, en consecuencia, puede ser necesario un proceso de recoloración para encontrar colores adecuados para las posiciones cambiadas. La recoloración se puede llevar a cabo utilizando los valores de color de los puntos vecinos. Por ejemplo, como se muestra en la figura, se puede calcular un nuevo valor de color teniendo en cuenta el valor de color del punto vecino más cercano y los valores de color de los puntos vecinos.
Por ejemplo, con referencia a la figura, en la recoloración, se puede calcular un valor de color adecuado para una posición cambiada basándose en el promedio de la información de atributos sobre los puntos originales más cercanos a un punto y/o el promedio de la información de atributos sobre los puntos originales más cercanos al punto.
Las imágenes de textura también se pueden generar en dos capas de t0 y t1, al igual que las imágenes de geometría, que se generan en dos capas de d0 y d1.
Compresión (40005) de información de parche auxiliar
El codificador de nube de puntos o el compresor de información de parche auxiliar según las realizaciones pueden comprimir la información de parche auxiliar (información auxiliar sobre la nube de puntos).
El compresor de información de parche auxiliar comprime la información de parche auxiliar generada en los procesos de generación de parche, empaquetado de parche y generación de geometría descritos anteriormente. La información de parche auxiliar puede incluir los siguientes parámetros:
Índice (índice de grupo) para identificar el plano de proyección (plano normal);
posición espacial 3D de un parche, a saber, el valor tangente mínimo del parche (en el eje tangente de desplazamiento 3d del parche), el valor bitangente mínimo del parche (en el eje bitangente de desplazamiento 3d del parche) y el valor normal mínimo del parche (en el eje normal de desplazamiento 3d del parche);
posición espacial 2D y tamaño del parche, a saber, el tamaño horizontal (parche 2d tamaño u), el tamaño vertical (parche 2d tamaño v), el valor horizontal mínimo (parche 2d desplazamiento u) y el valor vertical mínimo (parche 2d desplazamiento u); e
información de mapeo sobre cada bloque y parche, a saber, un índice candidato (cuando los parches se disponen en orden según la posición espacial 2D y la información de tamaño de los parches, se pueden mapear múltiples parches a un bloque de manera superpuesta. En este caso, los parches mapeados constituyen una lista de candidatos, y el índice de candidatos indica la posición en orden secuencial de un parche cuyos datos están presentes en el bloque), y un índice de parche local (que es un índice que indica uno de los parches presentes en la trama). La Tabla X muestra un pseudocódigo que representa el proceso de coincidencia entre bloques y parches en función de la lista de candidatos y los índices de parches locales.
El número máximo de listas de candidatos puede ser definido por un usuario.
La Figura 12 ilustra el relleno de fondopush-pullsegún las realizaciones.
Relleno de imágenes y dilatación (40006, 40007, 40008) de grupos
El rellenador de imágenes según las realizaciones puede llenar el espacio excepto el área del parche con datos suplementarios sin sentido según la técnica de relleno de fondopush-pull.
El relleno de imágenes es un proceso de llenado del espacio distinto de la región del parche con datos sin sentido para mejorar la eficiencia de la compresión. Para el relleno de imágenes, los valores de píxeles en columnas o filas cercanas a un límite en el parche se pueden copiar para llenar el espacio vacío. Alternativamente, como se muestra en la figura, se puede utilizar un método de relleno de fondopush-pull.Según este método, el espacio vacío se llena con valores de píxeles de una imagen de baja resolución en el proceso de reducir gradualmente la resolución de una imagen sin relleno y aumentar la resolución nuevamente.
La dilatación de grupo es un proceso de llenado de los espacios vacíos de una imagen de geometría y una imagen de textura configuradas en dos capas, d0/d1 y t0/t1, respectivamente. En este proceso, los espacios vacíos de las dos capas calculados mediante el relleno de imagen se rellenan con el promedio de los valores para la misma posición.
La Figura 13 muestra un posible orden transversal a modo de ejemplo para un bloque de 4*4 según las realizaciones.
Compresión (40012, 40011) del mapa de ocupación
El compresor de mapa de ocupación según las realizaciones puede comprimir el mapa de ocupación generado previamente. Específicamente, se pueden utilizar dos métodos, a saber, compresión de vídeo para compresión con pérdida y compresión de entropía para compresión sin pérdida. La compresión de vídeo se describe a continuación.
La compresión de entropía se puede llevar a cabo mediante las siguientes operaciones.
1) Si un bloque que constituye un mapa de ocupación está completamente ocupado, codificar 1 y repetir la misma operación para el siguiente bloque del mapa de ocupación. De lo contrario, codificar 0 y llevar a cabo las operaciones 2) a 5).
2) Determinar el mejor orden transversal para llevar a cabo la codificación de longitud de ejecución en los píxeles ocupados del bloque. La figura muestra cuatro posibles órdenes transversales para un bloque de 4*4.
La Figura 14 ilustra un mejor orden transversal a modo de ejemplo según las realizaciones.
Como se describe anteriormente, el compresor de entropía según las realizaciones puede codificar un bloque según el esquema de orden transversal como se describe anteriormente.
Por ejemplo, de entre los posibles órdenes transversales se selecciona el mejor orden transversal con el número mínimo de ejecuciones y se codifica su índice. La figura ilustra un caso donde se selecciona el tercer orden transversal de la Figura 13. En el caso ilustrado, el número de ejecuciones se puede minimizar a 2 y, por lo tanto, se puede seleccionar el tercer orden transversal como el mejor orden transversal.
3) Codificar el número de ejecuciones. En el ejemplo de la Figura 14, hay dos ejecuciones y, por lo tanto, se codifica 2.
4) Codificar la ocupación de la primera ejecución. En el ejemplo de la Figura 14, 0 está codificado porque la primera ejecución corresponde a píxeles desocupados.
5) Codificar las longitudes de las ejecuciones individuales (tantas como el número de ejecuciones). En el ejemplo de la Figura 14, las longitudes de la primera ejecución y de la segunda ejecución, 6 y 10, están codificadas secuencialmente.
Compresión (40009, 40010, 40011) de vídeo
El compresor de vídeo según las realizaciones codifica una secuencia de una imagen de geometría, una imagen de textura, una imagen de mapa de ocupación y similares generadas en las operaciones descritas anteriormente, usando un códec de vídeo 2D como, por ejemplo, HEVC o VVC.
La Figura 15 ilustra un codificador de vídeo/imagen 2D a modo de ejemplo según las realizaciones.
La figura, que representa una realización a la que se aplica la compresión de vídeo o el compresor 40009, 40010 y 40011 de vídeo descritos anteriormente, es un diagrama de bloques esquemático de un codificador 15000 de vídeo/imagen 2D configurado para codificar una señal de vídeo/imagen. El codificador 15000 de vídeo/imagen 2D puede incluirse en el codificador de vídeo de nube de puntos descrito anteriormente o puede configurarse como un componente interno/externo. Cada componente de la Figura 15 puede corresponder a software, hardware, procesador y/o una combinación de los mismos.
Aquí, la imagen de entrada puede incluir la imagen de geometría, la imagen de textura (imagen de atributo(s)) y la imagen del mapa de ocupación descritas anteriormente. El flujo de bits de salida (a saber, el flujo de bits de vídeo/imagen de nube de puntos) del codificador de vídeo de nube de puntos puede incluir flujos de bits de salida para las respectivas imágenes de entrada (a saber, la imagen de geometría, la imagen de textura (imagen de atributo(s)), imagen del mapa de ocupación, etc.).
Un interpredictor 15090 y un intrapredictor 15100 pueden denominarse conjuntamente predictor. Es decir, el predictor puede incluir el interpredictor 15090 y el intrapredictor 15100. Un transformador 15030, un cuantificador 15040, un cuantificador 15050 inverso y un transformador 15060 inverso pueden incluirse en el procesador residual. El procesador residual puede incluir además un restador 15020. Según una realización, el divisor 15010 de imágenes, el restador 15020, el transformador 15030, el cuantificador 15040, el cuantificador 15050 inverso, el transformador 15060 inverso, el sumador 155, el filtro 15070, el interpredictor 15090, el intrapredictor 15100 y el codificador 15110 de entropía descritos anteriormente pueden configurarse mediante un componente de hardware (p. ej., un codificador o un procesador). Además, la memoria 15080 puede incluir una memoria intermedia de imágenes decodificadas (DPB, por sus siglas en inglés) y puede configurarse mediante un medio de almacenamiento digital.
El divisor 15010 de imágenes puede dividir una imagen (o una imagen o una trama) ingresada en el codificador 15000 en una o más unidades de procesamiento. Por ejemplo, la unidad de procesamiento puede denominarse unidad de codificación (CU, por sus siglas en inglés). En este caso, la CU puede dividirse recursivamente a partir de una unidad de árbol de codificación (CTU, por sus siglas en inglés) o una unidad de codificación más grande (LCU, por sus siglas en inglés) según una estructura de árbol binario de árbol cuádruple (QTBT, por sus siglas en inglés). Por ejemplo, una CU puede dividirse en múltiples CU de menor profundidad según una estructura de árbol cuádruple y/o una estructura de árbol binario. En este caso, por ejemplo, se puede aplicar primero la estructura de árbol cuádruple y después se puede aplicar la estructura de árbol binario. Alternativamente, se puede aplicar primero la estructura de árbol binario. El procedimiento de codificación según la presente descripción se puede llevar a cabo según una CU final que ya no está dividida. En este caso, la LCU puede usarse como la CU final según la eficiencia de codificación según las características de la imagen. Cuando sea necesario, una CU puede dividirse recursivamente en CU de menor profundidad y se puede utilizar una CU del tamaño óptimo como la CU final. Aquí, el procedimiento de codificación puede incluir predicción, transformación y reconstrucción, que se describirán más adelante. Como otro ejemplo, la unidad de procesamiento puede incluir además una unidad de predicción (PU, por sus siglas en inglés) o una unidad de transformada (TU, por sus siglas en inglés). En este caso, la PU y la TU pueden escindirse o particionarse de la CU final descrita más arriba. La PU puede ser una unidad de predicción de muestra, y la TU puede ser una unidad para derivar un coeficiente de transformada y/o una unidad para derivar una señal residual del coeficiente de transformada.
El término "unidad" puede usarse de manera intercambiable con términos como, por ejemplo, bloque o área. En un caso general, un bloque MxN puede representar un conjunto de muestras o coeficientes de transformada configurado en M columnas y N filas. Una muestra generalmente puede representar un píxel o un valor de un píxel, y puede indicar solo un valor de píxel/píxel de un componente luma, o solo un valor de píxel/píxel de un componente croma. "Muestra" puede usarse como un término correspondiente a un píxel o un pel en una imagen.
El codificador 15000 puede generar una señal residual (bloque residual o matriz de muestra residual) restando una señal de predicción (bloque predicho o matriz de muestra predicha) emitida desde el interpredictor 15090 o el intrapredictor 15100 de una señal de imagen de entrada (bloque original o matriz de muestra original), y la señal residual generada se transmite al transformador 15030. En este caso, como se muestra en la figura, la unidad que resta la señal de predicción (bloque predicho o matriz de muestra predicha) de la señal de imagen de entrada (bloque original o matriz de muestra original) en el codificador 15000 puede denominarse restador 15020. El predictor puede llevar a cabo la predicción para un bloque objetivo de procesamiento (en lo sucesivo denominado bloque actual) y generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se aplica intrapredicción o interpredicción sobre una base de bloque actual o CU. Como se describirá más adelante en la descripción de cada modo de predicción, el predictor puede generar varios tipos de información sobre la predicción, como, por ejemplo, información del modo de predicción, y entregar la información generada al codificador 15110 de entropía. La información sobre la predicción puede codificarse y emitirse en forma de flujo de bits por el codificador 15110 de entropía.
El intrapredictor 15100 puede predecir el bloque actual con referencia a las muestras en la imagen actual. Las muestras pueden ubicarse cerca o lejos del bloque actual dependiendo del modo de predicción. En la intrapredicción, los modos de predicción pueden incluir múltiples modos no direccionales y múltiples modos direccionales. Los modos no direccionales pueden incluir, por ejemplo, un modo DC y un modo planar. Los modos direccionales pueden incluir, por ejemplo, 33 modos de predicción direccional o 65 modos de predicción direccional según la finura de las direcciones de predicción. Sin embargo, esto es simplemente un ejemplo y se pueden usar más o menos modos de predicción direccional dependiendo de la configuración. El intrapredictor 15100 puede determinar un modo de predicción que se aplicará al bloque actual, según el modo de predicción aplicado al bloque vecino.
El interpredictor 15090 puede derivar un bloque predicho para el bloque actual según un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en la imagen de referencia. En este caso, para reducir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento se puede predecir por bloque, subbloque o muestra según la correlación en la información de movimiento entre los bloques vecinos y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información sobre una dirección de interpredicción (predicción L0, predicción L1, predicción Bi, etc.). En el caso de interpredicción, los bloques vecinos pueden incluir un bloque vecino espacial, que está presente en la imagen actual, y un bloque vecino temporal, que está presente en la imagen de referencia. La imagen de referencia que incluye el bloque de referencia puede ser igual a o diferente de la imagen de referencia que incluye el bloque vecino temporal. El bloque vecino temporal puede denominarse bloque de referencia colocado o Cu colocada (colCU, por sus siglas en inglés), y la imagen de referencia que incluye el bloque vecino temporal puede denominarse imagen colocada (colPic, por sus siglas en inglés). Por ejemplo, el interpredictor 15090 puede configurar una lista de candidatos de información de movimiento según los bloques vecinos y generar información que indique un candidato a usarse para derivar un vector de movimiento y/o un índice de imagen de referencia del bloque actual. La interpredicción se puede llevar a cabo según varios modos de predicción. Por ejemplo, en un modo de salto y un modo de fusión, el interpredictor 15090 puede usar información de movimiento sobre un bloque vecino como información de movimiento sobre el bloque actual. En el modo de salto, a diferencia del modo de fusión, es posible que la señal residual no se transmita. En un modo de predicción del vector de movimiento (MVP, por sus siglas en inglés), el vector de movimiento de un bloque vecino se puede utilizar como un predictor del vector de movimiento y la diferencia del vector de movimiento se puede señalar para indicar el vector de movimiento del bloque actual.
La señal de predicción generada por el interpredictor 15090 o el intrapredictor 15100 se puede usar para generar una señal de reconstrucción o para generar una señal residual.
El transformador 15030 puede generar coeficientes de transformada aplicando una técnica de transformación a la señal residual. Por ejemplo, la técnica de transformación puede incluir al menos una de transformada de coseno discreta (DCT, por sus siglas en inglés), transformada de seno discreta (DST, por sus siglas en inglés), transformada de Karhunen-Loeve (KLT, por sus siglas en inglés), transformada basada en gráficos (GBT, por sus siglas en inglés) o transformada condicionalmente no lineal (CNT, por sus siglas en inglés). Aquí, GBT se refiere a la transformación obtenida a partir de un gráfico que representa la relación entre píxeles. La CNT se refiere a la transformación obtenida según una señal de predicción generada en base a todos los píxeles previamente reconstruidos. Además, la operación de transformación se puede aplicar a bloques de píxeles que tienen el mismo tamaño de un cuadrado, o se puede aplicar a bloques de un tamaño variable distinto del cuadrado.
El cuantificador 15040 puede cuantificar los coeficientes de transformada y transmitirlos al codificador 15110 de entropía. El codificador 15110 de entropía puede codificar la señal cuantificada (información sobre los coeficientes de transformada cuantificados) y generar un flujo de bits de la señal codificada. La información sobre los coeficientes de transformada cuantificados puede denominarse información residual. El cuantificador 15040 puede reorganizar los coeficientes de transformada cuantificados, que son en forma de bloque, en forma de un vector unidimensional basado en un orden de exploración de coeficientes, y generar información sobre los coeficientes de transformada cuantificados basándose en los coeficientes de transformada cuantificados en la forma del vector unidimensional. El codificador 15110 de entropía puede emplear diversas técnicas de codificación como, por ejemplo, Golomb exponencial, codificación de longitud variable adaptativa al contexto (CAVLC, por sus siglas en inglés) y codificación aritmética binaria adaptativa al contexto (CABAC, por sus siglas en inglés). El codificador 15110 de entropía puede codificar información necesaria para la reconstrucción de vídeo/imagen (p. ej., valores de elementos de sintaxis) junto con o por separado de los coeficientes de transformada cuantificados. La información codificada (p. ej., información de vídeo/imagen codificada) puede transmitirse o almacenarse en forma de un flujo de bits sobre una base de unidad de capa de abstracción de red (NAL, por sus siglas en inglés). El flujo de bits puede transmitirse en una red o puede almacenarse en un medio de almacenamiento digital. Aquí, la red puede incluir una red de transmisión y/o una red de comunicación, y el medio de almacenamiento digital puede incluir varios medios de almacenamiento como, por ejemplo, USB, SD, CD, DVD, Blu-ray, HDD y SSD. Un transmisor (no se muestra) para transmitir la señal emitida desde el codificador 15110 de entropía y/o un almacenamiento (no se muestra) para almacenar la señal pueden configurarse como elementos internos/externos del codificador 15000. Alternativamente, el transmisor puede incluirse en el codificador 15110 de entropía.
Los coeficientes de transformada cuantificados emitidos desde el cuantificador 15040 pueden usarse para generar una señal de predicción. Por ejemplo, se pueden aplicar cuantificación inversa y transformada inversa a los coeficientes de transformada cuantificados a través del cuantificador 15050 inverso y el transformador 15060 inverso para reconstruir la señal residual (bloque residual o muestras residuales). El sumador 155 puede agregar la señal residual reconstruida a la señal de predicción emitida desde el interpredictor 15090 o el intrapredictor 15100. De este modo, se puede generar una señal reconstruida (imagen reconstruida, bloque reconstruido, matriz de muestra reconstruida). Cuando no hay señal residual para un bloque objetivo de procesamiento, como en el caso donde se aplica el modo de salto, el bloque predicho puede usarse como el bloque reconstruido. El sumador 155 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para la intrapredicción del siguiente bloque objetivo de procesamiento en la imagen actual, o puede usarse para la interpredicción de la siguiente imagen mediante filtrado como se describe a continuación.
El filtro 15070 puede mejorar la calidad de la imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 15070 puede generar una imagen reconstruida modificada aplicando diversas técnicas de filtrado a la imagen reconstruida, y la imagen reconstruida modificada puede almacenarse en la memoria 15080, específicamente, la DPB de la memoria 15080. Las diversas técnicas de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, desplazamiento adaptativo de muestra, filtrado de bucle adaptativo y filtrado bilateral. Como se describe a continuación en la descripción de las técnicas de filtrado, el filtro 15070 puede generar varios tipos de información sobre el filtrado y entregar la información generada al codificador 15110 de entropía. La información sobre el filtrado puede codificarse y emitirse en forma de un flujo de bits por el codificador 15110 de entropía.
La imagen reconstruida modificada transmitida a la memoria 15080 puede ser utilizada como imagen de referencia por el interpredictor 15090. Por lo tanto, cuando se aplica la interpredicción, el codificador puede evitar la falta de coincidencia de predicción entre el codificador 15000 y el decodificador y mejorar la eficiencia de codificación.
La DPB de la memoria 15080 puede almacenar la imagen reconstruida modificada para ser utilizada como imagen de referencia por el interpredictor 15090. La memoria 15080 puede almacenar la información de movimiento sobre un bloque del cual se deriva (o codifica) la información de movimiento en la imagen actual y/o la información de movimiento sobre los bloques en una imagen que ya ha sido reconstruida. La información de movimiento almacenada puede entregarse al interpredictor 15090 para ser utilizada como información de movimiento sobre un bloque vecino espacial o información de movimiento sobre un bloque vecino temporal. La memoria 15080 puede almacenar las muestras reconstruidas de los bloques reconstruidos en la imagen actual y entregar las muestras reconstruidas al intrapredictor 15100.
Se puede omitir al menos uno de los procedimientos de predicción, transformada y cuantificación descritos anteriormente. Por ejemplo, para un bloque al que se aplica el modo de codificación de impulsos (PCM, por sus siglas en inglés), se pueden omitir los procedimientos de predicción, transformada y cuantificación, y el valor de la muestra original se puede codificar y generar en forma de un flujo de bits.
La Figura 16 ilustra un proceso de decodificación V-PCC a modo de ejemplo según las realizaciones.
El proceso de decodificación V-PCC o decodificador V-PCC puede seguir el proceso inverso del proceso de codificación (o codificador) V-PCC de la Figura 4. Cada componente en la Figura 16 puede corresponder a software, hardware, un procesador y/o una combinación de los mismos.
El demultiplexor 16000 demultiplexa el flujo de bits comprimido para generar una imagen de textura comprimida, una imagen de geometría comprimida, un mapa de ocupación comprimido e información de parche auxiliar comprimida. La descompresión de vídeo o el descompresor 16001, 16002 de vídeo descomprime (o decodifica) cada una de la imagen de textura comprimida y la imagen de geometría comprimida.
La descompresión del mapa de ocupación o el descompresor 16003 del mapa de ocupación descomprime el mapa de ocupación comprimido.
La descompresión de información de parche auxiliar o el descompresor 16004 de información de parche auxiliar descomprime la información de parche auxiliar.
La reconstrucción de geometría o el reconstructor 16005 de geometría restaura (reconstruye) la información de geometría según la imagen de geometría descomprimida, el mapa de ocupación descomprimido y/o la información de parche auxiliar descomprimida. Por ejemplo, se puede reconstruir la geometría cambiada en el proceso de codificación.
El suavizado o el suavizador 16006 puede aplicar suavizado a la geometría reconstruida. Por ejemplo, se puede aplicar un filtrado de suavizado.
La reconstrucción de textura o el reconstructor 16007 de textura reconstruye la textura a partir de la imagen de textura descomprimida y/o la geometría suavizada.
El suavizado de color o suavizador 16008 de color suaviza los valores de color de la textura reconstruida. Por ejemplo, se puede aplicar un filtrado de suavizado.
Como resultado, se pueden generar datos de nube de puntos reconstruidos.
La figura ilustra un proceso de decodificación de la V-PCC para reconstruir una nube de puntos decodificando el mapa de ocupación comprimido, la imagen de geometría, la imagen de textura y la información de ruta auxiliar. Cada proceso según las realizaciones se opera de la siguiente manera.
Descompresión (1600, 16002) de vídeo
La descompresión de vídeo es un proceso inverso a la compresión de vídeo descrita anteriormente. En la descompresión de vídeo, se utiliza un códec de vídeo 2D como, por ejemplo, HEVC o VVC para decodificar un flujo de bits comprimido que contiene la imagen de geometría, la imagen de textura y la imagen del mapa de ocupación generadas en el proceso descrito anteriormente.
La Figura 17 ilustra un decodificador de vídeo/imagen 2D a modo de ejemplo según las realizaciones.
El decodificador de vídeo/imagen 2D puede seguir el proceso inverso del codificador de vídeo/imagen 2D de la Figura 15.
El decodificador de vídeo/imagen 2D de la Figura 17 es una realización de la descompresión de vídeo o descompresor de vídeo de la Figura 16. La Figura 17 es un diagrama de bloques esquemático de un decodificador 17000 de vídeo/imagen 2D mediante el cual se lleva a cabo la decodificación de una señal de vídeo/imagen. El decodificador 17000 de vídeo/imagen 2D puede incluirse en el decodificador de vídeo de nube de puntos de la Figura 1, o puede configurarse como un componente interno/externo. Cada componente en la Figura 17 puede corresponder a software, hardware, un procesador y/o una combinación de los mismos.
Aquí, el flujo de bits de entrada puede incluir flujos de bits para la imagen de geometría, la imagen de textura (imagen de atributo(s)) y la imagen del mapa de ocupación descritas anteriormente. La imagen reconstruida (o la imagen de salida o la imagen decodificada) puede representar una imagen reconstruida para la imagen de geometría, la imagen de textura (imagen de atributo(s)) y la imagen del mapa de ocupación descritas anteriormente.
Con referencia a la figura, un interpredictor 17070 y un intrapredictor 17080 pueden denominarse conjuntamente predictor. Es decir, el predictor puede incluir el interpredictor 17070 y el intrapredictor 17080. Un cuantificador 17020 inverso y un transformador 17030 inverso pueden denominarse conjuntamente procesador residual. Es decir, el procesador residual puede incluir el cuantificador 17020 inverso y el transformador 17030 inverso. El decodificador 17010 de entropía, el cuantificador 17020 inverso, el transformador 17030 inverso, el sumador 17040, el filtro 17050, el interpredictor 17070 y el intrapredictor 17080 descritos anteriormente pueden configurarse mediante un componente de hardware (p. ej., un decodificador o un procesador) según una realización. Además, la memoria 170 puede incluir una memoria intermedia de imágenes decodificadas (DPB) o puede configurarse mediante un medio de almacenamiento digital.
Cuando se introduce un flujo de bits que contiene información de vídeo/imagen, el decodificador 17000 puede reconstruir una imagen en un proceso correspondiente al proceso en el cual la información de vídeo/imagen es procesada por el codificador de la Figura 1. Por ejemplo, el decodificador 17000 puede llevar a cabo la decodificación usando una unidad de procesamiento aplicada en el codificador. Por consiguiente, la unidad de procesamiento de decodificación puede ser, por ejemplo, una CU. La CU puede dividirse de una CTU o una LCU a lo largo de una estructura de árbol cuádruple y/o una estructura de árbol binario. Luego, la señal de vídeo reconstruida decodificada y emitida a través del decodificador 17000 puede reproducirse a través de un reproductor.
El decodificador 17000 puede recibir una salida de señal del codificador en forma de un flujo de bits, y la señal recibida puede decodificarse a través del decodificador 17010 de entropía. Por ejemplo, el decodificador 17010 de entropía puede analizar el flujo de bits para derivar información (p. ej., información de vídeo/imagen) necesaria para la reconstrucción de la imagen. Por ejemplo, el decodificador 17010 de entropía puede decodificar la información en el flujo de bits basándose en una técnica de codificación como, por ejemplo, codificación exponencial de Golomb, CAVLC o CABAC, valores de salida de elementos de sintaxis necesarios para la reconstrucción de imágenes y valores cuantificados de coeficientes de transformada para el residual. Más específicamente, en la decodificación de entropía CABAC, se puede recibir un contenedor correspondiente a cada elemento de sintaxis en el flujo de bits, y se puede determinar un modelo de contexto basándose en la información del elemento de sintaxis objetivo de decodificación y en la información de decodificación sobre bloques objetivo vecinos y decodificados o información sobre un símbolo/contenedor decodificado en una etapa anterior. Luego, se puede predecir la probabilidad de ocurrencia de un contenedor según el modelo de contexto determinado, y se puede llevar a cabo la decodificación aritmética del contenedor para generar un símbolo correspondiente al valor de cada elemento de sintaxis. Según la decodificación de entropía CABAC, después de determinar un modelo de contexto, el modelo de contexto puede actualizarse en función de la información sobre el símbolo/contenedor decodificado para el modelo de contexto del siguiente símbolo/contenedor. La información sobre la predicción en la información decodificada por el decodificador 17010 de entropía se puede proveer a los predictores (el interpredictor 17070 y el intrapredictor 17080), y los valores residuales sobre los cuales se ha llevado a cabo la decodificación de entropía por el decodificador 17010 de entropía, es decir, los coeficientes de transformada cuantificados y la información de parámetros relacionados se pueden introducir en el cuantificador 17020 inverso. Además, se puede proveer al filtro 17050 información sobre el filtrado de la información decodificada por el decodificador 17010 de entropía. Un receptor (no se muestra) configurado para recibir una salida de señal del codificador puede configurarse además como un elemento interno/externo del decodificador 17000. Alternativamente, el receptor puede ser un componente del decodificador 17010 de entropía.
El cuantificador 17020 inverso puede generar coeficientes de transformada cuantificando inversamente los coeficientes de transformada cuantificados. El cuantificador 17020 inverso puede reorganizar los coeficientes de transformada cuantificados en forma de un bloque bidimensional. En este caso, la reordenación se puede llevar a cabo basándose en el orden de exploración de coeficientes implementado por el codificador. El cuantificador 17020 inverso puede llevar a cabo una cuantificación inversa en los coeficientes de transformada cuantificados usando un parámetro de cuantificación (p. ej., información del tamaño de la etapa de cuantificación) y adquirir coeficientes de transformada.
El transformador 17030 inverso adquiere una señal residual (bloque residual y matriz de muestra residual) transformando inversamente los coeficientes de transformada.
El predictor puede llevar a cabo una predicción en el bloque actual y generar un bloque predicho que incluye muestras de predicción para el bloque actual. El predictor puede determinar si se va a aplicar intrapredicción o interpredicción al bloque actual basándose en la información sobre la salida de predicción del decodificador 17010 de entropía, y puede determinar un modo de intra/interpredicción específico.
El intrapredictor 265 puede predecir el bloque actual con referencia a las muestras en la imagen actual. Las muestras pueden ubicarse cerca o lejos del bloque actual dependiendo del modo de predicción. En la intrapredicción, los modos de predicción pueden incluir múltiples modos no direccionales y múltiples modos direccionales. El intrapredictor 17080 puede determinar un modo de predicción que se aplicará al bloque actual, utilizando el modo de predicción aplicado al bloque vecino.
El interpredictor 17070 puede derivar un bloque predicho para el bloque actual basándose en un bloque de referencia (matriz de muestras de referencia) especificado por un vector de movimiento en la imagen de referencia. En este caso, para reducir la cantidad de información de movimiento transmitida en el modo de interpredicción, la información de movimiento se puede predecir por bloque, subbloque o muestra basándose en la correlación en la información de movimiento entre los bloques vecinos y el bloque actual. La información de movimiento puede incluir un vector de movimiento y un índice de imagen de referencia. La información de movimiento puede incluir además información sobre una dirección de interpredicción (predicción L0, predicción L1, predicción Bi, etc.). En el caso de interpredicción, los bloques vecinos pueden incluir un bloque vecino espacial, que está presente en la imagen actual, y un bloque vecino temporal, que está presente en la imagen de referencia. Por ejemplo, el interpredictor 17070 puede configurar una lista de candidatos de información de movimiento basada en bloques vecinos y derivar un vector de movimiento del bloque actual y/o un índice de imagen de referencia según la información de selección de candidatos recibida. La interpredicción se puede llevar a cabo según varios modos de predicción. La información sobre la predicción puede incluir información que indique un modo de interpredicción para el bloque actual.
El sumador 17040 puede agregar la señal residual adquirida a la señal de predicción (bloque predicho o matriz de muestra de predicción) emitida desde el interpredictor 17070 o el intrapredictor 17080, generando así una señal reconstruida (una imagen reconstruida, un bloque reconstruido o una matriz de muestra reconstruida). Cuando no hay señal residual para un bloque objetivo de procesamiento, como en el caso donde se aplica el modo de salto, el bloque predicho puede usarse como bloque reconstruido.
El sumador 17040 puede denominarse reconstructor o generador de bloques reconstruidos. La señal reconstruida generada puede usarse para la intrapredicción del siguiente bloque objetivo de procesamiento en la imagen actual, o puede usarse para la interpredicción de la siguiente imagen mediante filtrado como se describe a continuación.
El filtro 17050 puede mejorar la calidad de la imagen subjetiva/objetiva aplicando filtrado a la señal reconstruida. Por ejemplo, el filtro 17050 puede generar una imagen reconstruida modificada aplicando diversas técnicas de filtrado a la imagen reconstruida, y puede transmitir la imagen reconstruida modificada a la memoria 250, específicamente, la DPB de la memoria 17060. Las diversas técnicas de filtrado pueden incluir, por ejemplo, filtrado de desbloqueo, desplazamiento adaptativo de muestra, filtrado de bucle adaptativo y filtrado bilateral.
La imagen reconstruida almacenada en la DPB de la memoria 17060 se puede usar como imagen de referencia en el interpredictor 17070. La memoria 17060 puede almacenar la información de movimiento sobre un bloque del cual se deriva (o decodifica) la información de movimiento en la información de movimiento de imagen y/o movimiento actual sobre los bloques en una imagen que ya ha sido reconstruida. La información de movimiento almacenada puede entregarse al interpredictor 17070 para ser utilizada como información de movimiento sobre un bloque vecino espacial o información de movimiento sobre un bloque vecino temporal. La memoria 17060 puede almacenar las muestras reconstruidas de los bloques reconstruidos en la imagen actual y entregar las muestras reconstruidas al intrapredictor 17080.
En la presente divulgación, las realizaciones descritas con respecto al filtro 160, interpredictor 180 e intrapredictor 185 del dispositivo 100 de codificación se pueden aplicar al filtro 17050, interpredictor 17070 e intrapredictor 17080 del decodificador 17000, respectivamente, de la misma manera o de manera correspondiente.
Se puede omitir al menos uno de los procedimientos de predicción, transformada y cuantificación descritos anteriormente. Por ejemplo, para un bloque al que se aplica el modo de codificación de impulsos (PCM), se pueden omitir los procedimientos de predicción, transformada y cuantificación, y se puede usar el valor de una muestra decodificada como muestra de la imagen reconstruida.
Descompresión (16003) del mapa de ocupación
Este es un proceso inverso a la compresión del mapa de ocupación descrita anteriormente. La descompresión del mapa de ocupación es un proceso para reconstruir el mapa de ocupación descomprimiendo el flujo de bits del mapa de ocupación.
Descompresión (16004) de información de parche auxiliar
La información de parche auxiliar puede reconstruirse llevando a cabo el proceso inverso de la compresión de información de parche auxiliar antes mencionada y decodificando el flujo de bits de información de parche auxiliar comprimido.
Reconstrucción (16005) de geometría
Este es un proceso inverso a la generación de imágenes de geometría descrita anteriormente. Inicialmente, se extrae un parche de la imagen de geometría utilizando el mapa de ocupación reconstruido, la información de posición/tamaño 2D sobre el parche incluida en la información del parche auxiliar y la información sobre el mapeo entre un bloque y el parche. Luego, se reconstruye una nube de puntos en un espacio 3D según la imagen de geometría del parche extraído y la información de posición 3D sobre el parche incluida en la información del parche auxiliar. Cuando el valor de geometría correspondiente a un punto (u, v) dentro del parche es g(u, v), y las coordenadas de la posición del parche en los ejes normal, tangente y bitangente del espacio 3D son (-0, s0, r0), --(u , v), s(u, v) y r(u, v), que son las coordenadas normal, tangente y bitangente en el espacio 3D de una posición mapeada al punto ( u, v) puede expresarse de la siguiente manera:
(u, v) = -0 g(u, v);
s(u, v) = sO u;
r(u, v) = rO v.
Suavizado (16006)
El suavizado, que es lo mismo que el suavizado en el proceso de codificación descrito anteriormente, es un proceso para eliminar la discontinuidad que puede ocurrir en el límite del parche debido al deterioro de la calidad de la imagen que ocurre durante el proceso de compresión.
Reconstrucción (16007) de textura
La reconstrucción de textura es un proceso de reconstrucción de una nube de puntos de color asignando valores de color a cada punto que constituye una nube de puntos suavizada. Se puede llevar a cabo asignando valores de color correspondientes a un píxel de la imagen de textura en la misma posición que en la imagen de geometría en el espacio 2D a puntos de un punto de una nube de puntos correspondiente a la misma posición en el espacio 3D, según la información de mapeo sobre la imagen de geometría y la nube de puntos en el proceso de reconstrucción de geometría descrito anteriormente.
Suavizado (16008) de color
El suavizado de color es similar al proceso de suavizado de geometría descrito anteriormente. El suavizado de color es un proceso para eliminar la discontinuidad que puede ocurrir en el límite del parche debido al deterioro de la calidad de la imagen que ocurre durante el proceso de compresión. El suavizado de color se puede llevar a cabo mediante las siguientes operaciones:
1) Calcular los puntos vecinos de cada punto que constituye la nube de puntos reconstruida utilizando el árbol K-D o similar. Se puede utilizar la información de los puntos vecinos calculada en el proceso de suavizado de geometría descrito en la sección 2.5.
2) Determinar si cada uno de los puntos está ubicado en el límite del parche. Estas operaciones se pueden llevar a cabo según la información de límites calculada en el proceso de suavizado de geometría descrito anteriormente. 3) Verificar la distribución de los valores de color para los puntos vecinos de los puntos presentes en el límite y determinar si se debe llevar a cabo el suavizado. Por ejemplo, cuando la entropía de los valores de luminancia es menor que o igual a una entrada local umbral (hay muchos valores de luminancia similares), se puede determinar que la porción correspondiente no es una porción de borde y se puede llevar a cabo el suavizado. Como método de suavizado, el valor de color del punto se puede reemplazar por el promedio de los valores de color de los puntos vecinos.
La Figura 18 es un diagrama de flujo que ilustra el funcionamiento de un dispositivo de transmisión según realizaciones de la presente descripción.
El dispositivo de transmisión según las realizaciones puede corresponder al dispositivo de transmisión de la Figura 1, el proceso de codificación de la Figura 4, y el codificador de vídeo/imagen 2D de la Figura 15, o llevar a cabo algunas/todas las operaciones del mismo. Cada componente del dispositivo de transmisión puede corresponder a software, hardware, un procesador y/o una combinación de los mismos.
Se puede llevar a cabo un proceso de operación del terminal de transmisión para la compresión y transmisión de datos de nube de puntos usando V-PCC como se ilustra en la figura.
El dispositivo de transmisión de datos de nube de puntos según las realizaciones puede denominarse dispositivo de transmisión.
Con respecto al generador 18000 de parches, se genera un parche para el mapeo de imágenes 2D de una nube de puntos. La información de parche auxiliar se genera como resultado de la generación del parche. La información generada puede usarse en los procesos de generación de imágenes de geometría, generación de imágenes de textura y reconstrucción geométrica para el suavizado.
Con respecto al empaquetador 18001 de parches, se lleva a cabo un proceso de empaquetado de parches para mapear los parches generados hacia la imagen 2D. Como resultado del empaquetado de parches, se puede generar un mapa de ocupación. El mapa de ocupación se puede utilizar en los procesos de generación de imágenes de geometría, generación de imágenes de textura y reconstrucción de geometría para el suavizado.
Un generador 18002 de imágenes de geometría genera una imagen de geometría según la información del parche auxiliar y el mapa de ocupación. La imagen de geometría generada se codifica en un flujo de bits mediante codificación de vídeo.
Un preprocesador 18003 de codificación puede incluir un procedimiento de relleno de imágenes. La imagen de geometría regenerada mediante la decodificación de la imagen de geometría generada o el flujo de bits de geometría codificado puede usarse para la reconstrucción de geometría 3D y luego someterse a un proceso de suavizado.
Un generador 18004 de imágenes de textura puede generar una imagen de textura según la geometría 3D (suavizada), la nube de puntos, la información de parche auxiliar y el mapa de ocupación. La imagen de textura generada puede codificarse en un flujo de bits de vídeo.
Un codificador 18005 de metadatos puede codificar la información de parche auxiliar en un flujo de bits de metadatos.
Un codificador 18006 de vídeo puede codificar el mapa de ocupación en un flujo de bits de vídeo.
Un multiplexor 18007 puede multiplexar los flujos de bits de vídeo de la imagen de geometría, la imagen de textura y el mapa de ocupación generados y el flujo de bits de metadatos de la información de parche auxiliar en un flujo de bits.
Un transmisor 18008 puede transmitir el flujo de bits al terminal de recepción. Alternativamente, los flujos de bits de vídeo de la imagen de geometría, la imagen de textura y el mapa de ocupación y el flujo de bits de metadatos generados de la información de parche auxiliar pueden procesarse en un archivo de uno o más datos de seguimiento o encapsularse en segmentos y pueden transmitirse al terminal de recepción a través del transmisor.
La Figura 19 es un diagrama de flujo que ilustra el funcionamiento de un dispositivo de recepción según las realizaciones.
El dispositivo de recepción según las realizaciones puede corresponder al dispositivo de recepción de la Figura 1, el proceso de decodificación de la Figura 16, y el codificador de vídeo/imagen 2D de la Figura 17, o llevar a cabo algunas/todas las operaciones del mismo. Cada componente del dispositivo de recepción puede corresponder a un software, hardware, un procesador y/o una combinación de los mismos.
La operación del terminal de recepción para recibir y reconstruir datos de nubes de puntos usando V-PCC se puede llevar a cabo como se ilustra en la figura. El funcionamiento del terminal de recepción V-PCC puede seguir el proceso inverso del funcionamiento del terminal de transmisión V-PCC de la Figura 18.
El dispositivo de recepción de datos de nube de puntos según las realizaciones puede denominarse dispositivo de recepción.
El flujo de bits de la nube de puntos recibida se demultiplexa en los flujos de bits de vídeo de la imagen de geometría comprimida, la imagen de textura, el mapa de ocupación y el flujo de bits de metadatos de la información de parche auxiliar mediante un demultiplexor 19000 después de la desencapsulación del archivo/segmento. Un decodificador 19001 de vídeo y un decodificador 19002 de metadatos decodifican los flujos de bits de vídeo y el flujo de bits de metadatos demultiplexados. La geometría 3D se reconstruye mediante un reconstructor 19003 de geometría según la imagen de geometría decodificada, el mapa de ocupación y la información de parche auxiliar, y luego se somete a un proceso de suavizado llevado a cabo por un suavizador 19004. Una imagen de nube de puntos en color puede reconstruirse mediante un reconstructor 19005 de textura asignando valores de color a la geometría 3D suavizada según la imagen de textura. A continuación, se puede llevar a cabo adicionalmente un proceso de suavizado de color para mejorar la calidad visual objetiva/subjetiva, y se muestra al usuario una imagen de nube de puntos modificada derivada a través del proceso de suavizado de color a través del proceso de renderización (a través, por ejemplo, del renderizador de nube de puntos). En algunos casos, es posible que se omita el proceso de suavizado del color.
La Figura 20 ilustra una arquitectura a modo de ejemplo para el almacenamiento y la transmisión basados en V-PCC de datos de nubes de puntos según las realizaciones.
Una parte/la totalidad del sistema de la Figura 20 puede incluir algunos o todos los dispositivos de transmisión y recepción de la Figura 1, el proceso de codificación de la Figura 4, el codificador de vídeo/imagen 2D de la Figura 15, el proceso de decodificación de la Figura 16, el dispositivo de transmisión de la Figura 18, y/o el dispositivo de recepción de la Figura 19. Cada componente de la figura puede corresponder a software, hardware, un procesador y/o una combinación de los mismos.
Las Figuras 20 a 22 son diagramas que ilustran una estructura en la cual un sistema está conectado adicionalmente al dispositivo de transmisión y al dispositivo de recepción según las realizaciones. El dispositivo de transmisión y el dispositivo de recepción del sistema según las realizaciones pueden denominarse aparato de transmisión/recepción según las realizaciones.
En el aparato según las realizaciones ilustradas en las Figuras 20 a 22, el dispositivo de transmisión correspondiente a la Figura 18 o similares puede generar un contenedor adecuado para un formato de datos para la transmisión de un flujo de bits que contiene datos de nube de puntos codificados.
El sistema V-PCC según las realizaciones puede crear un contenedor que incluye datos de nube de puntos y además puede agregar datos adicionales necesarios para una transmisión/recepción eficiente al contenedor.
El dispositivo de recepción según las realizaciones puede recibir y analizar el contenedor según el sistema que se muestra en las Figuras 20 a 22. El dispositivo de recepción correspondiente a la Figura 19 o similares puede decodificar y restaurar datos de nube de puntos a partir del flujo de bits analizado.
La figura muestra la arquitectura general para almacenar o transmitir datos de nubes de puntos comprimidos en función de la compresión de nubes de puntos basada en vídeo (V-PCC). El proceso de almacenar y transmitir los datos de la nube de puntos puede incluir un proceso de adquisición, un proceso de codificación, un proceso de transmisión, un proceso de decodificación, un proceso de renderización y/o un proceso de retroalimentación.
Las realizaciones proponen un método para proveer eficazmente medios/contenido/datos de nube de puntos.
Para proveer eficazmente medios/contenido/datos de nube de puntos, un adquirente 20000 de nube de puntos puede adquirir un vídeo de nube de puntos. Por ejemplo, una o más cámaras pueden adquirir datos de nubes de puntos mediante la captura, composición o generación de una nube de puntos. A través de este proceso de adquisición, se puede adquirir un vídeo de nube de puntos que incluye una posición 3D (que puede estar representada por valores de posición x, y, z, etc.) (en adelante, geometría) de cada punto y atributos (color, reflectancia, transparencia, etc.) de cada punto. Por ejemplo, se puede generar un archivo en formato de archivo de polígono (PLY) (o formato de triángulo de Stanford) o similar que contenga el vídeo de la nube de puntos. Para datos de nubes de puntos que tienen múltiples tramas, se pueden adquirir uno o más archivos. En este proceso, se pueden generar metadatos relacionados con la nube de puntos (p. ej., metadatos relacionados con la captura, etc.).
Es posible que sea necesario un posprocesamiento para mejorar la calidad del contenido del vídeo de nube de puntos capturado. En el proceso de captura de vídeo, la profundidad máxima/mínima se puede ajustar dentro del rango provisto por el equipo de la cámara. Incluso después del ajuste, es posible que todavía estén presentes datos de puntos de un área no deseada. En consecuencia, se puede llevar a cabo un posprocesamiento para eliminar el área no deseada (p. ej., el fondo) o reconocer un espacio conectado y rellenar los agujeros espaciales. Además, las nubes de puntos extraídas de las cámaras que comparten un sistema de coordenadas espaciales pueden integrarse en una sola pieza de contenido mediante el proceso de transformar cada punto en un sistema de coordenadas global basado en las coordenadas de la ubicación de cada cámara adquiridas mediante un proceso de calibración. De este modo, se puede adquirir un vídeo de nube de puntos con una alta densidad de puntos.
Un preprocesador 20001 de nube de puntos puede generar una o más imágenes/tramas del vídeo de nube de puntos. Aquí, una imagen/trama puede representar generalmente una unidad que representa una imagen en un intervalo de tiempo específico. Cuando los puntos que constituyen el vídeo de la nube de puntos se dividen en uno o más parches (conjuntos de puntos que constituyen el vídeo de la nube de puntos, en donde los puntos que pertenecen al mismo parche son adyacentes entre sí en el espacio 3D y están mapeados en la misma dirección entre las caras planas de un cuadro delimitador de 6 caras cuando se mapean a una imagen 2D) y se mapean a un plano 2D, una imagen/trama de mapa de ocupación de un mapa binario, que indica la presencia o ausencia de datos en la posición correspondiente en el plano 2D con un valor de 0 o 1 se puede generar. Además, se puede generar una imagen/trama de geometría, que tiene la forma de un mapa de profundidad que representa la información sobre la posición (geometría) de cada punto que constituye el vídeo de nube de puntos parche por parche. Se puede generar una imagen/trama de textura, que representa la información de color sobre cada punto que constituye el vídeo de la nube de puntos, parche por parche. En este proceso, se pueden generar metadatos necesarios para reconstruir la nube de puntos a partir de los parches individuales. Los metadatos pueden incluir información sobre los parches como, por ejemplo, la posición y el tamaño de cada parche en el espacio 2D/3D. Estas imágenes/tramas pueden generarse continuamente en orden temporal para construir un flujo de vídeo o un flujo de metadatos.
Un codificador 20002 de vídeo de nube de puntos puede codificar uno o más flujos de vídeo relacionados con un vídeo de nube de puntos. Un vídeo puede incluir múltiples tramas y una trama puede corresponder a una imagen fija. En la presente descripción, el vídeo de nube de puntos puede incluir una imagen/trama de nube de puntos, y el término "vídeo de nube de puntos" puede usarse de manera intercambiable con el vídeo/trama/imagen de nube de puntos. El codificador de vídeo de nube de puntos puede llevar a cabo un procedimiento de compresión de nube de puntos basado en vídeo (V-PCC). El codificador de vídeo de nube de puntos puede llevar a cabo una serie de procedimientos como, por ejemplo, predicción, transformada, cuantificación y codificación de entropía para lograr una compresión y codificación eficientes. Los datos codificados (información de vídeo/imagen codificada) pueden emitirse en forma de un flujo de bits. Basado en el procedimiento V-PCC, el codificador de vídeo de nube de puntos puede codificar el vídeo de nube de puntos dividiéndolo en un vídeo de geometría, un vídeo de atributos, un vídeo de mapa de ocupación y metadatos, por ejemplo, información sobre parches, como se describe a continuación. El vídeo de geometría puede incluir una imagen de geometría, el vídeo de atributos puede incluir una imagen de atributos y el vídeo de mapa de ocupación puede incluir una imagen de mapa de ocupación. Los datos del parche, que son información auxiliar, pueden incluir información relacionada con el parche. El vídeo/imagen de atributos puede incluir un vídeo/imagen de textura.
Un codificador 20003 de imágenes de nube de puntos puede codificar una o más imágenes relacionadas con un vídeo de nube de puntos. El codificador de imágenes de nubes de puntos puede llevar a cabo un procedimiento de compresión de nubes de puntos basado en vídeo (V-PCC). El codificador de imágenes de nube de puntos puede llevar a cabo una serie de procedimientos como, por ejemplo, predicción, transformada, cuantificación y codificación de entropía para lograr una compresión y codificación eficientes. La imagen codificada puede generarse en forma de flujo de bits. Basado en el procedimiento V-PCC, el codificador de imágenes de nube de puntos puede codificar la imagen de nube de puntos dividiéndola en una imagen de geometría, una imagen de atributos, una imagen de mapa de ocupación y metadatos, por ejemplo, información sobre parches, como se describe a continuación.
El codificador de vídeo de nube de puntos y/o el codificador de imagen de nube de puntos según las realizaciones pueden generar un flujo de bits PCC (flujo de bits G-PCC y/o V-PCC) según las realizaciones.
Según las realizaciones, el codificador 20002 de vídeo, el codificador 20003 de imágenes, la decodificación 20006 de vídeo y la decodificación de imágenes se pueden llevar a cabo mediante un codificador/decodificador como se describe anteriormente, y se pueden llevar a cabo a lo largo de rutas separadas como se muestra en la figura.
En la encapsulación 20004 de archivos/segmentos, los datos codificados de la nube de puntos y/o los metadatos relacionados con la nube de puntos pueden encapsularse en un archivo o segmento para su transmisión. Aquí, los metadatos relacionados con la nube de puntos pueden recibirse del procesador de metadatos o similar. El procesador de metadatos puede incluirse en el codificador de vídeo/imagen de nube de puntos o puede configurarse como un componente/módulo separado. El procesador de encapsulación puede encapsular el vídeo/imagen/metadatos correspondientes en un formato de archivo como, por ejemplo, ISOBMFF, o en la forma de un segmento DASH o similar. Según una realización, el procesador de encapsulación puede incluir los metadatos de la nube de puntos en el formato de archivo. Los metadatos relacionados con la nube de puntos pueden incluirse, por ejemplo, en cuadros en varios niveles en el formato de archivo ISOBMFF o como datos en una pista separada dentro del archivo. Según una realización, el procesador de encapsulación puede encapsular los metadatos relacionados con la nube de puntos en un archivo.
La encapsulación o el encapsulador según las realizaciones puede dividir el flujo de bits G-PCC/V-PCC en una o múltiples pistas y almacenar las mismas en un archivo, y también puede encapsular información de señalización para esta operación. Además, el flujo de atlas incluido en el flujo de bits G-PCC/V-PCC puede almacenarse como una pista en el archivo, y puede almacenarse información de señalización relacionada. Además, un mensaje SEI presente en el flujo de bits G-PCC/V-PCC puede almacenarse en una pista en el archivo y puede almacenarse información de señalización relacionada.
Un procesador de transmisión puede llevar a cabo el procesamiento de los datos de la nube de puntos encapsulados para su transmisión según el formato del archivo. El procesador de transmisión puede incluirse en el transmisor o puede configurarse como un componente/módulo separado. El procesador de transmisión puede procesar los datos de la nube de puntos según un protocolo de transmisión. El procesamiento para la transmisión puede incluir procesamiento para entrega en una red de transmisión y procesamiento para entrega a través de banda ancha. Según una realización, el procesador de transmisión puede recibir metadatos relacionados con la nube de puntos del procesador de metadatos, así como los datos de la nube de puntos, y llevar a cabo el procesamiento de los datos de vídeo de la nube de puntos para su transmisión.
El transmisor puede transmitir un flujo de bits de nube de puntos o un archivo/segmento que incluye el flujo de bits al receptor del dispositivo de recepción a través de un medio de almacenamiento digital o una red. Para la transmisión, se puede llevar a cabo el procesamiento según cualquier protocolo de transmisión. Los datos procesados para su transmisión pueden entregarse en una red de transmisión y/o a través de una banda ancha. Los datos pueden entregarse al lado de recepción bajo demanda. El medio de almacenamiento digital puede incluir varios medios de almacenamiento como, por ejemplo, USB, SD, CD, DVD, Blu-ray, HDD y SSD. El transmisor puede incluir un elemento para generar un archivo multimedia en un formato de archivo predeterminado, y puede incluir un elemento para la transmisión en una red de transmisión/comunicación. El receptor puede extraer el flujo de bits y transmitir el flujo de bits extraído al decodificador.
El receptor puede recibir datos de nubes de puntos transmitidos por el dispositivo de transmisión de datos de nubes de puntos según la presente descripción. Dependiendo del canal de transmisión, el receptor puede recibir los datos de la nube de puntos en una red de transmisión o a través de una banda ancha. Alternativamente, los datos de la nube de puntos pueden recibirse a través del medio de almacenamiento digital. El receptor puede incluir un proceso de decodificación de los datos recibidos y de renderización de los datos según la ventana de visualización del usuario.
El procesador de recepción puede llevar a cabo el procesamiento de los datos de vídeo de la nube de puntos recibidos según el protocolo de transmisión. El procesador de recepción puede estar incluido en el receptor o puede configurarse como un componente/módulo separado. El procesador de recepción puede llevar a cabo de manera inversa el proceso del procesador de transmisión descrito anteriormente para corresponder al procesamiento para la transmisión llevado a cabo en el lado de transmisión. El procesador de recepción puede entregar el vídeo de nube de puntos adquirido a un procesador de desencapsulación y los metadatos relacionados con la nube de puntos adquiridos a un analizador de metadatos.
Un procesador 20005 de desencapsulación (desencapsulación de archivos/segmentos) puede desencapsular los datos de la nube de puntos recibidos en forma de un archivo del procesador de recepción. El procesador de desencapsulación puede desencapsular archivos según ISOBMFF o similar, y puede adquirir un flujo de bits de nube de puntos o metadatos relacionados con la nube de puntos (o un flujo de bits de metadatos separado). El flujo de bits de la nube de puntos adquirido puede entregarse al decodificador de nube de puntos, y los metadatos relacionados con el vídeo de la nube de puntos adquiridos (flujo de bits de metadatos) pueden entregarse al procesador de metadatos. El flujo de bits de la nube de puntos puede incluir los metadatos (flujo de bits de metadatos). El procesador de metadatos puede incluirse en el decodificador de nube de puntos o puede configurarse como un componente/módulo separado. Los metadatos relacionados con el vídeo de la nube de puntos adquiridos por el procesador de desencapsulación pueden tomar la forma de un cuadro o pista en el formato de archivo. El procesador de desencapsulación puede recibir metadatos necesarios para la desencapsulación del procesador de metadatos, cuando sea necesario. Los metadatos relacionados con la nube de puntos pueden entregarse al decodificador de nubes de puntos y usarse en un procedimiento de decodificación de nubes de puntos, o pueden transferirse al renderizador y usarse en un procedimiento de renderización de nubes de puntos.
El decodificador 20006 de vídeo de nube de puntos puede recibir el flujo de bits y decodificar el vídeo/imagen llevando a cabo una operación correspondiente a la operación del codificador de vídeo de nube de puntos. En este caso, el decodificador de vídeo de nube de puntos puede decodificar el vídeo de nube de puntos dividiéndolo en un vídeo de geometría, un vídeo de atributos, un vídeo de mapa de ocupación e información de parche auxiliar como se describe a continuación. El vídeo de geometría puede incluir una imagen de geometría, el vídeo de atributos puede incluir una imagen de atributos y el vídeo de mapa de ocupación puede incluir una imagen de mapa de ocupación. La información auxiliar puede incluir información de parche auxiliar. El vídeo/imagen de atributos puede incluir un vídeo/imagen de textura.
La geometría 3D puede reconstruirse según la imagen de geometría decodificada, el mapa de ocupación y la información de parche auxiliar, y luego puede someterse a un proceso de suavizado. La imagen de la nube de puntos en color se puede reconstruir asignando un valor de color a la geometría 3D suavizada según la imagen de textura. El renderizador puede renderizar la geometría reconstruida y la imagen de la nube de puntos de color. El vídeo/imagen renderizado se puede mostrar a través de la pantalla. Todo o parte del resultado renderizado puede mostrarse al usuario a través de una pantalla VR/AR o una pantalla típica.
Un sensor/rastreador (detección/seguimiento) 20007 adquiere información de orientación y/o información de ventana de visualización del usuario desde el usuario o lado de recepción y entrega la información de orientación y/o la información de ventana de visualización del usuario al receptor y/o al transmisor. La información de orientación puede representar información sobre la posición, ángulo, movimiento, etc. de la cabeza del usuario, o representar información sobre la posición, ángulo, movimiento, etc. de un dispositivo a través del cual el usuario está viendo un vídeo/imagen. En base a esta información, se puede calcular información sobre el área actualmente vista por el usuario en un espacio 3D, es decir, información de ventana de visualización.
La información de la ventana de visualización puede ser información sobre un área en un espacio 3D que el usuario ve actualmente a través de un dispositivo o un HMD. Un dispositivo como, por ejemplo, una pantalla, puede extraer un área de ventana de visualización en función de la información de orientación, un FOV vertical u horizontal admitido por el dispositivo, y similares. La información de orientación o ventana de visualización se puede extraer o calcular en el lado de recepción. La información de orientación o ventana de visualización analizada en el lado de recepción puede transmitirse al lado de transmisión en un canal de retroalimentación.
En base a la información de orientación adquirida por el sensor/rastreador y/o la información de la ventana de visualización que indica el área actualmente vista por el usuario, el receptor puede extraer o decodificar eficientemente solo datos multimedia de un área específica, a saber, el área indicada por la información de orientación y/o la información de la ventana de visualización del archivo. Además, basándose en la información de orientación y/o la información de ventana de visualización adquirida por el sensor/rastreador, el transmisor puede codificar eficientemente solo los datos multimedia del área específica, es decir, el área indicada por la información de orientación y/o la información de ventana de visualización, o generar y transmitir un archivo para ello.
El renderizador puede renderizar los datos de la nube de puntos decodificados en un espacio 3D. El vídeo/imagen renderizado se puede mostrar a través de la pantalla. El usuario puede ver todo o parte del resultado renderizado a través de una pantalla VR/AR o una pantalla típica.
El proceso de retroalimentación puede incluir transferir varios tipos de información de retroalimentación que se puede adquirir en el proceso de renderización/visualización al lado de transmisión o al decodificador del lado receptor. A través del proceso de retroalimentación, se puede proveer interactividad en el consumo de datos de nubes de puntos. Según una realización, la información de orientación de la cabeza, la información de la ventana de visualización que indica un área actualmente vista por un usuario y similares pueden entregarse al lado de transmisión en el proceso de retroalimentación. Según una realización, el usuario puede interactuar con lo que se implementa en el entorno VR/AR/MR/conducción autónoma. En este caso, la información relacionada con la interacción puede entregarse al lado de transmisión o a un proveedor de servicios en el proceso de retroalimentación. Según una realización, se puede omitir el proceso de retroalimentación.
Según una realización, la información de retroalimentación descrita anteriormente no solo puede transmitirse al lado de transmisión, sino que también puede consumirse en el lado de recepción. Es decir, los procesos de procesamiento de desencapsulación, decodificación y renderización en el lado de recepción se pueden llevar a cabo basándose en la información de retroalimentación descrita anteriormente. Por ejemplo, los datos de la nube de puntos sobre el área actualmente vista por el usuario pueden desencapsularse, decodificarse y renderizarse preferiblemente en función de la información de orientación y/o la información de la ventana de visualización.
La Figura 21 es un diagrama de bloques a modo de ejemplo de un dispositivo para almacenar y transmitir datos de nube de puntos según las realizaciones.
La Figura 21 muestra un sistema de nube de puntos según las realizaciones. Una parte/la totalidad del sistema puede incluir algunos o todos los dispositivos de transmisión y recepción de la Figura 1, el proceso de codificación de la Figura 4, el codificador de vídeo/imagen 2D de la Figura 15, el proceso de decodificación de la Figura 16, el dispositivo de transmisión de la Figura 18, y/o el dispositivo de recepción de la Figura 19. Además, puede estar incluido o corresponder a una parte/la totalidad del sistema de la Figura 20.
Un dispositivo de transmisión de datos de nube de puntos según las realizaciones puede configurarse como se muestra en la figura. Cada elemento del dispositivo de transmisión puede ser un módulo/unidad/componente/hardware/software/un procesador.
La geometría, los atributos, los datos auxiliares y los datos de malla de la nube de puntos pueden, cada uno, configurarse como un flujo separado o almacenarse en diferentes pistas en un archivo. Además, pueden incluirse en un segmento separado.
Un adquirente 21000 de nube de puntos (adquisición de nube de puntos) adquiere una nube de puntos. Por ejemplo, una o más cámaras pueden adquirir datos de nubes de puntos mediante la captura, composición o generación de una nube de puntos. A través de este proceso de adquisición, se obtienen datos de la nube de puntos, incluida una posición 3D (que puede estar representada por valores de posición x, y, z, etc.) (en adelante, geometría) de cada punto y se pueden adquirir atributos (color, reflectancia, transparencia, etc.) de cada punto. Por ejemplo, se puede generar un archivo con formato de archivo de polígono (PLY) (o formato de triángulo de Stanford) o similar que incluya los datos de la nube de puntos. Para datos de nubes de puntos que tienen múltiples tramas, se pueden adquirir uno o más archivos. En este proceso, se pueden generar metadatos relacionados con la nube de puntos (p. ej., metadatos relacionados con la captura, etc.).
Un generador 21002 de parches (o generación de parches) genera parches a partir de los datos de la nube de puntos. El generador de parches genera datos de nubes de puntos o vídeos de nubes de puntos como una o más imágenes/tramas. Una imagen/trama generalmente puede representar una unidad que representa una imagen en un intervalo de tiempo específico. Cuando los puntos que constituyen el video de la nube de puntos se dividen en uno o más parches (conjuntos de puntos que constituyen el video de la nube de puntos, en donde los puntos que pertenecen al mismo parche son adyacentes entre sí en el espacio 3D y están mapeados en la misma dirección entre las caras planas de un cuadro delimitador de 6 caras cuando se mapea a una imagen 2D) y se mapean a un plano 2D, una imagen/trama del mapa de ocupación en un mapa binario, que indica la presencia o ausencia de datos en la posición correspondiente en el plano 2D con 0 o 1 se pueden generar. Además, se puede generar una imagen/trama de geometría, que tiene la forma de un mapa de profundidad que representa la información sobre la posición (geometría) de cada punto que constituye el vídeo de nube de puntos parche por parche. Se puede generar una imagen/trama de textura, que representa la información de color sobre cada punto que constituye el vídeo de la nube de puntos, parche por parche. En este proceso, se pueden generar metadatos necesarios para reconstruir la nube de puntos a partir de parches individuales. Los metadatos pueden incluir información sobre los parches, como, por ejemplo, la posición y el tamaño de cada parche en el espacio 2D/3D. Estas imágenes/tramas pueden generarse continuamente en orden temporal para construir un flujo de vídeo o un flujo de metadatos.
Además, los parches se pueden utilizar para mapeo de imágenes 2D. Por ejemplo, los datos de la nube de puntos se pueden proyectar en cada cara de un cubo. Después de la generación de parches, se pueden generar una imagen de geometría, una o más imágenes de atributos, un mapa de ocupación, datos auxiliares y/o datos de malla en base a los parches generados.
La generación de imágenes de geometría, la generación de imágenes de atributos, la generación de mapas de ocupación, la generación de datos auxiliares y/o la generación de datos de malla se llevan a cabo mediante un preprocesador o un controlador.
En la generación 21002 de imágenes de geometría, se genera una imagen de geometría basada en el resultado de la generación del parche. La geometría representa un punto en un espacio 3D. La imagen de geometría se genera utilizando el mapa de ocupación, que incluye información relacionada con el empaquetado de imágenes 2D de los parches, datos auxiliares (datos de parche) y/o datos de malla basados en los parches. La imagen de geometría está relacionada con información como, por ejemplo, una profundidad (p. ej., cerca, lejos) del parche generado después de la generación del parche.
En la generación 21003 de imagen de atributo, se genera una imagen de atributo. Por ejemplo, un atributo puede representar una textura. La textura puede ser un valor de color que coincide con cada punto. Según las realizaciones, se pueden generar imágenes de múltiples atributos (como, por ejemplo, color y reflectancia) (N atributos) que incluyen una textura. Los múltiples atributos pueden incluir información material y reflectancia. Según una realización, los atributos pueden además incluir información que indique un color, que puede variar dependiendo del ángulo de visión y de la luz incluso para la misma textura.
En la generación 21004 de mapas de ocupación, se genera un mapa de ocupación a partir de los parches. El mapa de ocupación incluye información que indica la presencia o ausencia de datos en el píxel, como, por ejemplo, la geometría correspondiente o la imagen de atributo.
En la generación 21005 de datos auxiliares, se generan datos auxiliares que incluyen información sobre los parches. Es decir, los datos auxiliares representan metadatos sobre un parche de un objeto de nube de puntos. Por ejemplo, pueden representar información como, por ejemplo, vectores normales para los parches. Específicamente, los datos auxiliares pueden incluir información necesaria para reconstruir la nube de puntos a partir de los parches (p. ej., información sobre las posiciones, tamaños y similares de los parches en el espacio 2D/3D, e información de identificación del plano de proyección (normal), información sobre el mapeo de parches, etc.).
En la generación 21006 de datos de malla, los datos de malla se generan a partir de los parches. La malla representa la conexión entre puntos vecinos. Por ejemplo, puede representar datos de una forma triangular. Por ejemplo, los datos de la malla se refieren a la conectividad entre los puntos.
Un preprocesador o controlador de nube de puntos genera metadatos relacionados con la generación de parches, la generación de imágenes de geometría, la generación de imágenes de atributos, la generación de mapas de ocupación, la generación de datos auxiliares y la generación de datos de malla.
El dispositivo de transmisión de nube de puntos lleva a cabo la codificación de vídeo y/o codificación de imágenes en respuesta al resultado generado por el preprocesador. El dispositivo de transmisión de nubes de puntos puede generar datos de imágenes de nubes de puntos, así como datos de vídeo de nubes de puntos. Según las realizaciones, los datos de la nube de puntos pueden tener solo datos de video, solo datos de imagen y/o tanto datos de vídeo como datos de imagen.
Un codificador 21007 de vídeo lleva a cabo la compresión de vídeo de geometría, compresión de vídeo de atributos, compresión de mapa de ocupación, compresión de datos auxiliares y/o compresión de datos de malla. El codificador de vídeo genera flujos de vídeo que contienen datos de vídeo codificados.
Específicamente, en la compresión de vídeo de geometría, se codifican datos de vídeo de geometría de nube de puntos. En la compresión de vídeo de atributos, se codifican datos de vídeo de atributos de la nube de puntos. En la compresión de datos auxiliares, se codifican datos auxiliares asociados a los datos de vídeo de la nube de puntos. En la compresión de datos de malla, se codifican datos de malla de los datos de vídeo de la nube de puntos. Las operaciones respectivas del codificador de vídeo de nube de puntos se pueden llevar a cabo en paralelo.
Un codificador 21008 de imágenes lleva a cabo la compresión de imágenes de geometría, compresión de imágenes de atributos, compresión de mapas de ocupación, compresión de datos auxiliares y/o compresión de datos de malla. El codificador de imágenes genera imágenes que contienen datos de imagen codificados.
Específicamente, en la compresión de imágenes de geometría, se codifican los datos de la imagen de geometría de la nube de puntos. En la compresión de imágenes de atributos, se codifican los datos de la imagen de atributos de la nube de puntos. En la compresión de datos auxiliares, se codifican los datos auxiliares asociados a los datos de la imagen de la nube de puntos. En la compresión de datos de malla, se codifican los datos de malla asociados a los datos de imagen de la nube de puntos. Las operaciones respectivas del codificador de imágenes de nube de puntos se pueden llevar a cabo en paralelo.
El codificador de vídeo y/o el codificador de imágenes pueden recibir metadatos del preprocesador. El codificador de vídeo y/o el codificador de imágenes pueden llevar a cabo cada proceso de codificación basándose en los metadatos.
Un encapsulador 21009 de archivos/segmentos (encapsulación de archivos/segmentos) encapsula la(s) secuencia(s) de vídeo y/o la(s) imagen(es) en forma de un archivo y/o segmento. El encapsulador de archivos/segmentos lleva a cabo la encapsulación de pistas de vídeo, la encapsulación de pistas de metadatos y/o la encapsulación de imágenes.
En la encapsulación de pistas de vídeo, se pueden encapsular uno o más flujos de vídeo en una o más pistas.
En la encapsulación de pistas de metadatos, los metadatos relacionados con una secuencia de vídeo y/o una imagen pueden encapsularse en una o más pistas. Los metadatos incluyen datos relacionados con el contenido de los datos de la nube de puntos. Por ejemplo, pueden incluir metadatos de orientación de visualización inicial. Según las realizaciones, los metadatos pueden encapsularse en una pista de metadatos, o pueden encapsularse juntos en una pista de vídeo o una pista de imágenes.
En la encapsulación de imágenes, se pueden encapsular una o más imágenes en una o más pistas o elementos.
Por ejemplo, según las realizaciones, cuando se introducen cuatro flujos de vídeo y dos imágenes en el encapsulador, los cuatro flujos de vídeo y las dos imágenes pueden encapsularse en un archivo.
El codificador de vídeo de nube de puntos y/o el codificador de imagen de nube de puntos según las realizaciones pueden generar un flujo de bits G-PCC/V-PCC según las realizaciones.
El encapsulador de archivos/segmentos puede recibir metadatos del preprocesador. El encapsulador de archivos/segmentos puede llevar a cabo una encapsulación basada en los metadatos.
Un archivo y/o un segmento generado por la encapsulación de archivos/segmentos son transmitidos por el dispositivo de transmisión de nube de puntos o el transmisor. Por ejemplo, los segmentos pueden entregarse basándose en un protocolo basado en DASH.
La encapsulación o el encapsulador según las realizaciones pueden dividir el flujo de bits V-PCC en una o múltiples pistas y almacenar las mismas en un archivo, y también pueden encapsular información de señalización para esta operación. Además, el flujo de atlas incluido en el flujo de bits V-PCC puede almacenarse como una pista en el archivo, y puede almacenarse información de señalización relacionada. Además, un mensaje SEI presente en el flujo de bits V-PCC puede almacenarse en una pista en el archivo y puede almacenarse información de señalización relacionada.
El transmisor puede transmitir un flujo de bits de nube de puntos o un archivo/segmento que incluye el flujo de bits al receptor del dispositivo de recepción a través de un medio de almacenamiento digital o una red. Para la transmisión se puede llevar a cabo el procesamiento según cualquier protocolo de transmisión. Los datos que han sido procesados para su transmisión pueden entregarse en una red de transmisión y/o a través de una banda ancha. Los datos pueden entregarse al lado de recepción bajo demanda. El medio de almacenamiento digital puede incluir varios medios de almacenamiento como, por ejemplo, USB, SD, CD, DVD, Blu-ray, HDD y SSD. El entregador puede incluir un elemento para generar un archivo multimedia en un formato de archivo predeterminado, y puede incluir un elemento para la transmisión en una red de difusión/comunicación. El entregador recibe información de orientación y/o información de ventana de visualización del receptor. El entregador puede entregar la información de orientación y/o la información de ventana de visualización (o información seleccionada por el usuario) adquiridas al preprocesador, al codificador de vídeo, al codificador de imágenes, al encapsulador de archivos/segmentos y/o al codificador de nube de puntos. En base a la información de orientación y/o la información de la ventana de visualización, el codificador de nube de puntos puede codificar todos los datos de la nube de puntos o los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización. En base a la información de orientación y/o la información de la ventana de visualización, el encapsulador de archivos/segmentos puede encapsular todos los datos de la nube de puntos o los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización. En base a la información de orientación y/o la información de la ventana de visualización, el entregador puede entregar todos los datos de la nube de puntos o los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización.
Por ejemplo, el preprocesador puede llevar a cabo la operación descrita anteriormente en todos los datos de la nube de puntos o en los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización. El codificador de vídeo y/o el codificador de imágenes pueden llevar a cabo la operación descrita anteriormente en todos los datos de la nube de puntos o en los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización. El encapsulador de archivos/segmentos puede llevar a cabo la operación descrita anteriormente en todos los datos de la nube de puntos o en los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización. El transmisor puede llevar a cabo la operación descrita anteriormente en todos los datos de la nube de puntos o en los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización.
La Figura 22 es un diagrama de bloques a modo de ejemplo de un dispositivo de recepción de datos de nube de puntos según las realizaciones.
La Figura 22 muestra un sistema de nube de puntos según las realizaciones. Una parte/la totalidad del sistema puede incluir algunos o todos los dispositivos de transmisión y recepción de la Figura 1, el proceso de codificación de la Figura 4, el codificador de vídeo/imagen 2D de la Figura 15, el proceso de decodificación de la Figura 16, el dispositivo de transmisión de la Figura 18, y/o el dispositivo de recepción de la Figura 19. Además, puede estar incluido o corresponder a una parte/la totalidad del sistema de las Figuras 20 y 21.
Cada componente del dispositivo de recepción puede ser un módulo/unidad/componente/hardware/software/procesador. Un cliente de entrega puede recibir datos de nube de puntos, un flujo de bits de nube de puntos o un archivo/segmento que incluye el flujo de bits transmitido por el dispositivo de transmisión de datos de nube de puntos según las realizaciones. El receptor puede recibir los datos de la nube de puntos en una red de transmisión o a través de una banda ancha dependiendo del canal utilizado para la transmisión. Alternativamente, los datos de vídeo de la nube de puntos pueden recibirse a través de un medio de almacenamiento digital. El receptor puede incluir un proceso de decodificación de los datos recibidos y de renderización de los datos recibidos según la ventana de visualización del usuario. El procesador de recepción puede llevar a cabo el procesamiento de los datos de la nube de puntos recibidos según un protocolo de transmisión. Se puede incluir un procesador de recepción en el receptor o se puede configurar como un componente/módulo separado. El procesador de recepción puede llevar a cabo de manera inversa el proceso del procesador de transmisión descrito anteriormente para corresponder al procesamiento para la transmisión llevado a cabo en el lado de transmisión. El procesador de recepción puede entregar los datos de la nube de puntos adquiridos al procesador de desencapsulación y los metadatos relacionados con la nube de puntos adquiridos al analizador de metadatos.
El sensor/rastreador (detección/seguimiento) adquiere información de orientación y/o información de ventana de visualización. El sensor/rastreador puede entregar la información de orientación y/o información de ventana de visualización adquiridas al cliente de entrega, al desencapsulador de archivos/segmentos y al decodificador de nube de puntos.
El cliente de entrega puede recibir todos los datos de la nube de puntos o los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización en base a la información de orientación y/o la información de la ventana de visualización. El desencapsulador de archivos/segmentos puede desencapsular todos los datos de la nube de puntos o los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización basándose en la información de orientación y/o la información de la ventana de visualización. El decodificador de nube de puntos (el decodificador de vídeo y/o el decodificador de imagen) puede decodificar todos los datos de la nube de puntos o los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización basándose en la información de orientación y/o la información de la ventana de visualización. El procesador de nube de puntos puede procesar todos los datos de la nube de puntos o los datos de la nube de puntos indicados por la información de orientación y/o la información de la ventana de visualización basándose en la información de orientación y/o la información de la ventana de visualización.
Un desencapsulador 22000 de archivos/segmentos (desencapsulación de archivos/segmentos) lleva a cabo la desencapsulación de pistas de vídeo, desencapsulación de pistas de metadatos y/o desencapsulación de imágenes. El procesador de desencapsulación (desencapsulación de archivos/segmentos) puede desencapsular los datos de la nube de puntos en forma de un archivo recibido del procesador de recepción. El procesador de desencapsulación (desencapsulación de archivos/segmentos) puede desencapsular archivos o segmentos según ISOBMFF, etc., para adquirir un flujo de bits de nube de puntos o metadatos relacionados con la nube de puntos (o un flujo de bits de metadatos separado). El flujo de bits de la nube de puntos adquirido puede entregarse al decodificador de nube de puntos, y los metadatos relacionados con la nube de puntos adquiridos (o flujo de bits de metadatos) pueden entregarse al procesador de metadatos. El flujo de bits de la nube de puntos puede incluir los metadatos (flujo de bits de metadatos). El procesador de metadatos puede incluirse en el descodificador de vídeo de nube de puntos o puede configurarse como un componente/módulo separado. Los metadatos relacionados con la nube de puntos adquiridos por el procesador de desencapsulación pueden tomar la forma de un cuadro o pista en un formato de archivo. El procesador de desencapsulación puede recibir metadatos necesarios para la desencapsulación del procesador de metadatos, cuando sea necesario. Los metadatos relacionados con la nube de puntos pueden entregarse al decodificador de nubes de puntos y usarse en un procedimiento de decodificación de nubes de puntos, o pueden entregarse al renderizador y usarse en un procedimiento de renderización de nubes de puntos. El desencapsulador de archivos/segmentos puede generar metadatos relacionados con los datos de la nube de puntos.
En la desencapsulación de pistas de vídeo, se desencapsula una pista de vídeo contenida en el archivo y/o segmento. Se desencapsulan los flujos de vídeo que incluyen un vídeo de geometría, un vídeo de atributos, un mapa de ocupación, datos auxiliares y/o datos de malla.
En la desencapsulación de la pista de metadatos, se desencapsula un flujo de bits que contiene metadatos relacionados con los datos de la nube de puntos y/o datos auxiliares.
En la desencapsulación de imágenes, se desencapsulan imágenes que incluyen una imagen de geometría, una imagen de atributos, un mapa de ocupación, datos auxiliares y/o datos de malla.
La desencapsulación o el desencapsulador según las realizaciones pueden dividir y analizar (desencapsular) el flujo de bits G-PCC/V-PCC basándose en una o más pistas en un archivo, y también pueden desencapsular información de señalización para ello. Además, el flujo de atlas incluido en el flujo de bits G-PCC/V-PCC puede desencapsularse basándose en una pista del archivo, y puede analizarse información de señalización relacionada. Además, un mensaje SEI presente en el flujo de bits G-PCC/V-PCC puede desencapsularse basándose en una pista en el archivo, y también puede adquirirse información de señalización relacionada.
La decodificación de vídeo o el decodificador 22001 de vídeo lleva a cabo la descompresión de vídeo de geometría, la descompresión de vídeo de atributos, la descompresión de mapa de ocupación, la descompresión de datos auxiliares y/o la descompresión de datos de malla. El decodificador de vídeo decodifica el vídeo de geometría, el vídeo de atributos, los datos auxiliares y/o los datos de malla en un proceso correspondiente al proceso llevado a cabo por el codificador de vídeo del dispositivo de transmisión de nube de puntos según las realizaciones.
La decodificación de imágenes o el decodificador 22002 de imágenes lleva a cabo la descompresión de imágenes de geometría, la descompresión de imágenes de atributos, la descompresión de mapas de ocupación, la descompresión de datos auxiliares y/o la descompresión de datos de malla. El decodificador de imágenes decodifica la imagen de geometría, la imagen de atributos, los datos auxiliares y/o los datos de malla en un proceso correspondiente al proceso llevado a cabo por el codificador de imágenes del dispositivo de transmisión de nube de puntos según las realizaciones.
La decodificación de vídeo y la decodificación de imágenes según las realizaciones pueden procesarse mediante un decodificador de vídeo/imagen como se describe anteriormente, y pueden llevarse a cabo a lo largo de rutas separadas como se ilustra en la figura.
La decodificación de vídeo y/o la decodificación de imágenes pueden generar metadatos relacionados con los datos de vídeo y/o los datos de imagen.
El codificador de vídeo de nube de puntos y/o el codificador de imagen de nube de puntos según las realizaciones pueden decodificar el flujo de bits G-PCC/V-PCC según las realizaciones.
En el procesamiento 22003 de nube de puntos, se llevan a cabo la reconstrucción de geometría y/o la reconstrucción de atributos.
En la reconstrucción de geometría, el vídeo de geometría y/o la imagen de geometría se reconstruyen a partir de los datos de vídeo decodificados y/o los datos de imagen decodificados en base al mapa de ocupación, datos auxiliares y/o datos de malla.
En la reconstrucción de atributos, el vídeo de atributos y/o la imagen de atributos se reconstruyen a partir del vídeo de atributos decodificado y/o la imagen de atributos decodificada en base al mapa de ocupación, datos auxiliares y/o datos de malla. Según las realizaciones, por ejemplo, el atributo puede ser una textura. Según las realizaciones, un atributo puede representar múltiples piezas de información de atributo. Cuando hay múltiples atributos, el procesador de nube de puntos según las realizaciones lleva a cabo múltiples reconstrucciones de atributos.
El procesador de nube de puntos puede recibir metadatos del decodificador de vídeo, del decodificador de imágenes y/o del desencapsulador de archivos/segmentos, y procesar la nube de puntos basándose en los metadatos.
La renderización de la nube de puntos o el renderizador de nubes de puntos renderiza la nube de puntos reconstruida. El renderizador de nube de puntos puede recibir metadatos del decodificador de vídeo, del decodificador de imágenes y/o del desencapsulador de archivos/segmentos, y renderizar la nube de puntos basándose en los metadatos.
En realidad, la pantalla muestra el resultado de la renderización en la pantalla.
Como se muestra en las Figuras 15 a 19, después de codificar/decodificar, el método/dispositivo según las realizaciones de los datos de la nube de puntos como se muestra en 15 a 19, el flujo de bits que contiene los datos de la nube de puntos se puede encapsular y/o desencapsular en forma de un archivo y/o segmento.
Por ejemplo, un dispositivo de datos de nube de puntos según las realizaciones puede encapsular datos de nube de puntos basándose en un archivo. El archivo puede incluir una pista V-PCC que contiene parámetros para una nube de puntos, una pista de geometría que contiene geometría, una pista de atributos que contiene un atributo y una pista de ocupación que contiene un mapa de ocupación.
Además, un dispositivo de recepción de datos de nube de puntos según las realizaciones desencapsula los datos de la nube de puntos basándose en un archivo. El archivo puede incluir una pista V-PCC que contiene parámetros para una nube de puntos, una pista de geometría que contiene geometría, una pista de atributos que contiene un atributo y una pista de ocupación que contiene un mapa de ocupación.
La operación descrita anteriormente puede ser llevada a cabo por el encapsulador 20004, 20005 de archivos/segmentos de la Figura 20, el encapsulador 21009 de archivos/segmentos de la Figura 21, y el encapsulador 22000 de archivos/segmentos de la Figura 22.
La Figura 23 ilustra una estructura a modo de ejemplo utilizable en conexión con métodos/dispositivos de transmisión/recepción de datos de nube de puntos según las realizaciones.
En la estructura según las realizaciones, al menos uno de un servidor 2360, un robot 2310, un vehículo 2320 autónomo, un dispositivo 2330 XR, un teléfono 2340 inteligente, un electrodoméstico 2350 y/o una pantalla 2370 montada en la cabeza (HMD, por sus siglas en inglés) está conectado a una red 2300 de nube. Aquí, el robot 2310, el vehículo 2320 autónomo, el dispositivo 2330 XR, el teléfono 2340 inteligente o el electrodoméstico 2350 pueden denominarse dispositivo. Además, el dispositivo 1730 XR puede corresponder a un dispositivo de datos de nube de puntos (PCC) según las realizaciones o puede estar conectado operativamente al dispositivo PCC.
La red 2300 de nube puede representar una red que constituye parte de la infraestructura informática en la nube o está presente en la infraestructura informática en la nube. Aquí, la red 2300 de nube se puede configurar usando una red 3G, 4G o una red de evolución a largo plazo (LTE), o una red 5G.
El servidor 2360 puede estar conectado a al menos uno del robot 2310, el vehículo 2320 autónomo, el dispositivo 2330 XR, el teléfono 2340 inteligente, el electrodoméstico 2350 y/o la HMD 2370 en la red 2300 de nube y puede ayudar al menos en una parte del procesamiento de los dispositivos 2310 a 2370 conectados.
La HMD 2370 representa uno de los tipos de implementación del dispositivo XR y/o del dispositivo PCC según las realizaciones. Un dispositivo tipo HMD según las realizaciones incluye una unidad de comunicación, una unidad de control, una memoria, una unidad de E/S, una unidad de sensor y una unidad de suministro de energía.
De aquí en adelante, se describirán diversas realizaciones de los dispositivos 2310 a 2350 a los que se aplica la tecnología descrita anteriormente. Los dispositivos 2310 a 2350 ilustrados en la Figura 23 pueden estar conectados/acoplados operativamente a un dispositivo de transmisión y recepción de datos de nube de puntos según las realizaciones descritas anteriormente.
PCC+XR
El dispositivo 2330 XR/PCC puede emplear tecnología PCC y/o tecnología XR (AR+VR), y puede implementarse como una HMD, una pantalla frontal (HUD, por sus siglas en inglés) provista en un vehículo, un televisor, un teléfono móvil, un teléfono inteligente, un ordenador, un dispositivo ponible, un electrodoméstico, una señalización digital, un vehículo, un robot estacionario o un robot móvil.
El dispositivo 2330 XR/PCC puede analizar datos de nubes de puntos 3D o datos de imágenes adquiridos a través de varios sensores o de un dispositivo externo y generar datos de posición y datos de atributos sobre puntos 3D. De este modo, el dispositivo 2330 XR/PCC puede adquirir información sobre el espacio circundante o un objeto real, y renderizar y generar un objeto XR. Por ejemplo, el dispositivo 2330 XR/PCC puede hacer coincidir un objeto XR que incluye información auxiliar sobre un objeto reconocido con el objeto reconocido y generar el objeto XR coincidente.
PCC+XR+teléfono móvil
El dispositivo 2330 XR/PCC puede implementarse como un teléfono 2340 móvil mediante aplicación de tecnología PCC.
El teléfono 2340 móvil puede decodificar y mostrar contenido de nube de puntos basándose en la tecnología PCC.
PCC+conducción autónoma+XR
El vehículo 2320 autónomo puede implementarse como un robot móvil, un vehículo, un vehículo aéreo no tripulado o similar aplicando la tecnología PCC y la tecnología XR.
El vehículo 2320 autónomo al que se aplica la tecnología XR/PCC puede representar un vehículo autónomo provisto de medios para proveer una imagen XR, o un vehículo autónomo que es un objetivo de control/interacción en la imagen XR. En particular, el vehículo 2320 autónomo, que es un objetivo de control/interacción en la imagen XR, puede distinguirse del dispositivo 2330 XR y puede estar conectado operativamente al mismo.
El vehículo 2320 autónomo que tiene medios para proveer una imagen XR/PCC puede adquirir información de sensor de los sensores que incluyen una cámara y generar la imagen XR/PCC generada en base a la información de sensor adquirida. Por ejemplo, el vehículo autónomo puede tener una HUD y emitir una imagen XR/PCC al mismo para proveer a un ocupante un objeto XR/PCC correspondiente a un objeto real o un objeto presente en la pantalla.
En este caso, cuando el objeto XR/PCC se envía a la HUD, al menos una parte del objeto XR/PCC se puede emitir para superponerse al objeto real al que se dirigen los ojos del ocupante. Por otro lado, cuando el objeto XR/PCC se muestra en una pantalla provista dentro del vehículo autónomo, al menos una parte del objeto XR/PCC se puede mostrar para superponerse al objeto en la pantalla. Por ejemplo, el vehículo autónomo puede generar objetos XR/PCC correspondientes a objetos como, por ejemplo, una carretera, otro vehículo, un semáforo, una señal de tráfico, un vehículo de dos ruedas, un peatón y un edificio.
La tecnología de realidad virtual (VR), la tecnología de realidad aumentada (AR), la tecnología de realidad mixta (MR) y/o la tecnología de compresión de nube de puntos (PCC) según las realizaciones son aplicables a diversos dispositivos.
En otras palabras, la tecnología VR es una tecnología de visualización que provee solo objetos, fondos y similares del mundo real como imágenes CG. Por otro lado, la tecnología AR se refiere a una tecnología para mostrar una imagen CG creada virtualmente sobre una imagen de objeto real. La tecnología MR es similar a la tecnología AR descrita anteriormente en la que los objetos virtuales que se mostrarán se mezclan y combinan con el mundo real. Sin embargo, la tecnología MR se diferencia de la tecnología AR: hace una distinción clara entre un objeto real y un objeto virtual creado como una imagen CG y utiliza objetos virtuales como objetos complementarios de los objetos reales, mientras que la tecnología MR trata los objetos virtuales como objetos que tienen las mismas características que los objetos reales. Más específicamente, un ejemplo de aplicaciones de tecnología de MR es un servicio de hologramas.
Recientemente, las tecnologías VR, AR y MR a veces se denominan tecnología de realidad extendida (XR) en lugar de distinguirse claramente entre sí. En consecuencia, las realizaciones de la presente descripción son aplicables a todas las tecnologías VR, AR, MR y XR. Para dichas tecnologías, se puede aplicar codificación/decodificación según técnicas PCC, V-PCC y G-PCC.
El método/dispositivo PCC según las realizaciones se puede aplicar a un vehículo que provee un servicio de conducción autónoma.
Un vehículo que provee el servicio de conducción autónoma está conectado a un dispositivo PCC para la comunicación cableada/inalámbrica.
Cuando el dispositivo de transmisión y recepción de datos de nube de puntos (dispositivo PCC) según las realizaciones está conectado a un vehículo para la comunicación cableada/inalámbrica, el dispositivo puede recibir y procesar datos de contenido relacionados con un servicio AR/VR/PCC que puede proveerse junto con el servicio de conducción autónoma y transmitir los datos del contenido procesado al vehículo. En el caso donde el dispositivo de transmisión y recepción de datos de nube de puntos está montado en un vehículo, el dispositivo de transmisión y recepción de nube de puntos puede recibir y procesar datos de contenido relacionados con el servicio AR/VR/PCC según una señal de entrada de usuario a través de un dispositivo de interfaz de usuario y proveer los datos del contenido procesado al usuario. El vehículo o el dispositivo de interfaz de usuario según las realizaciones pueden recibir una señal de entrada de usuario. La señal de entrada de usuario según las realizaciones puede incluir una señal que indique el servicio de conducción autónoma.
Los datos de la nube de puntos según las realizaciones pueden denominarse datos PCC, datos V-PCC, datos visuales volumétricos basados en vídeo, datos V3C o similares.
La Figura 24 ilustra un flujo de bits V-PCC según las realizaciones.
El flujo de bits 24000 V-PCC representa una forma (a saber, una forma de flujo de bits) en donde se transmiten datos de nube de puntos según las realizaciones. El flujo de bits 24000 V-PCC que se muestra en la Figura 24 puede representar el flujo de bits comprimido de la Figura 4, el flujo de bits de la Figura 15, el flujo de bits comprimido recibido en la Figura 16, y el flujo de bits de la Figura 17, un flujo de bits generado por el multiplexor 18007 en la Figura 18, y un flujo de bits generado por el demultiplexor en la Figura 19.
El flujo de bits V-PCC que se muestra en la Figura 24 puede ser generado por el dispositivo 1230 XR, el vehículo 1220 autónomo, el robot 1210, el servidor 1260 de IA, el electrodoméstico 1250 y el teléfono 1240 inteligente según las realizaciones que se muestran en la Figura 23, y puede transmitirse a o transmitirse/recibirse entre los dispositivos en la red (5G) 1200 en la nube.
El flujo de bits 24000 V-PCC que se muestra en la Figura 24 puede ser un flujo de bits a recibirse por el encapsulador 20004 de archivos/segmentos de la Figura 20. Es decir, el flujo de bits V-PCC puede ser un flujo de bits transmitido directamente por el dispositivo/método de transmisión de datos de nube de puntos según las realizaciones, o puede representar un flujo de bits antes de ser encapsulado en el esquema ISOBMFF.
El flujo de bits 24000 V-PCC que se muestra en la Figura 24 puede ser flujos de vídeo y/o flujos de imágenes de la Figura 21, o emitirse de la unidad 21009 de aislamiento de archivos/segmentos. Puede ser un flujo de bits que constituye segmentos (o archivos).
El flujo de bits 24000 V-PCC según las realizaciones puede incluir una o más unidades 24001 V-PCC de flujo de muestra. La única o más unidades 24001 V-PCC de flujo de muestra pueden incluir una unidad V-PCC y un tamaño de unidad V-PCC que indica el tamaño de la unidad V-PCC.
El flujo de bits 24000 V-PCC incluye una secuencia de nube de puntos codificada (CPCS, por sus siglas en inglés).
La unidad V-PCC incluye un encabezado 24001 b de unidad V-PCC y/o una carga útil 24001c de unidad V-PCC.
El encabezado 24001 b de la unidad V-PCC incluye información de señalización sobre los datos contenidos en la carga útil de la unidad V-PCC según las realizaciones. El encabezado de la unidad V-PCC según las realizaciones puede indicar, por ejemplo, el tipo de datos (p. ej., conjunto 24002a de parámetros V-PCC, datos 24002b de vídeo de ocupación, datos 24002c de vídeo de geometría, datos 24002e de atlas y/o datos 24002d de vídeo de atributos, o similar) contenidos en la unidad V-PCC según las realizaciones. Además, el encabezado 24001b de unidad V-PCC según las realizaciones puede incluir además información de señalización necesaria para los datos contenidos en la unidad V-PCC.
La carga útil 24001c de la unidad V-PCC contiene datos de nube de puntos según las realizaciones o información necesaria para renderizar o reconstruir los datos de la nube de puntos.
La carga útil 24001c de la unidad V-PCC puede incluir, por ejemplo, un conjunto 24002a de parámetros V-PCC, datos 24002b de vídeo de ocupación, datos 24002c de vídeo de geometría, datos 24002e de atlas y/o datos 24002d de vídeo de atributos. La carga útil 24001c de la unidad V-PCC puede transportar vídeo de ocupación, vídeo de atributos o vídeo de geometría. La carga útil 24001c de la unidad V-PCC puede estar compuesta de una o más unidades NAL.
La carga útil 24002 de la unidad V-PCC según las realizaciones contiene datos de nube de puntos según las realizaciones. Los datos de la nube de puntos pueden incluir uno de datos de vídeo de ocupación, datos de vídeo de geometría y/o datos de vídeo de atributos de los datos de la nube de puntos. Los datos de la nube de puntos pueden incluir datos de vídeo de geometría codificados utilizando el esquema de modulación de codificación de impulsos (PCM, por sus siglas en inglés) y/o datos de vídeo de atributos codificados utilizando la PCM.
El conjunto 24002a de parámetros V-PCC según las realizaciones representa un conjunto de parámetros que incluye parámetros o información de señalización (p. ej., metadatos) para los datos de la nube de puntos según las realizaciones. Por ejemplo, el conjunto de parámetros V-PCC puede incluir información de señalización sobre una secuencia que constituye datos de nube de puntos.
Los datos 24002b de vídeo de ocupación son datos que incluyen datos de mapas de ocupación según las realizaciones. Los datos 24002c de vídeo de geometría incluyen datos de vídeo de geometría según las realizaciones. Los datos 24002d de vídeo de atributos incluyen datos de vídeo de atributos según las realizaciones.
Los datos 24002e del atlas representan datos compuestos de un atributo (p. ej., textura (parche)) y/o profundidad de datos de nube de puntos.
Por ejemplo, la sintaxis de la unidad V-PCC según las realizaciones se puede configurar de la siguiente manera.
La Figura 25 ilustra un ejemplo de un flujo de bits V-PCC según las realizaciones.
El flujo de bits V-PCC según las realizaciones ilustradas en la Figura 25 representa el flujo de bits 24000 V-PCC de la Figura 24.
El flujo de bits V-PCC que se muestra en la Figura 25 puede ser generado por el dispositivo 1230 XR, el vehículo 1220 autónomo, el robot 1210, el servidor 1260 de IA, el electrodoméstico 1250 y el teléfono 1240 inteligente según las realizaciones que se muestran en la Figura 23, y puede transmitirse a o transmitirse/recibirse entre los dispositivos en la red 1200 en la nube (5G).
El flujo de bits 25000 V-PCC según las realizaciones incluye una o más unidades 25002 V-PCC de flujo de muestra. Las unidades V-PCC de flujo de muestra pueden representar las unidades 24001 V-PCC de flujo de muestra de la Figura 24. La unidad V-PCC de flujo de muestra puede denominarse unidad V-PCC.
El flujo de bits 25000 V-PCC según las realizaciones puede incluir además un encabezado 25001 V-PCC de flujo de muestra que contiene información sobre las unidades V-PCC del flujo de muestra.
La unidad 25002 V-PCC de flujo de muestra tiene varios tipos. Ejemplos de la unidad 25002 V-PCC de flujo de muestra incluyen una unidad V-PCC que incluye un conjunto de parámetros V-PCC (VPS, por sus siglas en inglés), y una unidad V-PCC que incluye datos de atributos (AD, por sus siglas en inglés), una unidad V-PCC que incluye datos de vídeo de ocupación (OVD, por sus siglas en inglés), una unidad V-PCC que incluye datos de vídeo de geometría (GVD, por sus siglas en inglés) y/o una unidad V-PCC que incluye datos de vídeo de atributos (AVD, por sus siglas en inglés).
El flujo de bits 25000 V-PCC según las realizaciones incluye la unidad 25002 V-PCC de flujo de muestra que incluye un VPS según las realizaciones. El flujo de bits 25000 V-PCC según las realizaciones puede incluir una o más unidades V-PCC de flujo de muestra que incluyen uno de AD, OVD, GVD y/o AVD.
25004 muestra un ejemplo de la sintaxis del encabezado 25001 V-PCC del flujo de muestra según las realizaciones. El encabezado 25004 V-PCC del flujo de muestra puede contener información de ssvh_unit_size_precision_bytes_minus1. Cada unidad V-PCC de flujo de muestra contiene un tipo de unidad V-PCC entre VPS, AD, OVD, GVD y AVD.
ssvh_unit_size_precision_bytes_minus1 plus 1 especifica la precisión, en bytes, del elemento ssvu_vpcc_unit_size en todas las unidades V-PCC del flujo de muestra. ssvh_unit_size_precision_bytes_minus1 puede estar en el rango de 0 a 7.
25005 muestra un ejemplo de la sintaxis de la unidad 25002 V-PCC de flujo de muestra según las realizaciones. El contenido de cada unidad V-PCC de flujo de muestra está asociado a la misma unidad de acceso que la unidad V-PCC contenida en la unidad V-PCC de flujo de muestra. La unidad 25002 V-PCC puede incluir, por ejemplo, ssvu_vpcc_u n it_s ize.
ssvu_vpcc_unit_size especifica el tamaño, en bytes, de la vpcc_unit posterior. El número de bits utilizados para representar ssvu_vpcc_unit_size puede ser igual a (ssvh_unit_size_precision_bytes_minus1 1) * 8.
vpcc_unit(), es decir, vpcc_unit(ssvu_vpcc_unit_size) representa una unidad V-PCC que tiene un tamaño de ssvu_vpcc_unit_size según las realizaciones. vpcc_unit(ssvu_vpcc_unit_size) según las realizaciones incluye un encabezado de unidad V-PCC (vpcc_unit_header()) y/o una carga útil de unidad V-PCC (vpcc_unit_payload()). El encabezado de la unidad V-PCC que se muestra en la Figura 25 puede representar el encabezado 24001b de unidad V-PCC que se muestra en la Figura 24.
vpcc_unit() según las realizaciones puede tener, por ejemplo, la siguiente sintaxis.
vpcc_unit_header() representa un encabezado de unidad V-PCC según las realizaciones. vpcc_unit_payload() representa una carga útil de unidad V-PCC según las realizaciones.
La Figura 26 muestra un ejemplo de sintaxis de un encabezado de unidad V-PCC y/o una carga útil de unidad V-PCC según las realizaciones.
El encabezado 26000 de unidad V-PCC que se muestra en la Figura 26 puede representar el encabezado 24001b de unidad V-PCC de la Figura 24. El encabezado 26000 de unidad V-PCC que se muestra en la Figura 26 puede representar un encabezado de unidad V-PCC incluido en la unidad V-PCC (vpcc_unit) en la unidad V-PCC de flujo de muestra de la Figura 25. La unidad V-PCC puede denominarse unidad V-PCC de flujo de muestra.
El flujo de bits V-PCC que se muestra en la Figura 26 puede ser generado por el dispositivo 1230 XR, el vehículo 1220 autónomo, el robot 1210, el servidor 1260 de IA, el electrodoméstico 1250 y el teléfono 1240 inteligente según las realizaciones que se muestran en la Figura 23, y puede transmitirse a o transmitirse/recibirse entre los dispositivos en la red 1200 en la nube (5G).
vuh_unit_type indica el tipo de unidad V-PCC. Por ejemplo, el tipo de unidad V-PCC se puede indicar como se muestra en la siguiente tabla.
TABLA.2
Diferente información de señalización puede contenerse en el encabezado de la unidad V-PCC según el tipo de unidad V-PCC (vuh_unit_type) según las realizaciones.
Por ejemplo, cuando el valor de vuh_unit_type es 0, la unidad V-PCC según las realizaciones es una unidad V-PCC de un tipo que incluye un conjunto de parámetros V-PCC y, en consecuencia, el encabezado de la unidad V-PCC puede contener información relacionada con el VPS.
Por ejemplo, cuando el valor de vuh_unit_type es 1 (a saber, VPCC_AD), la unidad V-PCC es una unidad V-PCC de un tipo que incluye datos de atlas y, en consecuencia, el encabezado de la unidad V-PCC puede contener información relacionada con los datos del atlas (p. ej., vuh_vpcc_parameter_set_id y/o vuh_atlas_id).
Por ejemplo, cuando el valor de vuh_unit_type es 2 (a saber, VPCC_GVD), la unidad V-PCC según las realizaciones es una unidad V-PCC de un tipo que incluye datos de vídeo de geometría y, en consecuencia, el encabezado de la unidad V-PCC puede contener información relacionada con los datos de vídeo de geometría (p. ej., vuh_map_index, vuh_raw_video_flag).
Por ejemplo, cuando el valor de vuh_unit_type es 3 (a saber, VPCC_AVD), la unidad V-PCC según las realizaciones es una unidad V-PCC de un tipo que incluye datos de vídeo de atributos y, en consecuencia, el encabezado de la unidad PCC puede contener información relacionada con los datos de vídeo de atributos (p. ej., vuh_attribute_index, vuh_attribute_dimension_index, vuh_map_index y/o vuh_raw_video_flag).
Por ejemplo, cuando el valor de vuh_unit_type es 4 (a saber, VPCC_OVD), la unidad V-PCC es una unidad V-PCC de un tipo que incluye datos de vídeo de ocupación y, en consecuencia, el encabezado de la unidad V-PCC puede contener información relacionada con los datos de vídeo de ocupación (p. ej., vuh_vpcc_parameter_set_id y/o vuh_atlas_id).
vuh_vpcc_parameter_set_id especifica el valor de vps_vpcc_parameter_set_id para el VPS V-PCC activo.
El vuh_atlas_id especifica el índice del atlas que corresponde a la unidad V-PCC actual.
vuh_attribute_index indica el índice de los datos de atributos transportados en la unidad de datos de vídeo de atributos.
vuh_attribute_dimension_index indica el índice del grupo de dimensiones de atributos transportado en la unidad de datos de vídeo de atributos.
vuh_map_index, cuando está presente, indica el índice del mapa de la geometría actual o flujo de atributos.
vuh_raw_video_flag igual a 1 indica que la geometría asociada o la unidad de datos de vídeo de atributos es solo un vídeo de puntos codificados RAW (o PCM). vuh_raw_video_flag igual a 0 indica que la geometría asociada o la unidad de datos de vídeo de atributos puede contener puntos codificados RAW (o PCM). Cuando vuh_raw_video_flag no está presente, se puede inferir que su valor es igual a 0.
La carga útil 26001 de la unidad V-PCC que se muestra en la Figura 26 puede representar la carga útil 24001c de la unidad V-PCC de la Figura 24. La carga útil 26001 de la unidad V-PCC que se muestra en la Figura 26 puede representar una carga útil de unidad V-PCC (vpcc_unit_payload) incluida en la unidad V-PCC (vpcc_unit) en la unidad V-PCC de flujo de muestra de la Figura 25.
La carga útil de la unidad V-PCC según las realizaciones puede contener datos diferentes según el valor de vuh_unit_type descrito anteriormente.
Por ejemplo, cuando el valor de vuh_unit_type es 0, el tipo de unidad V-PCC según las realizaciones es el conjunto de parámetros V-PCC y, en consecuencia, la carga útil 26001 de la unidad V-PCC puede contener vpcc_parameter_set().
Por ejemplo, cuando el valor de vuh_unit_type es 1 (a saber, VPCC_AD), el tipo de unidad V-PCC según las realizaciones son datos de atlas y, en consecuencia, la carga útil 26001 de la unidad V-PCC puede contener datos de atlas (o un subflujo de bits de atlas (atlas_sub_bitstream())).
Por ejemplo, cuando el valor de vuh_unit_type es 2 (a saber, VPCC_GVD), 3 (a saber, VPCC_AVD) o 4 (a saber, VPCC_OVD), el tipo de unidad V-PCC según las realizaciones son datos de vídeo de geometría y, en consecuencia, la carga útil 26001 de la unidad V-PCC puede contener un subflujo de bits de vídeo que contiene datos de vídeo de atributos y/o datos de vídeo de tiempo de ocupación.
La Figura 27 ilustra un ejemplo de un subflujo de atlas según las realizaciones.
La carga útil 27000 de la unidad V-PCC de la unidad V-PCC según las realizaciones puede contener un subflujo de bits de atlas (o subflujo de atlas) que se muestra en la Figura 27, y el subflujo de bits del atlas puede contener una o más unidades NAL de flujo de muestra. (Una carga útil de unidad V-PCC que transporta un subflujo de atlas puede estar compuesta de una o más unidades NAL de flujo de muestra).
El subflujo de bits del atlas según las realizaciones que se muestran en la Figura 27 puede estar compuesto de una o más unidades de capa de abstracción de red (NAL) o unidades NAL de flujo de muestra para datos de nube de puntos según las realizaciones.
El subflujo de bits del atlas según las realizaciones incluye un encabezado 27001 NAL de flujo de muestra V-PCC. Una unidad 27000 V-PCC según las realizaciones incluye una o más unidades 27002 NAL de flujo de muestra.
Hay varios tipos de unidades 27002 NAL (o unidades NAL de flujo de muestra) según las realizaciones. Ejemplos de la unidad NAL incluyen una unidad NAL de flujo de muestra que incluye un conjunto de parámetros de secuencia de atlas (ASPS, por sus siglas en inglés), una unidad NAL de flujo de muestra que incluye un conjunto de parámetros de trama de atlas (AFPS, por sus siglas en inglés) y una unidad NAL de flujo de muestra que incluye un grupo de mosaicos de atlas (ATP, por sus siglas en ingles), y/o una unidad NAL que incluye SEI (o mensaje SEI).
El encabezado 27001 NAL de flujo de muestra contiene información de señalización sobre la única o más unidades 27002 NAL de flujo de muestra. Por ejemplo, el encabezado 27001 NAL de flujo de muestra puede contener ssvh_unit_size_precision_bytes_minus1.
27003 muestra un ejemplo de la sintaxis del encabezado NAL del flujo de muestra según las realizaciones. ssvh_unit_size_precision_bytes_minus1 plus 1 puede especificar, por ejemplo, la precisión, en bytes, del elemento ssnu_nal_unit_size en todas las unidades NAL del flujo de muestra. ssnh_unit_size_precision_bytes_minus1 puede estar en el rango de 0 a 7.
27004 muestra un ejemplo de la sintaxis de la unidad NAL de flujo de muestra según las realizaciones. ssvu_nal_unit_size especifica el tamaño, en bytes, de NAL_unit posterior. El número de bits utilizados para representar ssnu_nal_unit_size puede ser igual a (ssnh_unit_size_precision_bytes_minus1 1) * 8.
NAL_unit(), es decir, nal_unit(ssvu_vpcc_unit_size) indica una unidad NAL que tiene un tamaño de ssvu_nal_unit_size según las realizaciones.
Cada unidad NAL de flujo de muestra contiene un conjunto de parámetros de secuencia de atlas (ASPS), un conjunto de parámetros de trama de atlas (AFPS), información de grupo de mosaicos de atlas o SEI (información de mejora suplementaria).
El mensaje SEI contiene información necesaria para una operación relacionada con la decodificación, reconstrucción, visualización u otros fines. El mensaje SEI según las realizaciones contiene una carga útil SEI (sei_payload).
La carga útil SEI según las realizaciones puede tener la siguiente sintaxis.
TABLA.3
La Figura 28 ilustra datos de nube de puntos en un formato de un archivo ISOBMFF según las realizaciones.
Los datos de la nube de puntos según las realizaciones pueden estar en el formato de un archivo ISOBMFF. El archivo ISOBMFF puede estar compuesto de objetos llamados cajas. Es decir, todos los datos pueden incluirse en una o más cajas.
El formato de archivo de la Figura 28 puede ser generado o encapsulado por el encapsulador 20004, 21009 de archivos/segmentos o similar según las realizaciones de las Figuras 20 y 21, y puede ser recibido y desencapsulado por el desencapsulador 20005, 22000 de archivos/segmentos o similar de la Figura 22.
Una caja puede incluir un encabezado de caja, que puede incluir un tamaño y un tipo de caja. Los datos de la nube de puntos según las realizaciones pueden incluir una caja 28000 ftyp cuyo tipo de caja es 'ftyp', una caja 28001 meta cuyo tipo de caja es 'meta', una caja 28002 moov cuyo tipo de caja es 'moov' y una caja 28003 mdat cuyo tipo de caja es 'mdat'.
La caja 28000 ftyp puede contener información que indica el tipo de archivo ISOBMFF según las realizaciones.
La caja 28001 meta puede contener información de metadatos sobre los datos de la nube de puntos según las realizaciones.
La caja 28002 moov puede contener información sobre una o más pistas en las cuales se transmiten los datos de la nube de puntos según las realizaciones.
La caja 28002 moov según las realizaciones puede incluir una caja 28002a que contiene información sobre una pista para transmitir información de atributos de los datos de la nube de puntos, una caja 28002b que contiene información sobre una pista para transmitir información de ocupación de los datos de la nube de puntos, una caja 28002c que contiene información sobre una pista para transmitir información de geometría de los datos de la nube de puntos, y/o una caja 28002d que contiene información sobre una pista para transmitir información V-PCC de los datos de la nube de puntos.
La caja 28003 mdat puede incluir un flujo de bits de nube de puntos que contiene los datos de la nube de puntos según las realizaciones. El flujo de bits de nube de puntos según las realizaciones puede incluir un flujo de bits 28003a de atributos codificado de vídeo, un flujo de bits 28003b de ocupación codificado de vídeo, un flujo de bits 28003c de geometría codificada de vídeo y/o un flujo de bits 28003d de datos de secuencia de parche.
El flujo de bits 28003d de datos de secuencia de parche puede denominarse flujo de bits de atlas, flujo de bits de datos de parche o similares.
El flujo de bits 28003a de atributos codificado de vídeo, el flujo de bits 28003b de ocupación codificado de vídeo, el flujo de bits 28003c de geometría codificado de vídeo y/o el flujo de bits 28003d de datos de secuencia de parche según las realizaciones pueden ser transportados por una o más tramas de vídeo.
El flujo de bits 28003a de atributos codificado de vídeo se refiere a información de atributos de los datos de la nube de puntos, codificados por el codificador V-PCC según las realizaciones.
El flujo de bits 28003b de ocupación codificado de vídeo se refiere a información de ocupación de los datos de la nube de puntos, codificados por el codificador V-PCC según las realizaciones.
El flujo de bits 28003c de geometría codificado de vídeo se refiere a información de geometría de los datos de la nube de puntos, codificados por el codificador V-PCC según las realizaciones.
El flujo de bits 28003d de datos de secuencia de parche se refiere a datos de secuencia de parche de los datos de nube de puntos según las realizaciones.
Las pistas de vídeo 2D se codifican según un codificador de vídeo según las realizaciones.
En la entrada de muestra, se puede insertar una caja adicional que puede documentar el papel del flujo de vídeo contenido en esta pista, en el sistema V-PCC.
Se puede insertar una referencia de pista desde la pista de datos del parche V-PCC a la pista de vídeo, para establecer la membresía de la pista de vídeo en la nube de puntos específica según la pista del parche.
Las banderas del encabezado de la pista se pueden establecer en 0 para indicar que la pista no contribuye directamente a la estratificación general de la película, pero sí contribuye al sistema V-PCC.
Las pistas que pertenecen a la misma secuencia V-PCC están alineadas en el tiempo. Las muestras que contribuyen a la misma trama de nube de puntos en las diferentes pistas de componentes codificadas en vídeo y la pista V-PCC pueden tener el mismo tiempo de presentación.
Una pista V-PCC puede contener conjuntos de parámetros de secuencia y muestras que transportan las cargas útiles de unidades V-PCC de información no codificada en vídeo. Aquí, las unidades V-PCC de información no codificada en vídeo pueden significar unidades cuyos tipos de unidades V-PCC son, por ejemplo, VPCC_SPS y VPCC_PDG. La pista V-PCC puede denominarse pista volumétrica visual, pista V3C o similar.
Esta pista también puede proveer referencias de pista a otras pistas que contienen muestras que transportan las cargas útiles de una unidad V-PCC comprimida de vídeo. Aquí, las otras pistas pueden representar unidades cuyos tipos de unidad V-PCC son, por ejemplo, VPCC_GVD, VPCC_AVD y VPCC_OVD.
Las muestras que contienen flujos elementales codificados en vídeo para datos de geometría, que son cargas útiles de unidades V-PCC de tipo VPCc_GVD, pueden incluirse en uno o más flujos de vídeo.
Las muestras que contienen flujos elementales codificados en vídeo para datos de atributos, que son cargas útiles de unidades V-PCC de tipo VPCC_AVD, pueden incluirse en uno o más flujos de vídeo.
Las muestras que contienen un flujo elemental codificado en vídeo para datos de mapas de ocupación, que son cargas útiles de unidades V-PCC de tipo VPCC_OVD, pueden incluirse en uno o más flujos de vídeo.
La sincronización entre los flujos elementales en las pistas componentes puede ser gestionada por las estructuras de temporización de pistas ISO BMFF (ctts y cslg, o mecanismos equivalentes en fragmentos de películas).
Las muestras que contribuyen a la misma trama de nube de puntos en diferentes pistas de componentes codificadas de vídeo y la pista V-PCC pueden tener el mismo tiempo de composición. Los conjuntos de parámetros V-PCC utilizados para dichas muestras tienen un tiempo de decodificación igual a o anterior al tiempo de composición de la trama. Los datos de la nube de puntos y/o un flujo de bits para entregar datos de la nube de puntos según las realizaciones, y las unidades V-PCC según las realizaciones pueden encapsularse basándose en el formato de archivo que se muestra en la Figura 28. Por ejemplo, el encapsulador del dispositivo de transmisión según las realizaciones puede encapsular el flujo de bits 25000 V-pCc (o unidades V-PCC), el flujo de bits 26000 y 26001 V-PCC, y/o el subflujo 27000 de atlas según las realizaciones descritas con referencia a las Figuras 24 a 27 en el formato de archivo que se muestra en la Figura 28.
Los datos y metadatos de la nube de puntos codificados por el encapsulador 20004 de archivos/segmentos de la Figura 20 y el encapsulador 21009 de archivos/segmentos de la Figura 21 están encapsulados en el formato de archivo que se muestra en la Figura 28. Los datos y metadatos de la nube de puntos encapsulados se desencapsulan en el formato de archivo que se muestra en la Figura 28 por el desencapsulador 20005 de archivos/segmentos de la Figura 20 y el desencapsulador 22000 de archivos/segmentos de la Figura 22 para generar los datos y metadatos de la nube de puntos codificados.
Por ejemplo, la Figura 28 muestra la estructura de un archivo encapsulado en el caso en que los encapsuladores 20004 y 21009 de archivos/segmentos y/o el desencapsulador 22000 de archivos/segmentos según las realizaciones de las Figuras 20 a 22 entregan datos de vídeo (p. ej., multipista).
Un flujo de bits que incluye los datos de la nube de puntos de las Figuras 24 a 27 pueden generarse y codificarse por el codificador 10002 de vídeo de nube de puntos del dispositivo 10000 de transmisión de la Figura 1, los elementos que se muestran en la Figura 4, el dispositivo 100 de codificación que se muestra en la Figura 15, el codificador 18006 de vídeo que se muestra en la Figura 18 y similares. El flujo de bits de la nube de puntos según las realizaciones puede encapsularse mediante el encapsulador 10003 de archivos/segmentos de la Figura 1, el encapsulador 20004 de archivos/segmentos de la Figura 20, y la encapsulación 21009 de archivos/segmentos de la Figura 21, y similares según una única pista y/o múltiples pistas en un archivo como se muestra en la Figura 28.
El flujo de bits de la nube de puntos en la pista única y/o en las pistas múltiples del archivo es desencapsulado por el desencapsulador 10007 de archivos/segmentos del dispositivo 10005 de recepción de la Figura 1 y los desencapsuladores 20005 y 22000 de archivos/segmentos de las Figuras 20 y 22. Un flujo de bits que contiene los datos de la nube de puntos de las Figuras 24 a 27 puede recibirse y decodificarse mediante el decodificador 10008 de vídeo de nube de puntos del dispositivo 10005 de recepción de la Figura 1, los elementos que se muestran en la Figura 16, el dispositivo 200 de decodificación que se muestra en la Figura 17, la unidad 19001 de decodificación de vídeo que se muestra en la Figura 19 y similares.
La pista 28002d V-PCC según las realizaciones puede denominarse pista visual volumétrica, pista volumétrica visual, pista de datos volumétrica, pista V3C o similares.
Cada escena visual volumétrica, es decir, datos de nube de puntos según las realizaciones, puede representarse mediante una pista visual volumétrica única. Un archivo ISOBMFF puede contener varias escenas y, por lo tanto, pueden estar presentes en el archivo varias pistas visuales volumétricas (multipista). Una pista visual volumétrica puede identificarse mediante el tipo de gestor de medios visuales volumétricos 'volv' en HandlerBox de MediaBox y un encabezado de medios visuales volumétricos.
Se describirá una realización del encabezado de medios visuales volumétricos.
Tipo de caja: 'vvhd'
Contenedor: MediaInformationBox
Obligatorio: sí
Cantidad: solo uno
Las pistas visuales volumétricas deben utilizar VolumetricVisualMediaHeaderBox en MediaInformationBox. VolumetricVisualMediaHeaderBox tiene la siguiente sintaxis.
aligned(8) class VolumetricVisualMediaHeaderBox
extends FullBox(’vvhd’, versión = 0, 1) {
}
Se describirá una realización de una entrada de muestra visual volumétrica.
Las pistas visuales volumétricas deben utilizar VolumetricVisualSampleEntry.
class VolumetricVisualSampleEntry(codingname)
extends SampleEntry (codingname){
unsigned int(8)[32] compressor_name;
}
Se describirá una realización de muestras visuales volumétricas.
El formato de las muestras visuales volumétricas está definido por el sistema de codificación.
Se describirá una realización de una caja de encabezado de unidad V-PCC.
Esta caja está presente en la pista V-PCC (en la entrada de muestra) y en todas las pistas de componentes V-PCC codificadas en vídeo. Esta caja contiene un encabezado de unidad V-PCC según las realizaciones para los datos transportados por cada pista.
aligned(8) class VPCCUnitHeaderBox
extends FullBox(’vunt’, version = 0, 0) {
vpcc_unit_header() unit_header,
}
Esta caja puede contener el encabezado de la unidad V-PCC descrito con referencia a las Figuras 25 a 27.
Se describirá una realización de un registro de configuración de decodificador V-PCC.
El registro de configuración de decodificador V-PCC incluye un campo de versión.
La matriz VPCCParameterSet incluye vpcc_parameter_set() descrito con referencia a las Figuras 25 a 27.
Las matrices atlas_setupUnit incluyen conjuntos de parámetros de atlas según las realizaciones que son constantes para el flujo al que hace referencia la entrada de muestra en donde está presente el registro de configuración del decodificador, así como mensajes SEI del flujo de atlas.
A continuación se muestra un ejemplo de la sintaxis del registro de configuración del decodificador V-PCC.
TABLA.4
ConfigurationVersion es un campo de versión.
sampleStreamSizeMinusOne plus 1 indica la precisión, en bytes, del elemento ssvu_vpcc_unit_size en todas las unidades V-PCC de flujo de muestra según las realizaciones en este registro de configuración o una muestra V-PCC en el flujo al que se aplica este registro de configuración.
numOfVPCCParameterSets especifica el número de conjuntos de parámetros V-PCC (VPS) señalizados en el registro de configuración del decodificador.
VPCCParameterSet es una instancia sample_stream_vpcc_unit() para una unidad V-PCC de tipo VPCC_VPS. Esta unidad V-PCC puede incluir el vpcc_parameter set() descrito con referencia a las Figuras 25 a 27. numOfAtlasSetupUnits indica el número de matrices de configuración para un flujo de atlas señalizado en este registro de configuración.
Atlas_setupUnit representa una instancia de sample_stream_vpcc_unit() que incluye un conjunto de parámetros de secuencia de atlas (ASPS), un conjunto de parámetros de trama de atlas (AFPS) o una unidad NAL de atlas SEI según las realizaciones.
VPCCDecoderConfigurationRecord según las realizaciones puede tener la siguiente sintaxis.
TABLA.5
ConfigurationVersion es un campo de versión.
lengthSizeMinusOne plus 1 indica la precisión, en bytes, del elemento ssnu_nal_unit_size en todas las unidades NAL del flujo de muestra en este registro de configuración o en una muestra V-PCC en el flujo al que se aplica este registro de configuración.
sampleStreamSizeMinusOne plus 1 indica la precisión, en bytes, del elemento ssvu_vpcc_unit_size en todas las unidades V-PCC del flujo de muestra señalizadas en este registro de configuración. numOfVPCCParameterSets especifica el número de conjuntos de parámetros V-PCC (VPS) señalados en este registro de configuración.
VPCCParameterSet es una instancia sample_stream_vpcc_unit() para una unidad V-PCC de tipo VPCC_VPS. numOfSetupUnitArrays indica el número de matrices de unidades NAL del atlas de los tipos indicados.
NAL_unit_type indica el tipo de unidades NAL del atlas en la siguiente matriz. El valor de la información NAL_unit_type puede ser, por ejemplo, una de las unidades NAL del atlas NAL_ASPS, NAL_PREFIX_SEI o NAL_SUFFIX_SEI. numNALUnits indica el número de unidades NAL del atlas según las realizaciones del tipo indicado incluidas en el registro de configuración para el flujo al que se aplica este registro de configuración. La matriz SEI solo contendrá mensajes SEI de naturaleza 'declarativa', es decir, aquellos que proveen información sobre el flujo en su conjunto. Un ejemplo de este tipo de SEI puede ser SEI de datos de usuario.
setupUnit es una instancia de sample_stream_nal_unit() que contiene un conjunto de parámetros de secuencia de atlas, o un conjunto de parámetros de trama de atlas, o una unidad NAL de atlas SEI declarativa.
A continuación se describe una realización de un contenedor multipista de un flujo de bits V-PCC.
Se especifica el diseño general de un contenedor ISOBMFF V-PCC multipista, donde las unidades V-PCC en un flujo elemental V-PCC se mapean a pistas individuales dentro del archivo contenedor según sus tipos. Hay dos tipos de pistas en un contenedor ISOBMFF V-PCC multipista: pista V-PCC y pista de componentes V-PCC.
La pista V-PCC es una pista que transporta la información visual volumétrica en el flujo de bits V-PCC. La pista V-PCC incluye el subflujo de bits del atlas y los conjuntos de parámetros de secuencia.
Las pistas de componentes V-PCC son pistas de esquema de vídeo restringido que transportan datos codificados de vídeo 2D para el mapa de ocupación, la geometría y los subflujos de bits de atributos del flujo de bits V-PCC. Además, se cumplen las siguientes condiciones para las pistas de componentes V-PCC:
a) en la entrada de muestra, se inserta una nueva caja que documenta el papel del flujo de vídeo contenido en esta pista, en el sistema V-PCC;
b) se puede introducir una referencia de pista de la pista V-PCC a la pista componente V-PCC para establecer la membresía de la pista componente V-PCC a la nube de puntos específica representada por la pista V-PCC; y c) las banderas de encabezado de pista se establecen en 0, para indicar que esta pista no contribuye directamente a la estratificación general de la película, pero sí contribuye al sistema V-PCC.
Las pistas que pertenecen a la misma secuencia V-PCC están alineadas en el tiempo. Las muestras que contribuyen a la misma trama de nube de puntos en las diferentes pistas de componentes V-PCC codificadas en vídeo y la pista V-PCC tienen el mismo tiempo de presentación. Los conjuntos de parámetros de secuencia de atlas V-PCC y los conjuntos de parámetros de trama de atlas utilizados para dichas muestras pueden tener un tiempo de decodificación igual o anterior al tiempo de composición de la trama de nube de puntos. Además, todas las pistas que pertenecen a la misma secuencia V-PCC pueden tener las mismas listas de edición implícitas o explícitas.
Según este diseño, un contenedor V-PCC ISOBMFF incluirá lo siguiente:
1) Una pista V-PCC que contiene conjuntos de parámetros V-PCC (en la entrada de muestra) y muestras que transportan las cargas útiles de la unidad V-PCC del conjunto de parámetros V-PCC (de tipo de unidad VPCC_VPS) y unidades V-PCC de atlas (de tipo de unidad VPCC_AD). Esta pista también incluye referencias de pistas a otras pistas que transportan las cargas útiles de unidades V-PCC de vídeo comprimido (a saber, tipos de unidades VPCC_OVD, VPCC_GVD y VPCC_AVD);
2) una pista de esquema de vídeo restringido donde las muestras contienen unidades de acceso de un flujo elemental codificado en vídeo para datos de mapas de ocupación (a saber, cargas útiles de unidades V-PCC de tipo VPCC_OVD);
3) una o más pistas de esquema de vídeo restringido donde las muestras contienen unidades de acceso de flujos elementales codificados en vídeo para datos de geometría.
4) cero o más pistas de esquema de vídeo restringido donde las muestras contienen unidades de acceso de flujos elementales codificados en vídeo para datos de atributos (a saber, cargas útiles de unidades V-PCC de tipo VPCC_AVD).
Se describirá la entrada de muestra de la pista V-PCC.
Tipo de entrada de muestra: 'vpc1', 'vpcg'
Contenedor: SampleDescriptionBox
Obligatorio: es obligatoria una entrada de muestra 'vpc1' o 'vpcg'.
Cantidad: pueden estar presentes una o más entradas de muestra.
Las pistas V-PCC pueden usar VPCCSampleEntry que extiende VolumetricVisualSampleEntry con un tipo de entrada de muestra de 'vpc1' o 'vpcg'.
Una entrada de muestra de VPCC puede contener un VPCCConfigurationBox, como se describe a continuación. Esto puede incluir un VPCCDecoderConfigurationRecord.
En la entrada de muestra 'vpc1', todos los conjuntos de parámetros de secuencia de atlas (ASPS), conjuntos de parámetros de trama de atlas (AFPS) y/o V-PCC SEI pueden estar en la matriz setupUnit. En la entrada de muestra 'vpcg', ASPS, AFPS y/o V-PCC SEI pueden estar presentes en esta matriz o en el flujo.
Puede haber un BitRateBox opcional en la entrada de muestra volumétrica de VPCC para señalar la información de velocidad binaria de la pista V-PCC.
TABLA.6
Se describirá el formato de muestra de pista V-PCC.
Cada muestra en la pista V-PCC corresponde a una sola trama de nube de puntos. Las muestras correspondientes a esta trama en las distintas pistas componentes tienen el mismo tiempo de composición que la muestra de la pista V-PCC. Cada muestra de V-PCC puede incluir una o más unidades de atlas NAL.
Las muestras de V-PCC según las realizaciones pueden tener la siguiente sintaxis.
TABLA.7
VPCCDecoderConfigurationRecord indica el registro de configuración del decodificador según las realizaciones en la entrada de muestra V-PCC coincidente.
nalUnit contiene una única unidad NAL de atlas en el formato de unidad NAL de flujo de muestra según las realizaciones.
NALUnitLength indica el tamaño de una unidad NAL posterior en bytes.
NALUnit contiene una única unidad atlas NAL.
Se describirá una muestra de sincronización de pistas V-PCC.
Una muestra de sincronización (punto de acceso aleatorio) en una pista V-PCC es una unidad de acceso a datos de parche codificada IRAP de V-PCC. Los conjuntos de parámetros de atlas se pueden repetir, si fuera necesario, en una muestra de sincronización para permitir el acceso aleatorio.
Se describirán pistas de componentes V-PCC codificadas en vídeo según las realizaciones.
El transporte de pistas de vídeo codificadas específicas para MPEG se describe en el documento estándar ISOBMFF. Por ejemplo, el transporte de vídeos codificados AVC y HEVC puede cumplir con el documento estándar ISO/IEC 14496-15.
Dado que no tiene sentido mostrar las tramas decodificadas de las pistas de atributos, geometría o mapa de ocupación sin reconstruir la nube de puntos en el lado del reproductor, se puede definir un tipo de esquema de vídeo restringido para estas pistas codificadas en vídeo.
Esquema de vídeo restringido
Las pistas de vídeo del componente V-PCC pueden representarse en el archivo como vídeo restringido e identificarse mediante 'pccv' en el campo scheme_type de SchemeTypeBox de RestrictedSchemeInfoBox de sus entradas de muestra de vídeo restringido.
Cabe señalar que no existe ninguna restricción en cuanto al códec de vídeo utilizado para codificar los componentes V-PCC de atributos, geometría y mapa de ocupación. Además, estos componentes pueden codificarse utilizando diferentes códecs de vídeo.
Información del esquema
SchemeInformationBox puede estar presente y contener un VPCCUnitHeaderBox.
Referencia a pistas de componentes V-PCC
Para vincular una pista V-PCC a pistas de vídeo de componentes, se pueden agregar tres TrackReferenceTypeBoxes a un TrackReferenceBox dentro del TrackBox de la pista V-PCC, uno para cada componente. TrackReferenceTypeBox puede contener una matriz de track_ID que designan las pistas de vídeo a las que hace referencia la pista V-PCC. El reference_type de TrackReferenceTypeBox identifica el tipo de componente (a saber, mapa de ocupación, geometría o atributo). Las 4CC de estos tipos de referencia de pista son:
1) 'pcco': las pistas a las que se hace referencia contienen el componente V-PCC del mapa de ocupación codificado en vídeo
2) 'pccg': las pistas a las que se hace referencia contienen el componente V-PCC de geometría codificado en vídeo 3) 'pcca': las pistas a las que se hace referencia contienen el componente V-PCC de atributo codificado en vídeo El tipo de componente V-PCC transportado por la pista de vídeo restringida a la que se hace referencia y señalado en RestrictedSchemeInfoBox de la pista coincidirá con el tipo de referencia de la referencia de pista de la pista V-PCC. Contenedor de pista única de flujo de bits V-PCC
La encapsulación de pista única de datos V-PCC (a saber, encapsular datos de nube de puntos según realizaciones en una pista) requiere que el flujo de bits elemental codificado por V-PCC se represente mediante una declaración de pista única.
Puede utilizarse la encapsulación de pista única de datos PCC en el caso de una encapsulación ISOBMFF simple de un flujo de bits codificado V-PCC. Dicho flujo de bits puede almacenarse directamente como una pista única sin procesamiento adicional. Las estructuras de datos de encabezado de unidad V-PCC pueden mantenerse en el flujo de bits. Se puede proveer un contenedor de pista única para datos V-PCC a los flujos de trabajo multimedia para su posterior procesamiento (p. ej., generación de archivos multipista, transcodificación, segmentación DASH, etc.). Un archivo ISOBMFF que contiene datos V-PCC encapsulados de pista única según las realizaciones puede contener 'pcst' en la lista compatible_brands[] de su FileTypeBox.
Pista de flujo elemental V-PCC
Tipo de entrada de muestra: 'vpe1', 'vpeg'
Contenedor: SampleDescriptionBox
Obligatorio: es obligatoria una entrada de muestra 'vpe1' o 'vpeg'
Cantidad: puede haber una o más entradas de muestra.
Las pistas de flujo elemental V-PCC pueden usar VolumetricVisualSampleEntry con un tipo de entrada de muestra de 'vpe1' o 'vpeg'.
Una entrada de muestra de flujo elemental de VPCC puede contener un VPCCConfigurationBox, como se define a continuación.
En la entrada de muestra 'vpe1', todos los conjuntos de parámetros de secuencia de atlas (ASPS), conjuntos de parámetros de trama de atlas (AFPS) y SEI pueden estar en la matriz setupUnit. En la entrada de muestra 'vpeg', ASPS, AFPS y SEI pueden estar presentes en esta matriz o en el flujo.
TABLA.8
Formato de muestra de flujo elemental V-PCC
Una muestra de flujo elemental de V-PCC según las realizaciones puede incluir una o más unidades de V-PCC según una o más realizaciones que pertenecen al mismo tiempo de presentación. Cada muestra tiene un tiempo, tamaño y duración de presentación únicos. Una muestra puede ser autónoma (p. ej., una muestra de sincronización) o depender en términos de decodificación de otras muestras de flujo elemental V-PC<c>.
Se describirá una muestra de sincronización de flujo elemental V-PCC.
Una muestra de sincronización de flujo elemental V-PCC deberá satisfacer todas las condiciones siguientes:
1) es decodificable de forma independiente;
2) ninguna de las muestras que vienen después de la muestra de sincronización (en orden de decodificación) tiene ninguna dependencia de decodificación de ninguna muestra anterior a la muestra de sincronización; y
3) todas las muestras que vienen después de la muestra de sincronización (en orden de decodificación) se pueden decodificar con éxito.
Se describirá una submuestra de flujo elemental de V-PCC según las realizaciones.
Una submuestra de flujo elemental de V-PCC según las realizaciones es una unidad de V-PCC que está contenida en una muestra de flujo elemental de V-PCC.
Una pista de flujo elemental V-PCC puede contener un SubSampleInformationBox en su SampleTableBox, o en el TrackFragmentBox de cada uno de sus MovieFragmentBoxes, que enumera las submuestras de flujo elemental V-PCC. El encabezado de unidad de 32 bits de la unidad V-PCC que representa la submuestra se copiará en el campo codec_specific_parameters de 32 bits de la entrada de la submuestra en SubSampleInformationBox. El tipo de unidad V-PCC de cada submuestra se identifica analizando el campo codec_specific_parameters de la entrada de la submuestra en SubSampleInformationBox.
La Figura 29 muestra una entrada de muestra de V-PCC según las realizaciones.
La entrada de muestra según las realizaciones que se muestran en la Figura 29 se incluye en el archivo ISOBMFF que se muestra en la Figura 28. La entrada de muestra de V-PCC según las realizaciones puede incluir una unidad V-PCC (o unidad NAL) que incluye un conjunto 29004 de parámetros V-PCC, una unidad NAL que incluye un ASPS, una unidad NAL que incluye un AFPS y/o SEI (un mensaje SEI) según las realizaciones.
Como se muestra en la Figura 29, la entrada de muestra según las realizaciones puede contener una o ambas de la unidad V-PCC de flujo de muestra descrita con referencia a las Figuras 24 a 26 y/o la unidad NAL de flujo de muestra descrita con referencia a la Figura 27.
Un encabezado 29001 VPCC de flujo de muestra representa el encabezado VPCC de flujo de muestra de la Figura 24 o los encabezados 25001 y 25004 VPCC de flujo de muestra de la Figura 25.
Un encabezado 29002 NAL de flujo de muestra representa el encabezado 27001 NAL de flujo de muestra según las realizaciones de la Figura 27.
VPCCUnitHeaderBox puede representar, por ejemplo, el encabezado 24001 b de unidad V-PCC y/o el tamaño 24001 a de unidad V-PCC que se muestra en la Figura 24, el encabezado 26000 de unidad V-PCC de la Figura 26, el encabezado de unidad NAL incluido en las unidades 27002 y 27004 NAL de flujo de muestra de la Figura 27.
Una unidad 29004 V-PCC de flujo de muestra puede representar, por ejemplo, las unidades 24001 b y 24001c V-PCC que se muestran en la Figura 24 o la carga útil 24001c de la unidad V-PCC.
Las unidades 29005 NAL de flujo de muestra pueden representar, por ejemplo, las unidades 27002 NAL de flujo de muestra que se muestran en la Figura 27.
La Figura 30 ilustra las funciones de los parámetros para reconstruir o renderizar datos de nubes de puntos según las realizaciones.
La Figura 30 ilustra datos 30000 de nube de puntos según las realizaciones, una cámara real o cámara 30001 virtual orientada hacia los datos de nube de puntos, una región 30002 (vista frustum) en un espacio tridimensional (3D) hacia la cual la cámara real y/o cámara 30001 virtual según las realizaciones está orientada, una región 30003 (vista) obtenida proyectando la región en el espacio 3D hacia la cual la cámara real y/o la cámara 30001 virtual está orientada en un plano 2D.
El dispositivo de transmisión de datos de nube de puntos según las realizaciones puede proveer información de región 3D sobre el contenido de V-PCC para soportar el acceso espacial del contenido de V-PCC según una ventana de visualización del usuario y metadatos relacionados con una región 2D en una trama de vídeo o atlas asociada a los mismos.
La cámara 30001 virtual puede ser un concepto que representa la mirada (u ojo) del usuario, es decir, la vista del usuario de una región 3D parcial.
La vista 30002 frustum representa una región en un espacio 3D que incluye todos o parte de los datos de la nube de puntos que realmente se renderizan y muestran a un usuario mediante el dispositivo de recepción de datos de la nube de puntos según las realizaciones.
No es necesario que la vista frustum esté configurada en una forma tridimensional como se muestra en la Figura 30. La visa frustum puede configurarse en forma de cono (o en forma de cono truncado) como, por ejemplo, un cono de visibilidad.
La vista 30003 puede representar una trama de imagen/vídeo 2D que realmente se muestra.
El flujo de bits V-PCC según las realizaciones puede contener información (p. ej., ViewInfoStruct, etc.) para generar una vista provista a un usuario renderizando datos de nube de puntos según las realizaciones.
Por ejemplo, el flujo de bits V-PCC según las realizaciones puede contener información de posición que indica la posición en un espacio 3D de una cámara real o virtual para generar una vista según las realizaciones, un campo de visión horizontal (FOV) y un FOV vertical de la cámara real o virtual en el espacio 3D, información (vector de dirección) que indica la dirección en donde mira la cámara real o virtual, e información del vector superior que indica la dirección hacia arriba de la cámara real o virtual.
El dispositivo de recepción de datos de nube de puntos según las realizaciones puede determinar la posición de los ojos del usuario basándose en la información de posición, y reconstruir o crear la vista 30003 o la vista 30002 frustum que debe ser vista por el usuario, basándose en la posición determinada.
El dispositivo de recepción de datos de nube de puntos según las realizaciones puede determinar la dirección de la mirada del usuario basándose en el vector de dirección, reconstruir o crear la vista 30003 o la vista 30002 frustum que debe ser vista por el usuario, basándose en la dirección determinada.
El dispositivo de recepción de datos de nube de puntos según las realizaciones puede determinar el grado de rotación de los ojos del usuario basándose en el vector superior (p. ej., el grado de rotación con respecto al vector de dirección según las realizaciones), y reconstruir o crear la vista 30003 o la vista 30002 frustum que debe ser vista por el usuario, basándose en el grado de rotación determinado.
El dispositivo de recepción de datos de nube de puntos según las realizaciones puede inferir y generar una vista frustum para un usuario basándose en la información correspondiente a lo anterior en el flujo de bits V-PCC.
El dispositivo de recepción de datos de nube de puntos según las realizaciones puede generar una vista que realmente se muestra al usuario basándose en la vista frustum. Por ejemplo, el dispositivo de recepción puede generar una vista proyectando la vista frustum en forma de una trama 2D.
Para llevar a cabo las operaciones del dispositivo de transmisión según las realizaciones que se muestran en la Figura 30, el codificador del dispositivo de transmisión según las realizaciones genera información de posición que indica la información de posición descrita anteriormente, y el FOV horizontal y FOV vertical descritos anteriormente, el vector de dirección descrito anteriormente y/o información del vector superior descrito anteriormente, y el encapsulador del dispositivo de transmisión según las realizaciones encapsula la información generada.
Para llevar a cabo las operaciones del dispositivo de transmisión según las realizaciones que se muestran en la Figura 30, el encapsulador del dispositivo de transmisión según las realizaciones puede generar y encapsular información de posición que indica la información de posición descrita anteriormente, y el FOV horizontal y FOV vertical descritos anteriormente, el vector de dirección descrito anteriormente y/o la información de vector superior descrito anteriormente.
Se describirá en detalle un método para transmitir la información de vista (p. ej., ViewInfoStruct) según las realizaciones en forma de un archivo encapsulado (p. ej., archivo ISOBMFF) mediante el dispositivo de transmisión según las realizaciones con referencia a la Figura 31.
Para llevar a cabo las operaciones del dispositivo de recepción según las realizaciones que se muestran en la Figura 30, el codificador 10002 del dispositivo 10000 de transmisión según las realizaciones, el dispositivo 100 de codificación de las Figuras 4 y 15, y el codificador 18006 de vídeo de la Figura 18, el codificador 20002 de vídeo y el codificador 20003 de vídeo/imagen de la Figura 20, y el codificador 21007 y 21008 de vídeo/imagen de la Figura 21 generan la información descrita con referencia a la Figura 30, y generan datos de nube de puntos. Los datos codificados pueden configurarse en un flujo de bits 24000 como se muestra en la Figura 24.
Específicamente, la información descrita con referencia a la Figura 30 puede estar contenida en los datos 24002e de atlas del flujo de bits 24000 de nube de puntos según las realizaciones. Los datos 24002e del atlas pueden denominarse conjunto de parámetros de secuencia de atlas.
Cuando los datos de la nube de puntos (o los datos 24002e del atlas) se encapsulan en una única pista mediante el encapsulador (p. ej., los encapsuladores 10003, 20004, 21009 de las Figuras 1 y 20, y 21) según las realizaciones, el flujo de bits 24000 de la nube de puntos que contiene la información descrita con referencia a la Figura 30 puede estar contenido en una entrada de muestra, muestra(s) o submuestra(s) de la pista (pista de flujo de bits V3C o pista de flujo de bits V3C). Cuando se encapsulan en una multipista, los datos pueden transportarse en una pista V3C (p. ej., la pista 28002d V-PCC de la Figura 28) entre múltiples pistas, y el flujo de bits 24000 de la nube de puntos que contiene la información descrita con referencia a la Figura 30 puede incluirse en un flujo de bits 28003d de datos de secuencia de parches.
Además, los datos codificados (por ejemplo, los datos transportados en el flujo de bits V-PCC que se muestra en la Figura 24) pueden encapsularse y transmitirse en forma de un único archivo (p. ej., un archivo ISOBMFF) mediante el encapsulador 10003 de archivos/segmentos. de la Figura 1, el encapsulador 20004, 21009 de archivos/segmentos de las Figuras 20 y 21, o similares.
El dispositivo de transmisión según las realizaciones puede permitir a un reproductor o similar llevar a cabo el acceso espacial o parcial a un objeto y/o contenido de nube de puntos según una ventana de visualización de usuario. El dispositivo de transmisión según las realizaciones provee la información de vista descrita anteriormente, y el dispositivo de recepción lleva a cabo la renderización basándose en la información de vista. En consecuencia, el dispositivo de recepción puede acceder y procesar de forma adaptativa y eficiente el flujo de bits de la nube de puntos según la ventana de visualización del usuario.
La Figura 31 muestra un ejemplo de sintaxis de parámetros para reconstruir o renderizar datos de nube de puntos según las realizaciones.
Los parámetros para reconstruir o renderizar datos de nubes de puntos según las realizaciones que se muestran en la Figura 31 pueden estar contenidos en un flujo de bits V-PCC (o un archivo generado encapsulando el flujo de bits) según las realizaciones.
Los parámetros para reconstruir o renderizar los datos de la nube de puntos pueden incluir view_pos_x, view_pos_y, view_pos_z, view_vfov, view_hfov, view_dir_x, view_dir_y, view_dir_z, view_up_x, view_up_y y/o view_up_z.
Específicamente, los parámetros para reconstruir o renderizar los datos de la nube de puntos pueden ser generados y codificados por el codificador según las realizaciones (p. ej., el codificador 10002 de la Figura 1, el dispositivo 100 de codificación de las Figuras 4 y 15, el codificador 18006 de vídeo de la Figura 18, el codificador 20002 de vídeo y el codificador 20003 de imágenes de la Figura 20, y los codificadores 21007 y 21008 de vídeo/imagen de la Figura 21, o similares), y se incluirán en los datos 24002e del atlas o el conjunto 24002a de parámetros V-PCC de la Figura 24, o en el grupo de mosaicos de atlas en la unidad NAL de flujo de muestra de la Figura 27. Pueden ser encapsulados por el encapsulador (p. ej., el encapsulador 10003 de archivos/segmentos de la Figura 1, el encapsulador 20004, 21009 de archivos/segmentos de las Figuras 20 y 21) y estar incluidos en una o más pistas en el archivo.
Por ejemplo, los parámetros para reconstruir o renderizar los datos de la nube de puntos pueden ser transportados por la pista 28002d V-PCC de la Figura 28, y pueden encapsularse para estar contenidos en el flujo de bits 28803d de datos de secuencia de parches. Por ejemplo, los parámetros para reconstruir o renderizar los datos de la nube de puntos pueden encapsularse para estar contenidos en los datos 24002e del atlas que se muestran en la Figura 24 o el grupo de mosaicos de atlas en la unidad NAL de flujo de muestra que se muestra en la Figura 27 en el flujo de bits 28003d de datos de secuencia de parches de la Figura 28.
Cuando los datos de la nube de puntos (o los datos 24002e del atlas) se encapsulan en una única pista mediante el encapsulador (p. ej., los encapsuladores 10003, 20004 y 21009 de las Figuras 1,20 y 21) según las realizaciones, el flujo de bits 24000 de nube de puntos que contiene la información descrita con referencia a la Figura 31 puede estar contenido en una entrada de muestra, muestra(s) o submuestra(s) de la pista (pista de flujo de bits V3C o pista de flujo de bits V3C). Cuando se encapsulan en multipista, los datos pueden transportarse en una pista V3C (p. ej., la pista 28002d V-PCC de la Figura 28) entre múltiples pistas, y el flujo de bits 24000 de la nube de puntos que contiene la información descrita con referencia a la Figura 31 puede incluirse en un flujo de bits 28003d de datos de secuencia de parches.
Los parámetros para reconstruir o renderizar datos de nube de puntos según las realizaciones pueden denominarse, por ejemplo, ViewInfoStruct e información de vista. Los parámetros para reconstruir o renderizar datos de nubes de puntos según las realizaciones pueden ser parámetros necesarios para llevar a cabo las operaciones descritas con referencia a la Figura 31.
view_pos_x, view_pos_y y view_pos_z indican valores de coordenadas x, y y z en un espacio 3D de una cámara real o virtual para generar una vista de usuario según las realizaciones, respectivamente.
view_vfov y view_hfov indican el FOV vertical y el FOV horizontal de una cámara real o virtual configurada para generar la vista de un usuario.
Los parámetros para reconstruir o renderizar datos de nubes de puntos según las realizaciones pueden incluir información que represente la dirección de orientación de la cámara. La información que representa la dirección de orientación de una cámara puede incluir view_dir_x, view_dir_y, view_dir_z, view_up_x, view_up_y, view_up_z, etc.
view_dir_x, view_dir_y y view_dir_z pueden indicar valores de coordenadas x, y y z en un espacio 3D para representar un vector de dirección que indica una orientación de vista de la cámara real o virtual. Por ejemplo, view_dir_x, view_dir_y y view_dir_z pueden representar un vector de dirección para un cono de visibilidad hacia el cual está orientada la cámara real o virtual.
view_up_x, view_up_y y view_up_z pueden indicar valores de coordenadas x, y y z en un espacio 3D para representar un vector superior que indica una dirección hacia arriba de la cámara real o virtual. Por ejemplo, view_up_x, view_up_y y view_up_z pueden representar un vector superior para un cono de visibilidad hacia el cual está orientada la cámara real o virtual.
La dirección hacia arriba de la cámara real o virtual según las realizaciones puede ser ortogonal a una dirección frontal o dirección de visión (p. ej., una dirección de visión) de la cámara real o virtual según las realizaciones.
Los parámetros (p. ej., ViewInfoStruct) para reconstruir o renderizar datos de nube de puntos según las realizaciones pueden incluirse en un mensaje SEI (o SEI) en un flujo de bits según las realizaciones y transmitirse a un receptor. Por ejemplo, algunos o todos los parámetros para reconstruir o renderizar los datos de la nube de puntos pueden incluirse en un mensaje SEI de información de objeto de escena, y pueden almacenarse y transportarse en un archivo mediante el encapsulador según las realizaciones.
Los parámetros para reconstruir o renderizar datos de nube de puntos según las realizaciones pueden ser encapsulados por el dispositivo de transmisión para incluirse, por ejemplo, en una caja de información de vista V-PCC.
Por ejemplo, los parámetros para reconstruir o renderizar datos de nube de puntos según las realizaciones pueden encapsularse según la siguiente sintaxis para incluirse en la caja de información de vista V-PCC.
aligned(8) class VPCCViewInfoBox extiende FullBox(’vpvi’,0,0) {
ViewInfoStruct();
}
La caja de información de vista de V-PCC según las realizaciones contiene parámetros (p. ej., ViewInfoStruct, información de vista) para reconstruir o renderizar datos de nube de puntos.
La información de vista según las realizaciones puede no cambiar dentro de una secuencia de datos de nube de puntos. Por ejemplo, la información de vista según las realizaciones puede ser información estática que no cambia con el tiempo.
Una entrada de muestra de una pista V-PCC puede contener VPCCViewInfoBox (a saber, la información de vista según las realizaciones). Por ejemplo, la entrada de muestra de la pista V-PCC puede tener la siguiente sintaxis.
aligned(8) class VPCCSampleEntry() extiende VolumetricVisualSampleEntry (’vpcl’) {
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
VPCCViewInfoBox view jnfo;
}
VPCCViewInfoBox contiene información detallada para generar una vista según las realizaciones en donde se renderizan y proveen datos de nube de puntos relacionados con una trama de atlas incluida en una muestra en una pista V-PCC. VPCC ViewInfoBox puede representar la caja de información de vista V-PCC según las realizaciones. VPCCViewInfoBox puede contener parámetros para reconstruir o renderizar datos de nube de puntos según las realizaciones.
Una entrada de muestra de una pista de flujo elemental V-PCC según las realizaciones puede contener VPCCViewInfoBox (a saber, puede contener la información de vista según las realizaciones). Por ejemplo, la entrada de muestra de la pista de flujo elemental V-PCC puede tener la siguiente sintaxis.
aligned(8) class VPCCElementaryStreamSampleEntryO extiende VolumetricVisualSampleEntry (’vpel') { VPCCConfigurationBox config;
VPCCViewIrvfoBox v iew _in fo ;
}
VPCCViewInfoBox representa información para generar una vista provista mediante la renderización de datos de nube de puntos asociados a una trama de atlas o una trama de vídeo almacenada en una submuestra en una pista. VPCCViewInfoBox puede representar la caja de información de vista V-PCC según las realizaciones. VPCCViewInfoBox puede contener parámetros para reconstruir o renderizar datos de nube de puntos según las realizaciones.
La información de vista según las realizaciones puede encapsularse o transportarse en un grupo de muestreo de información de vista V-PCC. Esta realización se describirá.
El groupin-type 'vpvs' para agrupación de muestras representa la asignación de muestras en una pista V-PCC según las realizaciones para la información de vista transportada en este grupo de muestras. Cuando está presente SampleToGroupBox con grouping_type igual a 'vpvs', puede estar presente un SampleGroupDescriptionBox anexo con el mismo tipo de agrupación y contener el ID de este grupo de muestras.
VPCCViewInfoSampleGroupDescriptionEntry según las realizaciones puede tener la siguiente sintaxis.
a lig n e d (8 ) c la s s V P C C V iew In fo5an ip ie< iroup0escrip tionE n try() extiende 5 a m p le G ro u p D e sc rip tio n E n try (1 vpvs ' } { V iew ln f o S t r u c t ( ) ;
)
La información de vista según las realizaciones puede cambiar con el tiempo. En este caso, la información de vista según las realizaciones puede transportarse en una pista de metadatos cronometrados asociada que tiene un tipo de entrada de muestra de 'dyvi'.
Cuando la pista V-PCC incluye la pista de metadatos cronometrados asociada que tiene el tipo de entrada de muestra de 'dyvi, la información de vista según las realizaciones puede definirse mediante datos de nube de puntos transportados por una pista V-PCC que se considera dinámica (es decir, la información de la vista cambia dinámicamente con el tiempo), por ejemplo, DynamicViewInfoSampleEntry.
La pista de metadatos cronometrados asociada según las realizaciones puede incluir una referencia de pista 'cdsc' para hacer referencia a la pista V-PCC que transporta un flujo de atlas.
Cuando la pista de flujo elemental V-PCC según las realizaciones tiene una pista de metadatos temporizados asociada que tiene un tipo de entrada de muestra de 'dyvi', la información de vista según las realizaciones puede definirse mediante datos de nube de puntos (flujo) transportados por una- pista elemental V-PCC que se considera dinámica (a saber, la información de vista puede cambiar dinámicamente con el tiempo).
La pista de metadatos temporizados asociada según las realizaciones puede incluir una referencia de pista 'cdsc' para hacer referencia a la pista de flujo elemental V-PCC.
Una entrada de muestra de la pista de metadatos temporizados asociada para la cual la pista de flujo elemental V-PCC según las realizaciones tiene el tipo de entrada de muestra de 'dyvi' puede tener la siguiente sintaxis.
aligned(8) class DynamicViewInfoSampleEntry extiende
MetaDataSampleEntry(’dyvi’) {
VPCCViewInfoBox init_view_info;
}
init_view_info puede incluir información de vista que incluye una vista inicial de datos de nube de puntos según las realizaciones.
La sintaxis de una muestra del tipo de entrada de muestra 'dyvi' según las realizaciones se puede configurar de la siguiente manera.
aligned(8) DynamicViewInfoSample() {
VPCCViewInfoBox view jnfo;
}
La muestra del tipo de entrada de muestra 'dyvi' según las realizaciones puede incluir información de vista dinámica (VPCCViewInfoBox view_info), que cambia con el tiempo, según las realizaciones.
El dispositivo de transmisión según las realizaciones puede permitir a un reproductor o similar llevar a cabo el acceso espacial o parcial a un objeto y/o contenido de nube de puntos según una ventana de visualización de usuario. El dispositivo de transmisión según las realizaciones provee la información de vista descrita anteriormente, y el dispositivo de recepción lleva a cabo la renderización según la información de vista. En consecuencia, el dispositivo de recepción puede acceder y procesar de forma adaptativa y eficiente el flujo de bits de la nube de puntos según la ventana de visualización del usuario.
La Figura 32 muestra un ejemplo de sintaxis de parámetros para reconstruir o renderizar datos de nube de puntos según las realizaciones.
La Figura 32 muestra los parámetros de renderización utilizados en la renderización o reconstrucción de datos de nubes de puntos según las realizaciones. Los parámetros de renderización según las realizaciones pueden ser información utilizada para renderizar un punto de los datos de la nube de puntos según las realizaciones. Por ejemplo, cuando se renderizan los datos de la nube de puntos, los parámetros de renderización pueden incluir el tamaño del punto, el tipo de renderización del punto e información sobre cómo gestionar un punto duplicado (p. ej., si se debe mostrar el punto duplicado).
Específicamente, los parámetros de renderización pueden generarse y codificarse mediante un codificador según las realizaciones (p. ej., el codificador 10002 de la Figura 1, el dispositivo 100 de codificación de las Figuras 4 y 15, y el codificador 18006 de vídeo de la Figura 18, el codificador 20002 de vídeo y el codificador 20003 de imágenes de la Figura 20, y los codificadores 21007 y 21008 de vídeo/imagen de la Figura 21), y se incluirán en los datos 24002e del atlas de la Figura 24, o en el grupo de mosaicos de atlas en la unidad NAL de flujo de muestra de la Figura 27. Pueden ser encapsulados por el encapsulador (p. ej., el encapsulador 10003 de archivos/segmentos de la Figura 1, el encapsulador 20004, 21009 de archivos/segmentos de las Figuras 20 y 21) y estar incluidos en una o más pistas en el archivo.
Cuando los datos de la nube de puntos (o los datos 24002e del atlas) se encapsulan en una única pista mediante el encapsulador (p. ej., los encapsuladores 10003, 20004 y 21009 de las Figuras 1 y 20 y 21) según las realizaciones, el flujo de bits 24000 de nube de puntos que contiene la información descrita con referencia a la Figura 32 puede estar contenido en una entrada de muestra, muestra(s) o submuestra(s) de la pista (pista de flujo de bits V3C o pista de flujo de bits V3C). La información descrita con referencia a la Figura 30 puede estar contenida en el mensaje SEI en muestras o submuestras. Cuando se encapsulan en multipista, los datos pueden transportarse en una pista V3C (p. ej., la pista 28002d V-PCC de la Figura 28) entre múltiples pistas, y el flujo de bits 24000 de la nube de puntos que contiene la información descrita con referencia a la Figura 31 puede incluirse en el flujo de bits 28003d de datos de secuencia de parches. El flujo de bits 28803d de datos de secuencia de parches puede denominarse flujo de bits de atlas.
La Figura 32 muestra un ejemplo de sintaxis de parámetros de renderización según las realizaciones. Los parámetros de renderización pueden denominarse, por ejemplo, RenderingParamStruct.
point_size puede indicar un tamaño de un punto de datos de nube de puntos que se va a renderizar (reconstruir) o visualizar según las realizaciones.
point_type puede indicar un tipo de punto de datos de nube de puntos que se van a renderizar (reconstruir) o visualizar según las realizaciones. Por ejemplo, cuando point_type es igual a 0, el punto según las realizaciones puede representarse como un cubo o con forma cuboide. Cuando point_type es igual a 1, el punto puede representarse como un círculo o una esfera. Cuando point_type es igual a 2, el punto se puede representar como un punto. Como otro ejemplo, el punto puede tener varios tipos como, por ejemplo, un tetraedro regular.
duplicated_point puede indicar cómo procesar, cuando están presentes, múltiples puntos que tienen los mismos valores x, y z en el espacio 3D cuando el dispositivo de recepción según las realizaciones renderiza (reconstruye) o muestra los múltiples puntos. Por ejemplo, cuando duplicated_point es igual a 0, los puntos duplicados pueden ignorarse. Cuando duplicated_point es igual a 1, solo se puede seleccionar y renderizar (reconstruir)/mostrar aleatoriamente un punto. Además, cuando duplicated_point es igual a 2, los puntos duplicados se pueden renderizar/mostrar en función del valor promedio de los datos de atributos de los puntos duplicados.
La información point_size y point_type según las realizaciones puede establecerse para puntos específicos por parte del productor de contenido de nube de puntos según las realizaciones. En consecuencia, el dispositivo de transmisión de datos de nube de puntos según las realizaciones puede señalar el tipo y tamaño de los puntos, de modo que el dispositivo de recepción puede renderizar puntos de un tipo/tamaño adecuado para el contenido.
Un flujo de bits V-PCC según las realizaciones puede contener parámetros de renderización según las realizaciones. El dispositivo de recepción de datos de nube de puntos según las realizaciones determina el tamaño de un punto de los datos de la nube de puntos al renderizar (o reconstruir) los datos de la nube de puntos basándose en la información point_size.
El dispositivo de recepción de datos de nube de puntos según las realizaciones determina la forma de un punto de los datos de la nube de puntos al renderizar (o reconstruir) los datos de la nube de puntos basándose en la información point_type.
Para llevar a cabo las operaciones del dispositivo de recepción descritas anteriormente, el codificador del dispositivo de transmisión según las realizaciones genera información como, por ejemplo, el tamaño de un punto, un tipo de renderización del punto e información sobre cómo gestionar puntos duplicados (p. ej. , si mostrar los puntos duplicados), y el encapsulador del dispositivo de transmisión según las realizaciones encapsula la información generada.
Para llevar a cabo las operaciones del dispositivo de recepción descritas anteriormente, el encapsulador del dispositivo de transmisión según las realizaciones puede generar y encapsular información como, por ejemplo, el tamaño de un punto, un tipo de renderización del punto e información sobre cómo gestionar puntos duplicados (p. ej., si mostrar los puntos duplicados).
En lo sucesivo, se describirá en detalle a continuación un método para transmitir la información de parámetros de renderización (p. ej., RenderingParameterStruct) según las realizaciones en forma de un archivo encapsulado (p. ej., un archivo ISOBMFF) por el dispositivo de transmisión según las realizaciones.
La información de parámetros de renderización según las realizaciones puede transportarse en forma de SEI o similar en un flujo de bits V-PCC que contiene datos de nube de puntos. Por ejemplo, la información de parámetros de renderización o algunos o todos los parámetros incluidos en la información de parámetros de renderización pueden incluirse en un mensaje SEI de información de objeto de escena.
Por ejemplo, la información de parámetros de renderización puede estar contenida en PCCRenderingParamBox que tiene la siguiente sintaxis.
aligned(8) class VPCCRenderingParamBox extiende
FullBox(’vprp’,0,0) {
RenderingParamStruct();
}
La información de parámetros de renderización según las realizaciones puede no cambiar dentro de una secuencia de datos de nube de puntos. Por ejemplo, la información de parámetros de renderización según las realizaciones puede ser información estática que no cambia con el tiempo.
Una entrada de muestra de una pista V-PCC puede incluir VPCCRenderingParamBox según las realizaciones (es decir, la información de parámetros de renderización según las realizaciones). Por ejemplo, la entrada de muestra de la pista V-PCC puede tener la siguiente sintaxis.
aligned(8) class VPCCSampleEntry() extiende
VolumetricVisualSampleEntry (’vpc1’) {
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
VPCCRenderingParamBox rendering_param;
}
VPCCRenderingParamBox puede incluir información detallada de parámetros de renderización que se puede aplicar al renderizar los datos de la nube de puntos asociados a la trama del atlas incluido en la muestra en la pista. VPCCRenderingParamBox puede incluir información de parámetros de renderización según las realizaciones.
Una entrada de muestra de una pista de flujo elemental V-PCC según las realizaciones puede incluir VPCCRenderingParamBox según las realizaciones (es decir, la información de parámetros de renderización según las realizaciones). Por ejemplo, la entrada de muestra de la pista de flujo elemental V-PCC puede tener la siguiente sintaxis.
aligned(8) class VPCCElementaryStreamSampleEntry() oxtien<to
VolumetricVisualSampleEntry ('vpel') {
VPCCConfigurationBox config;
VPCCRenderingParamBox rendering_param;
)
VPCCRenderingParamBox puede incluir información de parámetros de renderización que se puede aplicar al renderizar una trama de atlas, una trama de vídeo y/o datos de nube de puntos almacenados en una submuestra en la pista. VPCCRenderingParamBox puede incluir la información de parámetros de renderización según las realizaciones.
La información de parámetros de renderización según las realizaciones puede encapsularse o transportarse en un grupo de muestreo de parámetros de renderización V-PCC. Esta realización se describirá.
groupin_type 'vprp' para la agrupación de muestras representa la asignación de muestras en una pista V-PCC según las realizaciones a los parámetros de renderización transportados en este grupo de muestras. Cuando está presente SampleToGroupBox con grouping_type igual a 'vpvs', puede estar presente un SampleGroupDescriptionBox anexo con el mismo tipo de agrupación y contener el ID de este grupo de muestras.
El grupo de muestreo de parámetros de renderización V-PCC según las realizaciones puede tener la siguiente sintaxis.
aligned(8) class VPCCRenderingParamSampleGroupDescriptionEntry()
extiende SampleGroupDescriptionEntry('vprp') {
RenderingParamStruct();
}
La información de parámetros de renderización según las realizaciones puede cambiar con el tiempo. En este caso, la información de parámetros de renderización según las realizaciones puede transportarse en una pista de metadatos cronometrados asociada que tiene un tipo de entrada de muestra de 'dyrp'.
Cuando la pista V-PCC incluye la pista de metadatos temporizados asociada que tiene el tipo de entrada de muestra de 'dyrp', la información de parámetros de renderización según las realizaciones puede definirse mediante datos de nube de puntos transportados por una pista V-PCC que se considera dinámico (es decir, la información de parámetros de renderización cambia dinámicamente con el tiempo), por ejemplo, DynamicRenderingParamSampleEntry.
La pista de metadatos cronometrados asociada según las realizaciones puede incluir una referencia de pista 'cdsc' para hacer referencia a la pista V-PCC que transporta un flujo de atlas.
Cuando la pista de flujo elemental V-PCC según las realizaciones tiene una pista de metadatos temporizados asociada que tiene un tipo de entrada de muestra de 'dyrp', la información de parámetros de renderización según las realizaciones puede definirse mediante datos de nube de puntos (flujo) transportados por una pista elemental V-PCC que se considera dinámica (a saber, la información de parámetros de renderización puede cambiar dinámicamente con el tiempo).
La pista de metadatos temporizados asociada según las realizaciones puede incluir una referencia de pista 'cdsc' para hacer referencia a la pista de flujo elemental V-PCC.
Una entrada de muestra de la pista de metadatos temporizados asociada para la cual la pista de flujo elemental V-PCC según las realizaciones tiene el tipo de entrada de muestra de 'dyrp' puede tener la siguiente sintaxis.
aligned(8) class DynamicRenderingParamSampleEntry
extiende MetaDataSampleEntry('dyrp') {
VPCCRenderingParamBox init_rendering_param;
}
init_rendering_param puede incluir un parámetro de renderización inicial de datos de nube de puntos según las realizaciones.
La sintaxis de una muestra del tipo de entrada de muestra 'dyrp' según las realizaciones se puede configurar de la siguiente manera.
aligned(8) DynamicRenderingParamSample() {
VPCCRenderingParamBox rendering_param;
}
La muestra del tipo de entrada de muestra 'dyrp' según las realizaciones puede contener información de parámetros de renderización dinámica (VPCCRenderingParamBox render_param) que cambia con el tiempo según las realizaciones. Cada muestra puede contener parámetros de renderización que cambian con el tiempo.
El dispositivo de transmisión según las realizaciones puede permitir a un reproductor o similar llevar a cabo el acceso espacial o parcial a un objeto y/o contenido de nube de puntos según una ventana de visualización de usuario. El dispositivo de transmisión según las realizaciones provee parámetros de renderización, y el dispositivo de recepción renderiza puntos según las realizaciones basándose en los parámetros de renderización. En consecuencia, el dispositivo de recepción puede acceder y procesar de forma adaptativa y eficiente el flujo de bits de la nube de puntos según la ventana de visualización del usuario.
La Figura 33 ilustra las funciones de los parámetros para reconstruir o renderizar datos de nubes de puntos según las realizaciones.
La Figura 33 muestra un objeto 33000 de datos de nube de puntos, una posición 33001 del objeto de datos de nube de puntos, un vector 3302 de dirección del objeto de datos de nube de puntos, y un vector 33003 superior del objeto de datos de nube de puntos según las realizaciones.
El objeto 33000 de datos de nube de puntos puede representar la totalidad de los datos de nube de puntos o un objeto (o una persona, etc.) incluido en los datos de nube de puntos según las realizaciones. Es decir, los datos de la nube de puntos pueden estar compuestos de uno o más objetos.
El objeto 33000 puede corresponder, por ejemplo, a un objeto real (p. ej., objetos en una escena), un objeto físico o un objeto conceptual relacionado con otras características. El objeto puede denominarse objeto, datos volumétricos, datos de escena volumétricos o similares.
La posición 33001 del objeto de los datos de la nube de puntos representa un lugar donde se encuentra el objeto de los datos de la nube de puntos según las realizaciones. La posición 33001 del objeto de los datos de la nube de puntos puede ser un punto de referencia para renderizar o reconstruir el objeto mediante el dispositivo de recepción según las realizaciones. La posición 33001 del objeto de los datos de la nube de puntos según las realizaciones puede representar un punto de referencia de un cuadro delimitador en un espacio 3D de los datos de la nube de puntos que incluye el objeto (datos volumétricos). El punto de referencia también puede denominarse punto de anclaje. La posición 33001 del objeto de los datos de la nube de puntos, es decir, la posición del punto de anclaje, se puede representar como las coordenadas en el eje x, eje y, y eje z con respecto al origen del cuadro delimitador en el espacio 3D.
El vector 33002 de dirección del objeto de los datos de la nube de puntos representa una dirección en la cual mira el objeto de los datos de la nube de puntos según la invención. El vector 33002 de dirección del objeto de los datos de la nube de puntos puede ser un vector de dirección usado como referencia para renderizar o reconstruir el objeto mediante el dispositivo de recepción según las realizaciones. El vector 33002 de dirección del objeto según las realizaciones puede denominarse vector de dirección hacia delante, vector normal o vector hacia delante.
El vector 33003 superior del objeto de los datos de la nube de puntos representa la dirección hacia arriba del objeto de los datos de la nube de puntos según las realizaciones. El vector 33003 superior del objeto de los datos de la nube de puntos puede ser un vector usado como referencia para determinar el grado de rotación del objeto cuando el dispositivo de recepción según las realizaciones renderiza o reconstruye el objeto. El vector 33003 superior del objeto de los datos de la nube de puntos según las realizaciones puede ser ortogonal al vector 33002 de dirección del objeto de los datos de la nube de puntos según las realizaciones. El vector 33003 superior del objeto según las realizaciones puede denominarse vector ortogonal.
El dispositivo de recepción de datos de nube de puntos según las realizaciones renderiza o reconstruye el objeto 33000 de los datos de la nube de puntos en una posición correcta basándose en los datos que constituyen el objeto 33000 de los datos de la nube de puntos y/o la posición 33001 del objeto de los datos de la nube de puntos.
El dispositivo de recepción de datos de nube de puntos según las realizaciones renderiza o reconstruye el objeto 33000 de los datos de nube de puntos en una dirección correcta basándose en los datos que constituyen el objeto 33000 de los datos de nube de puntos y/o el vector 33002 de dirección del objeto de la datos de la nube de puntos.
El dispositivo de recepción de datos de nube de puntos según las realizaciones renderiza o reconstruye el objeto 33000 de los datos de la nube de puntos en una dirección de rotación correcta basándose en los datos que constituyen el objeto 33000 de los datos de la nube de puntos y/o el vector 33003 superior del objeto de los datos de la nube de puntos.
El dispositivo de transmisión de datos de nube de puntos según las realizaciones puede transmitir información que indica la posición 33001 del objeto de los datos de la nube de puntos, información que indica el vector 33002 de dirección del objeto de los datos de la nube de puntos e información que indica el vector 33003 superior del objeto de los datos de la nube de puntos en metadatos. Esta información relacionada con el objeto puede denominarse, por ejemplo, información de renderización de objetos.
Específicamente, la información de renderización de objetos puede generarse y codificarse mediante un codificador según las realizaciones (p. ej., el codificador 10002 de la Figura 1, el dispositivo 100 de codificación de las Figuras 4 y 15, y el codificador 18006 de vídeo de la Figura 18, el codificador 20002 de vídeo y el codificador 20003 de imágenes de la Figura 20, y los codificadores 21007 y 21008 de vídeo/imagen de la Figura 21), y puede incluirse en los datos 24002e del atlas o en el conjunto 24002a de parámetros V-PCC de la Figura 24, o en el grupo de mosaicos de atlas en la unidad NAL de flujo de muestra de la Figura 27. Pueden ser encapsulada por el encapsulador (p. ej., el encapsulador 10003 de archivos/segmentos de la Figura 1, el encapsulador 20004, 21009 de archivos/segmentos de las Figuras 20 y 21) y estar incluida en una o más pistas en el archivo.
Por ejemplo, cuando un archivo según las realizaciones es una pista única, la pista puede llevar parámetros para reconstruir o renderizar datos de nube de puntos. Estos pueden incluirse en muestras o entradas de muestra (p. ej., el flujo de bits 28003d de datos de secuencia de parches de la Figura 28, los datos 24002e de atlas que se muestran en la Figura 24, o el grupo de mosaicos de atlas en la unidad NAL del flujo de muestra que se muestra en la Figura 27) llevados en la pista.
Por ejemplo, según las realizaciones, cuando el archivo es multipista, los parámetros para reconstruir o renderizar datos de nube de puntos pueden ser transportados por la pista 28002d V-PCC de la Figura 28, y pueden encapsularse para ser incluidos en el flujo de bits 28003d de datos de secuencia de parches. Por ejemplo, los parámetros para reconstruir o renderizar los datos de la nube de puntos pueden encapsularse para estar contenidos en los datos 24002e del atlas que se muestran en la Figura 24 o grupo de mosaicos de atlas en la unidad NAL de flujo de muestra que se muestra en la Figura 27 en el flujo de bits 28003d de datos de secuencia de parches de la Figura 28.
Cuando los datos de la nube de puntos (o los datos 24002e del atlas) se encapsulan en una única pista mediante el encapsulador (p. ej., los encapsuladores 10003, 20004 y 21009 de las Figuras 1,20 y 21) según las realizaciones, el flujo de bits 24000 de nube de puntos que contiene la información descrita con referencia a la Figura 33 puede estar contenido en una entrada de muestra, muestra(s) o submuestra(s) de la pista (pista de flujo de bits V3C o pista de flujo de bits V3C). La información descrita con referencia a la Figura 33 puede estar contenida en el mensaje SEI en muestras o submuestras. Cuando se encapsulan en multipista, los datos pueden transportarse en una pista V3C (p. ej., la pista 28002d V-PCC de la Figura 28) entre múltiples pistas, y el flujo de bits 24000 de la nube de puntos que contiene la información descrita con referencia a la Figura 33 puede incluirse en un flujo de bits 28003d de datos de secuencia de parches.
Para llevar a cabo las operaciones del dispositivo de recepción descrito anteriormente, el encapsulador (p. ej., 10003 en la Figura 1,20004 en la Figura 20, 21009 en la Figura 21) o el codificador (10002 en la Figura 1, 100 en las Figuras 4 y 15, 18006 en la Figura 18, 20002 y 20003 de la Figura 20, 21007, 21007 y 21008 de la Figura 21) del dispositivo de transmisión según las realizaciones genera información (p. ej., obj_pos_x, obj_pos_y, obj_pos_z de la Figura 34 ) que indica la posición 33001 del objeto de los datos de la nube de puntos según las realizaciones, información que indica el vector 33002 de dirección del objeto de los datos de la nube de puntos, e información que indica el vector 33003 superior del objeto de los datos de la nube de puntos, y el encapsulador del dispositivo de transmisión según las realizaciones encapsula la información generada.
Para llevar a cabo las operaciones del dispositivo de recepción descrito anteriormente, el encapsulador (p. ej., 10003 en la Figura 1,20004 en la Figura 20, 21009 en la Figura 21) o el codificador (10002 en la Figura 1, 100 en las Figuras 4 y 15, 18006 en la Figura 18, 20002 y 20003 de la Figura 20, 21007, 21007 y 21008 de la Figura 21) del dispositivo de transmisión según las realizaciones pueden generar y encapsular la información que indica la posición 33001 del objeto de los datos de la nube de puntos, información que indica el vector 33002 de dirección del objeto de los datos de la nube de puntos, e información que indica el vector 33003 superior del objeto de los datos de la nube de puntos según las realizaciones.
La información de renderización de objetos puede incluir, por ejemplo, propiedades útiles para la extracción y renderización de uno o más objetos. Por ejemplo, la información de renderización de objetos puede incluir identificadores de objetos (o información de etiquetado de objetos, etc.) para identificar los objetos, información que indica si un objeto es visible o no, información del cono de visibilidad e ID de materiales, e información de colisión relacionada con la colisión con otros objetos.
Se describirá en detalle un método para transmitir la información de renderización de objetos según las realizaciones en forma de un archivo encapsulado (p. ej., un archivo ISOBMFF) mediante el dispositivo de transmisión según las realizaciones con referencia a la Figura 34.
El dispositivo de transmisión según las realizaciones puede permitir a un reproductor o similar llevar a cabo el acceso espacial o parcial a un objeto y/o contenido de nube de puntos según una ventana de visualización de usuario. El dispositivo de transmisión según las realizaciones provee la información de renderización de objetos, y el dispositivo de recepción lleva a cabo la renderización basándose en la información de renderización de objetos. En consecuencia, el dispositivo de recepción puede acceder y procesar de forma adaptativa y eficiente el flujo de bits de la nube de puntos según la ventana de visualización del usuario.
La Figura 34 muestra un ejemplo de sintaxis de parámetros para reconstruir o renderizar un objeto de datos de nube de puntos según las realizaciones.
La Figura 34 muestra un ejemplo de la sintaxis de información de renderización de objetos. La información de renderización de objetos según las realizaciones puede ser la información de renderización de objetos descrita con referencia a la Figura 33. Según las realizaciones, un objeto puede denominarse objeto, datos volumétricos, datos volumétricos de escena o similares.
La información de renderización de objetos significa información de datos volumétricos para datos de nubes de puntos.
Los parámetros contenidos en la información de renderización de objetos que se muestra en la Figura 34 pueden estar contenidos en un flujo de bits V-PCC (o metadatos contenidos en el flujo de bits) según las realizaciones. Los parámetros contenidos en la información de renderización de objetos pueden incluir obj_id, obj_coord_type, obj_pos_x, obj_pos_y, obj_pos_z, obj_dir_x, obj_dir_y, obj_dir_z, obj_up_x, obj_up_y, obj_up_z, obj_scale_x, obj scale_y y/u obj_scale_z.
obj_id es un identificador para identificar un objeto (o datos volumétricos) de datos de nube de puntos según las realizaciones.
obj_coord_type puede indicar un sistema de coordenadas usado para el dispositivo de recepción según las realizaciones para renderizar un objeto (o datos volumétricos) de datos de nube de puntos. Cuando el valor de este parámetro es 0, indica que se utilizan las coordenadas globales. Cuando el valor de este parámetro es 1, indica que se utilizan coordenadas de vista. Aquí, las coordenadas de vista se refieren a las coordenadas de una cámara virtual que puede usarse para generar datos de ventana de visualización.
obj_pos_x, obj_pos_y y obj_pos_z indican los valores de las coordenadas x, y y z de la posición del cuadro delimitador (p. ej., el origen, el punto central, un punto de referencia, un punto de anclaje, etc.) de los datos de la nube de puntos en el sistema de coordenadas indicado por obj_coord_type. La información de obj_pos_x, obj_pos_y y obj_pos_z según las realizaciones representa la posición del objeto descrito con referencia a la Figura 33.
obj_dir_x, obj_dir_y y obj_dir_z indican valores de coordenadas x, y y z en un espacio 3D para representar un vector de dirección (o vector normal) que indica una dirección hacia delante de los datos de la nube de puntos según las realizaciones. La información de obj_dir_x, obj_dir_y y obj_dir_z según las realizaciones representa el vector de dirección del objeto descrito con referencia a la Figura 33.
obj_up_x, obj_up_y y obj_up_z indican valores de coordenadas x, y y z en un espacio 3D para representar un vector superior que indica una dirección hacia arriba del objeto (o datos de la nube de puntos) de los datos de la nube de puntos. La información de obj_up_x, obj_up_y y obj_up_z según las realizaciones representa el vector superior del objeto descrito con referencia a la Figura 33.
obj_scale_x, obj_scale_y y obj_scale_z son factores de escala que se aplicarán a los ejes x, y y z como información que indica el grado de ampliación o contracción de un objeto de datos de nube de puntos renderizados o mostrados según las realizaciones en comparación con los datos de la nube de puntos original.
La dirección hacia arriba de una cámara real o virtual según las realizaciones puede ser ortogonal a una dirección frontal o una dirección de visión (p. ej., una dirección de visión) de la cámara real o virtual según las realizaciones.
Según las realizaciones, la información de renderización de objetos (p. ej., ObjectRenderingInfoStruct) puede estar contenida en el mensaje SEI en el flujo de bits según las realizaciones y transmitirse al dispositivo de recepción. Por ejemplo, la información de renderización de objetos o algunos o todos los parámetros incluidos en la información de renderización de objetos pueden estar contenidos en un mensaje SEI de información del objeto de escena.
La información de renderización de objetos según las realizaciones puede ser encapsulada por el dispositivo de transmisión para incluirse, por ejemplo, en una caja de información de renderización de objetos V-PCC.
Por ejemplo, la información de renderización de objetos según las realizaciones puede encapsularse según la siguiente sintaxis para ser transportada en la caja de información de renderización de objetos V-PCC.
aligned(8) class VPCCObjectRenderinglnfoBox extiendo
FullBox(’vpoi’,0,0) {
>ObjectRenderingInfoStruct();
La caja de información de renderización de objetos V-PCC según las realizaciones incluye parámetros (p. ej., ObjectRenderingInfoStruct) para reconstruir o renderizar el objeto de los datos de la nube de puntos.
La información de renderización de objetos según las realizaciones puede no cambiar dentro de una secuencia de datos de nube de puntos. Por ejemplo, la información de renderización de objetos según las realizaciones puede ser información estática que no cambia con el tiempo.
Una entrada de muestra de una pista V-PCC puede contener VPCCObjectRenderingInfoBox según las realizaciones (a saber, la información de renderización de objetos según las realizaciones). Por ejemplo, la entrada de muestra de la pista V-PCC puede tener la siguiente sintaxis.
aligned(8) class VPCCSampleEntry() extiende VolumetricVisualSampleEntry (’vpc1’){
VPCCConfigurationBox config;
VPCCUnitHeaderBox unit_header;
VPCCObjectRenderingInfoBox obj_rendering_info;
}
VPCCObjectRenderingInfoBox puede contener información de renderización de objetos para renderizar un objeto relacionado con datos de nube de puntos asociados con una trama de atlas contenida en una muestra en la pista. Una entrada de muestra de una pista de flujo elemental V-PCC según las realizaciones puede incluir VPCCObjectRenderingInfoBox según las realizaciones (a saber, la información de renderización de objetos según las realizaciones). La entrada de muestra de la pista de flujo elemental V-PCC puede tener la siguiente sintaxis.
aligned(8) class VPCCElementaryStreamSampleEntry() extiende VolumetricVisualSampleEntry (’vpe1’) {
VPCCConfigurationBox config;
VPCCObjectRenderingInfoBox obj_rendering_info;
}
VPCCObjectRenderingInfoBox puede contener información de renderización de objetos para renderizar un objeto asociado con una trama de atlas, una trama de vídeo y/o datos de nube de puntos almacenados en una submuestra dentro de la pista.
La información de renderización de objetos según las realizaciones puede encapsularse o transportarse en un grupo de muestreo de información de renderización de objetos V-PCC. Esta realización se describirá.
grouping_type 'vpoi' para la agrupación de muestras representa la asignación de muestras en una pista V-PCC según las realizaciones a la información de renderización de objetos transportada en este grupo de muestras. Cuando está presente SampleToGroupBox con grouping_type igual a 'vpoi', puede estar presente SampleGroupDescriptionBox anexo con el mismo tipo de agrupación y contener el ID de este grupo de muestras.
La información de agrupación de muestras de información de renderización de objetos V-PCC (VPCCObjRenderingInfoSampleGroupDescriptionEntry) según las realizaciones puede tener la siguiente sintaxis. aligned(8) class VPCCObjRenderingInfoSampleGroupDescriptionEntry()
extiende SampleGroupDescriptionEntry(’vpoi’) {
VPCCObjectRenderingInfoStruct();
}
La información de renderización de objetos según las realizaciones puede cambiar con el tiempo. En este caso, la información de renderización de objetos según las realizaciones puede transportarse en una pista de metadatos cronometrados asociada con un tipo de entrada de muestra de 'dyoi'.
Cuando la pista V-PCC contiene una pista de metadatos cronometrados asociada que tiene un tipo de entrada de muestra 'dyoi', la información de renderización de objetos según las realizaciones puede definirse mediante datos de nube de puntos transportados por una pista V-PCC que se considera dinámica (es decir, la información de renderización de objetos cambia dinámicamente con el tiempo), por ejemplo, DynamicViewInfoSampleEntry.
La pista de metadatos cronometrados asociada según las realizaciones puede incluir una referencia de pista 'cdsc' para hacer referencia a la pista V-PCC que transporta un flujo de atlas.
Cuando la pista de flujo elemental V-PCC según las realizaciones tiene una pista de metadatos temporizados asociada que tiene un tipo de entrada de muestra 'dyoi', la información de renderización de objetos según las realizaciones puede definirse mediante datos de nube de puntos (flujo) transportados por una pista elemental V-PCC que se considera dinámica (a saber, la información de renderización de objetos puede cambiar dinámicamente con el tiempo). La pista de metadatos temporizados asociada según las realizaciones puede incluir una referencia de pista 'cdsc' para hacer referencia a la pista de flujo elemental V-PCC.
Una entrada de muestra de la pista de metadatos temporizados asociada para la cual la pista de flujo elemental V-PCC según las realizaciones tiene el tipo de entrada de muestra 'dyoi' puede tener la siguiente sintaxis.
aligned(8) class DynamicObjRenderingInfoSampleEntry extiende MetaDataSampleEntry(’dyoi’) {
VPCCObjectRenderingInfoBox init_obj_rendering;
}
init_obj_rendering puede incluir información de renderización de objetos para renderizar un objeto inicial asociado a datos de nube de puntos.
La sintaxis de una muestra del tipo de entrada de muestra 'dyoi' según las realizaciones se puede configurar de la siguiente manera.
aligned(8) DynamicObjRenderingInfoSample() {
VPCCObjectRenderingInfoBox obj_rendering_info;
}
La muestra del tipo de entrada de muestra 'dyoi' según las realizaciones puede incluir información de parámetros de renderización dinámica, que cambia con el tiempo, según las realizaciones.
El dispositivo de transmisión según las realizaciones puede permitir a un reproductor o similar llevar a cabo el acceso espacial o parcial a un objeto y/o contenido de nube de puntos según una ventana de visualización de usuario. El dispositivo de transmisión según las realizaciones provee la información de renderización de objetos, y el dispositivo de recepción renderiza un objeto según las realizaciones basándose en la información de renderización de objetos. En consecuencia, el dispositivo de recepción puede acceder y procesar de forma adaptativa y eficiente el flujo de bits de la nube de puntos según la ventana de visualización del usuario.
La Figura 35 ilustra un ejemplo de una operación de encapsular datos de nube de puntos y metadatos sobre los datos de nube de puntos según las realizaciones.
La Figura 35 muestra un ejemplo de un archivo encapsulado para datos V-PCC no temporizados (p. ej., datos de imagen) según las realizaciones.
La Figura 35 puede ilustrar la estructura de un archivo encapsulado en el caso en que los encapsuladores 20004 y 21009 de archivos/segmentos y/o el desencapsulador 22000 de archivos/segmentos según las realizaciones de las Figuras 20 a 22 entregan datos de imagen. Incluso cuando se entregan los datos de imagen, los datos de la nube de puntos según las realizaciones pueden encapsularse en un único elemento o en varios elementos.
Por otro lado, el ejemplo del archivo encapsulado que se muestra en la Figura 28 puede ilustrar la estructura de un archivo encapsulado en el caso donde el encapsulador 20004 y 21009 de archivos/segmentos y/o el desencapsulador 22000 de archivos/segmentos según las realizaciones de las Figuras 20 a 22 entregan datos de vídeo (en, por ejemplo, una sola pista o múltiples pistas).
La Figura 35 muestra una estructura de encapsulación de datos de V-PCC no temporizados. Los datos V-PCC no cronometrados representan datos de nubes de puntos que no se mueven con el tiempo.
Los datos V-PCC no cronometrados pueden almacenarse en un archivo como elementos de imagen. Se puede definir y almacenar un nuevo código 4CC tipo gestor 'vpcc' en HandlerBox de MetaBox para indicar la presencia de elementos V-PCC, elementos de unidad V-PCC y otra información de representación de contenido codificada V-PCC.
Se describirán elementos V-PCC que incluyen datos V-PCC no cronometrados según las realizaciones.
Un elemento V-PCC es un elemento que representa una unidad de acceso V-PCC decodificable independientemente.
Se puede definir un nuevo código 4CC de tipo de elemento 'vpci' para identificar los elementos V-PCC. Los elementos V-PCC pueden almacenarse en la(s) carga(s) útil(es) de la unidad V-PCC del subflujo de bits del atlas según las realizaciones. Si PrimaryItemBox existe, item_id en esta caja se establecerá para indicar un elemento V-PCC. El elemento V-PCC puede denominarse elemento V3C o elemento codificado visual volumétrico basado en vídeo. Un elemento de unidad V-PCC es un elemento que representa datos de unidad V-PCC. Los elementos de unidad V-PCC almacenan carga(s) útil(es) de unidad V-PCC de unidades de datos de vídeo de ocupación, geometría y atributos según las realizaciones. Un elemento de unidad V-PCC almacenará únicamente datos relacionados con una unidad de acceso V-PCC. El elemento de unidad V-PCC puede denominarse elemento de unidad V3C o elemento de unidad codificado basado en vídeo volumétrico visual.
Se puede configurar un código 4CC de tipo de elemento para un elemento de unidad V-PCC dependiendo del códec utilizado para codificar las unidades de datos de vídeo correspondientes. Un elemento de unidad V-PCC se asociará a una propiedad de elemento de encabezado de unidad V-PCC correspondiente y a una propiedad de elemento de configuración específica del códec.
Los elementos de unidad V-PCC están marcados como elementos ocultos, ya que no tiene sentido mostrarlos de forma independiente.
Para indicar la relación entre un elemento V-PCC y las unidades V-PCC, se definen tres nuevos tipos de referencia de artículos con códigos 4CC 'pcco', 'pccg' y 'pcca'. La referencia del elemento se define "de" un elemento V-PCC "a" los elementos de unidad de V-PCC relacionados. Los códigos 4CC de tipos de referencia de elementos son:
1) 'pcco' (o v3vo): los elementos de unidad V-PCC a los que se hace referencia contienen las unidades de datos de vídeo de ocupación.
2) 'pccg' (o v3vg): los elementos de unidad V-PCC a los que se hace referencia contienen las unidades de datos de vídeo de geometría.
3) 'pcca' (o v3va): los elementos de unidad V-PCC a los que se hace referencia contienen las unidades de datos de vídeo del atributo.
Se describirán las propiedades de los elementos relacionados con V-PCC. Las propiedades descriptivas del elemento se definen para transportar la información del conjunto de parámetros V-PCC y la información del encabezado de la unidad V-PCC, respectivamente. Las propiedades de elemento relacionadas con V-PCC pueden incluir, por ejemplo, una propiedad de elemento de configuración de V-PCC, una propiedad de elemento de encabezado de unidad<V - P C c ,>una propiedad de elemento de formación de vista V-PCC según las realizaciones, un parámetro de renderización V-PCC según las realizaciones, y una propiedad de elemento de información de renderización de objetos V-PCC. La propiedad de elemento relacionada con V-PCC puede denominarse propiedad de elemento relacionada con V3C, y la información de encabezado de unidad V-PCC puede denominarse información de encabezado de unidad V3C. Se describirá la propiedad del elemento de configuración V-PCC.
Tipo de caja: 'vpcp'
Tipo de propiedad: propiedad de elemento descriptivo
Contenedor: ItemPropertyContainerBox
Obligatorio (por elemento): sí (para un elemento V-PCC de tipo 'vpci')
Cantidad (por elemento): uno o más (para un elemento V-PCC de tipo 'vpci')
Los conjuntos de parámetros V-PCC se almacenan como propiedades de elementos descriptivos y están asociados a los elementos V-PCC.
La propiedad del elemento de configuración V-PCC puede denominarse propiedad del elemento de configuración V3C. La propiedad del elemento de configuración VPCC (VPCCConfigurationProperty) según las realizaciones puede tener la siguiente sintaxis.
aligned(8) class vpcc_unit_payload_struct () {
unsigned int(16) vpcc_unit_payload_size;
vpcc_unit_payload();
>
aligned(8) class VPCCConfigurationPropertyextiende
ItemProperty(’vpcc') {
vpcc_unit_payload_struct()[];
>
vpcc_unit_payload_size indica el tamaño de vpcc_unit_payload().
Se describirá la propiedad del elemento del encabezado de unidad V-PCC.
Tipo de caja: 'vunt'
Tipo de propiedad: propiedad de elemento descriptivo
Contenedor: ItemPropertyContainerBox
Obligatorio (por elemento): sí para un elemento V-PCC de tipo 'vpci' y para un elemento de unidad V-PCC Cantidad (por elemento): uno
El encabezado de la unidad V-PCC se almacena como propiedades descriptivas del elemento y está asociado a los elementos V-PCC y a los elementos de la unidad V-PCC.
La propiedad de elemento de encabezado de unidad V-PCC puede denominarse propiedad de elemento de encabezado de unidad V3C.
aligned(8) class VPCCUnitHeaderProperty () extiende
ItemFullProperty(’vunt’, version=0, 0) {
vpcc_unit_header();
}
Según las realizaciones, la información de vista para datos V-PCC no temporizados puede encapsularse y transmitirse en la propiedad del elemento de información de vista V-PCC.
Se describirá la propiedad del elemento de información de vista V-PCC según las realizaciones.
Tipo de caja: 'vpvi'
Tipo de propiedad: propiedad de elemento descriptivo
Contenedor: ItemPropertyContainerBox
Obligatorio (por elemento): sí, para un elemento V-PCC de tipo 'vpci' y para un elemento de unidad V-PCC Cantidad (por elemento): uno
La información de vista según las realizaciones puede almacenarse como propiedades descriptivas del elemento y asociarse a los elementos V-PCC y a los elementos de unidad V-PCC.
La sintaxis de la propiedad del elemento de información de vista V-PCC (VPCCViewInfoproperty) según las realizaciones se puede configurar como se muestra a continuación. ViewInfoStruct puede incluir la información de vista según las realizaciones.
La propiedad de elemento de información de vista V-PCC puede denominarse propiedad de elemento de información de vista V3C.
aligned(8) class VPCCViewInfoproperty () extiende
ItemFullProperty(’vpvi’, version=0, 0) {
ViewInfoStruct();
}
Los parámetros de renderización según las realizaciones para datos V-PCC no temporizados pueden encapsularse y transmitirse en la propiedad del elemento de parámetros de renderización V-PCC.
Se describirá la propiedad del elemento de parámetros de renderización V-PCC según las realizaciones.
Tipo de caja: 'vprp'
Tipo de propiedad: propiedad de elemento descriptivo
Contenedor: ItemPropertyContainerBox
R Obligatorio (por elemento): sí, para un elemento V-PCC de tipo 'vpci' y para un elemento de unidad V-PCC Cantidad (por elemento): uno
El parámetro de renderización según las realizaciones puede almacenarse como propiedades descriptivas del elemento y asociarse a los elementos V-PCC y a los elementos de unidad V-PCC.
La sintaxis de la propiedad del elemento del parámetro de renderización V-PCC (VPCCRenderingParamsproperty) según las realizaciones se puede configurar como se muestra a continuación. RenderingParamStruct puede contener un parámetro de renderización según las realizaciones.
La propiedad del elemento del parámetro de renderización V-PCC puede denominarse propiedad del elemento del parámetro de renderización V3C.
aligned(8) class VPCCRenderingParamsproperty ()extiende
ItemFullProperty(’vprp’, versión*©, 0) {
RenderingParamStruct();
>
Según las realizaciones, la información de renderización de objetos para datos V-PCC no temporizados puede encapsularse y transmitirse en la propiedad del elemento de información de renderización de objetos V-PCC.
Se describirá la propiedad del elemento de información de renderización del objeto V-PCC según las realizaciones. Tipo de caja: 'vpri'
Tipo de propiedad: propiedad de elemento descriptivo
Contenedor: ItemPropertyContainerBox
Obligatorio (por elemento): sí, para un elemento V-PCC de tipo 'vpci' y para un elemento de unidad V-PCC Cantidad (por elemento): uno
La información de renderización de objetos según las realizaciones puede almacenarse como propiedades descriptivas del elemento y asociarse a los elementos V-PCC y a los elementos de unidad V-PCC.
La sintaxis de la propiedad de elemento de información de renderización de objetos V-PCC (VPCCObjRenderingInfoproperty) según las realizaciones se puede configurar como se muestra a continuación. VPCCObjRenderingInfoproperty puede contener la información de renderización del objeto según las realizaciones. La propiedad de elemento de información de renderización de objetos V-PCC puede denominarse propiedad de elemento de información de renderización de objetos V3C.
aligned(8) class VPCCObjRenderingInfoproperty () extiende
ItemFullProperty('vpri', versión»©, 0) {
ObjectRenderingInfoStruct();
}
Los datos de la nube de puntos y los metadatos para los datos de la nube de puntos según las realizaciones pueden configurarse para encapsular un servicio de los datos de la nube de puntos basándose en el método descrito con referencia a las Figuras 30 a 35 para configurar un flujo de bits V-PCC y almacenar un archivo.
Según las realizaciones, al llevar a cabo la encapsulación como se describe con referencia a las Figuras 25 a 35, el dispositivo de transmisión según las realizaciones puede transmitir, en el flujo de bits, los metadatos sobre el procesamiento de datos y la realización de la renderización en un flujo de bits V-PCC.
El dispositivo de transmisión según las realizaciones puede permitir que un reproductor o similar lleve a cabo un acceso espacial o parcial a un objeto de nube de puntos y/o al contenido de una nube de puntos según una ventana de visualización del usuario. Según las realizaciones, el aparato de transmisión puede proveer la información de vista descrita anteriormente, y el aparato de recepción puede llevar a cabo la renderización basándose en la información de vista. En consecuencia, el aparato de recepción puede acceder y procesar de manera adaptativa y eficiente el flujo de bits de la nube de puntos según una ventana de visualización del usuario.
El dispositivo de transmisión de datos de nube de puntos según las realizaciones provee un cuadro delimitador para el acceso parcial y/o acceso espacial al contenido de la nube de puntos (p. ej., contenido V-PCC) y la información de señalización para ello. En consecuencia, el dispositivo de recepción de datos de nube de puntos según las realizaciones puede acceder al contenido de la nube de puntos de diversas maneras teniendo en cuenta el entorno del reproductor o del usuario.
El dispositivo de transmisión de datos de nube de puntos según las realizaciones puede proveer información de región 3D sobre el contenido V-PCC para soportar el acceso espacial del contenido V-PCC según una ventana de visualización del usuario y metadatos relacionados con una región 2D en una trama de vídeo o atlas asociada al mismo.
El dispositivo de transmisión de datos de nube de puntos según las realizaciones (p. ej., el preprocesador 20001 de nube de puntos de la Figura 20, el preprocesador de nube de puntos de la Figura 21, etc.) puede generar información de región 3D sobre una nube de puntos en un flujo de bits de nube de puntos e información de señalización relacionada con una región 2D en una trama de vídeo o atlas asociada al mismo.
La información de la región 3D sobre la nube de puntos y la información de señalización relacionada con la región 2D en una trama de vídeo o atlas asociada a la misma puede incluir, por ejemplo, la información de vista según las realizaciones que se muestran en las Figuras 30 y 31, parámetros de renderización según las realizaciones que se muestran en la Figura 32, y/o la información de renderización del objeto según las realizaciones que se muestran en las Figuras 33 y 34.
El dispositivo de recepción de datos de nube de puntos según las realizaciones puede recibir y/o analizar la información de la región 3D sobre la nube de puntos y la información de señalización relacionada con la región 2D en una trama de vídeo o atlas asociada a la misma en un archivo (p. ej., un archivo ISOBMFF).
El dispositivo de recepción de datos de nube de puntos según las realizaciones puede acceder eficientemente al contenido de datos de la nube de puntos (p. ej., puntos, objetos, etc. de los datos de la nube de puntos) según las realizaciones basándose en la información del archivo. Además, el dispositivo de recepción de datos de nube de puntos según las realizaciones puede proveer contenido de nube de puntos teniendo en cuenta un entorno de usuario, basándose en un elemento de imagen, información de región 3D sobre una nube de puntos asociada al elemento de imagen e información relacionada con la región 2D en una trama de vídeo o atlas asociada al mismo en un archivo (p. ej., un archivo que contiene la información de vista según las realizaciones, los parámetros de renderización según las realizaciones que se muestran en la Figura 32, y/o la información de renderización del objeto según las realizaciones que se muestran en Figuras 33 y 34, y similares).
La Figura 36 ilustra un método de transmisión de datos de nube de puntos y/o un método de procesamiento de datos para transmitir datos de nube de puntos según las realizaciones.
El método de transmisión de datos de nube de puntos según las realizaciones incluye codificar datos de nube de puntos (E0001), encapsular los datos de nube de puntos (E0002) y/o transmitir un flujo de bits que contiene los datos de nube de puntos y/o metadatos sobre los datos de nube de puntos (E0003).
En la operación E0001 de codificar los datos de la nube de puntos, se codifican los datos de la nube de puntos según las realizaciones. Por ejemplo, en la operación de codificación E0001, la operación del codificador 10002 de vídeo de nube de puntos de la Figura 1, la operación de codificación descrita con referencia a la Figura 3 y/o Figura 4, y algunas o todas las operaciones del dispositivo 100 de codificación según las realizaciones de la Figura 15, la operación del codificador 18006 de vídeo según las realizaciones de la Figura 18, la codificación 20002 de vídeo y/o la codificación 20003 de imágenes de la Figura 20, y la codificación 21007 de vídeo y/o la codificación 21008 de imágenes de la Figura 21 pueden llevarse a cabo.
En la operación E0002 de encapsular los datos de la nube de puntos, se encapsulan los datos de la nube de puntos codificados según las realizaciones. Por ejemplo, en la operación de encapsulación E0002, los datos de la nube de puntos según las realizaciones pueden encapsularse en un archivo de un formato predeterminado (p. ej., formato ISOBMFF). La operación de encapsulación E0002 representa la operación del módulo 10003 de encapsulación de archivos/segmentos de la Figura 1, la operación del encapsulador 20004 de archivos/segmentos de la Figura 20, y la operación del encapsulador 21009 de archivos/segmentos de la Figura 21. La operación de encapsulación E0002 puede representar, por ejemplo, la operación de encapsular los datos de la nube de puntos según las realizaciones en el formato de un archivo que se muestra en la Figura 28.
En la operación de encapsulación E0002 según las realizaciones, los metadatos sobre la renderización y/o reconstrucción de los datos de la nube de puntos también se pueden encapsular en un único archivo. Por ejemplo, en la operación de encapsulación E0002, la información de vista, los parámetros de renderización y/o la información de renderización de objetos según las realizaciones se pueden encapsular según un formato de archivo específico (p. ej., formato de archivo ISOBMFF) según el método descrito con referencia a las Figuras 30 a 35.
En la operación E0003 de transmitir los datos de la nube de puntos, se transmiten los datos de la nube de puntos encapsulados (o datos de la nube de puntos no encapsulados, etc.) según las realizaciones. En la operación E0003 de transmitir los datos de la nube de puntos, un flujo de bits que contiene los datos de la nube de puntos encapsulados y/o metadatos sobre los datos de la nube de puntos según las realizaciones en forma de un archivo (o flujo de bits) se transmiten al dispositivo de recepción según las realizaciones.
La Figura 37 ilustra un método de recepción de datos de nube de puntos y/o un método de procesamiento de datos para recibir datos de nube de puntos según las realizaciones.
El método de recepción de datos de nubes de puntos según las realizaciones incluye recibir datos de nubes de puntos (E1001), desencapsular los datos de nubes de puntos (E1002) y/o decodificar los datos de nubes de puntos (E1003).
En la operación E1001 de recibir los datos de la nube de puntos, el dispositivo de recepción de datos de la nube de puntos según las realizaciones recibe los datos de la nube de puntos. El dispositivo de recepción de datos de nubes de puntos según las realizaciones puede recibir un flujo de bits o un archivo (p. ej., un archivo ISOBMFF, etc.) que contiene los datos de la nube de puntos y/o metadatos sobre los datos de la nube de puntos.
Por ejemplo, en la operación E1001 de recibir los datos de la nube de puntos, se pueden llevar a cabo la operación del receptor 10006 de la Figura 1, la operación del receptor de la Figura 19, la operación del reproductor de nube de puntos basado en vídeo que recibe un archivo en la Figura 20, y la operación de entrega de la Figura 22.
Los datos de la nube de puntos pueden recibirse en formato de flujo de bits. El flujo de bits puede contener, por ejemplo, uno o más archivos. El archivo puede ser, por ejemplo, un archivo encapsulado basado en ISOBMFF. Por ejemplo, el flujo de bits (o archivo) recibido por el dispositivo de recepción puede ser el flujo de bits V-PCC que se muestra en las Figuras 24 a 27, o puede ser un archivo encapsulado basado en ISOBMFF compuesto de una o más pistas y una o más muestras correspondientes a cada pista como se muestra en las Figuras 28 a 29.
Los metadatos son información de señalización sobre los datos de la nube de puntos según las realizaciones. Los metadatos pueden incluir información necesaria para la renderización y/o reconstrucción de los datos de la nube de puntos según las realizaciones. Por ejemplo, los metadatos pueden contener la información y/o los parámetros descritos con referencia a las Figuras 30 a 35.
En la operación E1002 de desencapsular los datos de la nube de puntos, se desencapsulan los datos de la nube de puntos recibidos (p. ej., flujo de bits, archivo ISOBMFF, etc.) según las realizaciones. Por ejemplo, en la operación de desencapsulación E1002, el archivo ISOBMFF recibido puede convertirse o descomprimirse en un flujo de bits como se muestra en las Figuras 24 a 27. En la operación de desencapsulación E1002, pueden llevarse a cabo la operación del módulo 10007 de desencapsulación de archivos/segmentos de la Figura 1, la operación del desencapsulador 20005 de archivos/segmentos de la Figura 20, y/o el desencapsulador 22000 de archivos/segmentos de la Figura 22.
En la operación E1002 de decodificar los datos de la nube de puntos, se decodifican los datos de la nube de puntos desencapsulados. En la operación E1002 de decodificar los datos de la nube de puntos, los datos de la nube de puntos se pueden decodificar reconstruyendo los datos de la nube de puntos. En la operación E1002 de decodificar los datos de la nube de puntos, los datos de la nube de puntos desencapsulados según las realizaciones se renderizan, decodifican y/o reconstruyen. Por ejemplo, en la operación de decodificación E1003, las operaciones del decodificador 10008 de vídeo de nube de puntos y/o del renderizador 10009 según las realizaciones de la Figura 1, algunas o todas las operaciones de los procesos 16000 a 16008 de decodificación V-PCC según las realizaciones de la Figura 16, algunas o todas las operaciones del dispositivo 200 de decodificación de la Figura 17, algunas o todas las operaciones del decodificador 19001 de vídeo, el decodificador 19002 de metadatos, el reconstructor 19003 de geometría, el suavizador 19004, el reconstructor 19005 de textura, el suavizador de color y/o el renderizador de nube de puntos de la Figura 19, y algunas o todas las operaciones del decodificador 20006 de vídeo de la Figura 20 y del decodificador 22001 de vídeo y del decodificador 22002 de imágenes de la Figura 21.
Las realizaciones se han descrito en términos de un método y/o un dispositivo. La descripción del método y la descripción del dispositivo pueden complementarse entre sí.
Aunque se han descrito realizaciones con referencia a cada uno de los dibujos anexos en aras de la simplicidad, es posible diseñar nuevas realizaciones fusionando las realizaciones ilustradas en los dibujos anexos. Los dispositivos y métodos pueden no estar limitados por las configuraciones y métodos de las realizaciones descritas anteriormente. Las realizaciones descritas anteriormente pueden configurarse combinándose selectivamente entre sí total o parcialmente para permitir diversas modificaciones.
Varios elementos de los dispositivos de las realizaciones pueden implementarse mediante hardware, software, firmware o una combinación de los mismos. Varios elementos en las realizaciones pueden implementarse mediante un único chip, por ejemplo, un único circuito de hardware. Según las realizaciones, los componentes según las realizaciones pueden implementarse como chips separados, respectivamente. Según las realizaciones, al menos uno o más de los componentes del dispositivo según las realizaciones pueden incluir uno o más procesadores capaces de ejecutar uno o más programas. El único o más programas pueden llevar a cabo una o más de las operaciones/métodos según las realizaciones o incluir instrucciones para llevar a cabo los mismos. Las instrucciones ejecutables para llevar a cabo el método/operaciones del dispositivo según las realizaciones pueden almacenarse en un CRM no transitorio u otros productos de programas de ordenador configurados para ser ejecutados por uno o más procesadores, o pueden almacenarse en un CRM transitorio u otros productos de programa de ordenador configurados para ser ejecutados por uno o más procesadores. Además, la memoria según las realizaciones puede usarse como un concepto que cubre no solo memorias no permanentes (p. ej., RAM) sino también memorias permanentes, memorias flash y PROM. Además, también se puede implementar en forma de onda portadora, como, por ejemplo, la transmisión a través de Internet.
Además, el medio de grabación legible por procesador puede distribuirse a sistemas informáticos conectados en una red de manera que el código legible por procesador puede almacenarse y ejecutarse de forma distribuida.
En este documento, los términos "/" y "," deben interpretarse como si indicaran "y/o". Por ejemplo, la expresión "A/B" puede significar "A y/o B". Además, "A, B" puede significar "A y/o B". Además, "A/B/C" puede significar "al menos uno de A, B y/o C". "A, B, C" también puede significar "al menos uno de A, B y/o C". Además, en el documento, el término "o" debe interpretarse como "y/o". Por ejemplo, la expresión "A o B" puede significar 1) solo A, 2) solo B y/o 3) tanto A como B. En otras palabras, el término "o" en este documento debe interpretarse como "de manera adicional o alternativa".
Se pueden usar términos como, por ejemplo, primero y segundo para describir diversos elementos de las realizaciones. Sin embargo, diversos componentes según las realizaciones no deben estar limitados por los términos anteriores. Estos términos solo se utilizan para distinguir un elemento de otro. Por ejemplo, una primera señal de entrada de usuario puede denominarse segunda señal de entrada de usuario. De manera similar, la segunda señal de entrada de usuario puede denominarse primera señal de entrada de usuario. Se debe interpretar que el uso de estos términos no se aparta del alcance de las diversas realizaciones. La primera señal de entrada de usuario y la segunda señal de entrada de usuario son ambas señales de entrada de usuario, pero no significan la misma señal de entrada de usuario a menos que el contexto indique claramente lo contrario.
La terminología utilizada para describir las realizaciones se utiliza con el fin de describir realizaciones particulares únicamente y no pretende ser limitante de las realizaciones. Según su uso en la descripción de las realizaciones y en las reivindicaciones, las formas singulares "un", "una/o" y "el/la" incluyen referentes en plural a menos que el contexto dicte claramente lo contrario. La expresión "y/o" se utiliza para incluir todas las combinaciones posibles de términos. Los términos como, por ejemplo, "incluye" o "tiene" pretenden indicar la existencia de figuras, números, etapas, elementos y/o componentes y deben entenderse como que no excluyen la posibilidad de existencia adicional de figuras, números, etapas, elementos y/o componentes. Según su uso en la presente memoria, las expresiones condicionales como, por ejemplo, "si" y "cuando" no se limitan a un caso opcional y están destinadas a ser interpretadas, cuando se cumple una condición específica, para llevar a cabo la operación relacionada o interpretar la definición relacionada según la condición específica.
Las operaciones según las realizaciones descritas en esta memoria descriptiva pueden llevarse a cabo mediante un dispositivo de transmisión/recepción que incluye una memoria y/o un procesador según las realizaciones. La memoria puede almacenar programas para procesar/controlar las operaciones según las realizaciones, y el procesador puede controlar diversas operaciones descritas en esta memoria descriptiva. El procesador puede denominarse controlador o similar. En las realizaciones, las operaciones pueden llevarse a cabo mediante firmware, software y/o combinaciones de los mismos. El firmware, el software y/o sus combinaciones pueden almacenarse en el procesador o en la memoria.
Las operaciones según las realizaciones descritas anteriormente pueden llevarse a cabo por el dispositivo de transmisión y/o el dispositivo de recepción según las realizaciones. El dispositivo de transmisión/recepción puede incluir un transmisor/receptor configurado para transmitir y recibir datos multimedia, una memoria configurada para almacenar instrucciones (código de programa, algoritmos, diagramas de flujo y/o datos) para los procesos según las realizaciones, y un procesador configurado para controlar las operaciones del dispositivo de transmisión/recepción.
El procesador puede denominarse controlador o similar y puede corresponder, por ejemplo, a hardware, software y/o una combinación de los mismos. Las operaciones según las realizaciones descritas anteriormente pueden llevarse a cabo por el procesador. Además, el procesador puede implementarse como un codificador/decodificador para las operaciones de las realizaciones descritas anteriormente.
Modo de descripción
Como se describe anteriormente, los detalles relacionados se han descrito de la mejor manera para llevar a cabo las realizaciones.
Aplicabilidad industrial
Como se describe anteriormente, las realizaciones son total o parcialmente aplicables a un dispositivo y sistema de transmisión/recepción de datos de nube de puntos.
Las realizaciones pueden incluir variaciones/modificaciones dentro del alcance de las reivindicaciones.
Claims (14)
1. Un método para transmitir datos de nubes de puntos, comprendiendo el método:
codificar datos de nubes de puntos (E0001), incluidos datos volumétricos como un flujo de bits; encapsular (E0002) los datos y metadatos de la nube de puntos codificados para los datos de la nube de puntos codificados en un archivo según un formato de archivo multimedia base ISO, ISOBMFF, por sus siglas en inglés, en donde los metadatos incluyen información de objeto de uno o más objetos presentados en los datos volumétricos, la información de objeto incluye un identificador de objeto que representa un objeto e información de dirección de objeto para el objeto representado por el identificador de objeto, en donde la información de dirección de objeto representa información de coordenadas de un vector de dirección para el objeto, en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z de una posición de una cámara relacionada con una ventana de visualización; y
transmitir (E0003) el flujo de bits.
2. El método de la reivindicación 1,
en donde los metadatos incluyen además información que representa una forma de un punto de los datos de la nube de puntos e información que representa un tamaño del punto,
en donde la forma del punto incluye una forma de círculo,
en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z de una posición de origen de un cuadro delimitador para el objeto,
en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z para una dirección de la cámara relacionada con una ventana de visualización,
en donde los metadatos incluyen además información que representa rangos horizontales y verticales para un campo de visión, y
en donde la información del objeto se incluye en el mensaje de Información de Mejora Suplementaria, SEI, por sus siglas en inglés, que está contenido en NAL_unit del flujo de bits.
3. El método de la reivindicación 2,
en donde los metadatos incluyen información para los datos volumétricos, la información para los datos volumétricos incluye información relacionada con la posición utilizada para reconstruir los datos volumétricos e información relacionada con la dirección aplicada para los datos volumétricos, la información relacionada con la dirección incluye información que representa una dirección hacia delante de los datos volumétricos e información que representa una dirección superior para los datos volumétricos.
4. El método de la reivindicación 3,
en donde los metadatos incluyen además información de la cámara,
la información de la cámara incluye información que representa una posición de la cámara, información que representa una orientación de la cámara, información que representa un campo de visión, FOV, horizontal de una vista frustum e información que representa un FOV vertical de la vista frustum.
5. Un aparato (10000) para transmitir datos de nubes de puntos, comprendiendo el aparato (10000):
un codificador (10002) configurado para codificar datos de nubes de puntos que incluyen datos volumétricos como un flujo de bits;
un encapsulador (10003) configurado para encapsular los datos de la nube de puntos codificados y los metadatos para los datos de la nube de puntos codificados en un archivo según un formato de archivo multimedia base ISO, ISOBMFF,
en donde los metadatos incluyen información de objeto de uno o más objetos presentados en los datos volumétricos, la información de objeto incluye un identificador de objeto que representa un objeto e información de dirección de objeto para el objeto representado por el identificador de objeto, en donde la información de dirección de objeto representa información de coordenadas de un vector de dirección para el objeto, en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z de una posición de una cámara relacionada con una ventana de visualización; y
un transmisor (10004) configurado para transmitir el flujo de bits.
6. El aparato (10000) de la reivindicación 5, en donde los metadatos incluyen además información que representa una forma de un punto de los datos de la nube de puntos e información que representa un tamaño del punto,
en donde la forma del punto incluye una forma de círculo,
en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z de una posición de origen de un cuadro delimitador para el objeto,
en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z para una dirección de la cámara relacionada con una ventana de visualización,
en donde los metadatos incluyen además información que representa rangos horizontales y verticales para un campo de visión, y
en donde la información del objeto se incluye en el mensaje de Información de Mejora Suplementaria, SEI, que está contenido en NAL_unit del flujo de bits.
7. El aparato (10000) de la reivindicación 6, en donde los metadatos incluyen información para los datos volumétricos, la información para los datos volumétricos incluye información relacionada con la posición utilizada para reconstruir los datos volumétricos e información relacionada con la dirección aplicada para los datos volumétricos, la información relacionada con la dirección incluye información que representa una dirección hacia delante de los datos volumétricos, e información que representa una dirección superior para los datos volumétricos.
8. El aparato (10000) de la reivindicación 7, en donde los metadatos incluyen información de la cámara,
la información de la cámara incluye información que representa una posición de la cámara, información que representa una orientación de la cámara, información que representa un FOV (campo de visión) horizontal de una vista frustum e información que representa un FOV vertical de la vista frustum.
9. Un método para recibir datos de nubes de puntos, comprendiendo el método:
recibir (E1001) un archivo de un formato de archivo multimedia base ISO, ISOBMFF;
desencapsular (E1002) el archivo en un flujo de bits que incluye datos volumétricos y metadatos para los datos volumétricos; y,
decodificar (E1003) los datos volumétricos en el flujo de bits según los metadatos; y
reconstruir los datos volumétricos según los metadatos,
en donde los metadatos incluyen información de objeto de uno o más objetos presentados en los datos volumétricos, la información de objeto incluye un identificador de objeto que representa un objeto e información de dirección de objeto para el objeto representado por el identificador de objeto, en donde la información de dirección de objeto representa información de coordenadas de un vector de dirección para el objeto, en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z de una posición de una cámara relacionada con una ventana de visualización.
10. El método de la reivindicación 9, en donde los metadatos incluyen además información que representa una forma de un punto de los datos de la nube de puntos e información que representa un tamaño del punto,
en donde la forma del punto incluye una forma de círculo,
en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z de una posición de origen de un cuadro delimitador para el objeto,
en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z de una posición de una cámara relacionada con una ventana de visualización,
en donde los metadatos incluyen además información que representa rangos horizontales y verticales para un campo de visión, y
en donde la información del objeto se incluye en el mensaje de Información de Mejora Suplementaria, SEI, que está contenido en NAL_unit del flujo de bits.
11. El método de la reivindicación 10, en donde los metadatos incluyen información para los datos volumétricos, la información para los datos volumétricos incluye información relacionada con la posición utilizada para reconstruir los datos volumétricos e información relacionada con la dirección aplicada para los datos volumétricos, la información relacionada con la dirección incluye información que representa una dirección hacia delante de los datos volumétricos, e información que representa una dirección superior para los datos volumétricos.
12. Un aparato (10005) para recibir datos de nubes de puntos, comprendiendo el aparato:
un receptor (10006) configurado para recibir un archivo de un formato de archivo multimedia base ISO, ISOBMFF; un desencapsulador (10007) configurado para desencapsular el archivo en un flujo de bits que incluye datos volumétricos y metadatos para los datos volumétricos;
un decodificador (10007) configurado para decodificar los datos volumétricos en el flujo de bits en función de los metadatos; y
un procesador (10009) configurado para reconstruir los datos volumétricos de los datos de la nube de puntos decodificados según los metadatos,
en donde los metadatos incluyen información de objeto de uno o más objetos presentados en los datos volumétricos, la información de objeto incluye un identificador de objeto que representa un objeto e información de dirección de objeto para el objeto representado por el identificador de objeto, en donde la información de dirección de objeto representa información de coordenadas de un vector de dirección para el objeto, en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z de una posición de una cámara relacionada con una ventana de visualización.
13. El aparato (10005) de la reivindicación 12, en donde los metadatos incluyen además información que representa una forma de un punto de los datos de la nube de puntos e información que representa un tamaño del punto, en donde la forma del punto incluye una forma de círculo,
en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z de una posición de origen de un cuadro delimitador para el objeto,
en donde los metadatos incluyen además información que representa un componente x, un componente y y un componente z para una dirección de la cámara relacionada con una ventana de visualización,
en donde los metadatos incluyen además información que representa rangos horizontales y verticales para un campo de visión, y
en donde la información del objeto se incluye en el mensaje de Información de Mejora Suplementaria, SEI, que está contenido en NAL_unit del flujo de bits.
14. El aparato (10005) de la reivindicación 13, en donde los metadatos incluyen información para los datos volumétricos, la información para los datos volumétricos incluye información relacionada con la posición utilizada para reconstruir los datos volumétricos e información relacionada con la dirección aplicada para los datos volumétricos, la información relacionada con la dirección incluye información que representa una dirección hacia delante de los datos volumétricos, e información que representa una dirección superior para los datos volumétricos.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202062959130P | 2020-01-09 | 2020-01-09 | |
| PCT/KR2020/018156 WO2021141258A1 (ko) | 2020-01-09 | 2020-12-11 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2977201T3 true ES2977201T3 (es) | 2024-08-20 |
Family
ID=76763748
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES20911869T Active ES2977201T3 (es) | 2020-01-09 | 2020-12-11 | Dispositivo de transmisión de datos de nube de puntos, método de transmisión de datos de nube de puntos, dispositivo de recepción de datos de nube de puntos y método de recepción de datos de nube de puntos |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US11606547B2 (es) |
| EP (1) | EP4072132B1 (es) |
| JP (1) | JP7434574B2 (es) |
| KR (1) | KR102373833B1 (es) |
| CN (1) | CN114946179B (es) |
| BR (1) | BR112022013595A2 (es) |
| ES (1) | ES2977201T3 (es) |
| HU (1) | HUE066448T2 (es) |
| PL (1) | PL4072132T3 (es) |
| WO (1) | WO2021141258A1 (es) |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117978996A (zh) * | 2020-04-11 | 2024-05-03 | Lg电子株式会社 | 点云数据发送设备和方法、点云数据接收设备和方法 |
| CN118138736A (zh) * | 2020-04-11 | 2024-06-04 | Lg电子株式会社 | 点云数据编码设备和点云数据解码设备 |
| CN116915967A (zh) * | 2020-04-12 | 2023-10-20 | Lg电子株式会社 | 点云数据发送设备和方法以及点云数据接收设备和方法 |
| WO2021210837A1 (ko) * | 2020-04-13 | 2021-10-21 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
| CN114374675B (zh) * | 2020-10-14 | 2023-02-28 | 腾讯科技(深圳)有限公司 | 媒体文件的封装方法、媒体文件的解封装方法及相关设备 |
| CN114598891B (zh) * | 2020-12-07 | 2023-05-26 | 腾讯科技(深圳)有限公司 | 点云数据编码方法、解码方法、点云数据处理方法及装置 |
| EP4329311A4 (en) * | 2021-04-22 | 2025-04-02 | LG Electronics Inc. | POINT CLOUD DATA TRANSMISSION DEVICE, POINT CLOUD DATA TRANSMISSION METHOD, POINT CLOUD DATA RECEIVING DEVICE, AND POINT CLOUD DATA RECEIVING METHOD |
| GB2613852A (en) * | 2021-12-16 | 2023-06-21 | Canon Kk | Method and apparatus for encapsulating 3D region related annotation in a media file |
| US12154300B2 (en) | 2022-03-15 | 2024-11-26 | Tencent America LLC | Predictive coding of boundary geometry information for mesh compression |
| US12309341B2 (en) * | 2022-03-18 | 2025-05-20 | Htc Corporation | Wearable device and control method thereof |
| US12292495B2 (en) * | 2022-03-18 | 2025-05-06 | Nvidia Corporation | Sensor data based map creation for autonomous systems and applications |
| CN118283340B (zh) * | 2022-12-29 | 2026-03-20 | 华为技术有限公司 | 端云协同系统、编解码方法及电子设备 |
| GB2629152A (en) * | 2023-04-17 | 2024-10-23 | Canon Kk | Method, device, and computer program for improving random access in point cloud data bit-stream |
| CN119182907B (zh) * | 2023-06-21 | 2025-09-05 | 维沃移动通信有限公司 | 网格编码方法、网格解码方法及相关设备 |
| WO2025005646A1 (ko) * | 2023-06-26 | 2025-01-02 | 엘지전자 주식회사 | 메쉬 데이터 송신 장치, 메쉬 데이터 송신 방법, 메쉬 데이터 수신 장치 및 메쉬 데이터 수신 방법 |
| CN121693915A (zh) * | 2023-08-31 | 2026-03-17 | Lg 电子株式会社 | 网格数据发送设备、网格数据发送方法、网格数据接收设备和网格数据接收方法 |
| EP4543027A1 (en) * | 2023-10-18 | 2025-04-23 | Canon Kabushiki Kaisha | Method, device, and computer program for improving handling of volumetric data bit-stream |
| WO2025150718A1 (ko) * | 2024-01-08 | 2025-07-17 | 엘지전자 주식회사 | 메쉬 데이터 송신 장치, 메쉬 데이터 송신 방법, 메쉬 데이터 수신 장치 및 메쉬 데이터 수신 방법 |
| WO2026038461A1 (ja) * | 2024-08-13 | 2026-02-19 | ソニーグループ株式会社 | 情報処理装置および方法 |
Family Cites Families (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8731313B2 (en) * | 2009-03-23 | 2014-05-20 | Level Set Systems, Inc. | Method and apparatus for accurate compression and decompression of three-dimensional point cloud data |
| EP2819414A3 (en) * | 2013-06-28 | 2015-02-25 | Samsung Electronics Co., Ltd | Image processing device and image processing method |
| MX378391B (es) * | 2014-11-07 | 2025-03-10 | Sony Corp | Aparato de transmision, metodo de transmision, aparato de recepcion, y metodo de recepcion. |
| WO2018038520A1 (ko) * | 2016-08-25 | 2018-03-01 | 엘지전자 주식회사 | 전방향 비디오를 전송하는 방법, 전방향 비디오를 수신하는 방법, 전방향 비디오 전송 장치, 전방향 비디오 수신 장치 |
| JP2018084878A (ja) * | 2016-11-21 | 2018-05-31 | ソニー株式会社 | 情報処理装置、情報処理方法、およびプログラム |
| US10979729B2 (en) * | 2016-11-30 | 2021-04-13 | Qualcomm Incorporated | Systems and methods for signaling and constraining a high dynamic range (HDR) video system with dynamic metadata |
| EP3349182A1 (en) * | 2017-01-13 | 2018-07-18 | Thomson Licensing | Method, apparatus and stream for immersive video format |
| US10360732B2 (en) * | 2017-03-23 | 2019-07-23 | Intel Corporation | Method and system of determining object positions for image processing using wireless network angle of transmission |
| US10909725B2 (en) * | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
| EP3699870A4 (en) * | 2017-10-16 | 2020-12-23 | Sony Corporation | DEVICE AND PROCESS FOR PROCESSING INFORMATION |
| KR102390208B1 (ko) * | 2017-10-17 | 2022-04-25 | 삼성전자주식회사 | 멀티미디어 데이터를 전송하는 방법 및 장치 |
| EP3474562A1 (en) * | 2017-10-20 | 2019-04-24 | Thomson Licensing | Method, apparatus and stream for volumetric video format |
| US10535161B2 (en) * | 2017-11-09 | 2020-01-14 | Samsung Electronics Co., Ltd. | Point cloud compression using non-orthogonal projection |
| US10607373B2 (en) * | 2017-11-22 | 2020-03-31 | Apple Inc. | Point cloud compression with closed-loop color conversion |
| CN110012279B (zh) * | 2018-01-05 | 2020-11-17 | 上海交通大学 | 基于3d点云数据的分视角压缩和传输方法及系统 |
| US11144065B2 (en) * | 2018-03-20 | 2021-10-12 | Phantom AI, Inc. | Data augmentation using computer simulated objects for autonomous control systems |
| US10939129B2 (en) * | 2018-04-10 | 2021-03-02 | Apple Inc. | Point cloud compression |
| US10984541B2 (en) * | 2018-04-12 | 2021-04-20 | Samsung Electronics Co., Ltd. | 3D point cloud compression systems for delivery and access of a subset of a compressed 3D point cloud |
| EP3562159A1 (en) * | 2018-04-24 | 2019-10-30 | InterDigital VC Holdings, Inc. | Method, apparatus and stream for volumetric video format |
| US11012657B2 (en) * | 2018-06-08 | 2021-05-18 | Lg Electronics Inc. | Method for processing overlay in 360-degree video system and apparatus for the same |
| JP7111846B2 (ja) * | 2018-06-26 | 2022-08-02 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 点群符号化のための高レベルシンタックス設計 |
| US20200202608A1 (en) * | 2018-12-21 | 2020-06-25 | Point Cloud Compression, B.V. | Method and apparatus for receiving a volumetric video stream |
| US11200701B2 (en) * | 2019-03-19 | 2021-12-14 | Nokia Technologies Oy | Method and apparatus for storage and signaling of static point cloud data |
| KR102625457B1 (ko) * | 2019-08-16 | 2024-01-16 | 엘지전자 주식회사 | Xr 디바이스 및 그 제어 방법 |
| US11243305B2 (en) * | 2019-12-20 | 2022-02-08 | Motorola Solutions, Inc. | Method, system and computer program product for intelligent tracking and data transformation between interconnected sensor devices of mixed type |
| US11477483B2 (en) * | 2020-01-08 | 2022-10-18 | Apple Inc. | Video-based point cloud compression with variable patch scaling |
| WO2021210513A1 (ja) * | 2020-04-13 | 2021-10-21 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
-
2020
- 2020-12-03 KR KR1020200167619A patent/KR102373833B1/ko active Active
- 2020-12-11 WO PCT/KR2020/018156 patent/WO2021141258A1/ko not_active Ceased
- 2020-12-11 EP EP20911869.4A patent/EP4072132B1/en active Active
- 2020-12-11 CN CN202080092365.5A patent/CN114946179B/zh active Active
- 2020-12-11 BR BR112022013595A patent/BR112022013595A2/pt unknown
- 2020-12-11 PL PL20911869.4T patent/PL4072132T3/pl unknown
- 2020-12-11 HU HUE20911869A patent/HUE066448T2/hu unknown
- 2020-12-11 JP JP2022541990A patent/JP7434574B2/ja active Active
- 2020-12-11 ES ES20911869T patent/ES2977201T3/es active Active
-
2021
- 2021-01-08 US US17/144,860 patent/US11606547B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| KR102373833B1 (ko) | 2022-03-14 |
| KR20210090089A (ko) | 2021-07-19 |
| US11606547B2 (en) | 2023-03-14 |
| EP4072132B1 (en) | 2024-03-06 |
| JP7434574B2 (ja) | 2024-02-20 |
| CN114946179A (zh) | 2022-08-26 |
| HUE066448T2 (hu) | 2024-08-28 |
| US20210218947A1 (en) | 2021-07-15 |
| BR112022013595A2 (pt) | 2022-09-13 |
| EP4072132A4 (en) | 2023-01-18 |
| CN114946179B (zh) | 2024-03-08 |
| JP2023509190A (ja) | 2023-03-07 |
| EP4072132A1 (en) | 2022-10-12 |
| WO2021141258A1 (ko) | 2021-07-15 |
| PL4072132T3 (pl) | 2024-07-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2977201T3 (es) | Dispositivo de transmisión de datos de nube de puntos, método de transmisión de datos de nube de puntos, dispositivo de recepción de datos de nube de puntos y método de recepción de datos de nube de puntos | |
| US12432380B2 (en) | Point cloud data transmitting device, point cloud data transmitting method, point cloud data receiving device, and point cloud data receiving method | |
| JP7697119B2 (ja) | ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置およびポイントクラウドデータ受信方法 | |
| US11631158B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US11151742B2 (en) | Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus, and point cloud data reception method | |
| US11017591B2 (en) | Point cloud data transmitting apparatus, point cloud transmitting method, point cloud data receiving apparatus, and point cloud receiving method | |
| US11601634B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| CN114930813B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
| CN115398890B (zh) | 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法 | |
| US11544877B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US20220159261A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
| US11908168B2 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method |