ES2969640T3 - Método y aparato para codificar/decodificar datos geométricos de nubes de puntos capturados por un cabezal desensor giratorio - Google Patents

Método y aparato para codificar/decodificar datos geométricos de nubes de puntos capturados por un cabezal desensor giratorio Download PDF

Info

Publication number
ES2969640T3
ES2969640T3 ES21305461T ES21305461T ES2969640T3 ES 2969640 T3 ES2969640 T3 ES 2969640T3 ES 21305461 T ES21305461 T ES 21305461T ES 21305461 T ES21305461 T ES 21305461T ES 2969640 T3 ES2969640 T3 ES 2969640T3
Authority
ES
Spain
Prior art keywords
azimuthal
elementary
point
scaled
decoded
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
Application number
ES21305461T
Other languages
English (en)
Inventor
Jonathan Taquet
Sebastien Lasserre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Application granted granted Critical
Publication of ES2969640T3 publication Critical patent/ES2969640T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)

Abstract

Se proporcionan métodos y aparatos para codificar/decodificar una nube de puntos en/desde un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, estando asociado cada punto de la nube de puntos con coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal sensor giratorio que capturó el punto y un radio que responde a una distancia del punto desde un referencial. Los métodos comprenden una escala del paso azimutal elemental usado para calcular un ángulo azimutal previsto de un ángulo azimutal de un punto de la nube de puntos, a partir de un radio decodificado de dicho punto. Por tanto, el paso del ángulo azimutal se escala dinámicamente y, por tanto, depende del radio de los puntos de la nube de puntos. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método y aparato para codificar/decodificar datos geométricos de nubes de puntos capturados por un cabezal de sensor giratorio
CAMPO
La presente solicitud se refiere de manera general a la compresión de nubes de puntos y, en particular, a métodos y aparatos de codificación/decodificación de datos geométricos de nubes de puntos capturados por un cabezal sensor giratorio.
ANTECEDENTES
Se pretende que la presente sección introduzca al lector a varios aspectos de la técnica, que pueden estar relacionados con varios aspectos de por lo menos una realización ejemplar de la presente solicitud que se describe y/o reivindica a continuación. Se cree que este análisis es útil para proporcionar al lector información de fondo para facilitar una mejor comprensión de los varios aspectos de la presente solicitud.
Como formato para la representación de datos 3D, las nubes de puntos han ganado terreno recientemente debdo a su versatilidad a la hora de representar todo tipo de objetos físicos o escenas. Las nubes de puntos pueden usarse para varios propósitos, como el patrimonio cultural/edificios, en el que objetos como estatuas o edificios se escanean en 3D para compartir la configuración espacial del objeto sin necesidad de enviarlo o visitarlo. Además, es una forma de garantizar la conservación del conocimiento del objeto en caso de que pueda ser destruido; por ejemplo, un templo por un terremoto. Estas nubes de puntos son típicamente estáticas, a color y enormes.
Otro caso de uso es en topografía y cartografía, en donde el uso de representaciones 3D permite obtener mapas que no se limitan al plano y pueden incluir el relieve. Google Maps es actualmente un buen ejemplo de mapas 3D, pero usa mallas en lugar de nubes de puntos. No obstante, las nubes de puntos pueden ser un formato de datos adecuado para los mapas 3D y tales nubes de puntos son típicamente estáticas, a color y enormes.
La Realidad Virtual (VR), la Realidad Aumentada (AR) y los mundos inmersivos se han convertido recientemente en un tema candente y muchos los prevén como el futuro del vídeo plano en 2D. La idea básica es sumergir al espectador en un entorno circundante, al contrario que un televisor estándar que sólo permite al espectador mirar el mundo virtual que tiene delante. Hay varias gradaciones en la inmersividad en función de la libertad del espectador en el entorno. Una nube de puntos es un buen formato candidato para distribuir mundos VR/AR.
La industria automovilística, y más concretamente los coches autónomos previstos, son también ámbitos en los que pueden usarse intensivamente las nubes de puntos. Los coches autónomos deben ser capaces de "sondear" su entorno para tomar buenas decisiones de conducción basadas en la presencia detectada y la naturaleza de los objetos inmediatamente cercanos y la configuración de la carretera.
Una nube de puntos es un conjunto de puntos situados en un espacio tridimensional (3D), opcionalmente con valores adicionales asociados a cada uno de los puntos. Estos valores adicionales se denominan habitualmente atributos. Los atributos pueden ser, por ejemplo, colores de tres componentes, propiedades de materiales como la reflectancia y/o vectores normales de dos componentes a una superficie asociada a un punto.
Una nube de puntos es, por tanto, una combinación de una geometría (ubicaciones de los puntos en un espacio 3D representadas habitualmente por coordenadas cartesianas 3D x,y y z) y atributos.
Las nubes de puntos pueden ser capturadas por varios tipos de dispositivos, como una serie de cámaras, sensores de profundidad, láseres (detección y alcance de luz, también conocidos como Lidars), radares, o pueden ser generadas por ordenador (por ejemplo, en la postproducción de películas). Dependiendo de los casos de uso, las nubes de puntos pueden tener desde miles hasta miles de millones de puntos para aplicaciones cartográficas. Las representaciones en bruto de las nubes de puntos requieren un número muy elevado de bits por punto, con por lo menos una docena de bits por coordenada cartesiana x, y o z, y opcionalmente más bits para el atributo o atributos, por ejemplo tres veces 10 bits para los colores.
En muchas aplicaciones es importante poder distribuir nubes de puntos a un usuario final o almacenarlas en un servidor consumiendo sólo una cantidad razonable de tasa de bits o espacio de almacenamiento, a la vez que se mantiene al mismo tiempo una calidad de experiencia aceptable (o preferiblemente muy buena). La compresión eficiente de estas nubes de puntos es un punto clave para que la cadena de distribución de muchos mundos inmersivos resulte práctica.
La compresión puede ser con pérdidas (como en la compresión de vídeo) para la distribución y visualización por un usuario final, por ejemplo en gafas AR/VR o cualquier otro dispositivo con capacidad 3D. Otros casos de uso requieren una compresión sin pérdidas, como las aplicaciones médicas o la conducción autónoma, para evitar alterar los resultados de una decisión obtenida a partir del análisis posterior de la nube de puntos comprimida y transmitida.
Hasta hace poco, la compresión de nubes de puntos (también conocida como PCC) no se abordaba en el mercado de masas y no existía ningún códec de nubes de puntos estandarizado. En 2017, el grupo de trabajo de normalización ISO/JCT1/SC29/WG11, también conocido como Moving Picture Experts Group o MPEG, ha iniciado elementos de trabajo sobre la compresión de nubes de puntos. Esto ha dado lugar a dos normas, concretamente
• MPEG-I parte 5 (ISO/IEC 23090-5) o compresión de nubes de puntos basada en vídeo (V-PCC)
• MPEG-I parte 9 (ISO/IEC 23090-9) o compresión de nubes de puntos basada en la geometría (G-PCC)
El método de codificación V-PCC comprime una nube de puntos realizando múltiples proyecciones de un objeto 3D para obtener parches 2D que se empaquetan en una imagen (o un vídeo cuando se trata de nubes de puntos dinámicas). A continuación, las imágenes o vídeos obtenidos se comprimen usando códecs de imagen/vídeo ya existentes, lo que permite aprovechar las soluciones de imagen y vídeo ya desarrolladas. Por su propia naturaleza, el V-PCC sólo es eficaz en nubes de puntos densas y continuas, ya que los códecs de imagen/vídeo no pueden comprimir parches no lisos como los que se obtendrían de la proyección de, por ejemplo, datos geométricos dispersos capturados por Lidar.
El método de codificación G-PCC tiene dos esquemas para la compresión de los datos geométricos capturados.
El primer esquema se basa en un árbol de ocupación, siendo localmente cualquiertipo de árbol entre octárbol, quadárbol o árbol binario, que representa la geometría de la nube de puntos. Los nodos ocupados se dividen hasta alcanzar un cierto tamaño, y los nodos hoja ocupados proporcionan las ubicaciones 3D de los puntos, típicamente en el centro de estos nodos. La información de ocupación se transmite mediante indicadores de ocupación que señalan el estado de ocupación de cada uno de los nodos hijos de nodos. Mediante el uso de técnicas de predicción basadas en los vecinos, puede obtenerse un alto nivel de compresión de los indicadores de ocupación para nubes de puntos densas. Las nubes de puntos dispersas también se tratan codificando directamente la posición del punto dentro de un nodo de tamaño no mínimo, deteniendo la construcción del árbol cuando sólo hay puntos aislados en un nodo; esta técnica se conoce como Modo de Codificación Directa (DCM).
El segundo esquema se basa en un árbol predictivo en el que cada nodo representa la localización 3D de un punto y la relación padre/hijo entre nodos representa la predicción espacial de padres a hijos. Este método sólo puede utilizarse con nubes de puntos dispersas y ofrece la ventaja de una menor latencia y una decodificación más sencilla que el árbol de ocupación. Sin embargo, el rendimiento de compresión es sólo marginalmente mejor, y la codificación es compleja, relativamente al primer método basado en la ocupación, porque el codificador debe buscar intensivamente el mejor predictor (entre una larga lista de predictores potenciales) al construir el árbol predictivo.
En ambos esquemas, la (de)codificación de atributos se realiza después de la (de)codificación completa de la geometría, lo que lleva prácticamente a una codificación de dos pases. Por tanto, la baja latencia conjunta de geometría/atributos se obtiene usando segmentos que descomponen el espacio 3D en subvolúmenes que se codifican de manera independiente, sin predicción entre los subvolúmenes. Esto puede afectar gravemente al rendimiento de la compresión cuando se usan muchos segmentos.
Combinar los requisitos de simplicidad del codificador y el decodificador, de baja latencia y de rendimiento de la compresión sigue siendo un problema que los códecs de nubes de puntos existentes no han resuelto satisfactoriamente.
Un caso de uso importante es la transmisión de datos geométricos dispersos capturados por un cabezal sensor giratorio, por ejemplo un cabezal Lidar giratorio, montado en un vehículo en movimiento. Esto requiere habitualmente un codificador embarcado sencillo y de baja latencia. La simplicidad es necesaria porque es probable que el codificador se despliegue en unidades informáticas que realizan otros procesamientos en paralelo, como la conducción (semi)autónoma, limitando por tanto la potencia de procesamiento disponible para el codificador de nubes de puntos. También se requiere una baja latencia para permitir una transmisión rápida desde el coche a una nube para tener una visión en tiempo real del tráfico local, basada en la adquisición de múltiples vehículos, y tomar decisiones rápidas adecuadas basadas en la información del tráfico. Aunque la latencia de la transmisión puede ser lo suficientemente baja usando 5G, el propio codificador no debe introducir demasiada latencia debido a la codificación. Además, el rendimiento de la compresión es extremadamente importante, ya que se espera que el flujo de datos de millones de coches a la nube sea extremadamente pesado.
Ya se han explotado los precedentes específicos relacionados con los datos de geometría dispersa captados por un cabezal sensor giratorio para obtener métodos de codificación/decodificación muy eficientes.
Por ejemplo, G-PCC aprovecha el ángulo de elevación (con respecto al suelo horizontal) de captura de un cabezal sensor giratorio, como se representa en lasFiguras 1y2.Un cabezal sensor giratorio 10 comprende un conjunto de sensores 11 (por ejemplo, láseres), aquí se representan cinco sensores. El cabezal sensor giratorio 10 puede girar alrededor de un eje vertical z para capturar datos geométricos de un objeto físico, es decir, las ubicaciones 3D de los puntos de la nube de puntos. Los datos geométricos capturados por el cabezal sensor giratorio se representan entonces en coordenadas esféricas(r3D,y ,9),donde r3D es la distancia de un punto P desde el centro del cabezal sensor giratorio,yes un ángulo azimutal del giro del cabezal sensor con respecto a un referencial, y9es un ángulo de elevación para un índice de ángulo de elevaciónkde un sensor del cabezal sensor giratorio con respecto a un plano referencial horizontal (aquí el eje y). El ángulo de elevaciónkpuede ser, por ejemplo, un ángulo de elevación de un sensork,o una posición de sensor k-ésima, en caso de que un único sensor sondee sucesivamente cada uno de los ángulos de elevación sucesivos.
Se ha observado una distribución regular a lo largo del ángulo azimutal en los datos geométricos capturados por un cabezal sensor giratorio como se representa en laFigura 3.Esta regularidad se usa en G-PCC para obtener una representación casi 1D de la nube de puntos en la que, hasta el ruido, sólo un radio r3D pertenece a un intervalo continuo de valores, mientras que los ángulosyy9sólo toman un número discreto de valoresy i Vi= 0a I-1 , dondeIes un número de ángulos azimutales usados para la captura de los puntos y9k Vk= 0a K-1, dondeKes un número de sensores del cabezal sensor giratorio 10. Básicamente, G-PCC representa datos geométricos dispersos capturados por un cabezal sensor giratorio en un plano angular discreto 2D (y, 9) como se representa en laFigura 3,junto con un valor de radio r3D para cada punto.
Esta propiedad casi 1D se ha explotado en G-PCC tanto en el árbol de ocupación como en el árbol predictivo al predecir, en el espacio de coordenadas esféricas, la ubicación de un punto actual basándose en un punto ya codificado usando la naturaleza discreta de los ángulos.
Más concretamente, el árbol de ocupación usa DCM de manera intensiva y codifica con entropía las ubicaciones directas de los puntos dentro de un nodo usando un codificador de entropía adaptable al contexto. A continuación, los contextos se obtienen a partir de la conversión local de las ubicaciones de los puntos en coordenadas (y, 9) y de la ubicación de estas coordenadas con respecto a las coordenadas discretas(y, 9k)obtenidas a partir de puntos ya codificados.
El árbol predictivo codifica directamente una primera versión de la ubicación de un punto P actual en las coordenadas esféricas (r, y, 9), donderes el radio proyectado en el plano horizontal xy, tal como se representa en laFigura 4mediante r2D, usando la naturaleza casi 1D(r, y , 9k)de este espacio de coordenadas. Luego, las coordenadas esféricas (r,y, 9)se convierten en coordenadas cartesianas 3D (x,y,z) y se codifica un residuo xyz para hacer frente a los errores de conversión de coordenadas, la aproximación de los ángulos de elevación y azimutales y el ruido potencial.
LaFigura 5ilustra un codificador de nubes de puntos similar al codificador basado en el árbol predictivo G-PCC.
En primer lugar, las coordenadas cartesianas (x,y,z) de los puntos de la nube de puntos se transforman en coordenadas esféricas(r, y, 9)mediante(r, y,9)=C2A(x,y,z).
La función de transformación C2A(.) viene dada parcialmente por
r=redondeo(sqrt(x*x+y*y)/ A ir)
(p=redondeo(atan2(y, x)/AI0)
donde redondeo() es la operación de redondeo al valor entero más próximo, sqrt() es la función raíz cuadrada y atan2(y,x) es el arco tangente aplicado a y/x.
Air yAIyson precisiones internas para radios y ángulos azimutales respectivamente. Típicamente son los mismos que sus pasos de cuantificación respectivos, es decir, AIy =Ay,yAir=Arcon
y,
A r= 2 w *paso de cuantificación elemental
dondeMyNson dos parámetros del codificador que pueden señalarse en un flujo de bits, por ejemplo en un conjunto de parámetros geométricos, y dondee l p a s o d e c u a n t i f ic a c ió n e l e m e n t a les típicamente igual a 1. Típicamente, N puede ser 17, yMpuede ser 0 para codificación sin pérdidas.
El codificador puede derivarA yyA rminimizando el coste (por ejemplo, el número de bits) para codificar la representación de las coordenadas esféricas y el residuo xyz en el espacio cartesiano.
En aras de la simplicidad,A y=A i yy Ar =A i ren lo sucesivo.
También en aras de la claridad y la simplicidad, se usa9en lo sucesivo como un valor de ángulo de elevación, que se obtiene, por ejemplo usando
donde atan(.) es una función de arco tangente. Pero, en G-PCC, por ejemplo,9es un valor entero que representa el índice de ángulo de elevaciónkde9k(es decir, el índice del ángulo de elevación k-ésimo), por lo que las operaciones presentadas a continuación (predicción, (de)codificación residual, etc...) realizadas sobre9se aplicarían sobre el índice de ángulo de elevación en su lugar. Un experto en compresión de nubes de puntos comprendería fácilmente la ventaja de usar el índice k, y cómo usar el índice de ángulo de elevación k en lugar de9.Además, alguien experto en compresión de nubes de puntos comprendería fácilmente que esta sutileza no afecta al principio de la invención propuesta.
Las coordenadas esféricas residuales(rres, y res, 9 res)entre las coordenadas esféricas(r, y , 9 )y las coordenadas esféricas predichas obtenidas de un predictorP Rnvienen dadas entonces por:
donde (r<n>,yny<n>) son un radio predicho, un ángulo azimutal predicho y un ángulo de elevación predicho obtenidos de un predictor seleccionado de una lista de predictores candidatosP Ro, P R i, P R 2yP R3y m es un número entero de pasos azimutales elementalesypasoque deben añadirse a una predicción del ángulo azimutal.
El paso azimutal elementalypasopuede ser derivado por el codificador a partir de las frecuencias y la velocidad de rotación a la que un cabezal de sensores giratorio está realizando la captura en los diferentes ángulos de elevación, por ejemplo a partir deN Pel número de sondeos por vuelta del cabezal:
El paso azimutal elementalypasoo el número de sondeos por vuelta de cabezalN Pse codifica en un flujo de bits B en un conjunto de parámetros geómetricos, por ejemplo. Alternativamente,N Pes un parámetro del codificador que puede señalarse en un flujo de bits en un conjunto de parámetros geométricos, yypasose deriva de manera similar tanto en el codificador como en el decodificador.
Las coordenadas esféricas residuales(rres, yres, 9res)pueden codificarse en un flujo de bits B.
Las coordenadas esféricas residuales(rres, yres, 9res)pueden cuantificarse (Q) en coordenadas esféricas residuales cuantificadasQ(rres, yres, 9res).Las coordenadas esféricas residuales cuantificadasQ(rres, yres, 9res)pueden codificarse en un flujo de bits B.
El índice de predicciónny el númeromse señalan en el flujo de bits B para cada nodo del árbol de predicción, mientras que el paso azimutal elementalypasocon cierta precisión de coma fija es compartido por todos los nodos de un mismo árbol de predicción.
El índice de predicciónnseñala un predictor seleccionado entre una lista de predictores candidatos.
Un predictor candidatoP R opuede ser igual a(r, ymino,6b), donde m es el valor mínimo del radio (proporcionado en el conjunto de parámetros de geometría), y yoy 9bson iguales a b si un nodo actual (punto actual P) no tiene padre o son iguales a los ángulos azimutal y de elevación del punto asociado al nodo padre.
Otro predictor candidatoP R ipuede ser igual a(r, yoo , 9 o ),donder, yo oy 9oson respectivamente el radio, el ángulo azimutal y el ángulo de elevación del punto asociado al nodo padre de un nodo actual.
Otro predictor candidatoPR2puede ser igual a una predicción lineal del radio, los ángulos azimutal y de elevación usando el radio, los ángulos azimutal y de elevación(r, y 00,©0), del punto asociado al nodo padre de un nodo actual, y el radio, los ángulos azimutal y de elevación(r, yn,©1) del punto asociado al nodo abuelo.
Por ejemplo,PR2 = 2*(r, yo0,©0) -(r, yn, 9)1
Otro predictor candidatoP R3puede ser igual a una predicción lineal del radio, los ángulos azimutal y de elevación usando el radio, los ángulos azimutal y de elevación(r, y o 0, ©0)del punto asociado con el nodo padre de un nodo actual, el radio, los ángulos azimutal y de elevación(r, y n , ©1)del punto asociado al nodo abuelo y el radio y los ángulos azimutal y de elevación(r, y22, ©2) d e lpunto asociado al bisabuelo.
Por ejemplo,P R3 = (r, y o 0, ©0)+(r, y ©11,1)-( r 2 , y2 , ©2)
Las coordenadas cartesianas predichas(xpred, ypred, zpred)se obtienen mediante la transformación inversa de las coordenadas esféricas descodificadas(rdec, ydec, ©dec)mediante:
(Xpred, Ypred, Zpred) =A 2C(rdec, <Pdec> ®dec)(3) donde las coordenadas esféricas decodificadas(rdec, ydec, ©dec),como por un decodificador, pueden venir dadas por:
donde(rres,dec, y res.dec, ©res,dec)son coordenadas esféricas residuales decodificadas, como por un decodificador.
Las coordenadas esféricas residuales descodificadas(rres,dec, y res,dec, ©res,dec)pueden ser el resultado de la cuantificación inversa (IQ) de coordenadas esféricas residuales cuantificadas Q(rres,yres,©res).
En G-PCC, no hay cuantificación de las coordenadas esféricas residuales, y las coordenadas esféricas descodificadas(rres,dec, yres,dec, ©res,dec) son iguales alas coordenadas esféricas residuales(rres, y res, ©res).Las coordenadas esféricas descodificadas(rdec, y dec, ©dec)son entonces iguales a las coordenadas esféricas(r, y,©).
La transformación inversa de las coordenadas esféricas descodificadas(rdec, y dec, ©dec)puede venir dada por:
/■=!■<*»* A r
ypred = redondeo ( r*sin((f)dec *A<f>)
zpred = redondeo ( ta n (8 dec) * r)
donde sin() y cos() son funciones seno y coseno. Estas dos funciones pueden aproximarse mediante operaciones que trabajan en precisión de coma fija. Los valores tan(©dec) también pueden almacenarse como valores de precisión de coma fija. Por consiguiente, no se usa ninguna operación de coma flotante en el decodificador. Evitar las operaciones en coma flotante es habitualmente un requisito importante para facilitar las implementaciones de hardware de los códecs.
Las coordenadas cartesianas residuales(xres,yres,zres)entre los puntos originales y las coordenadas cartesianas predichas(xpred, ypred, zpred) vienen dadas por:
Se cuantifican (Q) las coordenadas cartesianas residuales(xres,yres,zres)y se codifican las coordenadas cartesianas residuales cuantificadasQ ( x res,y,resZres)en el flujo de bits. Las coordenadas cartesianas residuales pueden codificarse sin pérdidas cuando los pasos de cuantificación x,y,z son iguales a la precisión del punto original (típicamente 1), o codificarse con pérdidas cuando los pasos de cuantificación son mayores que la precisión del punto original (típicamente pasos de cuantificación mayores que 1).
Las coordenadas cartesianas decodificadas(xdec,ydec,zdec),como por un decodificador, vienen dadas por:
(Xdec,ydec, Zdec) = (Xpred, Ypred, Zpred) IQ(Q(Xres,Yres,Zres))(5)
dondeIQ (Q (X re s ,y re s ,Z re s ))representa las coordenadas cartesianas residuales cuantificadas inversamente.
Estas coordenadas cartesianas descodificadas(Xdec,y,decZdec)pueden ser usadas por el codificador, por ejemplo, para ordenar los puntos (decodificados) antes de la codificación de atributos.
LaFigura 6ilustra un decodificador de nubes de puntos que es similar al decodificador basado en el árbol predictivo G-PCC para el árbol predictivo.
Se accede a un índice de predicciónny a un númeromdesde el flujo de bits B para cada nodo del árbol predictivo, mientras que al paso azimutal elementalypasoo al número de sondeos por vuelta de cabezalN Pse accede desde el flujo de bits B, por ejemplo desde un conjunto de parámetros, y es compartido por todos los nodos de un mismo árbol predictivo.
Las coordenadas esféricas residuales descodificadas(rres,dec, 0res,dec, 9res,dec)pueden obtenerse descodificando las coordenadas esféricas residuales(rres, yres, 9res)del flujo de bits B.
Las coordenadas esféricas residuales cuantificadasQ ( r res,yres, 9res)pueden decodificarse a partir del flujo de bits B. Las coordenadas esféricas residuales cuantificadasQ (rres , yres, 9res)se cuantifican inversamente para obtener las coordenadas esféricas residuales descodificadas(rres,dec, 0res,dec, 9res,dec).
Las coordenadas esféricas descodificadas(rdec, yaec, 9dec)se obtienen sumando las coordenadas esféricas residuales descodificadas(rres.dec, Rres.dec, 9res,dec)y las coordenadas esféricas predichas(rpred, ypred, 9pred)de acuerdo con la ecuación (4). Las coordenadas cartesianas previstas(Xpred, ypred, Zpred)se obtienen mediante la transformación inversa de las coordenadas esféricas descodificadas(rdec, ydec, 9dec)de acuerdo con la ecuación (3).
Las coordenadas cartesianas residuales cuantificadasQ (X res,yres ,Zres)se decodifican a partir del flujo de bits B y se cuantifican inversamente para obtener las coordenadas cartesianas cuantificadas inversamenteIQ (Q (X re s ,y re s ,Z re s )) .Las coordenadas cartesianas decodificadas (xdec,ydec,zdec) vienen dadas por la ecuación (5).
En G-PCC, las ecuaciones (1) y (4) se usan para predecir el ángulo azimutalyy para obtener el ángulo azimutal decodificadoydec,y la ecuación (5) se usa para decodificar las coordenadas cartesianas de un punto.
Entonces, cuando el radio es suficientemente pequeño (es decir, cuando los puntos están suficientemente cerca del sensor LiDAR), es posible que usndo un valor diferente de "m" en la ecuación (1) y (4) (por ejemplo, m+1 o m-1) se obtengan los mismos valores residuales cartesianos (cuantificados).
Este inconveniente de G-PCC se ilustra en laFigura 7.En el ejemplo de laFigura 7,un punto de la nube de puntos descodificada (círculo negro) pertenece a un cuadrado en un espacio cartesiano xy. Los cuadrados corresponden a un muestreo regular de los ejes x e y en el espacio cartesiano. El tamaño de los cuadrados depende de la precisión de la nube de puntos de entrada, en caso de compresión sin pérdidas, o depende aproximadamente del paso de cuantificación en caso de compresión con pérdidas. Los sectores angulares con ánguloypasorepresentan áreas cubiertas por un sensor de un cabezal sensor giratorio 10 entre dos capturas. Aquí, el punto pertenece a un cuadrado que es atravesado por dos rayos láser b1 y b2 correspondientes a dos orientaciones de sensores, para dos sondeos/capturas sucesivos realizados con un mismo ángulo de elevación. Por consiguiente, el cuadrado está cubierto por tres sectores angulares s0, s1 y s2. A continuación, para calcular un ángulo azimutal previsto (ecuaciones (1) o (4)), se seleccionará aquí un número 'm' entre dos valores m1 (asociado al rayo láser b1) y m2 (asociado al rayo láser b2). El hecho de tener la posibilidad de codificar varios (aquí 2, m1 y m2) valores de m diferentes para un mismo punto de la nube de puntos, puede dar como resultado una codificación subóptima de un número m (por ejemplo m1) en comparación con la codificación de otro número m que se obtendría siypasofuera lo suficientemente elevado como para que un único rayo láser atravesara el cuadrado al que pertenece el punto. En consecuencia, en relación con el radio del punto (es decir, su distancia del sensor), la precisión angular obtenida usando el paso azimutal elementalypasoes demasiado elevada en comparación con la precisión cartesiana de la salida. Por consiguiente, la posibilidad de codificar varios números diferentes indica una suboptimidad en el esquema de codificación, y la compresión puede mejorarse.
Para mejorar G-PCC, es necesario codificar mejor el número de pasos azimutales elementales m.
SUMARIO
La siguiente sección presenta un resumen simplificado de por lo menos una realización ejemplar para proporcionar una comprensión básica de algunos aspectos de la presente solicitud. Este resumen no es una descripción exhaustiva de una realización ejemplar. No pretende identificar elementos clave o críticos de una realización. El siguiente resumen se limita a presentar algunos aspectos de por lo menos una de las realizaciones ejemplares de forma simplificada, como preludio a la descripción más detallada proporcionada en otras partes de este documento.
De acuerdo con un primer aspecto de la presente solicitud, se proporciona un método para codificar una nube de puntos en un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, cada punto de la nube de puntos se asocia con coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal de sensor giratorio que capturó el punto y un radio que responde a una distancia del punto desde una referencia. El método comprende obtener un paso azimutal elemental escalado asociado con un punto de la nube de puntos, dicho paso azimutal elemental escalado siendo igual a un primer dato mayor que un paso azimutal elemental cuando un segundo dato es estrictamente menor que un umbral, y el paso azimutal elemental escalado siendo igual al paso azimutal elemental en caso contrario, dicho paso azimutal elemental se deriva de las frecuencias y la velocidad de rotación a las que un cabezal sensor giratorio capturó la nube de puntos, y dicho segundo dato depende de un radio decodificado del punto obtenido mediante la codificación y decodificación de un radio asociado con el punto; codificar, en el flujo de bits, un número de pasos azimutales elementales escalados obtenidos a partir de un ángulo azimutal del punto, una predicción del ángulo azimutal y el paso azimutal elemental escalado; y codificar, en el flujo de bits, un ángulo azimutal residual del punto entre el ángulo azimutal del punto y un ángulo azimutal predicho derivado del número de pasos azimutales elementales escalados y el paso azimutal elemental escalado.
De acuerdo con un segundo aspecto de la presente solicitud, se proporciona un método para decodificar una nube de puntos a partir de un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, cada punto de la nube de puntos estando asociada con coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal de sensor giratorio que capturó el punto y un radio que responde a una distancia del punto desde un referencial. El método comprende decodificar un paso azimutal elemental a partir del flujo de bits; obtener un radio decodificado de un punto de la nube de puntos a partir de un radio residual decodificado a partir del flujo de bits; obtener un paso azimutal elemental escalado asociado a un punto de la nube de puntos, dicho paso azimutal elemental escalado siendo igual a un primer dato mayor que el paso azimutal elemental cuando un segundo dato, dependiendo del radio decodificado del punto, es estrictamente menor que un umbral, y el paso azimutal elemental escalado siendo igual al paso azimutal elemental en caso contrario; decodificar un número de pasos azimutales elementales escalados a partir del flujo de bits; decodificar un ángulo azimutal residual decodificado a partir del flujo de bits; y obtener un ángulo azimutal decodificado a partir del ángulo azimutal residual decodificado y un ángulo azimutal predicho derivado del número de pasos azimutales elementales escalados y del paso azimutal elemental escalado.
En una realización ejemplar, los primeros datos dependen del radio decodificado.
En una realización ejemplar, los primeros datos son inversamente proporcionales a un producto del radio decodificado y un factor de escala mayor o igual a 1.
En una realización ejemplar, el segundo dato es el radio decodificado (rdec).
En una realización ejemplar, el segundo dato se obtiene aplicando una función monotónica sobre el radio decodificado y dicho segundo dato se compara con un segundo umbral obtenido aplicando una misma función monotónica sobre el umbral.
En una realización ejemplar, la función monótona se define como una función que proporciona un límite entero del ángulo azimutal residual.
En una realización ejemplar, los primeros datos se obtienen a partir de una aproximación de 2n/(r<dec>*a*A/0) donderdeces el radio decodificado, a es un factor de escala mayor o igual a 1, yA/ycorresponde a una precisión interna para los ángulos azimutales.
En una realización ejemplar, los primeros datos se obtienen refinando iterativamente dicha aproximación.
En una realización ejemplar, dicha aproximación se obtiene encontrando un factor de mayor potencia de dos de un paso azimutal elemental que sea menor de 2n/(r<dec>*a*A/y).
De acuerdo con un tercer aspecto de la presente solicitud, se proporciona un aparato de codificación de una nube de puntos en un flujo de bits de datos de nube de puntos codificados que representan un objeto físico. El aparato comprendiendo uno o más procesadores configurados para llevar a cabo un método de acuerdo con el primer aspecto de la presente solicitud.
De acuerdo con un cuarto aspecto de la presente solicitud, se proporciona un aparato de decodificación, a partir de un flujo de bits, de un punto de una nube de puntos que representa un objeto físico. El aparato comprendiendo uno o más procesadores configurados para llevar a cabo un método de acuerdo con el segundo aspecto de la presente solicitud.
De acuerdo con un quinto aspecto de la presente solicitud, se proporciona un producto de programa informático que incluye instrucciones que, cuando el programa es ejecutado por uno o más procesadores, hace que el uno o más procesadores lleven a cabo un método de acuerdo con el primer aspecto de la presente solicitud.
De acuerdo con un sexto aspecto de la presente solicitud, se proporciona un producto de programa de ordenador que incluye instrucciones que, cuando el programa es ejecutado por uno o más procesadores, hace que el uno o más procesadores lleven a cabo un método de acuerdo con el segundo aspecto de la presente solicitud.
De acuerdo con un séptimo aspecto de la presente solicitud, se proporciona un medio de almacenamiento no transitorio que lleva instrucciones de código de programa para ejecutar un método de acuerdo con el segundo aspecto de la presente solicitud.
La naturaleza específica de por lo menos una de las realizaciones ejemplares, así como otros objetos, ventajas, características y usos de dicha por lo menos una de las realizaciones ejemplares se hará evidente a partir de la siguiente descripción de ejemplos tomados junto con los dibujos acompañantes.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
A continuación se hará referencia, a modo de ejemplo, a los dibujos acompañantes que muestran realizaciones ejemplares de la presente solicitud, y en los que:
LaFigura 1ilustra una vista lateral de un cabezal de sensores y algunos de sus parámetros de acuerdo con el estado de la técnica;
LaFigura 2ilustra una vista superior del cabezal de sensores y algunos de sus parámetros de acuerdo con el estado de la técnica;
LaFigura 3ilustra una distribución regular de los datos captados por un cabezal de sensores giratorio de acuerdo con el estado de la técnica;
LaFigura 4ilustra una representación de un punto en un espacio 3D de acuerdo con el estado de la técnica; LaFigura 5ilustra un codificador de nubes de puntos que es similar al codificador basado en el árbol predictivo G-PCC de acuerdo con el estado de la técnica;
LaFigura 6ilustra un decodificador de nubes de puntos que es similar al decodificador basado en el árbol predictivo G-PCC de acuerdo con el estado de la técnica;
LaFigura 7ilustra un inconveniente del G-PCC de acuerdo con el estado de la técnica;
LaFigura 8ilustra un diagrama de bloques de pasos del método 100 de codificación de una nube de puntos que representa un objeto físico de acuerdo con por lo menos una realización ejemplar;
LaFigura 9ilustra un diagrama de bloques de pasos del método 200 de decodificación de una nube de puntos que representa un objeto físico de acuerdo con por lo menos una realización ejemplar;
LaFigura 1ilustra un ejemplo de un método 300 de determinación de una aproximación de un paso azimutal elemental escalado de acuerdo con por lo menos una realización ejemplar;
LaFigura 11ilustra un ejemplo de un método 400 de determinación de una aproximación de un paso azimutal elemental escalado de acuerdo con por lo menos una realización ejemplar; y
LaFigura 12ilustra un diagrama de bloques esquemático de un ejemplo de sistema en el que se implementan varios aspectos y realizaciones ejemplares.
Es posible que se hayan usado números de referencia similares en diferentes figuras para indicar componentes similares.
DESCRIPCIÓN DE REALIZACIONES EJEMPLARES
Por lo menos una de las realizaciones ejemplares se describe más detalladamente en la presente a continuación con referencia a las figuras acompañantes, en las que se ilustran ejemplos de por lo menos una de las realizaciones ejemplares. Una realización ejemplar puede, sin embargo, realizarse en muchas formas alternativas y no debe interpretarse como limitada a los ejemplos expuestos en la presente. Por consiguiente, debe entenderse que no hay intención de limitar las realizaciones ejemplares a las formas particulares divulgadas.
Cuando una figura se presenta como un diagrama de flujo, debe entenderse que también proporciona un diagrama de bloques de un aparato correspondiente. De manera similar, cuando una figura se presenta como un diagrama de bloques, debe entenderse que también proporciona un diagrama de flujo de un método/proceso correspondiente.
Por lo menos uno de los aspectos se refiere generalmente a la codificación y decodificación de nubes de puntos, y por lo menos otro aspecto se refiere generalmente a la transmisión de un flujo de bits generado o codificado.
Además, los presentes aspectos no se limitan a las normas MPEG, como MPEG-I parte 5 o parte 9, que se refieren a la compresión de nubes de puntos, y pueden aplicarse, por ejemplo, a otras normas y recomendaciones, ya sean preexistentes o desarrolladas en el futuro, y a extensiones de cualquiera de tales normas y recomendaciones (incluyendo MPEG-I parte 5 y parte 9). A menos que se indique lo contrario, o sea técnicamente imposible, los aspectos descritos en la presente solicitud pueden usarse individualmente o en combinación.
La presente invención se refiere a un método de codificación/decodificación de una nube de puntos en/desde un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, cada punto de la nube de puntos estando asociado a coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal sensor giratorio que capturó el punto y un radio que responde a una distancia del punto desde un referencial.
Los métodos comprenden un escalado del paso azimutal elemental usado para calcular un ángulo azimutal previsto de un ángulo azimutal de un punto de la nube de puntos, a partir de un radio decodificado de dicho punto. El paso de ángulo azimutal se escala por tanto dinámicamente y depende por tanto del radio de los puntos de la nube de puntos.
Cuando el radio de un punto es demasiado pequeño para usar eficazmente el paso azimutal elementalypaso,pueden elegirse múltiples números m como se ilustra en laFigura 7.Sin embargo, escalar el paso azimutal elemental en un valor mayor de 1 reduce estadísticamente el número de sectores angulares que cubren todos los cuadrados a los que pertenecería cualquier punto con el mismo radio y, por tanto, reduce estadísticamente o incluso elimina el uso de un número adicional innecesario de pasos azimutales elementales que deben codificarse para esos puntos, ya que, de media, sólo un único (o muy pocos) sectores angulares cubren los cuadrados a los que pertenecen los puntos (si el factor de escalado está bien elegido). El impacto de este escalado es una reducción del número medio m a codificar (promediado sobre todos los puntos codificados) e implícitamente una reducción del coste medio (número de bits promediado sobre todos los puntos codificados) para codificar el número m de pasos azimutales elementales porque se evita (por lo menos se reduce) la codificación de un número adicional innecesario de pasos azimutales elementales.
LaFigura 8ilustra un diagrama de bloques de pasos de un método 100 de codificación de una nube de puntos que representa un objeto físico de acuerdo con por lo menos una realización ejemplar.
En el paso 110, un paso azimutal elementalypasopuede venir dado por la ecuación (2).
En el paso 120, puede obtenerse un radio decodificadordecde un punto de la nube de puntos mediante la ecuación (4):
idee — fres,dec l'n<(>6<)>
donde rnes un radio predicho dado por un predictor PRn.
En el paso 130, un paso azimutal elemental escaladoS (y p a s o, rdec)es igual a un primer dato D1 mayor que el paso azimutal elementalypasocuando un segundo dato D2, dependiendo del radio decodificado rdec, es estrictamente menor que un umbral TH, y el paso azimutal elemental escaladoS (y p a s o , rdec)es igual al paso azimutal elementalypasoen caso contrario.
En el paso 140, se codifica en el flujo de bits B un número msde pasos azimutales elementales escalados. El número msse obtiene a partir del ángulo azimutalydel punto, una predicción del ángulo azimutaly ny el paso azimutal elemental escaladoS (y p a s o, rdec):
nzs—redoncieado((<p0n)/S(0paso>Etec))
En el paso 150, se deriva un ángulo azimutal previstoypreda partir del paso azimutal elemental escaladoS (y p a s o , rdec)y el número ms:
En el paso 160, se codifica un ángulo azimutal residualyresen el flujo de bits B. El ángulo azimutal residualyrespuede calcularse entre el ángulo azimutalydel punto y el ángulo azimutal predichoypred.
LaFigura 9ilustra un diagrama de bloques de pasos de un método 200 para decodificar una nube de puntos que representa un objeto físico de acuerdo con por lo menos una realización ejemplar.
En el paso 210, puede decodificarse un paso azimutal elementalypasoo un número de sondeos por giro de cabezalN Pa partir del flujo de bits B, por ejemplo a partir de un conjunto de parámetros de geometría.
En el paso 220, se decodifica un radio residual decodificadorres,deca partir del flujo de bits B. A continuación, puede obtenerse un radio decodificadordecmediante la ecuación (6).
En el paso 130, se obtiene un paso azimutal elemental escalado(S (y p a s o, rdec))asociado a un punto de la nube de puntos.
En el paso 230, se decodifica un número ms de pasos azimutales elementales escalados a partir del flujo de bits B.
En el paso 150, se obtiene un ángulo azimutal previstoypreda partir de la ecuación (7).
En el paso 240, se decodifica un ángulo azimutal residual decodificado0 re s ,d e ca partir del flujo de bits B.
En el paso 250, se obtiene un ángulo azimutal decodificadoydeca partir del ángulo azimutal residual decodificado 0res,decy el ángulo azimutal predichoypred:
En una realización ejemplar, la presente invención puede usarse en el esquema de predicción G-PCC dado por la ecuación (1) o (4) en el que los ángulos azimutalesyasociados a un punto de la nube de puntos se cuantifican adaptativamente como se describe en la solicitud de patente europea N° EP20306674.
Q(rres, tyres, Ores), descrito en relación con lasFiguras 5 y 6,se establece igual a(rres, Q y re s , Ores),donderreses un radio residual,Q y re ses un ángulo azimutal residual cuantificado adaptativamente, como se describe a continuación, yOreses un ángulo de elevación (índice) residual no cuantificado.
En el lado de la codificación, se obtiene un radio residualrresa partir de la ecuación (1), y un radio decodificadordeca partir de la ecuación (4).
Un ángulo azimutal residualyresobtenido mediante la ecuación (1) se cuantifica adaptativamente mediante:
dondeQyes un cuantificador adaptativo que usa un paso de cuantificaciónAy(rdec)dado por:
A<p(Ydec) = &4>a rc / rdec,(11)
conA0 arcun paso de cuantificación de arco.
Si el códec usa aritmética de precisión en coma fija y la precisión internaAIydel códec para la representación de un ángulo azimutal viene dada porAIy= 2n/2N, el paso de cuantificación del arcoA y arcse establece, por ejemplo, igual a2n/(x *AIO) =2N /xcon x=8, por ejemplo.
Un ángulo azimutal residual cuantificado inversamenteIQy resse obtiene cuantificando inversamenteQyresmediante:
IQQres ~ IQ<p(.QfPresil'dec) ~Q 0res ^ 0 (^ d e c ) (12)
dondeIQyes un cuantificador inverso adaptativo basado en el radio decodificadordecUn ángulo azimutal decodificadoy decpuede venir dado por:
o por:
El ángulo azimutal residual cuantificado Q^-es se codifica en el flujo de bits B.
En una realización ejemplar, la codificación/decodificación de un ángulo azimutal residualyresentre un ángulo azimutal de un punto de la nube de puntos y un ángulo de predicción de dicho ángulo azimutal puede mejorarse usando una propiedad de límite dada por:
donde\qires| es un valor absoluto de un ángulo azimutal residualq>res,y está acotado por un límite entero B dado por:
B =Q<¡,(<¡> paso/ 2<j>Eiec)
-redondeo(rdec (<ppaso/2.)/A(parc)) -redondeo(vc¿ec<^ paso/(2 A 0 arc)) (15) dondeA y a rc= 2n / ( x * A IO) = 2N/ xcon x=8 por ejemplo.
En una primera realización ejemplar del paso 130, el primer dato D1 depende del radio decodificado rdec y el segundo dato D2 es el radio decodificado rdec.
En esa primera realización, cuando el radio decodificado rdec (D2) es estrictamente menor que el umbral TH, entonces el paso azimutal elemental escaladoS ( qipaso, rdec)es igual al primer dato D1 mayor que el paso azimutal elementalypaso,y el paso azimutal elemental escaladoS ( qipaso, rdec)es igual al paso azimutal elementalypasoen caso contrario.
En una variante, el primer dato D1 es inversamente proporcional a un producto del radio decodificado y un factor de escalaamayor o igual a 1.
Por ejemplo,
D1=2n¡(rdec * a * AIcp)(16)
Esto define un paso azimutal elemental escaladoS(qipaso, rdec)como mayor que el paso azimutal elementaltypasocuando el radio decodificadordeces suficientemente pequeño (es decir, cuandordec* aes menor que el número de sondeos por vueltaNP,o equivalentementerdec < Np/a).Entonces, se reduce el uso de un número adicional innecesario de pasos azimutales elementales para radios decodificados "pequeños", y se reduce el coste de codificación (es decir, el número de bits necesarios para la codificación) del número ms. Un umbral óptimo a usar sería entonces TH=NP/a.
En una variante, si la precisión interna
, el ángulo azimutal residual se cuantifica adaptativamente mediante la ecuación (10) conA 0 arc= 2N/x yase establece igual a x, la ecuación (16) puede reescribirse como:
D1=2"/Crdcc * ct) (17)
En una variante, el umbral TH es igual a un umbral The dado por:
Th0 = A0 /íppaso(18)
El umbral The puede obtenerse del siguiente modo cuando el ángulo azimutal residual está delimitado por el límite entero B: cuando B=0, es mejor usarS(ypaso.rdec)= D1 y cuando B>0 usarS(^paso.rdec)=typaso.Entonces, a partir de la ecuación (15), el límite B es igual a 0, es decir el límite B es estrictamente inferior a 1 (B<1) ya que el límite B es igual a un número positivo redondeado a un valor entero, cuando se cumplen las siguientes desigualdades equivalentes:
El umbral The se deduce entonces del límite superior de la desigualdad, que se produce cuando B = 1, resolviendo:
< ? * ( ^ p - .T h 0) = l ,
y obteniendo por tanto:
Tho = (1 -0.5)*A<pa rc *2 /( f)paso =A(p naJre 4 > r paso(19) El umbral dado por la ecuación (18) puede o bien usarse en variantes en las que el ángulo azimutal residual está o no cuantificado adaptativamente por la ecuación (10) y o bien en variantes en las que el ángulo azimutal residual está o no limitado por el límite entero B.
En una variante, si la precisión interna
, el ángulo azimutal residual se cuantifica adaptativamente mediante la ecuación (10) conA 0 arc=2N/xyase establece igual a x, entonces el umbral The viene dado por:
En una segunda realización ejemplar del paso 130, el segundo dato D2 se obtiene aplicando una función monotónica m(.) sobre el radio decodificado rdec y dicho segundo dato D2 se compara con un umbral TH obtenido aplicando una misma función monotónica m(.) sobre el umbral Thü:
(D2=m (rdec)
[TH = m (Th0)
En caso de que la función monotónica m(.) sea una función monotónicamente creciente, el paso azimutal elemental escaladoS(qipaso, rdec)es igual al paso azimutal elementalypasocuando el segundo dato D2 es mayor o igual que el umbral TH, y es igual al primer dato D1 cuando el segundo dato D2 es estrictamente menor que el umbral TH.
El uso de una función monotónica creciente o decreciente es equivalente y el alcance de la presente invención se extiende a funciones monotónicas crecientes o decrecientes m(.).
Por ejemplo, en caso de que la función m(.) sea una función monotónicamente decreciente, se puede construir una función monotónicamente creciente equivalente m'(x) a partir de m(x), por ejemplo como m'(x) = - m(x), para seguir usando una función monotónicamente creciente.
Como otro ejemplo, si la función m(.) es una función monotónicamente decreciente usada directamente, pueden obtenerse obviamente métodos equivalentes a los descritos en relación con las Figuras: Por ejemplo, el paso azimutal elemental escaladoS (q)paso, rdec)sería igual al paso azimutal elementalypasocuando el segundo dato D2 es estrictamente menor que el umbral TH, y sería igual al primer D1 cuando el segundo dato D2 es mayor o igual que el umbral TH.
En una variante, la función monótona m(.) es una escala por el factor de escalaamayor o igual que uno. Entonces, el segundo dato D2 y el umbral TH vienen dados por
rD 2 = a*r dec
{TH = a * Th0ThO= a *A(parc/(ppaso<(21)>
En una variante, si la precisión interna
, el ángulo azimutal residual se cuantifica adaptativamente mediante la ecuación (10) conñparc=2N/xyase establece igual a x, entonces, entonces el segundo dato D2 y el umbral TH vienen dados por
(D2=m (rdec) =a*rdec
TH = m (Th0) = a , ^ i = 2N/4>paso<22>
Vvpaso
En una variante, la función monótica m(.) se define como la función que proporciona el límite entero B en la ecuación (15).
Entonces, el segundo dato D2 y el umbral TH vienen dados por:
m{rdec) = redondeado(rdec*<p.paso/{2 * A0arc))
= m(77i0) = redondeado( f h 0 = 1<(23)>
En esa variante, como el límite entero B (ecuación 15) es un número entero, la condición B > 0 equivale a D2
>= TH (es decir, D2 >= 1), y la condición B = 0 equivale a D2 < 1. Cuando B = 0 (D2 < 1), el paso azimutal elemental escaladoSppaso, rdec)es igual al primer dato D1 (ecuaciones 16 o 17) mayor que el paso azimutal elementalppaso,y el paso azimutal elemental escaladoS(ppaso, rdec)es igual al paso azimutal elementalppasoen caso contrario.
Si se usa el límite entero B de la ecuación (15) para limitar la codificación del ángulo azimutal residualpres,se prefiere obviamente la variante que usa la ecuación (23) porque el segundo dato D2 es igual al límite entero B, que ya se ha calculado para cada punto, y el umbral TH es siempre 1. De lo contrario, cuando el límite entero B no se usa para limitar el ángulo azimutal residual, se prefiere la primera realización o una de sus variantes o ecuaciones 21 a 22 porque el umbral TH debe calcularse solo una vez por nube de puntos, y el segundo dato D2 de la ecuación (23) debe calcular una división entera para cada punto de la nube de puntos.
Cuando el segundo dato D2 (el límite entero B) viene dado por la ecuación (23), la división entera puede calcularse como una operación de desplazamiento bit a bit. Por ejemplo, si la precisión interna del códec para la representación en coma fija de los ángulos azimutales
yñparc= 2N/8, el límite entero B (D2) viene dado por:
(niec * <#>pas0/(2 JV_3))
donde el resultado de (a) « (b) es el desplazamiento bit a bit a la izquierda de (a) por (b) bits (es decir, el resultado de
(a) multiplicado por 2b), y el resultado de (a) » (b) es el desplazamiento bit a bit a la derecha de (a) por (b) bits (es decir, el resultado de la división entera de (a) por2b).
La ecuación (16) implica una división entera para cada punto de la nube de puntos. Esto es algo que es preferible evitar, ya que la división es costosa, en términos de diseño de hardware, tiempo de ejecución y/o consumo de energía.
En variantes preferidas de las realizaciones anteriores, la operación de división se aproxima mediante operaciones menos costosas desde el punto de vista del hardware.
Hay muchas posibilidades de aproximar una división entera. Por ejemplo, la división u/v puede aproximarse simplemente mediante una operación de desplazamiento bit a bit a la derecha de u en un número de bits igual al número de bits NV ocupados por v (es decir, NV=suelo(log<2>(v)+1)). En ese caso, u/v se aproxima por u/2<NV>Otro método podría ser usar el algoritmo iterativo Newton-Raphson (https://en.wikipedia.org/wiki/Division_algorithm) en un número limitado de iteraciones. O, como ya se usa en G-PCC, también es posible usar una aproximación basada en una tabla de búsqueda de 1/v con precisión de coma fija, y multiplicar u por el 1/v aproximado y luego redondear el resultado de coma fija a la precisión apropiada de coma fija (o entera).
En comparación con una división entera verdadera, pueden introducirse pequeños errores en los resultados debido a la aproximación, por lo que la ecuación (16) pasaría a ser:
D 1 aPP= d iv A p p r o x ( 2 w , (r dec*a) ) = 2N / ( r dec*a ) í { r dec)( 25 ) donde divApprox(u, v) es la función de aproximación de la división entera u/v, y £(rdec) es el error introducido por la aproximación de la división.
Por ejemplo, divApprox(2w,(rdec* or))=2N'M donde M=suelo(log2pdec * or)+1) es el número de bits que ocupardec*a.
Debido al error de aproximación £(rdec), se introducen pérdidas de codificación al utilizar D1app en comparación con el uso de D1 (ecuación 16).
Pueden darse tres casos diferentes:
1)
D1 app > D1, i.e.s(rdec) >0
Entonces, como D1app es demasiado alto, la tasa de bits se reducirá ligeramente, porque el número de pasos azimutales elementales escalados ms será menor, pero se introduce más distorsión en las coordenadas predichas(Xpred,ypred).
2)
D1app < D1, i.e.£(rdec) <0
Entonces, como D1app es demasiado pequeño, el número de pasos azimutales elementales escalados ms puede aumentar un poco y, por tanto, el coste de su codificación.
3) D1 app = D1 y así se obtiene una eficiencia óptima.
En nuestros experimentos se observa de manera general que el primer caso es más crítico que el segundo para un mismo valor absoluto del error £(rdec), por lo que es preferible aumentar un poco la tasa de bits en lugar de introducir errores de predicción en las coordenadas (xpred, ypred). Por tanto, es preferible evitar el primer caso.
En una variante de la ecuación (16), el primer dato D1 (paso azimutal elemental escaladoS(qipaso, rdec))obtenido mediante la ecuación (16) se refina aumentándolo iterativamente y/u opcionalmente disminuyéndolo iterativamente.
LaFigura 2ilustra un ejemplo de método 300 de determinación de una aproximación de un paso azimutal elemental escaladoS(qipaso, rdec)de acuerdo con por lo menos una realización ejemplar.
En resumen, el método refina iterativamente un paso azimutal elemental escaladoS(qipaso, rdec)usando unas pocas operaciones sencillas en cada paso de refinamiento (operaciones de desplazamiento bit a bit, incremento en uno y comparación).
Como se ha explicado anteriormente, cuando el radio decodificadordec(D2) es mayor o igual que el umbral TH, se establece un paso azimutal elemental escaladoS(qipaso, rdec)igual al paso azimutal elementalypaso.Cuando el radio decodificadordec(D2) es estrictamente inferior al umbral TH (o cuando el límite entero B calculado a partir del radio decodificadordecy del paso azimutal elementalypasoes igual a cero), en el paso 310, se obtiene un primer paso azimutal elementalypasc,oa partir de la aproximación de
, a partir del radio decodificadordec,por ejemplo
(ppaso,o ^ divApprox(2w,rdec*a)
En el paso 320, se obtiene un primer valor de límite entero Bo a partir del primer paso azimutal elementaltypaso,oy el radio decodificadordec(ecuación 15).
Luego, comenzando con el índice i = 0, mientras el límite entero Bi es mayor que cero, el índice i se incrementa en uno (paso 340),seobtiene un nuevo paso azimutal elementalq>pasoj(paso 350) disminuyendo en uno un paso azimutal elemental anteriorq>paso,n typaso.i=typasoj-1-1 , y se obtiene un nuevo límite entero Bi (paso 360) a partir del paso azimutal elementaly p as o jy el radio decodificadordec(ecuación 15).
Cuando el límite entero Bi es igual a cero, se resuelve el primer caso anterior, y el paso azimutal elemental escaladoS(qipaso, rdec)puede establecerse igual ay pasoj.
En variante, para resolver también el segundo caso anterior, como se muestra además en laFigura 10,cuando el límite entero Bi es igual a cero, se obtiene un nuevo paso azimutal elementalq>paso,M(paso 370) aumentando en uno el paso azimutal elemental actualy pasoj: q>p as o M=typasoj+ 1, y se obtiene un nuevo límite entero Bi+1 (paso 380) a partir del paso azimutal elementalq>p as o My el radio decodificadordec(ecuación 15).
Si el límite entero Bi+1 es igual a cero, significa quey paso,iaún puede incrementarse, aq)paso,i+1y por tanto el índice i se incrementa en uno (paso 390).
Luego, se obtiene un nuevo paso azimutal elemental (paso 370) y un nuevo límite entero (paso 380).
Esto se repite iterativamente hasta que el límite entero Bi+1 no sea igual a cero (es decir, sea mayor que cero), y entonces el paso azimutal elemental escaladoS(qipaso, rdec)se establece igual al paso azimutal elemental actualtypaso,i.
En una variante, la operación u operaciones de incremento y/o disminución pueden usar un paso de incremento (y/o disminución) determinado dinámicamente.
Por ejemplo, un valor de incremento se duplica después de cada iteración del método.
LaFigura 11ilustra otro ejemplo de un método 400 de determinación de un paso azimutal elemental escaladoS(typaso, rdec)de acuerdo con por lo menos una realización ejemplar.
Como se ha explicado anteriormente, cuando el radio decodificadordec(D2) es mayor o igual que el umbral TH, se establece un paso azimutal elemental escaladoS(qipaso, rdec)igual al paso azimutal elemental pâso. Cuando el radio decodificadordec(D2) es estrictamente menor que el umbral TH (o cuando el límite entero B calculado a partir del radio decodificado rdec y el paso azimutal elementaly pasoes igual a cero), en el paso 410, un primer paso azimutal elementalqipaso,0se establece igual al paso azimutal elementalqipaso,y una longitud de arco asociadaqiarcpse establece igual a (paso 420):
0arc,0 0paso,O *T'dec*^ ■
A continuación, partiendo del índice i = 0, mientras una longitud de arcoqiarc,isea inferior a un umbral Th1, el índice i se incrementa en 1, y el paso azimutal elemental anterior 9paso,i-1 (paso 430) y la longitud de arco asociada anterior 9arcoj-1(paso 440) se multiplican por dos (mediante operaciones de desplazamiento a la izquierda bit a bit) para obtener el nuevo paso azimutal elementalypasojy la nueva longitud de arco asociada 9arc,¡:
Cuando una longitud de arcoqiarc,iya no es menor que el umbral Th1, el paso azimutal elemental escaladoS(qipaso, rdec)puede establecerse igual al paso azimutal elemental 9 paso,i.
Típicamente Th1 =n/AIqi,y por tanto el método 400 para determinar una aproximación de un paso azimutal elemental escalado, equivale a encontrar el factor de mayor potencia de dos (2n) del paso azimutal elementalypasoque sea menor de
2 * n
(rdec*a *A I&
(es decir, satisfaciendo
), y usandoypaso* 2n =ypaso « ncomo paso azimutal elemental escaladoS(ypaso, rdec).Esto, puede considerarse como una aproximación rápida de la división
(ecuación 16).
Como ejemplo, usando la variante ilustrada por laFigura 11,con Th1 =n/AIyestamos siempre en el segundo o tercer caso explicado anteriormente, se mantuvieron en nuestros experimentos -90% de las ganancias de codificación que se obtienen cuando se usa una división verdadera. Pero si usamos Th1 =n/AIy,pero permitimos una iteración más cuandoabs(2*Th1- 2 *yare,) < abs(2*Th1-yare,i),permitimos el primer caso pero reducimos el valor absoluto del error de aproximacióne(rdec),sólo se mantuvo el -72% de las ganancias de codificación, aunque el error cometido en la división sea menor o igual que anteriormente. Esto ilustra que es preferible evitar el tercer caso.
LaFigura 12muestra un diagrama esquemático de bloques que ilustra un ejemplo de un sistema en el que se implementan varios aspectos y realizaciones ejemplares.
El sistema 500 puede estar integrado como uno o más dispositivos que incluyen los varios componentes descritos a continuación. En varias realizaciones, el sistema 500 puede estar configurado para implementar uno o más de los aspectos descritos en la presente solicitud.
Los ejemplos de equipos que pueden formar todo o parte del sistema 500 incluyen ordenadores personales, portátiles, teléfonos inteligentes, tabletas, decodificadores multimedia digitales, receptores de televisión digital, sistemas personales de grabación de vídeo, electrodomésticos conectados, vehículos conectados y sus sistemas de procesamiento asociados, dispositivos de visualización montados en la cabeza (HMD, gafas para ver a través), proyectores, "caves" (sistemas que incluyen múltiples pantallas), servidores, codificadores de vídeo, decodificadores de vídeo, postprocesadores que procesan la salida de un decodificador de vídeo, preprocesadores que proporcionan la entrada a un codificador de vídeo, servidores web, cajas decodificadoras y cualquier otro dispositivo para procesar una nube de puntos, un vídeo o una imagen u otros dispositivos de comunicación. Los elementos del sistema 500, individualmente o en combinación, pueden estar incorporados en un único circuito integrado (IC), múltiples IC y/o componentes discretos. Por ejemplo, en por lo menos una realización, los elementos de procesamiento y codificación/decodificación del sistema 500 pueden estar distribuidos en múltiples IC y/o componentes discretos. En varias realizaciones, el sistema 500 puede estar acoplado comunicativamente a otros sistemas similares, o a otros dispositivos electrónicos a través de, por ejemplo, un bus de comunicaciones o a través de puertos de entrada y/o salida dedicados.
El sistema 500 puede incluir por lo menos un procesador 510 configurado para ejecutar instrucciones cargadas en el mismo para implementar, por ejemplo, los varios aspectos descritos en la presente solicitud. El procesador 510 puede incluir memoria integrada, interfaz de entrada y salida, y otros circuitos conocidos en la técnica. El sistema 500 puede incluir por lo menos una memoria 520 (por ejemplo, un dispositivo de memoria volátil y/o un dispositivo de memoria no volátil). El sistema 500 puede incluir un dispositivo de almacenamiento 540, que puede incluir memoria no volátil y/o memoria volátil, incluyendo, pero sin limitarse a, memoria de sólo lectura programable y borrable eléctricamente (E<e>PROM), memoria de sólo lectura (ROM), memoria de sólo lectura programable (PROM), memoria de acceso aleatorio (RAM), memoria dinámica de acceso aleatorio (DRAM), memoria estática de acceso aleatorio (SRAM), flash, unidad de disco magnético y/o unidad de disco óptico. El dispositivo de almacenamiento 540 puede incluir un dispositivo de almacenamiento interno, un dispositivo de almacenamiento conectado, y/o un dispositivo de almacenamiento accesible en red, como ejemplos no limitativos.
El sistema 500 puede incluir un módulo codificador/decodificador 530 configurado, por ejemplo, para procesar datos para proporcionar datos geométricos de nubes de puntos codificados/decodificados, y el módulo codificador/decodificador 530 puede incluir su propio procesador y memoria. El módulo codificador/decodificador 530 puede representar módulo o módulos que pueden incluirse en un dispositivo para realizar las funciones de codificación y/o decodificación. Como es sabido, un dispositivo puede incluir uno o ambos módulos de codificación y decodificación. Además, el módulo codificador/decodificador 530 puede implementarse como un elemento separado del sistema 500 o puede incorporarse dentro del procesador 510 como una combinación de hardware y software, como es conocido por los expertos en la técnica.
El código de programa que debe cargarse en el procesador 510 o en el codificador/decodificador 530 para realizar los varios aspectos descritos en la presente solicitud puede almacenarse en el dispositivo de almacenamiento 540 y cargarse posteriormente en la memoria 520 para su ejecución por el procesador 510. De acuerdo con varias realizaciones, uno o más del procesador 510, la memoria 520, el dispositivo de almacenamiento 540 y el módulo codificador/decodificador 530 pueden almacenar uno o más de varios elementos durante la realización de los procesos descritos en la presente solicitud. Tales elementos almacenados pueden incluir, pero no se limitan a, un fotograma de nube de puntos, vídeos/imágenes de geometría/atributos codificados/decodificados o porciones del vídeo/imágenes de geometría/atributos codificados/decodificados, un flujo de bits, matrices, variables y resultados intermedios o finales del procesamiento de ecuaciones, fórmulas, operaciones y lógica operativa.
En varias realizaciones, la memoria dentro del procesador 510 y/o el módulo codificador/decodificador 530 puede usarse para almacenar instrucciones y proporcionar memoria de trabajo para el procesamiento que puede realizarse durante la codificación o decodificación.
En otras realizaciones, sin embargo, puede usarse una memoria externa al dispositivo de procesamiento (por ejemplo, el dispositivo de procesamiento puede ser o el procesador 510 o el módulo codificador/decodificador 530) para una o más de estas funciones. La memoria externa puede ser la memoria 520 y/o el dispositivo de almacenamiento 540, por ejemplo, una memoria volátil dinámica y/o una memoria flash no volátil. En varias realizaciones, puede usarse una memoria flash no volátil externa para almacenar el sistema operativo de un televisor. En por lo menos una realización, puede usarse una memoria volátil dinámica externa rápida, como una RAM, como memoria de trabajo para operaciones de codificación y decodificación de vídeo, como para MPEG-2 parte 2 (también conocido como Recomendación UIT-T H.262 e ISO/IEC 13818-2, también conocido como MPEG-2 Video), HEVC (Codificación de video de alta eficiencia), VVC (Codificación de video versátil), o MPEG-I parte 5 o parte 9.
La entrada a los elementos del sistema 500 puede proporcionarse a través de varios dispositivos de entrada, como se indica en el bloque 590. Tales dispositivos de entrada incluyen, pero no se limitan a, (i) una parte de RF que puede recibir una señal de RF transmitida, por ejemplo, a través del aire por una emisora, (ii) un terminal de entrada compuesto, (iii) un terminal de entrada USB, y/o (iv) un terminal de entrada HDMI.
En varias realizaciones, los dispositivos de entrada del bloque 590 pueden tener asociados elementos de procesamiento de entrada respectivos conocidos en la técnica. Por ejemplo, la parte de RF puede estar asociada con elementos necesarios para (i) seleccionar una frecuencia deseada (también denominada selección de una señal, o limitación de banda de una señal a una banda de frecuencias), (ii) reducir la conversión de la señal seleccionada, (iii) limitar de nuevo la banda a una banda de frecuencias más estrecha para seleccionar (por ejemplo) una banda de frecuencias de señal que puede denominarse canal en ciertas realizaciones, (iv) demodular la señal convertida hacia abajo y limitada en banda, (v) realizar la corrección de errores, y (vi) demultiplexar para seleccionar el flujo deseado de paquetes de datos. La parte RF de varias realizaciones puede incluir uno o más elementos para realizar estas funciones, por ejemplo, selectores de frecuencia, selectores de señal, limitadores de banda, selectores de canal, filtros, convertidores descendentes, demoduladores, correctores de errores y desmultiplexadores. La parte de RF puede incluir un sintonizador que realiza varias de estas funciones incluyendo, por ejemplo, la conversión descendente de la señal recibida a una frecuencia más baja (por ejemplo, una frecuencia intermedia o una frecuencia cercana a la banda base) o a banda base.
En una realización de caja decodificadora, la parte de RF y su elemento de procesamiento de entrada asociado pueden recibir una señal de RF transmitida a través de un medio alámbrico (por ejemplo, cable). A continuación, la parte de RF puede realizar la selección de frecuencia mediante filtrado, conversión descendente y filtrado de nuevo a una banda de frecuencia deseada.
Varias realizaciones reorganizan el orden de los elementos descritos anteriormente (y otros), eliminan algunos de estos elementos, y/o añaden otros elementos que realizan funciones similares o diferentes.
La adición de elementos puede incluir la inserción de elementos entre los elementos existentes como, por ejemplo, la inserción de amplificadores y un convertidor de analógico a digital. En varias realizaciones, la parte de RF puede incluir una antena.
Además, los terminales USB y/o HDMI pueden incluir procesadores de interfaz respectivos para conectar el sistema 500 a otros dispositivos electrónicos a través de conexiones USB y/o HDMI. Debe entenderse pueden implementarse que varios aspectos del procesamiento de entrada, por ejemplo, la corrección de errores Reed-Solomon, por ejemplo, dentro de un IC de procesamiento de entrada separado o dentro del procesador 510 según sea necesario. De manera similar, los aspectos de procesamiento de interfaz USB o HDMI pueden implementarse dentro de IC de interfaz separados o dentro del procesador 510 según sea necesario. El flujo demodulado, corregido de errores y demultiplexado puede proporcionarse a varios elementos de procesamiento, incluyendo, por ejemplo, el procesador 510 y el codificador/decodificador 530 que operan en combinación con los elementos de memoria y almacenamiento para procesar el flujo de datos según sea necesario para su presentación en un dispositivo de salida.
Varios elementos del sistema 500 pueden ser proporcionados dentro de una carcasa integrada. Dentro de la carcasa integrada, los varios elementos pueden estar interconectados y transmitir datos entre ellos usando una disposición de conexión adecuada 590, por ejemplo, un bus interno como se conoce en la técnica, incluyendo el bus I2C, cableado y placas de circuito impreso.
El sistema 500 puede incluir una interfaz de comunicaciones 550 que permite la comunicación con otros dispositivos a través del canal de comunicación 900. La interfaz de comunicaciones 550 puede incluir, entre otros, un transceptor configurado para transmitir y recibir datos a través del canal de comunicación 900. La interfaz de comunicaciones 550 puede incluir, entre otros, un módem o una tarjeta de red y el canal de comunicación 900 puede implementarse, por ejemplo, en un medio cableado y/o inalámbrico.
Los datos pueden transmitirse al sistema 500, en varias realizaciones, usando una red Wi-Fi como IEEE 802.11. La señal Wi-Fi de estas realizaciones puede recibirse a través del canal de comunicaciones 900 y la interfaz de comunicaciones 550, que están adaptados para comunicaciones Wi-Fi. El canal de comunicaciones 900 de estas realizaciones puede conectarse típicamente a un punto de acceso o enrutador que proporciona acceso a redes externas, incluyendo Internet, para permitir aplicaciones de streaming y otras comunicaciones over-the-top.
Otras realizaciones pueden proporcionar datos retransmitidos al sistema 500 usando una caja decodificadora que proporcione los datos a través de la conexión HDMI del bloque de entrada 590.
Otras realizaciones pueden proporcionar datos retransmitidos al sistema 500 usando la conexión RF del bloque de entrada 590.
Los datos retransmitidos pueden usarse como vía para la señalización de la información usada por el sistema 500. La información de señalización puede comprender el flujo de bits B y/o información como un número de puntos de una nube de puntos y/o parámetros de configuración del sensor como un paso azimutal elementalypasoo un ángulo de elevación9kasociado a un sensor del cabezal sensor giratorio 10.
Debe apreciarse que la señalización puede llevarse a cabo de varias maneras. Por ejemplo, uno o más elementos de sintaxis, indicadores, etc., pueden usarse para señalar información a un decodificador correspondiente en varias realizaciones.
El sistema 500 puede proporcionar una señal de salida a varios dispositivos de salida, incluyendo una pantalla 500, altavoces 700, y otros dispositivos periféricos 800. Los otros dispositivos periféricos 800 pueden incluir, en varios ejemplos de realizaciones, uno o más de un DVR autónomo, un reproductor de discos, un sistema estéreo, un sistema de iluminación y otros dispositivos que proporcionan una función basada en la salida del sistema 500.
En varias realizaciones, las señales de control pueden comunicarse entre el sistema 500 y la pantalla 600, los altavoces 700 u otros dispositivos periféricos 800 usando señalización como AV.Link (Enlace de Audio/Video), CEC (Consumer Electronics Control) u otros protocolos de comunicación que permiten el control de dispositivo a dispositivo con o sin intervención del usuario.
Los dispositivos de salida pueden estar acoplados comunicativamente al sistema 500 mediante conexiones dedicadas a través de las interfaces 560, 570 y 580 respectivas.
Alternativamente, los dispositivos de salida pueden conectarse al sistema 500 usando el canal de comunicaciones 900 a través de la interfaz de comunicaciones 550. La pantalla 600 y los altavoces 700 pueden integrarse en una única unidad con los demás componentes del sistema 500 en un dispositivo electrónico como, por ejemplo, un televisor.
En varias realizaciones, la interfaz de pantalla 560 puede incluir un controlador de pantalla, como, por ejemplo, un chip controlador de temporización (T Con).
La pantalla 600 y el altavoz 700 pueden, alternativamente, estar separados de uno o más de los otros componentes, por ejemplo, si la parte de RF de la entrada 590 es parte de una caja decodificadora separada. En varias realizaciones en las que la pantalla 600 y los altavoces 700 pueden ser componentes externos, la señal de salida puede proporcionarse a través de conexiones de salida dedicadas incluyendo, por ejemplo, puertos HDMI, puertos USB o salidas COMP.
En laFig. 1-12,se describen varios métodos de la presente, y cada uno de ellos incluye uno o más pasos o acciones para lograr el método descrito. A menos que se requiera un orden específico de pasos o acciones para el funcionamiento correcto del método, pueden modificarse o combinarse el orden y/o el uso de pasos y/o acciones específicos.
Algunos ejemplos se describen con respecto a diagramas de bloques y/o diagramas de flujo operativos. Cada bloque representa un elemento de circuito, módulo o parte de código que incluye una o más instrucciones ejecutables para implementar la función o funciones lógicas especificadas. También debe tenerse en cuenta que en otras implementaciones, la función o funciones indicadas en los bloques pueden producirse fuera del orden indicado. Por ejemplo, dos bloques mostrados en sucesión pueden, de hecho, ejecutarse sustancialmente concurrentemente o los bloques pueden a veces ejecutarse en el orden inverso, dependiendo de la funcionalidad implicada.
Las implementaciones y aspectos descritos en la presente pueden implementarse, por ejemplo, en un método o proceso, un aparato, un programa informático, un flujo de datos, un flujo de bits o una señal. Incluso si sólo se analizan en el contexto de una única forma de implementación (por ejemplo, analizado sólo como un método), la implementación de las características analizadas también puede implementarse en otras formas (por ejemplo, un aparato o programa de ordenador).
Los métodos pueden implementarse, por ejemplo, en un procesador, que se refiere a dispositivos de procesamiento en general, incluyendo, por ejemplo, un ordenador, un microprocesador, un circuito integrado o un dispositivo lógico programable. Los procesadores también incluyen dispositivos de comunicación.
Además, los métodos pueden implementarse mediante instrucciones ejecutadas por un procesador, y tales instrucciones (y/o valores de datos producidos por una implementación) pueden almacenarse en un medio de almacenamiento legible por ordenador. Un medio de almacenamiento legible por ordenador puede adoptar la forma de un producto de programa legible por ordenador incorporado en uno o más medios legibles por ordenador y con código de programa legible por ordenador incorporado en el mismo que es ejecutable por un ordenador. Un medio de almacenamiento legible por ordenador, como se usa en la presente, puede considerarse un medio de almacenamiento no transitorio, dada la capacidad inherente de almacenar la información en el mismo, así como la capacidad inherente de proporcionar la recuperación de la información desde el mismo. Un medio de almacenamiento legible por ordenador puede ser, por ejemplo, pero no está limitado a, un sistema, aparato o dispositivo electrónico, magnético, óptico, electromagnético, infrarrojo o semiconductor, o cualquier combinación adecuada de los anteriores. Debe apreciarse que lo siguiente, aunque proporciona ejemplos más específicos de medios de almacenamiento legibles por ordenador a los que pueden aplicarse las presentes realizaciones, es meramente un listado ilustrativo y no exhaustivo, como podrá apreciar fácilmente un experto en la técnica: un disquete de ordenador portátil; un disco duro; una memoria de sólo lectura (ROM); una memoria de sólo lectura programable y borrable (EPROM o memoria Flash); una memoria de sólo lectura de disco compacto portátil (CD-ROM); un dispositivo de almacenamiento óptico; un dispositivo de almacenamiento magnético; o cualquier combinación adecuada de los anteriores.
Las instrucciones pueden formar un programa de aplicación materializado en un medio legible por procesador.
Las instrucciones pueden estar, por ejemplo, en hardware, firmware, software o una combinación. Las instrucciones pueden encontrarse, por ejemplo, en un sistema operativo, en una aplicación separada o en una combinación de ambos. Un procesador puede caracterizarse, por lo tanto, como, por ejemplo, un dispositivo configurado para llevar a cabo un proceso y un dispositivo que incluye un medio legible por el procesador (como un dispositivo de almacenamiento) que tiene instrucciones para llevar a cabo un proceso. Además, un medio legible por el procesador puede almacenar, además o en lugar de instrucciones, valores de datos producidos por una implementación.
Un aparato puede implementarse, por ejemplo, en hardware, software y firmware adecuados. Algunos ejemplos de tales aparatos son ordenadores personales, portátiles, teléfonos inteligentes, tabletas, cajas decodificadoras multimedia digitales, receptores de televisión digital, sistemas personales de grabación de vídeo, electrodomésticos conectados, dispositivos de visualización montados en la cabeza (HMD, gafas de visión directa), proyectores, "caves" (sistema que incluye múltiples pantallas), servidores, codificadores de vídeo, decodificadores de vídeo, postprocesadores que procesan la salida de un decodificador de vídeo, preprocesadores que proporcionan la entrada a un codificador de vídeo, servidores web, cajas decodificadoras y cualquier otro dispositivo para procesar una nube de puntos, un vídeo o una imagen u otros dispositivos de comunicación. Como debe quedar claro, los equipos pueden ser móviles e incluso estar instalados en un vehículo móvil.
El software informático puede ser implementado por el procesador 510 o por hardware, o por una combinación de hardware y software. A modo de ejemplo no limitativo, las realizaciones también pueden implementarse mediante uno o más circuitos integrados. La memoria 520 puede ser de cualquier tipo apropiado para el entorno técnico y puede implementarse usando cualquier tecnología de almacenamiento de datos apropiada, como dispositivos de memoria óptica, dispositivos de memoria magnética, dispositivos de memoria basados en semiconductores, memoria fija y memoria extraíble, como ejemplos no limitativos. El procesador 510 puede ser de cualquier tipo apropiado para el entorno técnico y puede abarcar uno o más microprocesadores, ordenadores de propósito general, ordenadores de propósito especial y procesadores basados en una arquitectura multinúcleo, como ejemplos no limitativos.
Como será evidente para un experto en la técnica, las implementaciones pueden producir una variedad de señales formateadas para transportar información que puede ser, por ejemplo, almacenada o transmitida. La información puede incluir, por ejemplo, instrucciones para realizar un método, o datos producidos por una de las implementaciones descritas. Por ejemplo, una señal puede formatearse para transportar el flujo de bits de una realización descrita. Dicha señal puede formatearse, por ejemplo, como una onda electromagnética (por ejemplo, usando una parte de radiofrecuencia del espectro) o como una señal de banda base. El formateo puede incluir, por ejemplo, la codificación de un flujo de datos y la modulación de un portador con el flujo de datos codificado. La información que transporta la señal puede ser, por ejemplo, analógica o digital. La señal puede transmitirse a través de una variedad de enlaces por cable o inalámbricos, como se sabe. La señal puede almacenarse en un medio legible por procesador.
La terminología empleada en la presente tiene el propósito de describir únicamente realizaciones particulares y no se pretende que sea limitativa. Como se usan en la presente, se pretende que las formas singulares "un", "uno" y "el" incluyan también las formas plurales, a menos que el contexto indique claramente lo contrario. Se entenderá además que los términos "incluye/comprende" y/o "que incluye/que comprende", cuando se usan en esta memoria descriptiva, pueden especificar la presencia de, por ejemplo, características, números enteros, pasos, operaciones, elementos y/o componentes indicados, pero no excluyen la presencia o adición de una o más de otras características, números enteros, pasos, operaciones, elementos, componentes y/o grupos de los mismos. Además, cuando se hace referencia a un elemento como que "responde" o " está conectado" a otro elemento, puede responder directamente o estar conectado al otro elemento, o pueden estar presentes elementos intermedios. Por el contrario, cuando se dice que un elemento "responde directamente" o está "conectado directamente" a otro elemento, no hay elementos intermedios presentes.
Debe apreciarse que se pretende que el uso de cualquiera de los símbolos/términos"/", "y/o", y "por lo menos uno de", por ejemplo, en los casos de "A/B", "A y/o B" y "por lo menos uno de A y B", pueda abarcar la selección de la primera opción enumerada (A) solamente, o la selección de la segunda opción enumerada (B) solamente, o la selección de ambas opciones (A y B). Como ejemplo adicional, en los casos de "A, B, y/o C" y "por lo menos una de A, B, y C", se pretende que dicha formulación abarque la selección de la primera opción enumerada (A) únicamente, o la selección de la segunda opción enumerada (B) únicamente, o la selección de la tercera opción enumerada (C) únicamente, o la selección de la primera y la segunda opción enumeradas (A y B), o la selección de la primera y la tercera opción enumeradas (A y C), o la selección de la segunda y la tercera opción enumeradas (B y C), o la selección de las tres opciones (A y B y C). Esto puede extenderse, como es evidente para un experto en la técnica en esta técnica y en técnicas relacionadas, a tantos elementos como se enumeren.
En la presente solicitud pueden usarse varios valores numéricos. Los valores específicos pueden ser a título de ejemplo y los aspectos descritos no se limitan a estos valores específicos.
Se entenderá que, aunque pueden usarse en la presente los términos "primero", "segundo", etc. para describir varios elementos, estos elementos no están limitados por dichos términos. Estos términos sólo se usan para distinguir un elemento de otro. Por ejemplo, un primer elemento podría denominarse segundo elemento y, de manera similar, un segundo elemento podría denominarse primer elemento sin apartarse de las enseñanzas de la presente solicitud. No hay orden implícito entre un primer elemento y un segundo elemento.
La referencia a "una realización ejemplar" o "una implementación" o "una implementación", así como otras variaciones de las mismas, se usa frecuentemente para indicar que una función, estructura, característica, etc. particular (descrito en relación con la realización/implementación) está incluido en por lo menos una realización/implementación. Por tanto, las apariciones de la frase "en una realización ejemplar" o "en una implementación", así como cualquier otra variación, que aparecen en varios lugares a lo largo de esta solicitud no se refieren necesariamente a la misma realización.
De manera similar, la referencia en la presente a "de acuerdo con una realización/ejemplo/implementación ejemplar" o "en una realización/ejemplo/implementación ejemplar", así como otras variaciones de los mismos, se usa con frecuencia para indicar que una función, estructura o característica particular (descrito en relación con la realización/ejemplo/implementación ejemplar) puede incluirse en por lo menos una realización/ejemplo/implementación ejemplar. Por tanto, las expresiones "de acuerdo con una realización/ejemplo/implementación ejemplar" o "en una realización/ejemplo/implementación ejemplar" que aparecen en varios lugares de la memoria descriptiva no se refieren necesariamente a la misma realización/ejemplo/implementación ejemplar, ni tampoco las realizaciones/ejemplos/implementaciones ejemplares separados o alternativos son necesariamente mutuamente excluyentes de otras realizaciones/ejemplos/implementaciones ejemplares.
Los números de referencia que aparecen en las reivindicaciones son meramente ilustrativos y no tendrán ningún efecto limitativo sobre el alcance de las reivindicaciones. Aunque no se describen explícitamente, las presentes realizaciones/ejemplos y variantes pueden emplearse en cualquier combinación o subcombinación.
Cuando una figura se presenta como un diagrama de flujo, debe entenderse que también proporciona un diagrama de bloques de un aparato correspondiente. De manera similar, cuando una figura se presenta como un diagrama de bloques, debe entenderse que también proporciona un diagrama de flujo de un método/proceso correspondiente.
Aunque algunos de los diagramas incluyen flechas en las rutas de comunicación para mostrar una dirección primaria de comunicación, debe entenderse que la comunicación puede producirse en la dirección opuesta a las flechas representadas.
Varias implementaciones implican decodificación. La "decodificación", como se usa en esta solicitud, puede abarcar todos o parte de los procesos realizados, por ejemplo, en una trama de nube de puntos recibida (incluyendo posiblemente un flujo de bits recibido que codifica una o más tramas de nube de puntos) para producir una salida final adecuada para su visualización o para su posterior procesamiento en el dominio de nube de puntos reconstruida. En varias realizaciones, tales procesos incluyen uno o más de los procesos típicamente realizados por un decodificador. En varias realizaciones, tales procesos también, o alternativamente, incluyen procesos realizados por un decodificador de varias realizaciones descritas en esta solicitud, por ejemplo,
Como ejemplos adicionales, en una realización "decodificación" puede referirse a la decodificación entrópica, en otra realización "decodificación" puede referirse sólo a la decodificación diferencial, y en otra realización "decodificación" puede referirse a combinaciones de decodificación entrópica y decodificación diferencial. Si se pretende que la frase "proceso de decodificación" pueda referirse específicamente a un subconjunto de operaciones o, en general, al proceso de decodificación más amplio, quedará claro en función del contexto de las descripciones específicas y se cree que los expertos en la técnica lo entenderán bien.
Varias implementaciones implican codificación. De manera análoga al análisis anterior sobre la "decodificación", la "codificación" como se usa en esta solicitud puede abarcar todos o parte de los procesos realizados, por ejemplo, en un marco de nube de puntos de entrada para producir un flujo de bits codificado. En varias realizaciones, tales procesos incluyen uno o más de los procesos típicamente realizados por un codificador. En varias realizaciones, tales procesos también, o alternativamente, incluyen procesos realizados por un codificador de varias implementaciones descritas en esta solicitud.
Como ejemplos adicionales, en una realización "codificación" puede referirse sólo a la codificación de entropía, en otra realización "codificación" puede referirse sólo a la codificación diferencial, y en otra realización "codificación" puede referirse a combinaciones de codificación diferencial y codificación de entropía. Si se pretende que la frase "proceso de codificación" pueda referirse específicamente a un subconjunto de operaciones o, en general, al proceso de codificación más amplio, quedará claro en función del contexto de las descripciones específicas y se cree que los expertos en la técnica lo entenderán bien.
Además, esta solicitud puede referirse a la "determinación" de varios elementos de información. Determinar la información puede incluir uno o más de, por ejemplo, estimar la información, calcular la información, predecir la información o recuperar la información de la memoria.
Además, esta solicitud puede referirse a "acceder" a varios elementos de información. Acceder a la información puede incluir uno o más de, por ejemplo, recibir la información, recuperar la información (por ejemplo, de la memoria o del flujo de bits), almacenar la información, mover la información, copiar la información, calcular la información, determinar la información, predecir la información o estimar la información.
Además, esta solicitud puede referirse a la "recepción" de varios elementos de información. Se pretende que "recibir", al igual que "acceder", sea un término amplio. Recibir la información puede incluir uno o más de, por ejemplo, acceder a la información, o recuperar la información (por ejemplo, de la memoria o del flujo de bits). Además, "recibir" implica típicamente, de un modo u otro, durante operaciones como, por ejemplo, almacenar la información, procesar la información, transmitir la información, mover la información, copiar la información, borrar la información, calcular la información, determinar la información, predecir la información o estimar la información.
Además, como se usa en la presente, la palabra "señal" se refiere, entre otras cosas, a indicar algo a un decodificador correspondiente. Por ejemplo, en ciertas realizaciones, el codificador señala una información particular, como un número de puntos de la nube de puntos o parámetros de configuración del sensor, como el paso azimutal elementalypasoo un ángulo de elevación9kasociado a un sensor k. De esta manera, en una realización, el mismo parámetro puede usarse tanto en el lado del codificador como en el lado del decodificador. Así, por ejemplo, un codificador puede transmitir (señalización explícita) un parámetro particular al decodificador para que éste pueda usar el mismo parámetro particular. A la inversa, si el decodificador ya dispone del parámetro en cuestión y de otros, la señalización puede usarse sin transmisión (señalización implícita) para permitir simplemente al decodificador conocer y seleccionar el parámetro particular. Al evitar la transmisión de cualquier función real, en varias realizaciones se realiza un ahorro de bits. Debe apreciarse que la señalización puede realizarse de varias maneras. Por ejemplo, en varias realizaciones se usan uno o más elementos de sintaxis, indicadores, y demás para señalar información a un decodificador correspondiente. Aunque lo anterior se refiere a la forma verbal de la palabra "señal", en la presente la palabra "señal" también puede usarse como sustantivo.
Se han descrito una variedad de realizaciones. No obstante, se entenderá que pueden realizarse varias modificaciones. Por ejemplo, elementos de diferentes implementaciones pueden combinarse, suplementarse, modificarse o eliminarse para producir otras implementaciones. Además, un experto en la técnica comprenderá que pueden sustituirse otras estructuras y procesos por los divulgados y que las implementaciones resultantes realizarán por lo menos sustancialmente la misma función o funciones, por lo menos sustancialmente de las misma manera o maneras, para lograr por lo menos sustancialmente el mismo resultado o resultados que las implementaciones divulgadas. Por consiguiente, la presente solicitud contempla estas y otras implementaciones.

Claims (15)

REIVINDICACIONES
1. Un método para codificar una nube de puntos en un flujo de bits de datos de nubes de puntos codificados que representan un objeto físico, asociándose a cada punto de la nube de puntos unas coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal sensor giratorio que capturó el punto y un radio que responde a una distancia del punto respecto a un referencial, el métodocaracterizado por que
- obtener (130) un paso azimutal elemental escalado( S ( qipaso, rdec))asociado a un punto de la nube de puntos, dicho paso azimutal elemental escalado( S ( ( qipaso, rdec))siendo igual a un primer dato (D1) mayor que un paso azimutal elemental(qipaso)cuando un segundo dato (D2) es estrictamente menor que un umbral, y el paso azimutal elemental escalado( S ( qipaso, rdec))siendo igual al paso azimutal elemental(qipaso)en caso contrario, dicho paso azimutal elemental(qipaso)estando derivado de las frecuencias y la velocidad de rotación a las que un cabezal sensor giratorio capturó la nube de puntos, y dicho segundo dato (D2) depende de un radio decodificado (rdec) del punto obtenido mediante la codificación y decodificación (120) de un radio asociado al punto;
- codificar (140), en el flujo de bits, un número (ms) de pasos azimutales elementales escalados obtenidos a partir de un ángulo azimutal del punto, una predicción del ángulo azimutal y el paso azimutal elemental escalado; y - codificar (160), en el flujo de bits, un ángulo azimutal residual del punto entre el ángulo azimutal del punto y un ángulo azimutal previsto derivado (150) del número (ms) de pasos azimutales elementales escalados y del paso azimutal elemental escalado(S (q ipaso, rdec)).
2. Un método de decodificación de una nube de puntos a partir de un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, cada punto de la nube de puntos estando asociado a coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal sensor giratorio que capturó el punto y un radio que responde a una distancia del punto desde un referencial, el método comprendiendo:
- decodificar (210) un paso azimutal elemental(qipaso)a partir del flujo de bits;
- obtener (220) un radio decodificado(rdec)de un punto de la nube de puntos a partir de un radio residual decodificado(rres,dec)decodificado a partir del flujo de bits:
caracterizado por
- obtener (130) un paso azimutal elemental escalado(S (q ipaso, rdec))asociado a un punto de la nube de puntos, dicho paso azimutal elemental escalado(S ((q ip aso , rdec))siendo igual a un primer dato (D1) mayor que el paso azimutal elemental(qipaso)cuando un segundo dato (D2), dependiendo del radio decodificado (rdec) del punto, es estrictamente menor que un umbral (TH), y el paso azimutal elemental escalado(S (q ipaso, rdec))es igual al paso azimutal elemental(qipaso)en caso contrario;
- decodificar (230) un número (ms) de pasos azimutales elementales escalados a partir del flujo de bits;
- decodificar (240) un ángulo azimutal residual decodificado(yres,dec)a partir del flujo de bits; y
- obtener (250) de un ángulo azimutal decodificado(y d e c )a partir del ángulo azimutal residual decodificado(qires.dec)y de un ángulo azimutal previsto derivado (150) del número (ms) de pasos azimutales elementales escalados y del paso azimutal elemental escalado[S(qipaso, rdec)].
3. El método de la reivindicación 1 o 2, en donde el primer dato (D1) depende del radio decodificado (rdec).
4. El método de la reivindicación 3, en donde el primer dato (D1) es inversamente proporcional a un producto del radio decodificado y un factor de escalado( a )mayor o igual a 1.
5. El método de una de las reivindicaciones 1 a 4, en donde el segundo dato (D2) es el radio decodificado (rdec).
6. El método de una de las reivindicaciones 1 a 4, en donde el segundo dato (D2) se obtiene aplicando una función monotónica sobre el radio decodificado (rdec) y dicho segundo dato (D2) se compara con un segundo umbral (TH) obtenido aplicando una misma función monotónica sobre el umbral.
7. El método de la reivindicación 6, en donde la función monótona se define como una función que proporciona un límite entero del ángulo azimutal residual.
8. El método de una de las reivindicaciones 6 o 7, en donde el primer dato (D1) se obtiene a partir de una aproximación de 2-n/(r<dec>* a *A I y )donderdeces el radio decodificado, a es un factor de escalado mayor o igual a 1, yA I ycorresponde a una precisión interna para los ángulos azimutales.
9. El método de la reivindicación 8, en donde el primer dato (D1) se obtiene refinando iterativamente dicha aproximación.
10. El método de la reivindicación 8, en donde dicha aproximación se obtiene encontrando un factor de mayor potencia de dos de un paso azimutal elemental que es menor de 2n/(rdec* a *m .
11. Un aparato para codificar una nube de puntos en un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, cada punto de la nube de puntos estando asociado a unas coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal sensor giratorio que capturó el punto y un radio que responde a una distancia del punto respecto a un referencial, el aparato que comprende uno o más procesadores estandocaracterizado por
- obtener un paso azimutal elemental escalado asociado a un punto de la nube de puntos, dicho paso azimutal elemental escalado siendo igual a un primer dato mayor que un paso azimutal elemental cuando un segundo dato es estrictamente inferior a un umbral, y el paso azimutal elemental escalado siendo igual al paso azimutal elemental en caso contrario, dicho paso azimutal elemental estando derivado de las frecuencias y la velocidad de rotación a las que un cabezal sensor giratorio capturó la nube de puntos, y dicho segundo dato dependiendo de un radio decodificado del punto obtenido mediante la codificación y decodificación de un radio asociado al punto;
- codificar, en el flujo de bits, un número de pasos azimutales elementales escalados obtenidos a partir de un ángulo azimutal del punto, una predicción del ángulo azimutal y el paso azimutal elemental escalado; y
- codificar, en el flujo de bits, un ángulo azimutal residual del punto entre el ángulo azimutal del punto y un ángulo azimutal previsto derivado del número de pasos azimutales elementales escalados y del paso azimutal elemental escalado.
12. Un aparato para decodificar una nube de puntos a partir de un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, cada punto de la nube de puntos estando asociado con coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal sensor giratorio que capturó el punto y un radio que responde a una distancia del punto desde un referencial, el aparato que comprende uno o más procesadores configurados para:
- decodificar un paso azimutal elemental a partir del flujo de bits;
caracterizado por
- obtener un radio decodificado de un punto de la nube de puntos a partir de un radio residual decodificado a partir del flujo de bits;
- obtener un paso azimutal elemental escalado asociado a un punto de la nube de puntos, dicho paso azimutal elemental escalado siendo igual a un primer dato mayor que el paso azimutal elemental cuando un segundo dato, dependiendo del radio decodificado del punto, es estrictamente menor que un umbral, y el paso azimutal elemental escalado siendo igual al paso azimutal elemental en caso contrario;
- decodificar un número de pasos azimutales elementales escalados a partir del flujo de bits;
- decodificar un ángulo azimutal residual decodificado a partir del flujo de bits; y
- obtener un ángulo azimutal decodificado a partir del ángulo azimutal residual decodificado y de un ángulo azimutal previsto derivado del número de pasos azimutales elementales escalados y del paso azimutal elemental escalado.
13. Un producto de programa informático que incluye instrucciones que, cuando el programa es ejecutado por uno o más procesadores, hace que el uno o más procesadores lleven a cabo un método de codificación de una nube de puntos en un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, cada punto de la nube de puntos estando asociado con coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal sensor giratorio que capturó el punto y un radio que responde a una distancia del punto desde un referencial, el método estandocaracterizando por
- obtener un paso azimutal elemental escalado asociado a un punto de la nube de puntos, dicho paso azimutal elemental escalado siendo igual a un primer dato mayor que un paso azimutal elemental cuando un segundo dato es estrictamente menor que un umbral, y el paso azimutal elemental escalado siendo igual al paso azimutal elemental en caso contrario, dicho paso azimutal elemental derivándose de las frecuencias y la velocidad de rotación a las que un cabezal sensor giratorio capturó la nube de puntos, y dicho segundo dato dependiendo de un radio decodificado del punto obtenido mediante la codificación y decodificación de un radio asociado al punto; - codificar, en el flujo de bits, un número de pasos azimutales elementales escalados obtenidos a partir de un ángulo azimutal del punto, una predicción del ángulo azimutal y el paso azimutal elemental escalado; y
- codificar, en el flujo de bits, un ángulo azimutal residual del punto entre el ángulo azimutal del punto y un ángulo azimutal previsto derivado del número de pasos azimutales elementales escalados y del paso azimutal elemental escalado.
14. Un producto de programa informático que incluye instrucciones que, cuando el programa es ejecutado por uno o más procesadores, hace que el uno o más procesadores lleven a cabo un método de decodificación de una nube de puntos a partir de un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, cada punto de la nube de puntos estando asociado con coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal sensor giratorio que capturó el punto y un radio que responde a una distancia del punto desde un referencial, el método comprendiendo:
- decodificar un paso azimutal elemental a partir del flujo de bits;
- obtener un radio decodificado de un punto de la nube de puntos a partir de un radio residual decodificado a partir del flujo de bits;
caracterizado por
- obtener un paso azimutal elemental escalado asociado a un punto de la nube de puntos, dicho paso azimutal elemental escalado siendo igual a un primer dato mayor que el paso azimutal elemental cuando un segundo dato, dependiendo del radio decodificado del punto, es estrictamente menor que un umbral, y el paso azimutal elemental escalado siendo igual al paso azimutal elemental en caso contrario;
- decodificar un número de pasos azimutales elementales escalados a partir del flujo de bits;
- decodificar un ángulo azimutal residual decodificado a partir del flujo de bits; y
- obtener un ángulo azimutal decodificado a partir del ángulo azimutal residual decodificado y de un ángulo azimutal previsto derivado del número de pasos azimutales elementales escalados y del paso azimutal elemental escalado.
15. Un medio de almacenamiento no transitorio que contiene instrucciones de código de programa para ejecutar un método de decodificación de una nube de puntos a partir de un flujo de bits de datos de nube de puntos codificados que representan un objeto físico, cada punto de la nube de puntos estando asociado con coordenadas esféricas que representan un ángulo azimutal que responde a un ángulo de captura de un sensor de un cabezal sensor giratorio que capturó el punto y un radio que responde a una distancia del punto desde un referencial, el método comprendiendo:
- decodificar un paso azimutal elemental a partir del flujo de bits;
- obtener un radio decodificado de un punto de la nube de puntos a partir de un radio residual decodificado a partir del flujo de bits;
caracterizado por
- obtener un paso azimutal elemental escalado asociado a un punto de la nube de puntos, dicho paso azimutal elemental escalado siendo igual a un primer dato mayor que el paso azimutal elemental cuando un segundo dato, dependiendo del radio decodificado del punto, es estrictamente menor que un umbral, y el paso azimutal elemental escalado siendo igual al paso azimutal elemental en caso contrario;
- decodificar un número de pasos azimutales elementales escalados a partir del flujo de bits;
- decodificar un ángulo azimutal residual decodificado a partir del flujo de bits; y
- obtener un ángulo azimutal decodificado a partir del ángulo azimutal residual decodificado y de un ángulo azimutal previsto derivado del número de pasos azimutales elementales escalados y del paso azimutal elemental escalado.
ES21305461T 2021-04-09 2021-04-09 Método y aparato para codificar/decodificar datos geométricos de nubes de puntos capturados por un cabezal desensor giratorio Active ES2969640T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP21305461.2A EP4071719B1 (en) 2021-04-09 2021-04-09 Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head

Publications (1)

Publication Number Publication Date
ES2969640T3 true ES2969640T3 (es) 2024-05-21

Family

ID=77050944

Family Applications (1)

Application Number Title Priority Date Filing Date
ES21305461T Active ES2969640T3 (es) 2021-04-09 2021-04-09 Método y aparato para codificar/decodificar datos geométricos de nubes de puntos capturados por un cabezal desensor giratorio

Country Status (9)

Country Link
US (1) US20240193818A1 (es)
EP (1) EP4071719B1 (es)
JP (1) JP2024516533A (es)
KR (1) KR20230164739A (es)
CN (1) CN117136385A (es)
BR (1) BR112023020631A2 (es)
ES (1) ES2969640T3 (es)
PL (1) PL4071719T3 (es)
WO (1) WO2022213572A1 (es)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2559157A (en) * 2017-01-27 2018-08-01 Ucl Business Plc Apparatus, method and system for alignment of 3D datasets
WO2020246689A1 (ko) * 2019-06-05 2020-12-10 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11461932B2 (en) * 2019-06-11 2022-10-04 Tencent America LLC Method and apparatus for point cloud compression
US11568571B2 (en) * 2019-10-03 2023-01-31 Tencent America LLC Techniques and apparatus for lossless lifting for attribute coding

Also Published As

Publication number Publication date
KR20230164739A (ko) 2023-12-04
WO2022213572A1 (en) 2022-10-13
JP2024516533A (ja) 2024-04-16
US20240193818A1 (en) 2024-06-13
EP4071719A1 (en) 2022-10-12
EP4071719B1 (en) 2023-10-18
PL4071719T3 (pl) 2024-03-18
BR112023020631A2 (pt) 2023-12-19
CN117136385A (zh) 2023-11-28

Similar Documents

Publication Publication Date Title
WO2022134752A1 (en) Method and apparatus of entropy encoding/decoding point cloud geometry data captured by a spinning sensors head
ES2969640T3 (es) Método y aparato para codificar/decodificar datos geométricos de nubes de puntos capturados por un cabezal desensor giratorio
US20240185472A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
US20240046528A1 (en) Method and apparatus of quantizing spherical coordinates used for encoding/decoding point cloud geometry data
WO2022213569A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
US20230401754A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
RU2818299C1 (ru) Способ и устройство квантования сферических координат, используемых для кодирования/декодирования данных геометрии облака точек
EP4113441A1 (en) Method and apparatus of encoding/decoding point cloud captured by a spinning sensors head
US20240187631A1 (en) Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head
WO2023050953A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
WO2023050950A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
WO2023050912A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
WO2023050951A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
WO2023029664A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
WO2023045443A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
WO2024093215A1 (en) Encoding/decoding point cloud geometry data
WO2023179277A1 (en) Encoding/decoding positions of points of a point cloud encompassed in a cuboid volume
CN118043849A (zh) 编码/解码由至少一个传感器感测的点云几何数据的方法和装置
CN117693769A (zh) 编码/解码由旋转传感器头捕获的点云的方法和装置