BR112021000366A2 - Método de codificação de nuvem de pontos, método de decodificação de nuvem de pontos, codificador, e decodificador - Google Patents

Método de codificação de nuvem de pontos, método de decodificação de nuvem de pontos, codificador, e decodificador Download PDF

Info

Publication number
BR112021000366A2
BR112021000366A2 BR112021000366-5A BR112021000366A BR112021000366A2 BR 112021000366 A2 BR112021000366 A2 BR 112021000366A2 BR 112021000366 A BR112021000366 A BR 112021000366A BR 112021000366 A2 BR112021000366 A2 BR 112021000366A2
Authority
BR
Brazil
Prior art keywords
patch
decoded
axis
coded
corresponds
Prior art date
Application number
BR112021000366-5A
Other languages
English (en)
Inventor
Dejun Zhang
Bo Liu
Wei Hu
Wenhai WU
Tian Wang
Original Assignee
Huawei Technologies 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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021000366A2 publication Critical patent/BR112021000366A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/602Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Processing Or Creating Images (AREA)

Abstract

“método de codificação de nuvem de pontos, método de decodificação de nuvem de pontos, codificador,e decodificador. modalidades deste pedido referem-se ao campo de tecnologias de codificação, e revelam um método de codificação de nuvem de pontos, um método de decodificação de nuvem de pontos, um codificador, e um decodificador, para fornecer soluções técnicas para efetivamente codificar e decodificar dados de nuvem de pontos. o método de codificação de nuvem de pontos pode incluir: adquirir um eixo normal de um remendo a ser codificado em uma nuvem de pontos a ser codificada e informações de descrição de um retângulo de limite mínimo correspondente ao remendo a ser codificado, em que o eixo normal do remendo a ser codificado e as informações de descrição do retângulo de limite mínimo correspondente ao remendo a ser codificado são usados para determinar um eixo tangente do remendo a ser codificado e um eixo bitangente do remendo a ser codificado; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do remendo a ser codificado e o eixo bitangente do remendo a ser codificado, e o elemento de sintaxe inclui um índice do eixo normal do remendo a ser codificado e informações usadas para indicar as informações de descrição de um retângulo de limite mínimo correspondente ao remendo a ser codificado.

Description

“MÉTODO DE CODIFICAÇÃO DE NUVEM DE PONTOS, MÉTODO DE DECODIFICAÇÃO DE NUVEM DE PONTOS, CODIFICADOR, E DECODIFICADOR”
[0001] Este pedido reivindica prioridade ao Pedido de Patente no CN201810766911.3, depositado junto à Administração Nacional de Propriedade Intelectual da China em 12 de julho de 2018 e intitulado “POINT CLOUD ENCODING METHOD, POINT CLOUD DECODING METHOD, ENCODER, AND DECODER”, que é incorporado ao presente documento a título de referência em sua totalidade.
CAMPO DA TÉCNICA
[0002] As modalidades deste pedido referem-se ao campo de tecnologias de codificação e, em particular, a um método de codificação de nuvem de pontos (point cloud), a um método de decodificação de nuvem de pontos, a um codificador e a um decodificador.
ANTECEDENTES
[0003] Com o contínuo desenvolvimento de tecnologias de sensor 3D (por exemplo, escâner 3D), é cada vez mais conveniente coletar dados de nuvem de pontos, e os dados de nuvem de pontos são coletados em uma escala cada vez maior. Portanto, como codificar e decodificar de maneira eficaz os dados de nuvem de pontos se torna um problema urgente a ser solucionado.
SUMÁRIO
[0004] As modalidades deste pedido fornecem um método de codificação de nuvem de pontos, um método de decodificação de nuvem de pontos, um codificador e um decodificador, para ajudar a aperfeiçoar o desempenho de codificação de nuvem de pontos.
[0005] De acordo com um primeiro aspecto, uma modalidade deste pedido fornece um método de codificação de nuvem de pontos. O método inclui: adquirir um eixo normal (Normal) de um patch (patch) a ser codificado em uma nuvem de pontos a ser codificada e informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o eixo normal do patch a ser codificado e as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado são usados para determinar um eixo tangente (Tangent) do patch a ser codificado e um eixo bitangente (Bi-tangent) do patch a ser codificado; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui um índice do eixo normal do patch a ser codificado e informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado. Em um exemplo, o método pode ser realizado por um codificador.
[0006] O retângulo delimitador mínimo que corresponde ao patch a ser codificado é um retângulo delimitador mínimo de uma imagem bidimensional (que é denominada um mapa de pré-ocupação doravante) obtida pré-projetando o patch de um espaço tridimensional para um espaço bidimensional.
[0007] As informações de descrição do retângulo delimitador mínimo que corresponde ao patch são informações usadas para descrever o retângulo delimitador mínimo que corresponde ao patch, e são, especificamente, informações usadas para descrever um tamanho de lado (que também pode ser denominado um tamanho bidimensional) do retângulo delimitador mínimo.
[0008] Tanto o índice do eixo normal do patch a ser codificado quanto as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado são informações de nível de patch.
[0009] De modo opcional, as informações de descrição do retângulo delimitador mínimo que corresponde ao patch podem incluir uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch.
[0010] De modo opcional, as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado podem incluir um índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser codificado, ou informações de tamanho (ou informações de tamanho de lado) do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
[0011] Em um aspecto, as informações de descrição do retângulo delimitador mínimo que corresponde ao patch podem refletir um local do patch. Por exemplo, o local do patch pode ser representado pelo fato de um mapa de ocupação obtido mapeando-se o patch do espaço tridimensional para o espaço bidimensional ser vertical ou horizontal. Em outro aspecto, o fato de um mapa de ocupação de um patch de um mesmo local ser vertical ou horizontal afeta um tamanho de um mapa de ocupação de uma nuvem de pontos obtida empacotando o mapa de ocupação do patch. Portanto, o eixo tangente e o eixo bitangente do patch a ser codificado são determinados com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado. Isso é favorável à implantação de que mapas de ocupação de patches são dispostos próximos no mapa de ocupação da nuvem de pontos ajustando-se uma orientação (uma orientação vertical ou uma orientação horizontal) do mapa de ocupação do patch a ser codificado, ajudando a realizar, desse modo, codificação com base em imagem/vídeo em um mapa de profundidade e em um mapa de textura que são determinados com base no mapa de ocupação da nuvem de pontos. Em outras palavras, isso pode aperfeiçoar o desempenho de codificação de nuvem de pontos, e aperfeiçoar adicionalmente o desempenho de decodificação de nuvem de pontos.
[0012] Em um possível projeto, o método pode incluir, adicionalmente: determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado; e projetar o patch a ser codificado do espaço tridimensional para o espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado.
[0013] Em um possível projeto, a determinação do eixo tangente do patch a ser codificado e do eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado pode incluir: determinar, de acordo com uma regra de projeção, o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a regra de projeção se refere à distribuição, no espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser codificada para o espaço bidimensional. Por exemplo, a regra de projeção pode indicar projeção vertical ou projeção horizontal.
[0014] De modo opcional, a regra de projeção pode ser uma regra de projeção predefinida (ou a regra de projeção é denominada uma regra predefinida, por exemplo, a regra de projeção pode ser uma regra predefinida de acordo com um protocolo para um lado de codificador e um lado de decodificador; ou a regra de projeção pode ser uma regra padrão).
[0015] De modo opcional, a regra de projeção pode não ser predefinida. Por exemplo, a regra de projeção pode ser determinada de acordo com um critério de custo de distorção de taxa. Se a regra de projeção não for predefinida, de modo opcional, o elemento de sintaxe pode incluir, adicionalmente, informações usadas para indicar a regra de projeção. As informações usadas para indicar a regra de projeção são informações de nível de quadro.
[0016] Em um possível projeto, a determinação do eixo tangente do patch a ser codificado e do eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado pode incluir: determinar, com base em uma relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch; e o eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado. Por exemplo, a relação de mapeamento pode ser predefinida. Por exemplo, a relação de mapeamento é predefinida de acordo com um protocolo. Especificamente, a relação de mapeamento pode ser armazenada, por exemplo, mas sem limitação, em uma ou mais tabelas. Nesse caso, o possível projeto pode ser implantado consultando-se uma tabela.
[0017] Em um possível projeto, a determinação do eixo tangente do patch a ser codificado e do eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado pode incluir: consultar uma tabela com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado, e a tabela que é consultada inclui uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch.
[0018] Em um possível projeto, se uma regra de projeção indicar projeção vertical, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado; ou se uma regra de projeção indicar projeção horizontal, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado. A regra de projeção se refere à distribuição, no espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser codificada para o espaço bidimensional. O eixo normal do patch a ser codificado é perpendicular ao espaço bidimensional. Esse possível projeto é descrito usando-se um exemplo em que “um eixo horizontal de um plano bidimensional é um eixo tangente de um patch, e um eixo vertical do plano bidimensional é um eixo bitangente do patch”.
[0019] Alternativamente, se o eixo horizontal do plano bidimensional for o eixo bitangente do patch, e o eixo vertical do plano bidimensional for o eixo tangente do patch, se uma regra de projeção indicar projeção vertical, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado; ou, se uma regra de projeção indicar projeção horizontal, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado.
[0020] Em um exemplo, nesta modalidade deste pedido, o eixo tangente que é do patch a ser codificado e que é usado em um processo de pré- projeção é denominado um eixo tangente de referência do patch a ser codificado, e o eixo tangente é denotado um eixo U0; e o eixo bitangente que é do patch a ser codificado e que é usado no processo de pré-projeção é denominado um eixo bitangente de referência do patch a ser codificado, e o eixo bitangente é denotado um eixo V0. Além disso, o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado que são determinados com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado são denotados, respectivamente, um eixo U1 e um eixo V1. Com base nisso, pode haver os casos a seguir.
[0021] Em um possível projeto, o eixo U1 é igual ao eixo U0, e o eixo V1 é igual ao eixo V0.
[0022] Em outro possível projeto, o eixo U1 é igual ao eixo V0, e o eixo V1 é igual ao eixo U0.
[0023] Deve-se observar que, para facilitar a descrição, o exemplo em que “um eixo horizontal de um plano bidimensional é um eixo tangente de um patch, e um eixo vertical do plano bidimensional é um eixo bitangente do patch” é usado para descrição em todas as implantações específicas. Uma descrição geral é fornecida no presente documento, e os detalhes não são descritos abaixo.
[0024] De acordo com um segundo aspecto, uma modalidade deste pedido fornece um método de decodificação de nuvem de pontos. O método inclui: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser decodificado; determinar um eixo tangente do patch a ser decodificado e um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise; e reconstruir informações de geometria (geometry) da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado. Em um exemplo, o método pode ser realizado por um decodificador de nuvem de pontos.
[0025] As informações de geometria de uma nuvem de pontos se referem a valores de coordenada de um ponto na nuvem de pontos (por exemplo, cada ponto na nuvem de pontos) em um espaço tridimensional.
[0026] De modo opcional, as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado incluem uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
[0027] De modo opcional, as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado incluem um índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, ou informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
[0028] Em um possível projeto, a determinação de um eixo tangente do patch a ser decodificado e de um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise, inclui: determinar, de acordo com uma regra de projeção, o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser decodificada para o espaço bidimensional.
[0029] Em um possível projeto, a regra de projeção é predefinida; ou o elemento de sintaxe inclui, adicionalmente, informações usadas para indicar a regra de projeção e, de modo correspondente, a regra de projeção é uma regra de projeção indicada pelo elemento de sintaxe que é obtido analisando-se o fluxo de bits.
[0030] Em um possível projeto, a determinação de um eixo tangente do patch a ser decodificado e de um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise, inclui: determinar, com base em uma relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch; e o eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado.
[0031] Em um possível projeto, a determinação de um eixo tangente do patch a ser decodificado e de um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise, inclui: consultar uma tabela com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado, e a tabela inclui uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch e uma pluralidade de eixos bitangentes do patch.
[0032] Em um possível projeto, se uma regra de projeção indicar projeção vertical, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo bitangente do patch a ser decodificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo tangente do patch a ser decodificado; ou se uma regra de projeção indicar projeção horizontal, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo tangente do patch a ser decodificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo bitangente do patch a ser decodificado. A regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser decodificada para o espaço bidimensional. O eixo normal do patch a ser decodificado é perpendicular ao espaço bidimensional.
[0033] Qualquer solução técnica fornecida no segundo aspecto corresponde ao método de codificação de nuvem de pontos correspondente fornecido no primeiro aspecto. Portanto, para efeitos benéficos que podem ser alcançados e explicações de conteúdo relacionado, consulte as descrições antecedentes.
[0034] De acordo com um terceiro aspecto, uma modalidade deste pedido fornece um método de codificação de nuvem de pontos. O método inclui: obter um eixo tangente de referência de um patch a ser codificado em uma nuvem de pontos a ser codificada e um eixo bitangente de referência do patch a ser codificado; determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  ; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui um índice de um eixo normal do patch a ser codificado e informações usadas para indicar o ângulo de rotação  do patch a ser codificado. Em um exemplo, o método pode ser realizado por um codificador.
[0035] O ângulo de rotação  pode ser um ângulo obtido rotacionando-se no sentido anti-horário, o eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado, e é um ângulo obtido rotacionando-se no sentido anti-horário, o eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado. Alternativamente, o ângulo de rotação  pode ser um ângulo obtido rotacionando-se no sentido horário, o eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado, e é um ângulo obtido rotacionando-se no sentido horário, o eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado.
[0036] Desse modo, posições de mapas de ocupação de patches em um mapa de ocupação de uma nuvem de pontos podem ser ajustadas definindo, de maneira apropriada, o ângulo de rotação, de modo que os mapas de ocupação dos patches sejam dispostos próximos no mapa de ocupação da nuvem de pontos. Isso aperfeiçoa o desempenho de codificação de nuvem de pontos, e adicionalmente aperfeiçoa o desempenho de decodificação de nuvem de pontos. Além disso, em comparação à solução técnica fornecida no primeiro aspecto, de acordo com essa solução técnica, as posições dos mapas de ocupação dos patches no mapa de ocupação da nuvem de pontos podem ser definidas de modo mais flexível, de modo que os mapas de ocupação dos patches sejam dispostos de modo mais denso (ou mais próximos) no mapa de ocupação da nuvem de pontos.
[0037] Em um possível projeto, as informações usadas para indicar o ângulo de rotação  do patch a ser codificado incluem: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser codificado.
[0038] Em um possível projeto, o identificador do patch que corresponde ao patch a ser codificado é usado para indicar um índice do patch que corresponde ao patch a ser codificado, ou usado para indicar que há o patch que corresponde ao patch a ser codificado em uma nuvem de pontos codificada e um índice do patch que corresponde ao patch a ser codificado.
[0039] Em um possível projeto, o método pode incluir, adicionalmente: determinar o ângulo de rotação  a partir de uma pluralidade de ângulos de rotação candidatos de acordo com um critério de custo de distorção de taxa.
Nesse caso, as informações usadas para indicar o ângulo de rotação  do patch a ser codificado incluem: o ângulo de rotação  , ou um índice do ângulo de rotação  .
[0040] Em um possível projeto, o método pode incluir, adicionalmente: obter um ângulo de rotação do patch que corresponde ao patch a ser codificado na nuvem de pontos codificada, e usar o ângulo de rotação obtido como o ângulo de rotação  do patch a ser codificado. Nesse caso, as informações usadas para indicar o ângulo de rotação  do patch a ser codificado incluem um índice do patch que corresponde ao patch a ser codificado. Em um modo de predição inter, o codificador precisa transmitir, a um decodificador, o identificador do patch que corresponde ao patch a ser codificado. Portanto, nesse possível projeto, as informações usadas para indicar o ângulo de rotação  não precisam ser transmitidas de modo adicional. Portanto, sobrecargas de transmissão de fluxo de bits podem ser reduzidas. Além disso, o codificador não precisa obter o ângulo de rotação  . Portanto, a complexidade de cálculo do codificador pode ser reduzida.
[0041] Em um possível projeto, o método pode incluir, adicionalmente:
projetar o patch a ser codificado de um espaço tridimensional para um espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado, para obter um mapa de ocupação do patch a ser codificado; e determinar um retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado; em que o elemento de sintaxe inclui, adicionalmente, informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado.
[0042] De acordo com um quarto aspecto, uma modalidade deste pedido fornece um método de decodificação de nuvem de pontos. O método inclui: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar um ângulo de rotação  do patch a ser decodificado; obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado, em que o índice é obtido através de análise; determinar um eixo tangente do patch e um eixo bitangente do patch com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado e nas informações que são usadas para indicar o ângulo de rotação  do patch a ser decodificado e que são obtidas através de análise; e reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado. Em um exemplo, o método pode ser realizado por um decodificador.
[0043] Em um possível projeto, as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado incluem: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser decodificado.
[0044] Em um possível projeto, o identificador do patch que corresponde ao patch a ser decodificado é usado para indicar um índice do patch que corresponde ao patch a ser decodificado, ou usado para indicar se há o patch que corresponde ao patch a ser decodificado em uma nuvem de pontos decodificada e um índice do patch que corresponde ao patch a ser decodificado.
[0045] Em um possível projeto, as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado incluem o identificador do patch que corresponde ao patch a ser decodificado, e a determinação de um eixo tangente do patch e de um eixo bitangente do patch com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e nas informações que são usadas para indicar o ângulo de rotação  do patch a ser decodificado e que são obtidas através de análise inclui: determinar, com base no identificador que é do patch correspondente ao patch a ser decodificado e que é obtido através de análise, o patch que corresponde ao patch a ser decodificado, e obter um ângulo de rotação  do patch que corresponde ao patch a ser decodificado; e determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e no ângulo de rotação  .
[0046] Em um possível projeto, o elemento de sintaxe inclui, adicionalmente, informações de tamanho de um retângulo delimitador mínimo de um mapa de ocupação do patch a ser decodificado, e a reconstrução de informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada inclui: reconstruir as informações de geometria da nuvem de pontos a ser decodificada com base no um ou mais eixos tangentes e no um ou mais eixos bitangentes do um ou mais patches na nuvem de pontos a ser decodificada e nas informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser decodificado, em que as informações de tamanho são obtidas analisando-se o fluxo de bits.
[0047] Qualquer solução técnica fornecida no quarto aspecto corresponde ao método de codificação de nuvem de pontos correspondente fornecido no terceiro aspecto. Portanto, para efeitos benéficos que podem ser alcançados e explicações de conteúdo relacionado, consulte as descrições antecedentes.
[0048] De acordo com um quinto aspecto, uma modalidade deste pedido fornece um método de codificação de nuvem de pontos. O método inclui: determinar um modo de predição de uma nuvem de pontos a ser codificada a partir de um conjunto de modo de predição candidato, em que o conjunto de modo de predição candidato inclui um modo de predição inter e um modo de predição intra, e o modo de predição da nuvem de pontos a ser codificada é usado para determinar um método para obter um eixo tangente de um patch a ser codificado na nuvem de pontos a ser codificada e um eixo bitangente do patch a ser codificado; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui informações usadas para indicar o modo de predição da nuvem de pontos a ser codificada. Em um exemplo, o método pode ser realizado por um codificador. Essa solução técnica fornece uma solução de implantação para determinar “um método para obter um eixo tangente e um eixo bitangente de um patch a ser codificado”. Essa solução técnica pode suportar um cenário em que uma pluralidade de métodos para obter o eixo tangente e o eixo bitangente do patch a ser codificado coexiste.
[0049] Em um possível projeto, quando o modo de predição da nuvem de pontos a ser codificada é o modo de predição inter, o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado inclui: obter um eixo tangente de referência do patch a ser codificado e um eixo bitangente de referência do patch a ser codificado; determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  ; e obter um ângulo de rotação de um patch que corresponde ao patch a ser codificado em uma nuvem de pontos codificada, e usar o ângulo de rotação obtido como o ângulo de rotação  do patch a ser codificado, em que o elemento de sintaxe inclui, adicionalmente, um identificador do patch que corresponde ao patch a ser codificado e um índice de um eixo normal do patch a ser codificado. Para uma implantação específica, consulte o projeto relacionado no terceiro aspecto.
[0050] Em um possível projeto, quando o modo de predição da nuvem de pontos a ser codificada é o modo de predição intra, o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado inclui: obter um eixo tangente de referência do patch a ser codificado e um eixo bitangente de referência do patch a ser codificado; determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  ; e determinar um ângulo de rotação  do patch a ser codificado a partir de uma pluralidade de ângulos de rotação candidatos de acordo com um critério de custo de distorção de taxa, em que o elemento de sintaxe inclui, adicionalmente, o ângulo de rotação  ou um índice do ângulo de rotação  , e um índice de um eixo normal do patch a ser codificado. Para uma implantação específica, consulte o projeto relacionado no terceiro aspecto.
[0051] Em um possível projeto, quando o modo de predição da nuvem de pontos a ser codificada é o modo de predição intra, o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado inclui: adquirir um eixo normal do patch a ser codificado e informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser codificado; e determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o elemento de sintaxe inclui, adicionalmente, um índice do eixo normal do patch a ser codificado e informações que são usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado. Para uma implantação específica, consulte o projeto relacionado no primeiro aspecto.
[0052] De acordo com um sexto aspecto, uma modalidade deste pedido fornece um método de decodificação de nuvem de pontos. O método inclui: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe é usado para indicar um método para obter um eixo tangente de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e um eixo bitangente do patch a ser decodificado, o elemento de sintaxe inclui informações usadas para indicar um modo de predição da nuvem de pontos a ser decodificada, e o modo de predição da nuvem de pontos a ser decodificada inclui um modo de predição inter ou um modo de predição intra; e obter o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado de acordo com o método, indicado pelo elemento de sintaxe, para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado.
[0053] Em um possível projeto, quando o modo de predição da nuvem de pontos a ser decodificada é o modo de predição inter, e o elemento de sintaxe inclui, adicionalmente, um identificador de um patch que corresponde ao patch a ser decodificado e um índice de um eixo normal do patch a ser decodificado, o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado inclui: obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice que é do eixo normal do patch a ser decodificado e que é obtido através de análise; determinar, com base no identificador que é do patch correspondente ao patch a ser decodificado e que é obtido através de análise, o patch que corresponde ao patch a ser decodificado, e obter um ângulo de rotação  do patch que corresponde ao patch a ser decodificado; e determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e no ângulo de rotação  . Para uma implantação específica, consulte o projeto relacionado no quarto aspecto.
[0054] Em um possível projeto, quando o modo de predição da nuvem de pontos a ser decodificada é o modo de predição intra, e o elemento de sintaxe inclui, adicionalmente, um ângulo de rotação  do patch a ser decodificado ou um índice do ângulo de rotação  do patch a ser decodificado, e um índice de um eixo normal do patch a ser decodificado, o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado inclui: obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice que é do eixo normal do patch a ser decodificado e que é obtido através de análise; e determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e no ângulo de rotação  . Para uma implantação específica, consulte o projeto relacionado no quarto aspecto.
[0055] Em um possível projeto, quando o modo de predição da nuvem de pontos a ser decodificada é o modo de predição intra, e o elemento de sintaxe inclui, adicionalmente, um índice de um eixo normal do patch a ser decodificado e informações usadas para indicar informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser decodificado, o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado inclui: determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice do eixo normal e as informações usadas para indicar as informações de descrição são obtidos através de análise. Para uma implantação específica, consulte o projeto relacionado no segundo aspecto.
[0056] Qualquer solução técnica fornecida no sexto aspecto corresponde ao método de codificação de nuvem de pontos correspondente fornecido no quinto aspecto. Portanto, para efeitos benéficos que podem ser alcançados e explicações de conteúdo relacionado, consulte as descrições antecedentes.
[0057] De acordo com um sétimo aspecto, uma modalidade deste pedido fornece um codificador. O codificador inclui: um módulo de geração de informações de patch, configurado para adquirir um eixo normal de um patch a ser codificado em uma nuvem de pontos a ser codificada e informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o eixo normal do patch a ser codificado e as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado são usados para determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado; e um módulo de codificação de informações auxiliares, configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui um índice do eixo normal do patch a ser codificado e informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
[0058] De acordo com um oitavo aspecto, uma modalidade deste pedido fornece um decodificador. O decodificador inclui: um módulo de decodificação de informações auxiliares, configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser decodificado; e determinar um eixo tangente do patch a ser decodificado e um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise; e um módulo de reconstrução de informações de geometria de nuvem de pontos, configurado para reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado.
[0059] De acordo com um nono aspecto, uma modalidade deste pedido fornece um codificador. O codificador inclui: um módulo de geração de informações de patch, configurado para: obter um eixo tangente de referência de um patch a ser codificado em uma nuvem de pontos a ser codificada e um eixo bitangente de referência do patch a ser codificado; e determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  ; e um módulo de codificação de informações auxiliares, configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui um índice de um eixo normal do patch a ser codificado e informações usadas para indicar o ângulo de rotação  do patch a ser codificado.
[0060] De acordo com um décimo aspecto, uma modalidade deste pedido fornece um decodificador. O decodificador inclui: um módulo de decodificação de informações auxiliares, configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar um ângulo de rotação  do patch a ser decodificado; obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado, em que o índice é obtido através de análise; e determinar um eixo tangente do patch e um eixo bitangente do patch com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e nas informações que são usadas para indicar o ângulo de rotação  do patch a ser decodificado e que são obtidas através de análise; e um módulo de reconstrução de informações de geometria de nuvem de pontos, configurado para reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado.
[0061] De acordo com um décimo primeiro aspecto, uma modalidade deste pedido fornece um codificador. O codificador inclui: um módulo de determinação de modo de predição, configurado para determinar um modo de predição de uma nuvem de pontos a ser codificada a partir de um conjunto de modo de predição candidato, em que o conjunto de modo de predição candidato inclui um modo de predição inter e um modo de predição intra, e o modo de predição da nuvem de pontos a ser codificada é usado para determinar um método para obter um eixo tangente de um patch a ser codificado na nuvem de pontos a ser codificada e um eixo bitangente do patch a ser codificado; e um módulo de codificação de informações auxiliares, configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui informações usadas para indicar o modo de predição da nuvem de pontos a ser codificada.
[0062] De acordo com um décimo segundo aspecto, uma modalidade deste pedido fornece decodificador. O decodificador inclui: um módulo de decodificação de informações auxiliares, configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe é usado para indicar um método para obter um eixo tangente de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e um eixo bitangente do patch a ser decodificado, o elemento de sintaxe inclui informações usadas para indicar um modo de predição da nuvem de pontos a ser decodificada, e o modo de predição da nuvem de pontos a ser decodificada inclui um modo de predição inter ou um modo de predição intra; e obter o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado de acordo com o método, indicado pelo elemento de sintaxe, para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado.
[0063] De acordo com um décimo terceiro aspecto, uma modalidade deste pedido fornece um dispositivo de codificação de dados de nuvem de pontos, e o dispositivo pode incluir: uma memória, configurada para armazenar dados de nuvem de pontos, em que os dados de nuvem de pontos incluem um patch a ser codificado; e um codificador, configurado para codificar um identificador em um fluxo de bits, em que o identificador é usado para indicar a determinação de um eixo tangente e um eixo bitangente do patch a ser codificado com base em informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser codificado. Em outras palavras, o identificador é usado para indicar a codificação do patch a ser codificado usando-se o método de codificação de nuvem de pontos fornecido no primeiro aspecto. Quando o identificador é usado para indicar a determinação do eixo tangente e do eixo bitangente do patch a ser codificado com base nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado em uma nuvem de pontos a ser codificada, o codificador realiza codificação de acordo com qualquer método de codificação de nuvem de pontos fornecido no primeiro aspecto.
[0064] Alternativamente, o identificador é usado para indicar a determinação do eixo tangente e do eixo bitangente do patch a ser codificado com base em um ângulo de rotação  do eixo tangente do patch a ser codificado em relação a um eixo tangente de referência do patch a ser codificado. Se o identificador for usado para indicar a determinação do eixo tangente e do eixo bitangente do patch a ser codificado com base no ângulo de rotação  do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado, o codificador pode realizar codificação de acordo com qualquer método de codificação de nuvem de pontos fornecido no terceiro aspecto.
[0065] De acordo com um décimo quarto aspecto, uma modalidade deste pedido fornece um dispositivo de decodificação de dados de nuvem de pontos, e o dispositivo pode incluir: Uma memória, configurada para armazenar dados de nuvem de pontos na forma de um fluxo de bits, em que os dados de nuvem de pontos incluem um patch a ser decodificado; e um decodificador, configurado para analisar o fluxo de bits para obter um identificador, em que o identificador é usado para indicar a determinação de um eixo tangente e um eixo bitangente do patch a ser decodificado com base em informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser decodificado. Em outras palavras, o identificador é usado para indicar a decodificação do patch a ser decodificado usando-se o método de decodificação de nuvem de pontos fornecido no segundo aspecto. Quando o identificador é usado para indicar a determinação do eixo tangente e do eixo bitangente do patch a ser decodificado com base nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado em uma nuvem de pontos a ser decodificada, o decodificador realiza decodificação de acordo com qualquer método de decodificação de nuvem de pontos fornecido no segundo aspecto.
[0066] Alternativamente, o identificador é usado para indicar a determinação do eixo tangente e do eixo bitangente do patch a ser decodificado com base em um ângulo de rotação  do eixo tangente do patch a ser decodificado em relação a um eixo tangente de referência do patch a ser decodificado. Se o identificador for usado para indicar a determinação do eixo tangente e do eixo bitangente do patch a ser decodificado são determinados com base no ângulo de rotação  do eixo tangente do patch a ser decodificado em relação ao eixo tangente de referência do patch a ser decodificado, o decodificador pode realizar decodificação de acordo com qualquer método de decodificação de nuvem de pontos fornecido no quarto aspecto.
[0067] De acordo com um décimo quinto aspecto, uma modalidade deste pedido fornece um dispositivo de codificação. O dispositivo de codificação inclui uma memória não volátil e um processador que são acoplados um ao outro, em que o processador invoca código de programa armazenado na memória para realizar uma porção ou todas as etapas em qualquer método de acordo com o primeiro aspecto, o terceiro aspecto ou o quinto aspecto.
[0068] De acordo com um décimo sexto aspecto, uma modalidade deste pedido fornece um dispositivo de decodificação. O dispositivo de decodificação inclui uma memória não volátil e um processador que são acoplados um ao outro, em que o processador invoca código de programa armazenado na memória para realizar uma porção ou todas as etapas em qualquer método de acordo com o segundo aspecto, o quarto aspecto ou o sexto aspecto.
[0069] De acordo com um décimo sétimo aspecto, uma modalidade deste pedido fornece um método para determinar um eixo tangente e um eixo bitangente de um patch.
[0070] Em um possível projeto, o método pode incluir: adquirir um eixo normal de um patch em uma nuvem de pontos e informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, e determinar um eixo tangente do patch e um eixo bitangente do patch com base no eixo normal do patch e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch.
[0071] Em um possível projeto, o método pode incluir: obter um eixo tangente de referência de um patch e um eixo bitangente de referência do patch em uma nuvem de pontos; e determinar um eixo tangente do patch e um eixo bitangente do patch com base no eixo tangente de referência do patch e no eixo bitangente de referência do patch, em que um ângulo de rotação do eixo tangente do patch em relação ao eixo tangente de referência do patch é  , e um ângulo de rotação do eixo bitangente do patch em relação ao eixo bitangente de referência do patch é  .
[0072] Para explicações de conteúdo relacionado, efeitos benéficos e similares de qualquer método fornecido no décimo sétimo aspecto, consulte as descrições correspondentes anteriores. Os detalhes não são descritos novamente neste documento.
[0073] De acordo com um décimo oitavo aspecto, uma modalidade deste pedido fornece um aparelho para determinar um eixo tangente e um eixo bitangente de um patch. O aparelho pode ser configurado para realizar qualquer método fornecido no décimo sétimo aspecto. Em um exemplo, o aparelho pode ser um chip. Em um possível projeto, módulos funcionais do aparelho podem ser obtidos através de divisão de acordo com o método fornecido no décimo sétimo aspecto. Por exemplo, os módulos funcionais podem ser obtidos através de divisão que corresponde a funções, ou duas ou mais funções podem ser integradas a um módulo de processamento. Em um possível projeto, o aparelho pode incluir uma memória e um processador. A memória é configurada para armazenar código de programa e, quando o código de programa é executado pelo processador, qualquer método fornecido no décimo sétimo aspecto é realizado.
[0074] De acordo com um décimo nono aspecto, uma modalidade deste pedido fornece um aparelho de processamento, configurado para implantar funções do aparelho antecedente para determinar um eixo tangente e um eixo bitangente de um patch, ou o codificador ou o decodificador. O aparelho de processamento inclui um processador e uma interface. O aparelho de processamento pode ser um chip. O processador pode ser implantado usando- se hardware ou software. Quando o processador é implantado usando-se hardware, o processador pode ser um circuito lógico, um circuito integrado ou similares. Quando o processador é implantado usando-se software, o processador pode ser um processador de propósito geral, e é implantado lendo código de software armazenado em uma memória. A memória pode ser integrada ao processador, ou pode ser localizada fora do processador e existir de maneira independente.
[0075] De acordo com um vigésimo aspecto, uma modalidade deste pedido fornece um método de codificação de nuvem de pontos. O método inclui: projetar um patch a ser codificado de um espaço tridimensional para um espaço bidimensional, para obter um primeiro mapa de ocupação do patch a ser codificado; obter um segundo mapa de ocupação do patch a ser codificado, em que o segundo mapa de ocupação do patch a ser codificado é obtido rotacionando-se no sentido horário ou anti-horário o primeiro mapa de ocupação do patch a ser codificado por um ângulo de rotação  ; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe inclui informações usadas para indicar o ângulo de rotação  .
[0076] Pode-se entender que, para facilitar a descrição, “um mapa de ocupação obtido através de projeção” é denominado o primeiro mapa de ocupação, e corresponde a “um mapa de ocupação de referência” nas modalidades. Da mesma maneira, o segundo mapa de ocupação corresponde a “um mapa de ocupação” nas modalidades. As descrições são aplicáveis a qualquer solução (por exemplo, qualquer solução fornecida no vigésimo aspecto a um vigésimo terceiro aspecto) fornecida nas modalidades deste pedido.
[0077] Em um possível projeto, coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser codificado são obtidas com base em coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser codificado e em uma matriz de rotação, em que a matriz de rotação corresponde ao ângulo de rotação.
[0078] Em um possível projeto, a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
[0079] Em um possível projeto, a matriz de rotação é representada cos  − sin    sin  − cos   por  .
[0080] Em um possível projeto, quando o ângulo de rotação  for 0°, 1 0  0 −1 a matriz de rotação é representada por   ; quando o ângulo de rotação  0 −1 1 0  for 90°, a matriz de rotação é representada por   ; quando o ângulo de  −1 0   0 1 rotação  for 180°, a matriz de rotação é representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é representada por  0 1  −1 0   .
[0081] Em um possível projeto, coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser codificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são x 2 = x 1 cos  − y 1si n  obtidas através de rotação: y 2 = x 1si n  − y 1 cos  .
[0082] Em um possível projeto, coordenadas (x2, y2) de P2 no segundo mapa de ocupação do patch a ser codificado são obtidas de acordo x 2 = x 1 cos  − y 1si n  com a seguinte fórmula: y 2 = x 1si n  − y 1 cos  , em que (x1, y1) representa coordenadas de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado, e  representa o ângulo de rotação.
[0083] Em uma possível implantação, o segundo mapa de ocupação é obtido rotacionando-se no sentido horário ou anti-horário o primeiro mapa de ocupação do patch a ser codificado pelo ângulo de rotação  ao redor de uma origem de coordenada de um sistema de coordenadas constituído por um primeiro eixo tangente e um primeiro eixo bitangente.
[0084] Pode-se entender que o primeiro eixo tangente corresponde a um eixo tangente de referência nas modalidades, e o primeiro eixo bitangente corresponde a um eixo bitangente de referência nas modalidades. As descrições são aplicáveis a qualquer solução (por exemplo, qualquer solução fornecida do vigésimo aspecto ao vigésimo terceiro aspecto) fornecida nas modalidades deste pedido.
[0085] Em um possível projeto, as informações usadas para indicar o ângulo de rotação  são um índice usado para indicar o ângulo de rotação  .
[0086] Em um possível projeto, um ângulo de rotação por meio do qual um segundo eixo tangente do patch a ser codificado rotaciona em relação a um primeiro eixo tangente do patch a ser codificado é  , e um ângulo de rotação ao redor do qual um segundo eixo bitangente do patch a ser codificado rotaciona em relação a um primeiro eixo bitangente do patch a ser codificado é  .
[0087] Pode-se entender que o segundo eixo tangente corresponde a um eixo tangente nas modalidades, e o segundo eixo bitangente corresponde a um eixo bitangente nas modalidades.
[0088] De acordo com um vigésimo primeiro aspecto, uma modalidade deste pedido fornece um método de decodificação de nuvem de pontos. O método inclui: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui informações usadas para indicar um ângulo de rotação  de um patch a ser decodificado; obter um segundo mapa de ocupação do patch a ser decodificado; obter um primeiro mapa de ocupação do patch a ser decodificado, em que o primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário o segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  ; e reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais primeiros mapas de ocupação de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado.
[0089] Em um possível projeto, coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser decodificado e em uma matriz de rotação, em que a matriz de rotação corresponde ao ângulo de rotação.
[0090] Em um possível projeto, a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
[0091] Em um possível projeto, a matriz de rotação é representada cos  − sin    sin  − cos   por  , ou a matriz de rotação é representada por uma matriz cos  − sin    sin  − cos   inversa de  .
[0092] Em um possível projeto, quando o ângulo de rotação  for 0°, 1 0  0 −1 a matriz de rotação é representada por   ; quando o ângulo de rotação  0 −1 1 0  for 90°, a matriz de rotação é representada por   ; quando o ângulo de  −1 0   0 1 rotação  for 180°, a matriz de rotação é representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é representada por  0 1  −1 0   .
[0093] Em um possível projeto, quando o ângulo de rotação  for 0°, 1 0  0 −1 a matriz de rotação é representada por uma matriz inversa de   ; quando o ângulo de rotação  for 90°, a matriz de rotação é representada por uma 0 −1 1 0  matriz inversa de   ; quando o ângulo de rotação  for 180°, a matriz de  −1 0   0 1 rotação é representada por uma matriz inversa de   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é representada por uma  0 1  −1 0  matriz inversa de  .
[0094] Em um possível projeto, coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado e coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado satisfazem a seguinte fórmula, em que as coordenadas (x1, y1) do ponto P1 são x 2 = x 1 cos  − y 1si n  obtidas através de contrarrotação: y 2 = x 1si n  − y 1 cos  ou x 1 = x 2 cos  + y 2 si n  y 1 = −x 2 si n  − y 2 cos  .
[0095] Em um possível projeto, coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado são obtidas de x 2 = x 1 cos  − y 1si n  acordo com a seguinte fórmula: y 2 = x 1si n  − y 1 cos  ou x 1 = x 2 cos  + y 2 si n  y 1 = −x 2 si n  − y 2 cos  , em que (x2, y2) representa coordenadas de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado, e  representa o ângulo de rotação.
[0096] Em uma possível implantação, o primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário o segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  ao redor de uma origem de coordenada de um sistema de coordenadas constituído por um primeiro eixo tangente e um primeiro eixo bitangente.
[0097] Em um possível projeto, as informações usadas para indicar o ângulo de rotação  são um índice usado para indicar o ângulo de rotação  .
[0098] Em um possível projeto, um ângulo de rotação por meio do qual um segundo eixo tangente do patch a ser decodificado rotaciona em relação a um primeiro eixo tangente do patch a ser decodificado é  , e um ângulo de rotação por meio do qual um segundo eixo bitangente do patch a ser decodificado rotaciona em relação a um primeiro eixo bitangente do patch a ser decodificado é  .
[0099] Em um possível projeto, a obtenção de um segundo mapa de ocupação do patch a ser decodificado inclui: analisar o fluxo de bits para obter o segundo mapa de ocupação do patch a ser decodificado; ou analisar o fluxo de bits para obter informações (por exemplo, informações de tamanho de um retângulo delimitador mínimo do segundo mapa de ocupação do patch a ser decodificado) que são usadas para indicar o segundo mapa de ocupação do patch a ser decodificado, e obter o segundo mapa de ocupação do patch a ser decodificado com base nas informações que são usadas para indicar o segundo mapa de ocupação do patch a ser decodificado.
[0100] De acordo com um vigésimo segundo aspecto, uma modalidade deste pedido fornece um método de codificação de nuvem de pontos. O método inclui: projetar um patch a ser codificado de um espaço tridimensional para um espaço bidimensional, para obter um primeiro mapa de ocupação do patch a ser codificado; obter um segundo mapa de ocupação do patch a ser codificado, em que coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser codificado são obtidas com base em coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser codificado e em uma matriz de rotação, em que a matriz de rotação corresponde a um ângulo de rotação  ; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe inclui informações usadas para indicar o ângulo de rotação .
[0101] Em um possível projeto, a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
[0102] Para uma possível implantação da matriz de rotação, consulte o possível projeto correspondente no vigésimo aspecto.
[0103] De acordo com o vigésimo terceiro aspecto, uma modalidade deste pedido fornece um método de decodificação de nuvem de pontos. O método inclui: reconstruir informações de geometria de uma nuvem de pontos a ser decodificada com base em um ou mais primeiros mapas de ocupação de um ou mais patches a serem decodificados na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem um patch a ser decodificado, coordenadas
(x1, y1) de um primeiro ponto do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um segundo ponto do patch a ser decodificado e em uma matriz de rotação, e a matriz de rotação corresponde a um ângulo de rotação  do patch a ser decodificado.
[0104] Em um possível projeto, o fato de coordenadas (x1, y1) de um primeiro ponto do patch a ser decodificado serem obtidas com base em coordenadas (x2, y2) de um segundo ponto do patch a ser decodificado e uma matriz de rotação significa que coordenadas (x1, y1) de um ponto em um primeiro mapa de ocupação do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um ponto em um segundo mapa de ocupação do patch a ser decodificado e em uma matriz de rotação.
[0105] Em um possível projeto, as coordenadas (x1, y1) do primeiro ponto do patch a ser decodificado são coordenadas (x1, y1) de um ponto em um primeiro mapa de ocupação do patch a ser decodificado, e as coordenadas (x2, y2) do segundo ponto do patch a ser decodificado são coordenadas (x2, y2) de um ponto em um segundo mapa de ocupação do patch a ser decodificado.
[0106] Em um possível projeto, um primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário um segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  , ou um segundo mapa de ocupação do patch a ser decodificado é obtido rotacionando-se no sentido horário ou anti-horário um primeiro mapa de ocupação do patch a ser decodificado pelo ângulo de rotação .
[0107] Em um possível projeto, a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
[0108] Para uma possível implantação da matriz de rotação, consulte o possível projeto correspondente no vigésimo aspecto.
[0109] Em um possível projeto, coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são x 2 = x 1 cos  − y 1si n  obtidas através de rotação: y 2 = x 1si n  − y 1 cos  .
[0110] De acordo com um vigésimo quarto aspecto, uma modalidade deste pedido fornece um aparelho de codificação. O aparelho inclui uma memória e um processador. A memória é configurada para armazenar código de programa. O processador é configurado para invocar o código de programa para realizar qualquer método de codificação de nuvem de pontos no primeiro aspecto, no terceiro aspecto, no quinto aspecto, no vigésimo aspecto ou no vigésimo segundo aspecto.
[0111] De acordo com um vigésimo quinto aspecto, uma modalidade deste pedido fornece um aparelho de decodificação. O aparelho inclui uma memória e um processador. A memória é configurada para armazenar código de programa. O processador é configurado para invocar o código de programa para realizar qualquer método de decodificação de nuvem de pontos no segundo aspecto, no quarto aspecto, no sexto aspecto, no vigésimo primeiro aspecto ou no vigésimo terceiro aspecto.
[0112] De acordo com um vigésimo sexto aspecto, uma modalidade deste pedido fornece uma mídia de armazenamento legível por computador. A mídia de armazenamento legível por computador armazena código de programa. O código de programa inclui uma instrução usada para realizar uma porção ou todas as etapas de qualquer método do primeiro aspecto ao sexto aspecto, do vigésimo aspecto ou do vigésimo terceiro aspecto, ou uma instrução usada para realizar uma porção ou todas as etapas do método no décimo sétimo aspecto.
[0113] De acordo com um vigésimo sétimo aspecto, uma modalidade deste pedido fornece um produto de programa de computador. Quando o produto de programa de computador for executado em um computador, o computador tem a capacidade de realizar uma porção ou todas as etapas de qualquer método do primeiro aspecto ao sexto aspecto, do vigésimo aspecto ou do vigésimo terceiro aspecto, ou o computador tem a capacidade de realizar uma porção ou todas as etapas do método no décimo sétimo aspecto.
[0114] Deve-se entender que, para efeitos benéficos de qualquer um dentre o codificador, o decodificador, o dispositivo de codificação de dados de nuvem de pontos, o dispositivo de decodificação de nuvem de pontos, o aparelho para determinar um eixo tangente e um eixo bitangente de um patch, o aparelho de processamento, o aparelho de codificação, o aparelho de decodificação e a mídia de armazenamento legível por computador, consulte os efeitos benéficos das modalidades do método fornecidas nos aspectos correspondentes antecedentes. Os detalhes não são descritos novamente.
BREVE DESCRIÇÃO DOS DESENHOS
[0115] A Figura 1 é um diagrama de blocos de um sistema de codificação de nuvem de pontos exemplificativo aplicável a uma modalidade deste pedido;
[0116] A Figura 2 é um diagrama de blocos esquemático de um codificador exemplificativo aplicável a uma modalidade deste pedido;
[0117] A Figura 3 é um diagrama estrutural esquemático de um fluxo de bits exemplificativo aplicável a uma modalidade deste pedido;
[0118] A Figura 4 é um diagrama de blocos esquemático de um decodificador exemplificativo aplicável a uma modalidade deste pedido;
[0119] A Figura 5 é um diagrama esquemático de um processo de geração de patch aplicável a um TMC2;
[0120] A Figura 6(a) à Figura 6(c) são um diagrama esquemático de um patch exemplificativo aplicável a uma modalidade deste pedido;
[0121] A Figura 7(a) e a Figura 7(b) são um diagrama esquemático de projeção de um patch de um espaço tridimensional para um plano bidimensional em uma tecnologia atual;
[0122] A Figura 8(a) e a Figura 8(b) são um diagrama esquemático de um mapa de ocupação de uma nuvem de pontos de acordo com uma tecnologia atual;
[0123] A Figura 9 é um fluxograma esquemático 1 de um método de codificação de nuvem de pontos de acordo com uma modalidade deste pedido;
[0124] A Figura 10(a) à Figura 10(c2) são um diagrama esquemático 1 de um patch, um mapa de pré-ocupação do patch, e um mapa de ocupação do patch de acordo com uma modalidade deste pedido;
[0125] A Figura 11 é um diagrama esquemático de um retângulo delimitador mínimo que corresponde a um patch exemplificativo aplicável a uma modalidade deste pedido;
[0126] A Figura 12 é um fluxograma esquemático 1 de um método de decodificação de nuvem de pontos de acordo com uma modalidade deste pedido;
[0127] A Figura 13 é um fluxograma esquemático 2 de um método de codificação de nuvem de pontos de acordo com uma modalidade deste pedido;
[0128] A Figura 14(a) à Figura 14(c) são um diagrama esquemático 2 de um patch, um mapa de pré-ocupação do patch, e um mapa de ocupação do patch de acordo com uma modalidade deste pedido;
[0129] A Figura 15 é um fluxograma esquemático 2 de um método de decodificação de nuvem de pontos de acordo com uma modalidade deste pedido;
[0130] A Figura 16 é um fluxograma esquemático 3 de um método de codificação de nuvem de pontos de acordo com uma modalidade deste pedido;
[0131] A Figura 17 é um fluxograma esquemático 3 de um método de decodificação de nuvem de pontos de acordo com uma modalidade deste pedido;
[0132] A Figura 18 é um diagrama de blocos esquemático 1 de um codificador de acordo com uma modalidade deste pedido;
[0133] A Figura 19 é um diagrama de blocos esquemático 1 de um decodificador de acordo com uma modalidade deste pedido; e
[0134] A Figura 20 é um diagrama de blocos esquemático 2 de um codificador de acordo com uma modalidade deste pedido;
[0135] A Figura 21 é um diagrama de blocos esquemático 2 de um decodificador de acordo com uma modalidade deste pedido; e
[0136] A Figura 22 é um diagrama de blocos esquemático de um dispositivo de codificação ou um dispositivo de decodificação aplicável a uma modalidade deste pedido.
DESCRIÇÃO DAS MODALIDADES
[0137] Nas descrições deste pedido, “/” significa “ou”, a menos que especificado de outra maneira. Por exemplo, A/B pode representar A ou B. Neste relatório descritivo, “e/ou” descreve apenas uma relação de associação para descrever objetos associados e indica que três relações podem existir. Por exemplo, A e/ou B podem representar os seguintes três casos: Apenas A existe, tanto A quanto B existem e apenas B existe. “Uma pluralidade de” significa “dois ou mais”. Além disso, para descrever claramente as soluções técnicas nas modalidades deste pedido, termos, tais como “primeiro” e “segundo”, são usados nas modalidades deste pedido para distinguir entre itens iguais ou itens similares que têm funções e finalidades basicamente iguais. Uma pessoa versada na técnica pode entender que os termos, tais como “primeiro” e “segundo”, não limitam uma quantidade ou uma ordem de execução, e os termos, tais como “primeiro” e “segundo”, não indicam uma diferença definida.
[0138] Nas descrições deste pedido, o fato de um sistema de coordenadas de referência de um espaço tridimensional ser usado como um sistema de coordenadas mundial (ou denominado um sistema de coordenadas físico), três eixos do sistema de coordenadas mundial serem um eixo X, um eixo Y e um eixo Z, e uma correspondência entre os três eixos e índices dos três eixos ser mostrada na Tabela 1 é usado como um exemplo para descrição. O eixo X é um eixo horizontal, o eixo Y é um eixo vertical, e o eixo Z é um eixo perpendicular a um plano no qual o eixo X e o eixo Y estão localizados. Uma descrição geral é fornecida no presente documento, e os detalhes não são descritos abaixo. Tabela 1 Eixo X Eixo Y Eixo Z 0 1 2
[0139] A Figura 1 é um diagrama de blocos de um sistema de codificação de nuvem de pontos exemplificativo 1 aplicável a uma modalidade deste pedido. Um termo “codificação de nuvem de pontos” ou “codificação” pode se referir, em geral, à codificação de nuvem de pontos ou decodificação de nuvem de pontos. Um codificador 100 no sistema de codificação de nuvem de pontos 1 pode codificar uma nuvem de pontos a ser codificada de acordo com qualquer método de codificação de nuvem de pontos fornecido neste pedido. Um decodificador 200 no sistema de codificação de nuvem de pontos 1 pode decodificar uma nuvem de pontos a ser decodificada de acordo com um método de decodificação de nuvem de pontos, fornecido neste pedido, que corresponde a um método de codificação de nuvem de pontos usado pelo codificador.
[0140] Conforme mostrado na Figura 1, o sistema de codificação de nuvem de pontos 1 inclui um aparelho de origem 10 e um aparelho de destino
20. O aparelho de origem 10 gera dados de nuvem de pontos codificados. Portanto, o aparelho de origem 10 pode ser denominado um aparelho de codificação de nuvem de pontos. O aparelho de destino 20 pode decodificar os dados de nuvem de pontos codificados gerados pelo aparelho de origem 10. Portanto, o aparelho de destino 20 pode ser denominado um aparelho de decodificação de nuvem de pontos. Várias soluções de implantação do aparelho de origem 10, do aparelho de destino 20, ou tanto o aparelho de origem 10 quanto o aparelho de destino 20 podem incluir um ou mais processadores e uma memória acoplada ao um ou mais processadores. A memória pode incluir, mas sem limitação, uma memória de acesso aleatório (random access memory, RAM), uma memória somente leitura (read-only memory, ROM), uma memória somente leitura programável eletricamente apagável (electrically erasable programmable read-only memory, EEPROM), uma memória flash ou qualquer outra mídia que possa ser usada para armazenar código de programa desejado em uma forma de uma instrução ou uma estrutura de dados que pode ser acessada por um computador, conforme descrito neste relatório descritivo.
[0141] O aparelho de origem 10 e o aparelho de destino 20 podem incluir diversos aparelhos, incluindo um computador desktop, um aparelho de computação móvel, um computador do tipo notebook (por exemplo, laptop), um computador do tipo tablet, um decodificador de sinais, um aparelho de telefone portátil, tal como um telefone “inteligente”, um televisor, uma câmera, um aparelho de exibição, um reprodutor de mídia digital, um console de vídeo game, um computador em veículo e um aparelho similar.
[0142] O aparelho de destino 20 pode receber os dados de nuvem de pontos codificados a partir do aparelho de origem 10 através de um enlace 30. O enlace 30 pode incluir uma ou mais mídias ou aparelhos que podem mover os dados de nuvem de pontos codificados do aparelho de origem 10 para o aparelho de destino 20. Em um exemplo, o enlace 30 pode incluir uma ou mais mídias de comunicações que permitem que o aparelho de origem 10 envie diretamente os dados de nuvem de pontos codificados para o aparelho de destino 20 em tempo real. Nesse exemplo, o aparelho de origem 10 pode modular os dados de nuvem de pontos codificados de acordo com um padrão de comunicação (por exemplo, um protocolo de comunicação sem fio), e pode enviar dados de nuvem de pontos modulados para o aparelho de destino 20. A uma ou mais mídias de comunicações podem incluir uma mídia de comunicações com e/ou sem fio, por exemplo, um espectro de radiofrequência (radio frequency, RF) ou uma ou mais linhas de transmissão físicas. A uma ou mais mídias de comunicações podem constituir uma parte de uma rede com base em pacote e a rede com base em pacote é, por exemplo, uma rede de área local, uma rede de área ampla ou uma rede global (por exemplo, a internet). A uma ou mais mídias de comunicações podem incluir um roteador, um comutador, uma estação base ou outro dispositivo que facilita a comunicação do aparelho de origem 10 para o aparelho de destino
20.
[0143] Em outro exemplo, os dados codificados podem ser emitidos para um aparelho de armazenamento 40 através de uma interface de saída 140. De modo similar, os dados de nuvem de pontos codificados podem ser acessados do aparelho de armazenamento 40 através de uma interface de entrada 240. O aparelho de armazenamento 40 pode incluir qualquer uma dentre uma pluralidade de mídias de armazenamento de dados distribuídas ou mídias de armazenamento de dados localmente acessíveis, por exemplo, um disco rígido, um Blu-ray, um disco versátil digital (digital versatile disc, DVD), um disco compacto memória somente leitura (compact disc read-only memory, CD-ROM), uma memória flash, uma memória volátil ou não volátil ou qualquer outra mídia de armazenamento digital apropriada configurada para armazenar os dados de nuvem de pontos codificados.
[0144] Em outro exemplo, o aparelho de armazenamento 40 pode corresponder a um servidor de arquivos ou outro aparelho de armazenamento intermediário que pode armazenar os dados de nuvem de pontos codificados gerados pelo aparelho de origem 10. O aparelho de destino 20 pode acessar os dados de nuvem de pontos armazenados através de transmissão contínua ou transferência por download do aparelho de armazenamento 40. O servidor de arquivos pode ser qualquer tipo de servidor que possa armazenar os dados de nuvem de pontos codificados e enviar os dados de nuvem de pontos codificados para o aparelho de destino 20. Exemplos do servidor de arquivos incluem um servidor de rede (por exemplo, usado para um site da web), um servidor de protocolo de transferência de arquivos (file transfer protocol, FTP), um aparelho de armazenamento ligado à rede (network attached storage, NAS) ou uma unidade de disco local. O aparelho de destino 20 pode acessar os dados de nuvem de pontos codificados através de qualquer conexão de dados padrão (incluindo uma conexão internet). A conexão de dados padrão pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, uma linha de assinante digital (digital subscriber line, DSL) ou um modem a cabo), ou uma combinação dos mesmos que é adequada para acesso aos dados de nuvem de pontos codificados armazenados no servidor de arquivos. A transmissão dos dados de nuvem de pontos codificados do aparelho de armazenamento 40 pode ser transmissão contínua, transmissão por download ou uma combinação dos mesmos.
[0145] O sistema de codificação de nuvem de pontos 1 descrito na Figura 1 é apenas um exemplo, e tecnologias neste pedido são aplicáveis a um aparelho de codificação de nuvem de pontos (por exemplo, codificação de nuvem de pontos ou decodificação de nuvem de pontos) que não inclui, necessariamente, qualquer comunicação de dados entre um aparelho de codificação de nuvem de pontos e um aparelho de decodificação de nuvem de pontos. Em outro exemplo, dados são recuperados de uma memória local, são transmitidos em uma rede em um modo contínuo, e similares. O aparelho de codificação de nuvem de pontos pode codificar os dados e armazenar os dados na memória, e/ou o aparelho de decodificação de nuvem de pontos pode recuperar os dados da memória e decodificar os dados. Em muitos exemplos, aparelhos que apenas codificam dados e armazenam os dados na memória e/ou recuperam os dados da memória e decodificam os dados, mas que não se comunicam um com o outro realizam codificação e decodificação.
[0146] No exemplo na Figura 1, o aparelho de origem 10 inclui uma fonte de dados 120, o codificador 100 e a interface de saída 140. Em alguns exemplos, a interface de saída 140 pode incluir um modulador/demodulador (modem) e/ou um transmissor. A fonte de dados 120 pode incluir um aparelho de captura de nuvem de pontos (por exemplo, uma câmera), um arquivo de nuvem de pontos incluindo dados de nuvem de pontos previamente capturados, uma interface de alimentação de nuvem de pontos configurada para receber dados de nuvem de pontos de um provedor de conteúdo de nuvem de pontos, um sistema de computação gráfica configurado para gerar dados de nuvem de pontos ou uma combinação dessas fontes de dados de nuvem de pontos.
[0147] O codificador 100 pode codificar os dados de nuvem de pontos a partir da fonte de dados 120. Em alguns exemplos, o aparelho de origem 10 envia diretamente os dados de nuvem de pontos codificados ao aparelho de destino 20 através da interface de saída 140. Em outro exemplo, os dados de nuvem de pontos codificados podem ser armazenados, de modo alternativo, no aparelho de armazenamento 40, de modo que o aparelho de destino 20 acesse subsequentemente os dados de nuvem de pontos codificados para decodificação e/ou reprodução.
[0148] No exemplo na Figura 1, o aparelho de destino 20 inclui a interface de entrada 240, o decodificador 200 e um aparelho de exibição 220. Em alguns exemplos, a interface de entrada 240 inclui um receptor e/ou um modem. A interface de entrada 240 pode receber os dados de nuvem de pontos codificados over o enlace 30 e/ou a partir do aparelho de armazenamento 40. O aparelho de exibição 220 pode ser integrado ao aparelho de destino 20 ou pode estar localizado fora do aparelho de destino 20. De modo geral, o aparelho de exibição 220 exibe dados de nuvem de pontos decodificados. Pode haver uma pluralidade de tipos de aparelhos de exibição 220. Por exemplo, o aparelho de exibição 220 pode ser, por exemplo, um visor de cristal líquido (liquid crystal display, LCD), um visor de plasma, um visor de diodo orgânico emissor de luz (organic light-emitting diode, OLED) ou outro tipo de aparelho de exibição.
[0149] Embora não mostrado na Figura 1, em alguns aspectos, o codificador 100 e o decodificador 200 podem ser integrados, respectivamente, a um codificador de áudio e a um decodificador de áudio, e podem incluir uma unidade de multiplexador-demultiplexador (multiplexer-demultiplexer, MUX- DEMUX) apropriada ou outro hardware e software, para processar codificação de áudio e um vídeo em um mesmo fluxo de dados ou em fluxos de dados separados. Em alguns exemplos, se apropriado, a unidade de MUX-DEMUX pode estar em conformidade com o protocolo de multiplexador ITU H.223 ou outro protocolo, tal como um protocolo de datagrama de usuário (user datagram protocol, UDP).
[0150] O codificador 100 e o decodificador 200 podem ser implantados, cada um, por exemplo, como qualquer um dentre uma pluralidade de circuitos: um ou mais microprocessadores, um processador de sinal digital (digital sinal processor, DSP), um circuito integrado de aplicação específica (application specific integrated circuit, ASIC), um arranjo de portas programável em campo (field-programmable gate array, FPGA), lógica discreta, hardware ou qualquer combinação dos mesmos. Se este pedido for implantado parcialmente por software, o aparelho pode armazenar, em uma mídia de armazenamento legível por computador não volátil apropriada, uma instrução usada para o software, e pode usar um ou mais processadores para executar a instrução em hardware, para implantar as tecnologias neste pedido. Qualquer um dentre os mencionados acima (incluindo hardware, software, uma combinação de hardware e software e similares) pode ser considerado um ou mais processadores. O codificador 100 e o decodificador 200 podem ser incluídos, cada um, em um ou mais codificadores ou decodificadores, e o codificador ou o decodificador pode ser integrado como uma parte de um codificador/decodificador (codec) combinado em um aparelho correspondente.
[0151] Neste pedido, o codificador 100 pode ser, em geral, um aparelho que “sinaliza” ou “envia” algumas informações para outro aparelho, tal como o decodificador 200. O termo “sinal” ou “enviar” pode se referir, de modo geral, à transmissão de um elemento de sintaxe e/ou outros dados usados para decodificar dados de nuvem de pontos comprimidos. A transmissão pode ocorrer em tempo real ou quase em tempo real. Alternativamente, a comunicação pode ocorrer após um período de tempo. Por exemplo, a comunicação pode ocorrer quando um elemento de sintaxe em um fluxo de bits codificado é armazenado em uma mídia de armazenamento legível por computador durante codificação, e o aparelho de decodificação pode, então, recuperar o elemento de sintaxe a qualquer momento após o elemento de sintaxe ser armazenado na mídia.
[0152] A Figura 2 é um diagrama de blocos esquemático de um codificador exemplificativo 100 aplicável a uma modalidade deste pedido. Uma estrutura de codificação de compressão de nuvem de pontos (Point Cloud Compression, PCC) de MPEG (Grupo de Especialistas em Imagem em Movimento) é usada como um exemplo para descrição na Figura 2. No exemplo na Figura 2, o codificador 100 pode incluir um módulo de geração de informações de patch 101, um módulo de empacotamento 102, um módulo de geração de mapa de profundidade 103, um módulo de geração de mapa de textura 104, um módulo de preenchimento de imagem 105, um módulo de codificação com base em imagem e com base em vídeo 106, um módulo de codificação de mapa de ocupação 107, um módulo de codificação de informações auxiliares 108, um módulo de multiplexador 109 e similares.
[0153] O módulo de geração de informações de patch 101 é configurado para segmentar um quadro de nuvem de pontos em uma pluralidade de patches usando-se um método, e obter informações relacionadas e similares dos patches gerados. O patch é um conjunto de alguns pontos em um quadro de nuvem de pontos e, em geral, uma região de componente conectada corresponde a um patch. As informações relacionadas do patch podem incluir,
mas sem limitação, pelo menos uma dentre as seguintes informações: uma quantidade de patches obtida segmentando-se uma nuvem de pontos, informações de posição de cada patch em um espaço tridimensional, um índice de um eixo tangente de cada patch, um índice de um eixo bitangente de cada patch, um índice de um eixo normal de cada patch, um mapa de profundidade gerado quando cada patch é projetado do espaço tridimensional para um espaço bidimensional, um tamanho do mapa de profundidade de cada patch (por exemplo, a largura e a altura do mapa de profundidade), um mapa de ocupação gerado quando cada patch é projetado do espaço tridimensional para o espaço bidimensional e similares. Algumas dentre as informações relacionadas, tais como a quantidade de patches obtida segmentando-se a nuvem de pontos, o índice do eixo normal de cada patch, o tamanho do mapa de profundidade de cada patch, as informações de posição de cada patch na nuvem de pontos, e informações de tamanho do mapa de ocupação de cada patch, podem ser usadas como informações auxiliares e enviadas ao módulo de codificação de informações auxiliares 108 para codificação (ou seja, codificação de compressão). O mapa de ocupação de cada patch pode ser enviado ao módulo de empacotamento 102 para empacotamento. Especificamente, patches na nuvem de pontos são organizados em uma ordem específica, por exemplo, organizados em ordem decrescente (crescente) das larguras/alturas dos mapas de ocupação dos patches; e, então, os mapas de ocupação dos patches são inseridos sucessivamente em uma região disponível de um mapa de ocupação da nuvem de pontos na ordem dos patches organizados, para obter o mapa de ocupação da nuvem de pontos. Além disso, informações sobre uma posição específica de cada patch no mapa de ocupação da nuvem de pontos, o mapa de profundidade de cada patch e similares podem ser enviadas ao módulo de geração de mapa de profundidade 103.
[0154] Após obter o mapa de ocupação da nuvem de pontos, o módulo de empacotamento 102 pode enviar o mapa de ocupação da nuvem de pontos ao módulo de codificação de mapa de ocupação 107 para codificação. Além disso, o mapa de ocupação da nuvem de pontos pode ser usado para guiar o módulo de geração de mapa de profundidade 103 para gerar um mapa de profundidade da nuvem de pontos e guiar o módulo de geração de mapa de textura 104 para gerar um mapa de textura da nuvem de pontos.
[0155] O módulo de geração de mapa de profundidade 103 é configurado para: gerar o mapa de profundidade da nuvem de pontos com base no mapa de ocupação da nuvem de pontos, e o mapa de ocupação e o mapa de profundidade de cada patch da nuvem de pontos, e enviar o mapa de profundidade gerado para o módulo de preenchimento de imagem 105, de modo que o módulo de preenchimento de imagem 105 preencha pixels vazios no mapa de profundidade, para obter um mapa de profundidade obtido através de preenchimento. A codificação de vídeo é realizada no mapa de profundidade obtido através de preenchimento, a decodificação de vídeo é realizada para obter um mapa de profundidade decodificado, e informações de geometria de uma nuvem de pontos reconstruída são obtidas com base no mapa de profundidade decodificado, no mapa de ocupação da nuvem de pontos, e nas informações auxiliares de cada patch. As informações de textura da nuvem de pontos e as informações de geometria da nuvem de pontos reconstruída são enviadas a um módulo de coloração. O módulo de coloração é configurado para colorir a nuvem de pontos reconstruída para obter informações de textura da nuvem de pontos reconstruída. O módulo de geração de mapa de textura 104 é configurado para: gerar o mapa de textura da nuvem de pontos com base no mapa de ocupação da nuvem de pontos, nas informações de textura da nuvem de pontos reconstruída, e no mapa de ocupação de cada patch da nuvem de pontos, e enviar o mapa de textura gerado para o módulo de preenchimento de imagem 105, de modo que o módulo de preenchimento de imagem 105 preencha pixels vazios no mapa de textura recebido, para obter um mapa de textura obtido através de preenchimento. De modo opcional, o módulo de geração de mapa de textura 104 pode gerar, de modo alternativo, o mapa de textura da nuvem de pontos com base em informações obtidas através de filtragem realizada por um módulo de filtragem 110 nas informações de geometria da nuvem de pontos reconstruída.
[0156] O módulo de preenchimento de imagem 105 envia o mapa de profundidade e o mapa de textura que são obtidos através de preenchimento ao módulo de codificação com base em imagem e com base em vídeo 106, para codificação com base em imagem ou vídeo.
[0157] Por fim, o módulo de codificação com base em imagem e com base em vídeo 106, o módulo de codificação de mapa de ocupação 107 e o módulo de codificação de informações auxiliares 108 enviam resultados de codificação obtidos (ou seja, fluxos de bits) ao módulo de multiplexador 109. O módulo de multiplexador 109 combina os fluxos de bits em um fluxo de bits, em que o fluxo de bits pode ser enviado à interface de saída 140.
[0158] Pode-se entender que o codificador 100 mostrado na Figura 2 é apenas um exemplo. Em implantação específica, o codificador 100 pode incluir mais ou menos módulos do que os módulos mostrados na Figura 2. Isso não é limitado nesta modalidade deste pedido. Por exemplo, o codificador 100 pode incluir, adicionalmente, um módulo de determinação de modo de predição, configurado para determinar um modo de predição de uma nuvem de pontos a ser codificada, em que o modo de predição pode incluir um modo de predição inter, um modo de predição intra ou similares. O modo de predição da nuvem de pontos a ser codificada pode ser usado como informações auxiliares e enviado ao módulo de codificação de informações auxiliares 108 para codificação. De modo opcional, em algumas modalidades deste pedido, o modo de predição da nuvem de pontos a ser codificada pode ser enviado ao módulo de geração de informações de patch 101. Subsequentemente, o módulo de geração de informações de patch 101 pode determinar um eixo tangente e um eixo bitangente de um patch com base no modo de predição da nuvem de pontos a ser codificada.
[0159] Pode-se aprender, na descrição antecedente, que o módulo de codificação de informações auxiliares 108 pode codificar informações de nível de patch (por exemplo, o índice do eixo normal do patch) e informações de nível de quadro (por exemplo, a quantidade de patches incluída na nuvem de pontos) em um fluxo de bits. Em um exemplo, o codificador 100 pode realizar codificação com base em um grupo de nuvem de pontos, em que cada grupo de nuvem de pontos pode incluir pelo menos dois quadros de nuvens de pontos. Nesse caso, o módulo de codificação de informações auxiliares 108 pode codificar, de modo adicional, informações de nível de GOF (por exemplo, uma quantidade de quadros de quadros de nuvens de pontos incluídos em um grupo de nuvem de pontos) em um fluxo de bits. A Figura 3 é um diagrama estrutural esquemático de um fluxo de bits exemplificativo aplicável a uma modalidade deste pedido. O fluxo de bits mostrado na Figura 3 inclui uma parte 1101 que é usada para descrever informações de metadados (que também podem ser denominadas um elemento de sintaxe) no fluxo de bits. A parte 1101 inclui especificamente os campos a seguir.
[0160] Um campo 1102 são informações de metadados de um cabeçalho de quadro de um GOF, e é usado para descrever informações de nível de GOF. O campo 1102 pode incluir, por exemplo, informações de identificação do GOF, uma quantidade de quadros de nuvens de pontos incluída no GOF e informações comuns (tais como as informações a seguir usadas para indicar informações de descrição de um tamanho de uma caixa delimitadora de um grupo de nuvem de pontos) de todos os quadros de nuvens de pontos no GOF.
[0161] Um campo 1103 são informações de metadados do 1o quadro de nuvem de pontos no GOF, e é usado para descrever informações de nível de quadro relacionadas ao 1o quadro de nuvem de pontos. O campo 1103 pode incluir, por exemplo, uma quantidade de patches incluída no 1o quadro de nuvem de pontos, resoluções de mapas de ocupação de todos os patches, uma quantidade máxima de patches que pode ser incluída em cada menor unidade em mapas de ocupação de nuvens de pontos, e informações comuns (tais como as informações a seguir usadas para indicar informações de descrição de um tamanho de uma caixa delimitadora da nuvem de pontos) de todos os patches no 1o quadro de nuvem de pontos.
[0162] Um campo 1104 são informações de metadados de um patch do 1o quadro de nuvem de pontos no GOF, e é usado para descrever informações de nível de patch relacionadas ao 1o quadro de nuvem de pontos. Especificamente, as informações de nível de patch relacionadas ao 1o quadro de nuvem de pontos podem incluir, sequencialmente: informações de metadados do 1o patch no 1o quadro de nuvem de pontos, ..., informações de metadados do iésimo patch, ..., e informações de metadados do Iésimo patch, em que 1 ≤ i ≤ I, i e I são números inteiros, e I representa a quantidade de patches incluída no 1o quadro de nuvem de pontos. As informações de metadados do patch podem incluir um índice de um eixo normal do patch e similares.
[0163] Um campo 1105 são informações de metadados do jésimo quadro de nuvem de pontos no GOF, e é usado para descrever informações de nível de quadro relacionadas ao jésimo quadro de nuvem de pontos. 1 < j ≤ J, e j e J são números inteiros. J representa a quantidade de quadros de nuvens de pontos incluída no GOF.
[0164] Um campo 1106 são informações de metadados de um patch do jésimo quadro de nuvem de pontos no GOF, e é usado para descrever informações de nível de patch relacionadas ao jésimo quadro de nuvem de pontos.
[0165] A Figura 4 é um diagrama de blocos esquemático de um decodificador exemplificativo 200 aplicável a uma modalidade deste pedido. Uma estrutura de decodificação de MPEG PCC é usada como um exemplo para descrição na Figura 4. No exemplo na Figura 4, o decodificador 200 pode incluir um módulo de demultiplexador 201, um módulo de decodificação com base em imagem ou com base em vídeo 202, um módulo de decodificação de mapa de ocupação 203, um módulo de decodificação de informações auxiliares 204, um módulo de reconstrução de informações de geometria de nuvem de pontos 205, um módulo de filtragem 206 e um módulo de reconstrução de informações de textura de nuvem de pontos 207.
[0166] O módulo de demultiplexador 201 é configurado para enviar um fluxo de bits de entrada (ou seja, um fluxo de bits combinado) a um módulo de decodificação correspondente. Especificamente, um fluxo de bits incluindo um mapa de textura codificado e um mapa de profundidade codificado é enviado ao módulo de decodificação com base em imagem ou com base em vídeo 202; um fluxo de bits incluindo um mapa de ocupação codificado é enviado ao módulo de decodificação de mapa de ocupação 203; e um fluxo de bits incluindo informações auxiliares codificadas é enviado ao módulo de decodificação de informações auxiliares 204.
[0167] O módulo de decodificação com base em imagem ou com base em vídeo 202 é configurado para: decodificar o mapa de textura codificado recebido e o mapa de profundidade codificado recebido, enviar informações de mapa de textura obtidas através de decodificação para o módulo de reconstrução de informações de textura de nuvem de pontos 207, e enviar informações de mapa de profundidade obtidas através de decodificação para o módulo de reconstrução de informações de geometria de nuvem de pontos 205. O módulo de decodificação de mapa de ocupação 203 é configurado para: decodificar o fluxo de bits recebido incluindo o mapa de ocupação codificado, e enviar informações de mapa de ocupação obtidas através de decodificação para o módulo de reconstrução de informações de geometria de nuvem de pontos 205. O módulo de decodificação de informações auxiliares 204 é configurado para:
decodificar as informações auxiliares codificadas recebidas, e enviar, para o módulo de reconstrução de informações de geometria de nuvem de pontos 205, informações que indicam as informações auxiliares e que são obtidas através de decodificação.
[0168] O módulo de reconstrução de informações de geometria de nuvem de pontos 205 é configurado para reconstruir informações de geometria de uma nuvem de pontos com base nas informações de mapa de ocupação recebidas e nas informações auxiliares recebidas. Após filtragem ser realizada nas informações de geometria reconstruídas da nuvem de pontos pelo módulo de filtragem 206, informações de geometria reconstruídas filtradas da nuvem de pontos são enviadas ao módulo de reconstrução de informações de textura de nuvem de pontos 207. O módulo de reconstrução de informações de textura de nuvem de pontos 207 é configurado para reconstruir informações de textura da nuvem de pontos, para obter uma nuvem de pontos reconstruída.
[0169] Pode-se entender que o decodificador 200 mostrado na Figura 4 é apenas um exemplo. Em implantação específica, o decodificador 200 pode incluir mais ou menos módulos do que os módulos mostrados na Figura 4. Isso não é limitado nas modalidades deste pedido.
[0170] Para facilitar o entendimento das soluções técnicas fornecidas nas modalidades deste pedido, o conteúdo a seguir descreve, usando-se exemplos, um processo de geração de um patch pelo módulo de geração de informações de patch 101 e informações relacionadas que são do patch e que são obtidas pelo módulo de geração de informações de patch 101.
[0171] A Figura 5 é um diagrama esquemático de um processo de geração de patch aplicável a uma TMC2 (Categoria de Modelo de Teste 2). Os detalhes podem incluir: Primeiro, uma árvore KD (árvore de K-dimensão, K- dimension tree) é construída com base em uma nuvem de pontos, um ponto vizinho de cada ponto na nuvem de pontos é determinado com base na árvore de KD, e um vetor de direção normal (ou seja, um vetor normal) de cada ponto é obtido com base no ponto vizinho do ponto. Então, segmentação grossa é realizada na nuvem de pontos com base no vetor de direção normal de cada ponto e um em plano de projeção predefinido (ou seja, um plano de projeção de cada ponto é determinado). Um tipo de plano de projeção predefinido inclui seis planos de uma caixa delimitadora de uma nuvem de pontos. Um método para segmentação grossa pode incluir: calcular um ângulo incluído entre o vetor de direção normal de cada ponto e cada um dentre vetores de direção normais dos seis planos, e selecionar um plano que corresponde a um menor ângulo incluído como um plano de projeção do ponto. Então, segmentação fina é realizada no plano de projeção que é de cada ponto e que é obtido através de segmentação grossa. Especificamente, um resultado de segmentação grossa é ajustado atualizando-se, de modo iterativo, um plano de projeção do ponto vizinho de cada ponto. O plano de projeção de cada ponto na nuvem de pontos é determinado com base em um resultado de segmentação fina. Por fim, uma região de componente conectada é detectada com base em cada plano de projeção, para gerar um patch. Por exemplo, um conjunto que inclui todas as amostras em uma região de componente conectada é um patch.
[0172] A Figura 6(a) à Figura 6(c) são um diagrama esquemático de um patch exemplificativo aplicável a uma modalidade deste pedido. A Figura 6(a) mostra um quadro de nuvem de pontos. A Figura 6(b) mostra patches gerados com base na Figura 6(a). Um conjunto que inclui pontos em cada região de componente conectada na Figura 6(b) é um patch.
[0173] Conforme descrito acima, o módulo de geração de informações de patch 101 pode obter, de modo adicional, as informações relacionadas do patch gerado da nuvem de pontos. As informações relacionadas podem incluir um índice de um eixo tangente, um índice de um eixo bitangente, um índice de um eixo normal e similares de cada patch.
[0174] O eixo tangente do patch é um eixo no qual uma tangente do patch está localizada. O eixo bitangente do patch é um eixo no qual uma bitangente do patch está localizada. O eixo bitangente do patch é perpendicular ao eixo tangente do patch. O eixo normal do patch é um eixo no qual uma normal do patch está localizada. O eixo normal do patch é perpendicular a um espaço bidimensional (ou seja, um plano de projeção do patch) em que o eixo tangente e o eixo bitangente do patch estão localizados. A fim de simplificar processamento subsequente, nas modalidades deste pedido, um exemplo em que “cada um dentre um eixo tangente, um eixo bitangente e um eixo normal de um patch é um dentre eixos em um sistema de coordenadas mundial” é usado para descrição. Isso pode reduzir a complexidade de conversão de sistema de coordenadas acompanhada quando um patch é projetado para o espaço bidimensional. Certamente, este pedido não é limitado ao mesmo. Em implantação real, um sistema de coordenadas tridimensional constituído por “um eixo normal, um eixo tangente e um eixo bitangente de um patch” pode ser obtido, de modo alternativo, a partir do sistema de coordenadas mundial (ou outro sistema de coordenadas de referência) com base em uma matriz de transformação.
[0175] Na estrutura de codificação de MPEG PCC, o eixo tangente e o eixo bitangente do patch são, em geral, determinados de acordo com o seguinte método: O índice do eixo normal do patch é primeiro determinado, e o índice do eixo tangente e o índice do eixo bitangente do patch são, então, obtidos consultando-se a Tabela 2. Os índices dos eixos na Tabela 2 são obtidos com base na Tabela 1. Tabela 2 Índice do eixo Índice do eixo tangente (um Índice do eixo bitangente normal do patch eixo U) do patch (um eixo V) do patch 0 2 1 1 2 0 2 0 1
[0176] Consulte a Tabela 2. Pode-se aprender que, quando o índice do eixo normal do patch é 0, o índice do eixo tangente do patch é 2, e o índice do eixo bitangente do patch é 1. Em outras palavras, quando o eixo normal do patch é o eixo X, o eixo tangente do patch é o eixo Z, e o eixo bitangente do patch é o eixo Y. Os princípios de outros exemplos são similares ao princípio descrito no presente documento, e não são enumerados no presente documento.
[0177] A Figura 7(a) e a Figura 7(b) são um diagrama esquemático de projeção de um patch de um espaço tridimensional para um espaço bidimensional. Na Figura 7(a) e na Figura 7(b), a origem de coordenada é denotada como O. Supõe-se que um caractere “A” mostrado na Figura 7(a) represente um patch no espaço tridimensional, e um eixo normal do patch é um eixo Z. Além disso, supõe-se que, no espaço bidimensional, uma direção de tangente do patch seja um eixo horizontal (um eixo U), e uma direção de bitangente do patch seja um eixo vertical (um eixo V). Consulte a Tabela 2. Pode- se aprender que um eixo tangente do patch é um eixo X, e o eixo bitangente é um eixo Y. Em outras palavras, no espaço bidimensional para o qual o patch é mapeado, o eixo U é o eixo X, e o eixo V é o eixo Y. Com base nisso, após o patch ser projetado para o espaço bidimensional, um mapa de ocupação mostrado na Figura 7(b) pode ser obtido.
[0178] Após determinar um eixo tangente e um eixo bitangente de cada patch, o módulo de geração de informações de patch 101 pode obter, adicionalmente, um mapa de ocupação obtido projetando-se o patch para o espaço bidimensional. Os valores de coordenada de cada ponto no mapa de ocupação são determinados com base em um sistema de coordenadas que é constituído por “o eixo tangente e o eixo bitangente do patch”. Então, o módulo de empacotamento 102 pode empacotar mapas de ocupação desses patches no espaço bidimensional (ou seja, mapas de ocupação dos patches descritos neste relatório descritivo), para obter um mapa de ocupação de uma nuvem de pontos.
[0179] A Figura 8(a) e a Figura 8(b) são um diagrama esquemático de um mapa de ocupação de uma nuvem de pontos. O módulo de geração de informações de patch 101 pode gerar patches com base na nuvem de pontos mostrada na Figura 8(a), e obter um eixo tangente e um eixo bitangente de cada patch com base na Tabela 2, para obter um mapa de ocupação de cada patch. Com base nisso, após empacotar os mapas de ocupação dos patches, o módulo de empacotamento 102 pode obter o mapa de ocupação da nuvem de pontos mostrada na Figura 8(b). Pode-se aprender, na Figura 8(b), que, no mapa de ocupação da nuvem de pontos, alguns patches que são relativamente altos (que estão localizados em um lado no qual o eixo Y está localizado) são dispostos de modo vertical e alguns patches que são relativamente altos (por exemplo, patches em uma caixa retangular) são dispostos de modo horizontal. Consequentemente, há uma grande quantidade de espaço vazio, tal como uma região em que pixels vazios estão localizados na Figura 8(b), no mapa de ocupação da nuvem de pontos. Além disso, isso leva a um tamanho relativamente grande do mapa de ocupação da nuvem de pontos, e é desfavorável à codificação de compressão de vídeo subsequente.
[0180] Além disso, conforme mostrado na Figura 6(a) à Figura 6(c), se o eixo tangente e o eixo bitangente de cada patch forem obtidos com base na Tabela 2, um mapa de ocupação mostrado na Figura 6(c) pode ser obtido com base nos patches mostrados na Figura 6(b).
[0181] O conteúdo a seguir descreve um método de codificação de nuvem de pontos e um método de decodificação de nuvem de pontos fornecidos nas modalidades deste pedido. Deve-se observar que, com referência ao sistema de codificação de nuvem de pontos mostrado na Figura 1, qualquer um dentre os métodos de codificação de nuvem de pontos a seguir pode ser realizado pelo aparelho de origem 10 no sistema de codificação de nuvem de pontos. Mais especificamente, o método de codificação de nuvem de pontos é realizado pelo codificador 100 no aparelho de origem 10. Qualquer um dentre os métodos de decodificação de nuvem de pontos a seguir pode ser realizado pelo aparelho de destino 20 no sistema de codificação de nuvem de pontos. Mais especificamente, o método de decodificação de nuvem de pontos é realizado pelo decodificador 200 no aparelho de destino 20.
[0182] A Figura 9 é um fluxograma esquemático de um método de codificação de nuvem de pontos de acordo com uma modalidade deste pedido. O método pode incluir as etapas a seguir.
[0183] S101: Adquirir um eixo normal de um patch a ser codificado em uma nuvem de pontos a ser codificada e informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser codificado. O eixo normal do patch a ser codificado e as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado são usados para determinar um eixo tangente e um eixo bitangente do patch a ser codificado. A nuvem de pontos a ser codificada pode ser qualquer quadro de nuvem de pontos a ser codificada. O patch a ser codificado pode ser qualquer patch na nuvem de pontos a ser codificada.
[0184] O retângulo delimitador mínimo que corresponde ao patch é um retângulo delimitador mínimo de uma imagem bidimensional (denominada um mapa de pré-ocupação doravante) obtida pré-projetando o patch de um espaço tridimensional para um espaço bidimensional. Deve-se observar, nesta modalidade deste pedido, que um lado do retângulo delimitador mínimo que corresponde ao patch é um primeiro eixo de um sistema de coordenadas mundial ou é paralelo a um primeiro eixo, e outro lado é um segundo eixo do sistema de coordenadas mundial ou é paralelo a um segundo eixo. O primeiro eixo pode ser qualquer eixo no sistema de coordenadas mundial, e o segundo eixo pode ser qualquer eixo, diferente do primeiro eixo, no sistema de coordenadas mundial.
[0185] “Pré-projeção” é um termo introduzido para descrever mais claramente as soluções técnicas fornecidas nas modalidades deste pedido, e é usado para distinguir de um processo de mapeamento real. Um processo de pré- projetar um patch é um processo de projetar o patch do espaço tridimensional para o espaço bidimensional, e o processo de pré-projeção é realizado antes de um eixo tangente e um eixo bitangente do patch serem determinados. Os detalhes são conforme a seguir.
[0186] O processo de pré-projetar o patch pode incluir: primeiro determinar um eixo tangente de referência e um eixo bitangente de referência do patch e, então, projetar o patch do espaço tridimensional para o espaço bidimensional com base no eixo tangente de referência determinado e no eixo bitangente de referência determinado do patch. Um dentre o eixo tangente de referência e o eixo bitangente de referência do patch é o primeiro eixo descrito acima, e o outro é o segundo eixo descrito acima. O modo como determinar o eixo tangente de referência e o eixo bitangente de referência do patch não é limitado nesta modalidade deste pedido. Por exemplo, o eixo tangente e o eixo bitangente do patch podem ser determinados usando-se qualquer método (por exemplo, consultando-se a Tabela 2) fornecido em uma tecnologia atual, o eixo tangente determinado é usado como o eixo tangente de referência do patch, e o eixo bitangente determinado é determinado como o eixo bitangente de referência do patch.
[0187] Um processo real de mapeamento do patch pode incluir: primeiro determinar o eixo tangente e o eixo bitangente do patch e, então, projetar o patch do espaço tridimensional para o espaço bidimensional com base no eixo tangente determinado e no eixo bitangente determinado do patch. Nesta modalidade, um dentre o eixo tangente e o eixo bitangente do patch é o primeiro eixo descrito acima, e o outro é o segundo eixo descrito acima.
[0188] Para facilitar a descrição, a seguir, o eixo tangente de referência do patch é denominado um eixo U0, e o eixo bitangente de referência do patch é denominado um eixo V0. Para facilitar a descrição, a seguir, um exemplo em que o eixo U0 é um eixo horizontal e o eixo V0 é um eixo vertical é usado para descrição. Especificamente, se o eixo normal do patch não for um eixo Y, o eixo vertical é o eixo Y, e o eixo horizontal é um eixo que é diferente do eixo normal e do eixo Y. Se o eixo normal do patch for o eixo Y, o eixo vertical é um eixo X, e o eixo horizontal é um eixo Z. Certamente, este pedido não é limitado aos mesmos. Para facilitar a descrição, a seguir, o eixo tangente do patch é denominado um eixo U1, e o eixo bitangente do patch é denominado um eixo V1.
[0189] Nesta modalidade, uma relação entre o eixo U0, o eixo V0, o eixo U1 e o eixo V1 que correspondem ao patch pode incluir os modos a seguir.
[0190] Modo A: O eixo tangente do patch é igual ao eixo tangente de referência do patch, e o eixo bitangente do patch é igual ao eixo bitangente de referência do patch. Em outras palavras, o eixo U1 é igual ao eixo U0, e o eixo V1 é igual ao eixo V0.
[0191] Modo B: O eixo tangente do patch é igual ao eixo bitangente de referência do patch, e o eixo bitangente do patch é igual ao eixo tangente de referência do patch. Em outras palavras, o eixo U1 é igual ao eixo V0, e o eixo V1 é igual ao eixo U0.
[0192] Com base nisso, um patch, um mapa de pré-ocupação do patch e um mapa de ocupação do patch que são fornecidos nesta modalidade deste pedido são mostrados na Figura 10(a) à Figura 10(c2). Se um eixo tangente de referência e um eixo bitangente de referência do patch mostrado na Figura 10(a) forem obtidos consultando-se a Tabela 2, e o patch for mapeado do espaço tridimensional para o espaço bidimensional com base no eixo tangente de referência e no eixo bitangente de referência, um mapa de pré-ocupação obtido do patch é mostrado na Figura 10(b). Se a relação entre o eixo U0, o eixo V0, o eixo U1 e o eixo V1 for conforme descrito no Modo A, um mapa de ocupação obtido do patch é mostrado na Figura 10(c1). Se a relação entre o eixo U0, o eixo V0, o eixo U1 e o eixo V1 for conforme descrito no Modo B, um mapa de ocupação obtido do patch é mostrado na Figura 10(c2).
[0193] As informações de descrição do retângulo delimitador mínimo que corresponde ao patch são informações usadas para descrever o retângulo delimitador mínimo que corresponde ao patch, e são, especificamente, informações usadas para descrever um tamanho de lado (que também pode ser denominado um tamanho bidimensional) do retângulo delimitador mínimo. Por exemplo, BU0 e BV0 podem ser usados para descrever tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch, conforme mostrado na Figura 11. BU0 representa um tamanho de um lado, no eixo U0 (ou um eixo paralelo ao eixo U0), do retângulo delimitador mínimo que corresponde ao patch,
e BV0 representa um tamanho de um lado, no eixo V0 (ou um eixo paralelo ao eixo V0), do retângulo delimitador mínimo que corresponde ao patch. As informações de descrição do retângulo delimitador mínimo que corresponde ao patch podem incluir uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch.
[0194] De modo geral, um lado que corresponde a um valor maior de BU0 e BV0 do patch é um lado mais longo do retângulo delimitador mínimo que corresponde ao patch, e um lado que corresponde a um valor menor é um lado mais curto do retângulo delimitador mínimo que corresponde ao patch. Particularmente, se BU0 for igual a BV0, um dentre BU0 e BV0 pode ser usado como o lado mais longo do retângulo delimitador mínimo que corresponde ao patch, e o outro é usado como o lado mais curto do retângulo delimitador mínimo que corresponde ao patch.
[0195] O conteúdo antecedente descreve termos relacionados nas modalidades a partir de uma perspectiva de um patch geral, e o patch geral inclui o patch a ser codificado.
[0196] Um modo de obter o eixo normal do patch a ser codificado não é limitado nesta modalidade deste pedido. Por exemplo, referência pode ser feita à tecnologia atual. Nesta modalidade deste pedido, um exemplo em que o eixo normal do patch a ser codificado é um dentre o eixo X, o eixo Y e o eixo Z do sistema de coordenadas mundial é usado para descrição.
[0197] De modo opcional, o eixo tangente e o eixo bitangente do patch a ser codificado podem ser determinados realizando-se a S102 a seguir.
[0198] S102: Determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
[0199] De modo opcional, um codificador pode predefinir a relação de mapeamento a seguir, por exemplo, de acordo com um protocolo. A relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais (ou índices da pluralidade de eixos normais) de um patch, uma pluralidade de tipos de informações de descrição (ou índices da pluralidade de tipos de informações de descrição) de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes (ou índices da pluralidade de eixos tangentes) do patch, e uma pluralidade de eixos bitangentes (ou índices da pluralidade de eixos bitangentes) do patch. Então, após o codificador obter o eixo normal (ou um índice do eixo normal) do patch a ser codificado e as informações de descrição (ou um índice das informações de descrição) do retângulo delimitador mínimo que corresponde ao patch a ser codificado, o codificador obtém o eixo tangente (ou um índice do eixo tangente do patch a ser codificado) e o eixo bitangente (ou um índice do eixo bitangente) do patch a ser codificado com base na relação de mapeamento antecedente.
[0200] Uma forma específica da relação de mapeamento não é limitada nesta modalidade deste pedido. Por exemplo, a relação de mapeamento pode ser em uma forma de uma tabela, uma fórmula ou um julgamento lógico (por exemplo, uma operação if/else ou uma operação de comutação) realizado com base em uma condição. O conteúdo a seguir usa essencialmente um exemplo em que a relação de mapeamento é em uma forma de uma tabela para descrição. Com base nisso, quando a S102 é realizada, o codificador pode obter o eixo tangente e o eixo bitangente do patch a ser codificado consultando-se a tabela. Pode-se entender que a relação de mapeamento antecedente é incorporada em uma ou mais tabelas. Isso não é limitado nesta modalidade deste pedido. Para facilitar a descrição, as modalidades deste pedido são descritas usando-se um exemplo em que a relação de mapeamento antecedente é incorporada em uma tabela. Uma descrição geral é fornecida no presente documento, e os detalhes não são descritos abaixo.
[0201] Quando as informações de descrição do retângulo delimitador mínimo que corresponde ao patch incluírem a relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch, possíveis informações de descrição do retângulo delimitador mínimo que corresponde ao patch e índices das informações de descrição podem ser mostrados na Tabela
3. Tabela 3 Relação entre tamanhos de lados do retângulo delimitador BU0 ≥ BV0 > mínimo que corresponde a um patch BV0 BU0 Índice da relação entre tamanhos de lados do retângulo 0 1 delimitador mínimo que corresponde ao patch
[0202] BU0 ≥ BV0 pode incluir dois casos: BU0 > BV0 e BU0 = BV0. Pode-
se considerar que, na Tabela 3, um exemplo em que os dois casos “BU0 = BV0” e “BU0 > BV0” correspondem a um índice “0” é usado para descrição. Alternativamente, dois casos “BU0 = BV0” e “BV0 > BU0” podem corresponder a um índice “1”. Nesse caso, uma relação que corresponde ao índice “1” pode ser substituída por “BV0 ≥ BU0”.
[0203] Deve-se observar que a Tabela 3 é apenas um exemplo, e não constitui qualquer limitação nas possíveis informações de descrição do retângulo delimitador mínimo que corresponde ao patch e nos índices das informações de descrição, em que as possíveis informações de descrição e os índices das informações de descrição são fornecidos nesta modalidade deste pedido. O conteúdo a seguir usa o exemplo em que “possíveis informações de descrição do retângulo delimitador mínimo que corresponde ao patch e índices das informações de descrição” mostrado na Tabela 3 para descrição.
[0204] S103: Projetar o patch a ser codificado do espaço tridimensional para o espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado, para obter um mapa de ocupação do patch a ser codificado.
[0205] Especificamente, se o eixo tangente do patch a ser codificado for igual ao eixo tangente de referência do patch a ser codificado, e o eixo bitangente do patch a ser codificado for igual ao eixo bitangente de referência do patch a ser codificado, um mapa de pré-ocupação do patch a ser codificado pode ser diretamente usado como o mapa de ocupação do patch a ser codificado, conforme mostrado na Figura 10(b) e na Figura 10(c1). Se o eixo tangente do patch a ser codificado for igual ao eixo bitangente de referência do patch a ser codificado, e o eixo bitangente do patch a ser codificado for igual ao eixo tangente de referência do patch a ser codificado, o mapa de ocupação do patch a ser codificado pode ser obtido com base em um mapa de pré-ocupação do patch a ser codificado, conforme mostrado na Figura 10(b) e na Figura 10(c2). Além disso, S103 pode ser implantada, de modo alternativo, usando-se a tecnologia atual.
[0206] Após o codificador realizar S103 para obter o mapa de ocupação do patch a ser codificado, para etapas realizadas pelo codificador, consulte a descrição antecedente do codificador mostrado na Figura 2. Entretanto, isso não é limitado à mesma. Os detalhes não são descritos novamente neste documento.
[0207] S104: Codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui o índice do eixo normal do patch a ser codificado e informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
[0208] As informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado podem incluir informações 1 ou informações 2.
[0209] As informações 1 são o índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser codificado. Por exemplo, se BU0 = 10 cm, e BV0 = 8 cm, pode-se aprender na Tabela 3 que as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado podem incluir: o índice “0” da relação (ou seja, BU0 > BV0) entre os tamanhos dos lados do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
[0210] As informações 2 são informações de tamanho (ou informações de tamanho de lado) do retângulo delimitador mínimo que corresponde ao patch a ser codificado. Por exemplo, supondo que BU0 = 10 cm e BV0 = 8 cm, as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado podem incluir: BU0 = 10 cm e BV0 = 8 cm.
[0211] Durante implantação específica, o fato de as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado incluírem as informações 1 ou as informações 2 pode ser predefinido (por exemplo, predefinido de acordo com um protocolo). Certamente, este pedido não é limitado a isso.
[0212] Durante implantação específica, informações codificadas no fluxo de bits podem incluir, adicionalmente, informações auxiliares, tais como informações de tamanho de um retângulo delimitador mínimo de um mapa de ocupação do patch a ser codificado. Com base nisso, com referência às informações 1 e às informações 2, as implantações opcionais a seguir são fornecidas nesta modalidade deste pedido.
[0213] De modo opcional, se as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado incluírem as informações 1, o codificador pode codificar, de modo adicional, as informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado no fluxo de bits.
[0214] De modo opcional, se as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado incluírem as informações 2, o codificador pode não codificar as informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado no fluxo de bits. Desse modo, sobrecargas de transmissão de fluxo de bits podem ser reduzidas. Nesse caso, um decodificador pode determinar, com base nas informações de tamanho (ou seja, BU0 e BV0) do retângulo delimitador mínimo que corresponde ao patch a ser codificado (um retângulo delimitador mínimo de um mapa de pré-ocupação do patch a ser codificado), se o eixo tangente do patch a ser codificado é igual ao eixo tangente de referência ou ao eixo bitangente de referência. Se o eixo tangente do patch a ser codificado for igual ao eixo tangente de referência, o decodificador determina que uma relação entre as informações de tamanho (ou seja, BU1 e BV1) do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado e as informações de tamanho do retângulo delimitador mínimo do mapa de pré-ocupação é: BU1 = BU0 e BV1 = BV0. Se o eixo tangente do patch for igual ao eixo bitangente de referência, o decodificador determina que uma relação entre as informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado e as informações de tamanho do retângulo delimitador mínimo do mapa de pré-ocupação é: BU1 = BV0, e BV1 = BU0.
[0215] Tanto o índice do eixo normal do patch a ser codificado quanto as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado são informações de nível de patch. Portanto, com referência à estrutura de fluxo de bits mostrada na Figura 3, se a nuvem de pontos a ser codificada for o 1o quadro de nuvem de pontos no GOF, os dois fragmentos de informações podem ser codificados no campo 1104 no fluxo de bits. Os dois fragmentos de informações podem ser codificados no fluxo de bits ao mesmo tempo ou, certamente, os dois fragmentos de informações podem ser codificados no fluxo de bits em momentos diferentes.
[0216] Uma ordem de realização das S102 e S103 e realização da S104 não é limitada nesta modalidade deste pedido. Por exemplo, as etapas S102 e S103 podem ser realizadas antes da etapa S104, ou a etapa S104 pode ser realizada antes das etapas S102 e S103, ou a etapa S104 pode ser realizada em um processo de realização das etapas S102 e S103.
[0217] Nesta modalidade, em um aspecto, as informações de descrição do retângulo delimitador mínimo que corresponde ao patch podem refletir um local do patch. Por exemplo, o local do patch pode ser representado pelo fato de um mapa de ocupação obtido mapeando-se o patch do espaço tridimensional para o espaço bidimensional ser vertical ou horizontal. Por exemplo, o mapa de ocupação do patch mostrado na Figura 10(c1) é vertical, e o mapa de ocupação do patch mostrado na Figura 10(c2) é horizontal. Em outro aspecto, o fato de um mapa de ocupação de um patch de um mesmo local ser vertical ou horizontal afeta um tamanho de um mapa de ocupação de uma nuvem de pontos obtida empacotando o mapa de ocupação do patch. Portanto, o eixo tangente e o eixo bitangente do patch a ser codificado são determinados com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado. Isso é favorável à implantação de que mapas de ocupação de patches são dispostos próximos no mapa de ocupação da nuvem de pontos ajustando-se uma orientação (uma orientação vertical ou uma orientação horizontal) do mapa de ocupação do patch a ser codificado, ou seja, há comparativamente poucos pixels vazios no mapa de ocupação da nuvem de pontos, ajudando a realizar, desse modo, codificação com base em imagem/vídeo em um mapa de profundidade e em um mapa de textura que são determinados com base no mapa de ocupação da nuvem de pontos. Em outras palavras, isso pode aperfeiçoar o desempenho de codificação de nuvem de pontos, e adicionalmente aperfeiçoar o desempenho de decodificação de nuvem de pontos. Por exemplo, se o eixo tangente e o eixo bitangente do patch forem determinados usando-se a tecnologia atual, apenas o mapa de ocupação da nuvem de pontos mostrada na Figura 8(b) pode ser obtido com base na nuvem de pontos mostrada na Figura 8(a). Entretanto, se o eixo tangente e o eixo bitangente do patch forem determinados usando-se o método fornecido nesta modalidade deste pedido, o mapa de ocupação de cada patch na Figura 8(b) pode ser definido para ser vertical ou horizontal, de modo que os mapas de ocupação dos patches na nuvem de pontos sejam dispostos próximos no mapa de ocupação da nuvem de pontos.
[0218] De modo opcional, se as informações de descrição do retângulo delimitador mínimo que corresponde ao patch incluírem a relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch, uma relação de mapeamento entre o eixo normal do patch, as informações de descrição do retângulo delimitador mínimo que corresponde ao patch, o eixo tangente do patch e o eixo bitangente do patch pode ser o caso na Solução 1 ou Solução 2 a seguir. O fato de a relação de mapeamento ser o caso na Solução 1 ou na Solução 2 pode ser predefinido especificamente (por exemplo, predefinido de acordo com um protocolo), ou pode ser notificado pelo codificador ao decodificador codificando-se informações de indicação em um fluxo de bits. O conteúdo específico das informações de indicação não é limitado nesta modalidade deste pedido. Por exemplo, as informações de indicação podem ser um identificador da Solução 1 ou Solução 2, ou podem ser informações usadas para indicar uma regra de projeção abaixo.
[0219] Solução 1: Um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado.
[0220] Com base na Solução 1, se o eixo tangente de referência e o eixo bitangente de referência do patch forem determinados com base na Tabela 2 no processo de pré-projeção, “uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch” fornecida nesta modalidade deste pedido pode ser mostrada na Tabela 4. Tabela 4 Índice do Índice da relação entre Índice do eixo Índice do eixo eixo normal tamanhos de lados do tangente do bitangente do do patch retângulo delimitador mínimo patch patch que corresponde ao patch 0 0 1 2 1 2 1 1 0 0 2 1 2 0 2 0 1 0 1 0 1
[0221] Por exemplo, consulte a Tabela 4. Pode-se aprender que, quando o índice do eixo normal do patch é 0, e o índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch é 0, o índice do eixo tangente do patch é 1, e o índice do eixo bitangente do patch é 2. Com referência à Tabela 1 à tabela 3, pode-se aprender que esse exemplo é especificamente o seguinte: Se o eixo tangente de referência (o eixo U0) do patch for o eixo Z, e o eixo bitangente de referência (o eixo V0) do patch for o eixo Y, quando o eixo normal do patch é o eixo X, e BU0 ≥ BV0, o eixo tangente (o eixo U1) do patch é o eixo Y, e o eixo bitangente (o eixo V1) do patch é o eixo Z. Os princípios de outros exemplos são similares ao princípio descrito no presente documento, e não são enumerados no presente documento.
[0222] Solução 2: Um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado.
[0223] Com base na Solução 2, se o eixo tangente de referência e o eixo bitangente de referência do patch forem determinados com base na Tabela 2 no processo de pré-projeção, “uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch” fornecida nesta modalidade deste pedido pode ser mostrada na Tabela 5. Tabela 5 Índice do Índice da relação entre Índice do eixo Índice do eixo eixo tamanhos de lados do tangente do bitangente do normal do retângulo delimitador patch patch patch mínimo que corresponde ao patch 0 0 2 1 1 1 2 1 0 2 0 1 0 2 2 0 0 1 1 1 0
[0224] Por exemplo, consulte a Tabela 5. Pode-se aprender que, quando o índice do eixo normal do patch é 0, o índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch é 0, o índice do eixo tangente do patch é 2, e o índice do eixo bitangente do patch é 1. Com referência à Tabela 1 à tabela 3, pode-se aprender que esse exemplo é especificamente o seguinte: Se o eixo tangente de referência (o eixo U0) do patch for o eixo Z, e o eixo bitangente de referência (o eixo V0) do patch for o eixo Y, quando o eixo normal do patch é o eixo X, quando BU0 ≥ BV0, o eixo tangente (o eixo U1) do patch é o eixo Z, e o eixo bitangente (o eixo V1) do patch é o eixo Y. Os princípios de outros exemplos são similares ao princípio descrito no presente documento, e não são enumerados no presente documento.
[0225] Deve-se observar que a Tabela 4 e a Tabela 5 são descritas usando-se o exemplo em que o eixo tangente de referência e o eixo bitangente de referência do patch são determinados com base na Tabela 2 no processo de pré-projeção. Esta modalidade deste pedido não é limitada ao mesmo.
[0226] De modo opcional, a etapa S102 pode ser implantada usando- se uma dentre as etapas S102A a S102C a seguir.
[0227] S102A: Determinar, com base na relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch. O eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado.
[0228] A etapa S102A pode ser substituída pelo seguinte conteúdo: determinar, com base na relação de mapeamento, um índice de um eixo tangente alvo e um índice de um eixo bitangente alvo que correspondem tanto ao índice do eixo normal do patch a ser codificado quanto a um índice das informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: índices de uma pluralidade de eixos normais de um patch, índices de uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, índices de uma pluralidade de eixos tangentes do patch, e índices de uma pluralidade de eixos bitangentes do patch. O índice do eixo tangente alvo é um índice do eixo tangente do patch a ser codificado, e o índice do eixo bitangente alvo é um índice do eixo bitangente do patch a ser codificado. Por exemplo, a relação de mapeamento pode ser mostrada na Tabela 4 ou na Tabela 5.
[0229] S102B: Consultar uma tabela com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado. O eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado. A tabela que é consultada inclui uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch.
[0230] S102B pode ser substituída pelo seguinte conteúdo: Consultar uma tabela com base no índice do eixo normal do patch a ser codificado e em um índice das informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, para obter um índice de um eixo tangente alvo e um índice de um eixo bitangente alvo que correspondem tanto ao índice do eixo normal do patch a ser codificado quanto ao índice das informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado. O índice do eixo tangente alvo é um índice do eixo tangente do patch a ser codificado, e o índice do eixo bitangente alvo é um índice do eixo bitangente do patch a ser codificado. A tabela que é consultada inclui uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch. Por exemplo, a tabela que é consultada pode ser a Tabela 4 ou a Tabela 5. Certamente, esta modalidade deste pedido não é limitada à mesma.
[0231] S102C: Determinar, de acordo com a regra de projeção, o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado. A regra de projeção se refere à distribuição, no espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches (por exemplo, todos os patches) na nuvem de pontos a ser codificada para o espaço bidimensional. Para uma implantação específica de determinação do eixo tangente do patch a ser codificado e do eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, consulte a S102A. De modo opcional, a regra de projeção pode incluir projeção vertical ou projeção horizontal.
[0232] A projeção vertical se refere a uma regra para permitir que mapas de ocupação obtidos projetando-se a maioria ou todos os patches em uma nuvem de pontos para um espaço bidimensional sejam verticalmente distribuídos no espaço bidimensional. Por exemplo, se o eixo tangente do patch for o eixo horizontal, e o eixo bitangente do patch for o eixo vertical, projeção vertical se refere a uma regra para permitir que um lado mais longo de um retângulo delimitador mínimo de mapas de ocupação obtidos projetando-se todos os patches na nuvem de pontos para o espaço bidimensional seja localizado no eixo bitangente.
[0233] A projeção horizontal se refere a uma regra para permitir que mapas de ocupação obtidos projetando-se a maioria ou todos os patches em uma nuvem de pontos para um espaço bidimensional sejam horizontalmente distribuídos no espaço bidimensional. Por exemplo, se o eixo tangente do patch for o eixo horizontal, e o eixo bitangente do patch for o eixo vertical, projeção horizontal se refere a uma regra para permitir que um lado mais longo de um retângulo delimitador mínimo de mapas de ocupação obtidos projetando-se todos os patches na nuvem de pontos para o espaço bidimensional seja localizado no eixo tangente do patch.
[0234] A regra de projeção pode ser predefinida, por exemplo, predefinida de acordo com um protocolo. Além disso, a regra de projeção pode ser determinada de acordo com um critério de custo de distorção de taxa. Por exemplo, a regra de projeção é determinada a partir de um conjunto de regra de projeção candidato de acordo com o critério de custo de distorção de taxa. O conjunto de regra de projeção candidato pode incluir pelo menos duas regras de projeção, por exemplo, incluindo projeção horizontal e projeção vertical.
[0235] De modo opcional, se a regra de projeção não for predefinida, após o codificador obter a regra de projeção, o codificador pode codificar, no fluxo de bits, informações usadas para indicar a regra de projeção, de modo a notificar a regra de projeção ao decodificador. Pode-se entender que as informações usadas para indicar a regra de projeção são informações de nível de quadro. Portanto, com referência à Figura 3, se a nuvem de pontos a ser codificada for o 1o quadro de nuvem de pontos no GOF, as informações usadas para indicar a regra de projeção podem ser codificadas no campo 1103 no fluxo de bits.
[0236] Quando a regra de projeção indicar projeção vertical, a relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch pode ser o caso na Solução 1 antecedente. Nesse caso, o codificador pode obter o eixo tangente e o eixo bitangente do patch a ser codificado consultando-se a Tabela
4. Quando a regra de projeção indicar projeção horizontal, a relação de mapeamento pode ser o caso na Solução 2 antecedente. Nesse caso, o codificador pode obter o eixo tangente e o eixo bitangente do patch a ser codificado consultando-se a Tabela 5.
[0237] A descrição antecedente é fornecida usando-se o exemplo em que a regra de projeção inclui projeção vertical e projeção horizontal. A regra de projeção pode incluir, adicionalmente, outra regra de projeção. Nesse caso, o codificador pode predefinir (por exemplo, predefinir de acordo com um protocolo) uma correspondência entre cada regra de projeção e “a relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch”. Desse modo, após determinar a regra de projeção para projetar a nuvem de pontos a ser codificada, o codificador pode obter “a relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch” que corresponde à regra de projeção, e determinar, adicionalmente, o eixo tangente e o eixo bitangente do patch a ser codificado com base na relação de mapeamento.
[0238] A Figura 12 é um fluxograma esquemático de um método de decodificação de nuvem de pontos de acordo com uma modalidade deste pedido. O método de decodificação de nuvem de pontos fornecido nesta modalidade corresponde ao método de codificação de nuvem de pontos fornecido na modalidade mostrada na Figura 9. Portanto, para explicações de conteúdo relacionado e efeitos benéficos nesta modalidade, consulte a modalidade mostrada na Figura 9. O método mostrado na Figura 12 pode incluir as etapas a seguir.
[0239] S201: Analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
[0240] A nuvem de pontos a ser decodificada pode ser uma nuvem de pontos que é transmitida por um codificador para um decodificador após o codificador codificar a nuvem de pontos a ser codificada na modalidade mostrada na Figura 9. O patch a ser decodificado pode ser um patch que é transmitido pelo codificador para o decodificador após o codificador codificar o patch a ser codificado na modalidade mostrada na Figura 9. Com referência à estrutura de fluxo de bits mostrada na Figura 3, se a nuvem de pontos a ser decodificada for o 1o quadro de nuvem de pontos no GOF, a S201 pode incluir: analisar o campo 1104, para obter o índice do eixo normal do patch a ser decodificado e as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
[0241] De modo opcional, as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado podem incluir uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
[0242] De modo opcional, as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado podem incluir um índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, ou informações de tamanho (ou informações de tamanho de lado) do retângulo delimitador mínimo que corresponde ao patch a ser decodificado. Um tipo específico de informações incluídas pode ser predefinido, por exemplo, predefinido de acordo com um protocolo, e as informações são consistentes com informações predefinidas pelo codificador. Certamente, esta modalidade deste pedido não é limitada a isso.
[0243] S202: Determinar um eixo tangente e um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise.
[0244] De modo opcional, o decodificador pode predefinir a relação de mapeamento a seguir, por exemplo, de acordo com um protocolo, em que a relação de mapeamento é consistente com uma relação de mapeamento predefinida pelo codificador. A relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais (ou índices da pluralidade de eixos normais) de um patch, uma pluralidade de tipos de informações de descrição (ou índices da pluralidade de tipos de informações de descrição) de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes (ou índices da pluralidade de eixos tangentes) do patch, e uma pluralidade de eixos bitangentes (ou índices da pluralidade de eixos bitangentes) do patch. Então, após o decodificador analisar o fluxo de bits para obter o índice do eixo normal do patch a ser decodificado e as informações de descrição usadas para indicar o retângulo delimitador mínimo que corresponde ao patch a ser decodificado, o decodificador obtém o eixo tangente do patch a ser decodificado (ou um índice do eixo tangente do patch a ser decodificado) e o eixo bitangente do patch a ser decodificado (ou um índice do eixo bitangente do patch a ser decodificado) com base na relação de mapeamento antecedente.
[0245] Se as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado incluírem as informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, o decodificador pode primeiro obter, com base nas informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, as informações de descrição (ou o índice das informações de descrição) do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, e obter, então, o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base na relação de mapeamento antecedente.
[0246] Se o decodificador armazenar a relação de mapeamento antecedente na forma de uma tabela, a relação de mapeamento antecedente pode ser a relação de mapeamento mostrada na Tabela 4 ou Tabela 5. Com base nisso, o decodificador pode obter o eixo tangente e o eixo bitangente do patch a ser decodificado consultando-se a tabela.
[0247] S203: Reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches (por exemplo, todos os patches) na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado.
[0248] Para as informações de geometria da nuvem de pontos e uma implantação específica da etapa S203, consulte as descrições antecedentes. Os detalhes não são descritos novamente neste documento.
[0249] Visto que o método de decodificação de nuvem de pontos fornecido nesta modalidade corresponde ao método de codificação de nuvem de pontos fornecido acima, para efeitos benéficos que podem ser alcançados nesta modalidade, consulte as descrições relacionadas na modalidade antecedente do método de codificação de nuvem de pontos.
[0250] De modo opcional, a etapa S202 pode ser implantada usando- se uma dentre as etapas S202A a S202C a seguir.
[0251] S202A: Determinar, com base na relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch. O eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado.
[0252] A S202A pode ser substituída pelo seguinte conteúdo: Determinar, com base em uma relação de mapeamento, um índice de um eixo tangente alvo e um índice de um eixo bitangente alvo que correspondem tanto ao índice do eixo normal do patch a ser decodificado quanto ao índice das informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: índices de uma pluralidade de eixos normais de um patch, índices de uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, índices de uma pluralidade de eixos tangentes do patch, e índices de uma pluralidade de eixos bitangentes do patch. O índice do eixo tangente alvo é um índice do eixo tangente do patch a ser decodificado, e o índice do eixo bitangente alvo é um índice do eixo bitangente do patch a ser decodificado. Especificamente, a relação de mapeamento pode ser mostrada na Tabela 4 ou na Tabela 5.
[0253] S202B: Consultar uma tabela com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado. O eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado. A tabela que é consultada inclui uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch.
[0254] A S202B pode ser substituída pelo seguinte conteúdo: Consultar uma tabela com base no índice do eixo normal do patch a ser decodificado e no índice das informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, para obter um índice de um eixo tangente alvo e um índice de um eixo bitangente alvo que correspondem tanto ao índice do eixo normal do patch a ser decodificado quanto ao índice das informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado. O índice do eixo tangente alvo é um índice do eixo tangente do patch a ser decodificado, e o índice do eixo bitangente alvo é um índice do eixo bitangente do patch a ser decodificado. A tabela que é consultada inclui uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais do patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch. Por exemplo, a tabela que é consultada pode ser a Tabela 4 ou a Tabela 5. Certamente, esta modalidade deste pedido não é limitada às mesmas.
[0255] S202C: Determinar, de acordo com uma regra de projeção (ou seja, uma regra de projeção usada para projetar a nuvem de pontos a ser decodificada), o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado. A regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser decodificada para o espaço bidimensional. De modo opcional, a regra de projeção inclui projeção vertical ou projeção horizontal.
[0256] De modo opcional, a regra de projeção pode ser predefinida, por exemplo, predefinida de acordo com um protocolo. Além disso, a regra de projeção é consistente com uma regra de projeção predefinida pelo codificador.
[0257] De modo opcional, a regra de projeção pode ser obtida pelo decodificador analisando-se o fluxo de bits. O elemento de sintaxe obtido analisando-se o fluxo de bits inclui informações usadas para indicar a regra de projeção. As informações usadas para indicar a regra de projeção são informações de nível de quadro. As informações específicas usadas para indicar a regra de projeção não são limitadas nesta modalidade deste pedido. Por exemplo, as informações podem ser um índice da regra de projeção. Por exemplo, se a regra de projeção indicar projeção vertical, o índice da regra de projeção pode ser 0. Se a regra de projeção indicar projeção horizontal, o índice da regra de projeção pode ser 1. Certamente, este pedido não é limitado a isso.
[0258] Em um exemplo, quando a regra de projeção indicar projeção vertical, a relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch pode ser o caso na Solução 1 antecedente. Nesse caso, o decodificador pode obter o eixo tangente e o eixo bitangente do patch a ser decodificado consultando-se a Tabela 4. Quando a regra de projeção indicar projeção horizontal, a relação de mapeamento pode ser o caso na Solução 2 antecedente. Nesse caso, o decodificador pode obter o eixo tangente e o eixo bitangente do patch a ser decodificado consultando-se a Tabela 5.
[0259] Pode-se entender que, quando as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado são a relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, o decodificador pode determinar diretamente o eixo tangente e o eixo bitangente do patch a ser decodificado em um dentre os Modos 1 a 3 a seguir. Quando as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado são as informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, o decodificador pode primeiro determinar a relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado e, então, determinar o eixo tangente e o eixo bitangente do patch a ser decodificado em um dentre os Modos 1 a 3 a seguir.
[0260] A Figura 13 é um fluxograma esquemático de um método de codificação de nuvem de pontos de acordo com uma modalidade deste pedido. O método pode incluir as etapas a seguir.
[0261] S301: Obter um eixo tangente de referência de um patch a ser codificado em uma nuvem de pontos a ser codificada e um eixo bitangente de referência do patch a ser codificado. Para descrições relacionadas da nuvem de pontos a ser codificada, do patch a ser codificado e do eixo tangente de referência e do eixo bitangente de referência do patch a ser codificado, consulte as descrições antecedentes. Os detalhes não são descritos novamente neste documento.
[0262] Especificamente, um índice do eixo tangente de referência do patch a ser codificado e um índice do eixo bitangente de referência do patch a ser codificado são obtidos consultando-se a Tabela 2 com base em um índice de um eixo normal do patch a ser codificado e, então, o eixo tangente de referência e o eixo bitangente de referência do patch a ser codificado são obtidos consultando-se a Tabela 1. Certamente, esta modalidade deste pedido não é limitada a isso.
[0263] S302: Determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  .
[0264] O ângulo de rotação  pode ser um ângulo obtido rotacionando-se no sentido horário ou anti-horário o eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado. O eixo tangente no presente documento pode ser substituído pelo eixo bitangente. Nesse caso, o eixo tangente de referência pode ser substituído pelo eixo bitangente de referência. Deve-se observar que, para facilitar a descrição, o conteúdo a seguir usa um exemplo em que uma direção de rotação é uma direção anti-horária para descrição. Uma descrição geral é fornecida no presente documento, e os detalhes não são descritos abaixo.
[0265] Se o eixo tangente de referência, o eixo bitangente de referência, o eixo tangente e o eixo bitangente do patch a ser codificado forem denotados, respectivamente, como um eixo U0, um eixo V0, um eixo U1 e um eixo V1, uma relação entre o eixo U0, o eixo V0, o eixo U1 e o eixo V1 nesta modalidade é: Um ângulo de rotação do eixo U1 em relação ao eixo U0 é  , e um ângulo de rotação do eixo V1 em relação ao eixo V0 é  .
[0266] Com base nisso, um patch, um mapa de pré-ocupação do patch e um mapa de ocupação do patch que são fornecidos nesta modalidade deste pedido são mostrados na Figura 14(a) à Figura 14(c). Se um eixo tangente de referência e um eixo bitangente de referência do patch mostrado na Figura 14(a) forem obtidos consultando-se a Tabela 2, e o patch for mapeado de um espaço tridimensional para um espaço bidimensional com base no eixo tangente de referência e no eixo bitangente de referência, o mapa de pré-ocupação obtido do patch é mostrado na Figura 14(b). Após o eixo tangente de referência e o eixo bitangente de referência serem rotacionados no sentido anti-horário por um ângulo de  , o mapa de ocupação obtido do patch é mostrado na Figura 14(c).
[0267] S303: Projetar o patch a ser codificado do espaço tridimensional para o espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado, para obter um mapa de ocupação do patch a ser codificado.
[0268] Para implantação específica desta etapa, consulte as descrições relacionadas no Modo 1 ou no Modo 2 a seguir, ou consulte uma tecnologia atual.
[0269] S304: Determinar um tamanho de um retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado. Subsequentemente, um codificador pode obter um mapa de profundidade, um mapa de textura e similares do patch a ser codificado com base no tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado.
[0270] O retângulo delimitador mínimo é estabelecido com base em um sistema de coordenadas que é constituído pelo eixo tangente de referência e o eixo bitangente de referência do patch a ser codificado. Em outras palavras, um eixo no qual um lado do retângulo delimitador mínimo está localizado é um eixo diferente do eixo normal do patch a ser codificado em um sistema de coordenadas mundial ou um eixo paralelo ao eixo, e um eixo no qual outro lado está localizado é outro eixo no sistema de coordenadas mundial ou um eixo paralelo ao outro eixo.
[0271] Pode-se entender que, para solucionar o problema técnico descrito na parte de antecedentes, as etapas S303 e S304 são recursos técnicos opcionais.
[0272] S305: Codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui um índice do eixo normal do patch a ser codificado e informações usadas para indicar o ângulo de rotação  do patch a ser codificado. De modo opcional, o elemento de sintaxe pode incluir, adicionalmente, o tamanho, determinado na S304, do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado, por exemplo, um tamanho do retângulo delimitador mínimo em cada eixo do sistema de coordenadas que é constituído pelo eixo tangente de referência e pelo eixo bitangente de referência do patch a ser codificado. O tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado é usado por um lado de decodificador para obter o mapa de profundidade, o mapa de textura e similares do patch a ser codificado, para reconstruir informações de geometria do patch a ser decodificado.
[0273] Tanto o índice do eixo normal do patch a ser codificado quanto as informações usadas para indicar o ângulo de rotação  do patch a ser codificado são informações de nível de patch. Portanto, com referência à estrutura de fluxo de bits mostrada na Figura 3, se a nuvem de pontos a ser codificada for o 1o quadro de nuvem de pontos no GOF, os dois fragmentos de informações podem ser codificados no campo 1104 no fluxo de bits. Os dois fragmentos de informações podem ser codificados no fluxo de bits ao mesmo tempo, ou os dois fragmentos de informações podem ser codificados no fluxo de bits em momentos diferentes. Além disso, informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado também são informações de nível de patch.
[0274] De modo opcional, as informações usadas para indicar o ângulo de rotação  do patch a ser codificado podem incluir: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser codificado.
[0275] Nesta modalidade, o eixo tangente e o eixo bitangente do patch a ser codificado são obtidos rotacionando-se o eixo tangente de referência e o eixo bitangente de referência do patch a ser codificado. Desse modo, posições de mapas de ocupação de patches em um mapa de ocupação de uma nuvem de pontos podem ser ajustadas definindo, de maneira apropriada, o ângulo de rotação, de modo que os mapas de ocupação dos patches sejam dispostos próximos no mapa de ocupação da nuvem de pontos. Isso aperfeiçoa o desempenho de codificação de nuvem de pontos, e adicionalmente aperfeiçoa o desempenho de decodificação de nuvem de pontos. Além disso, em comparação à modalidade mostrada na Figura 9, nesta modalidade, as posições dos mapas de ocupação dos patches no mapa de ocupação da nuvem de pontos podem ser definidas de modo mais flexível, de modo que os mapas de ocupação dos patches sejam dispostos de modo mais denso (ou mais próximos) no mapa de ocupação da nuvem de pontos.
[0276] De modo opcional, antes da S302, o método pode incluir, adicionalmente: determinar o ângulo de rotação  em um dentre os modos a seguir.
[0277] Modo 1: determinar o ângulo de rotação  do patch a ser codificado a partir de uma pluralidade de ângulos de rotação candidatos de acordo com um critério de custo de distorção de taxa.
[0278] De modo opcional, a pluralidade de ângulos de rotação candidatos podem ser ângulos obtidos dividindo-se, de modo não uniforme, 360° em N partes, em que N é um número inteiro maior do que ou igual a 2. Por exemplo, se N = 4, a pluralidade de ângulos de rotação candidatos pode ser 0°, 90°, 180° e 270°. Se N = 6, a pluralidade de ângulos de rotação candidatos pode ser 0°, 60°, 120°, 180°, 240° e 300°. Certamente, esta modalidade deste pedido não é limitada aos mesmos. Por exemplo, a pluralidade de ângulos de rotação candidatos podem ser, de modo alternativo, ângulos obtidos dividindo-se, de modo não uniforme, 360° em N partes.
[0279] Modo 1 pode incluir as seguintes etapas 1 a 3:
[0280] Etapa 1: Realizar as etapas a seguir 1-1 e 1-2 em um patch i (que é denotado um patch[i]) na nuvem de pontos a ser codificada. 0 ≤ i ≤ I – 1, i e I são números inteiros, e I representa uma quantidade de patches incluída na nuvem de pontos a ser codificada.
[0281] Etapa 1-1: Projetar o patch[i] do espaço tridimensional para o espaço bidimensional usando-se um eixo tangente de referência e um eixo bitangente de referência do patch[i], para obter um mapa de ocupação de referência do patch[i].
[0282] Etapa 1-2: Primeiro, percorrer N possíveis ângulos de rotação, e rotacionar no sentido anti-horário o mapa de ocupação de referência do patch[i] por cada possível ângulo de rotação, em que um mapa de ocupação de referência, obtido através de rotação, do patch[i] é um mapa de pré-ocupação do patch[i]. Então, inserir o mapa de pré-ocupação do patch [i] em uma região disponível de um mapa de pré-ocupação da nuvem de pontos a ser codificada. A região disponível é uma região, no mapa de pré-ocupação da nuvem de pontos a ser codificada, na qual um mapa de pré-ocupação de um patch pode ser inserido.
[0283] Especificamente, se o jésimo possível ângulo de rotação do j patch [i] for , em que 0 ≤ j ≤ N – 1, uma imagem obtida rotacionando-se no j sentido anti-horário, o mapa de ocupação de referência do patch [i] em ao redor da origem de coordenada de um sistema de coordenadas que é constituído pelo eixo tangente de referência e pelo eixo bitangente de referência do patch[i] é o mapa de pré-ocupação do patch[i] obtido através de rotação do ângulo de j rotação . Se coordenadas de um ponto P1 em um mapa de ocupação (ou seja, o mapa de ocupação de referência) do patch[i] forem (x1, y1), coordenadas de um ponto P2 obtidas através de rotação são (x2, y2), e x 2 = x 1cos j − y 1si n j y 2 = x 1si n j − y 1cos j .
[0284] Etapa 2: Após todos os patches na nuvem de pontos a ser codificada serem processados de acordo com a etapa 1, coletar estatística sobre um tamanho de cada mapa de pré-ocupação obtido na nuvem de pontos a ser codificada.
[0285] Por exemplo, se N = 4, pode haver quatro possíveis ângulos de rotação de cada patch: 0°, 90°, 180° e 270°. Visto que ângulos de rotação de quaisquer dois patches na nuvem de pontos a ser codificada podem ser iguais ou podem ser diferentes, se a nuvem de pontos a ser codificada incluir três patches (que são denotados patches 1 a 3), há 43 possíveis combinações (que são denotadas combinações 1 a 43) de ângulos de rotação de todos os patches na nuvem de pontos a ser codificada. 43 mapas de pré-ocupação (que são denotados mapas de pré-ocupação 1 a 43) da nuvem de pontos a ser codificada podem ser obtidos através de pré-empacotamento. Em outras palavras, neste exemplo, tamanhos dos mapas de pré-ocupação 1 a 43 precisam ser calculados separadamente. Esse é apenas um exemplo. Em implantação real, um possível ângulo de rotação de cada patch pode ser determinado com base em exigências (por exemplo, com base em uma exigência de complexidade de cálculo e uma exigência de sobrecarga de transmissão de fluxo de bits).
[0286] Etapa 3: Selecionar, de acordo com o critério de custo de distorção de taxa a partir de mapas de pré-ocupação da nuvem de pontos a ser codificada que são obtidos com base em todas as possíveis combinações, um mapa de pré-ocupação que possibilita que sobrecargas de transmissão de fluxo de bits sejam as menores ou um valor de sobrecargas de fluxo de bits seja menor do que ou igual a um limiar predefinido (por exemplo, selecionando um mapa de pré-ocupação que é da nuvem de pontos a ser codificada e que tem um menor tamanho), e usar um ângulo de rotação de cada patch que corresponde ao mapa de pré-ocupação selecionado como um ângulo de rotação ideal do patch correspondente. Pode-se entender que o mapa de pré-ocupação selecionado pode ser usado, subsequentemente, como o mapa de ocupação da nuvem de pontos a ser codificada.
[0287] Por exemplo, com base no exemplo na etapa 2, supondo que o mapa de pré-ocupação que tem o menor tamanho e que é selecionado a partir dos 43 mapas de pré-ocupação da nuvem de pontos a ser codificada de acordo com o critério de custo de distorção de taxa seja um mapa de ocupação 5, ângulos de rotação incluídos em uma combinação 5 são usados de modo correspondente como ângulos de rotação ideais de patches na nuvem de pontos a ser codificada. Por exemplo, se a combinação 5 incluir: um ângulo de rotação do patch 1 é 0°, um ângulo de rotação do patch 2 é 90°, e um ângulo de rotação do patch 3 é 180°, quando o patch a ser codificado é o patch 1, o ângulo de rotação  do patch a ser codificado é 0°; quando o patch a ser codificado é o patch 2, o ângulo de rotação  do patch a ser codificado é 90°; e quando o patch a ser codificado é o patch 3, o ângulo de rotação  do patch a ser codificado é 180°.
[0288] No modo 1, as informações usadas para indicar o ângulo de rotação  do patch a ser codificado podem incluir: o ângulo de rotação  , ou o índice do ângulo de rotação  .
[0289] Modo 2: Obter um ângulo de rotação de um patch que corresponde ao patch a ser codificado em uma nuvem de pontos codificada, e usar o ângulo de rotação obtido como o ângulo de rotação  do patch a ser codificado.
[0290] De modo opcional, a nuvem de pontos codificada pode ser qualquer quadro de nuvem de pontos codificada antes da nuvem de pontos a ser codificada. De modo opcional, a nuvem de pontos codificada pode ser uma nuvem de pontos codificada que pertence a um mesmo GOF que a nuvem de pontos a ser codificada. De modo opcional, a nuvem de pontos codificada pode ser um quadro anterior de nuvem de pontos codificada da nuvem de pontos a ser codificada.
[0291] O patch que corresponde ao patch a ser codificado é um patch com um custo de compatibilidade mínima. Por exemplo, o patch pode ser um patch que está na nuvem de pontos codificada, tem um mesmo eixo normal que o patch a ser codificado, e tem uma maior intersecção sobre união (Intersection- over-Union, IoU) entre um retângulo delimitador mínimo correspondente e o retângulo delimitador mínimo que corresponde ao patch a ser codificado.
[0292] No modo 2, as informações usadas para indicar o ângulo de rotação  do patch a ser codificado podem incluir: o identificador do patch que corresponde ao patch a ser codificado, ou o ângulo de rotação  , ou o índice do ângulo de rotação  .
[0293] Em uma implantação, o identificador do patch que corresponde ao patch a ser codificado é usado para indicar um índice do patch que corresponde ao patch a ser codificado. Nesse caso, o elemento de sintaxe pode incluir, adicionalmente, informações usadas para indicar se há um patch que corresponde ao patch a ser codificado na nuvem de pontos codificada. Por exemplo, o elemento de sintaxe pode incluir um identificador 1, e o identificador 1 é usado para indicar se há um patch que corresponde ao patch a ser codificado na nuvem de pontos codificada. Quando o identificador 1 é usado para indicar que há um patch que corresponde ao patch a ser codificado na nuvem de pontos codificada, o elemento de sintaxe pode incluir, adicionalmente, um identificador 2, e o identificador 2 é um índice do patch que corresponde ao patch a ser codificado.
[0294] Em outra implantação, o identificador do patch que corresponde ao patch a ser codificado é usado para indicar que há o patch que corresponde ao patch a ser codificado na nuvem de pontos codificada e um índice do patch que corresponde ao patch a ser codificado. Por exemplo, supõe- se que, quando há um patch que corresponde ao patch a ser codificado na nuvem de pontos codificada, o índice do patch que corresponde ao patch a ser codificado varie de 0 a P–1, em que P é um número inteiro maior do que ou igual a 1. Quando não há patch que corresponde ao patch a ser codificado na nuvem de pontos codificada, o índice do patch que corresponde ao patch a ser codificado é um valor padrão –1. Portanto, para facilitar a implantação, o fluxo de bits pode incluir um valor que é obtido adicionando-se 1 ao índice do patch que corresponde ao patch a ser codificado. Em outras palavras, quando há um patch que corresponde ao patch a ser codificado na nuvem de pontos codificada, o identificador do patch que corresponde ao patch a ser codificado é um valor maior do que 0, e é um valor obtido adicionando-se 1 ao índice do patch que corresponde ao patch a ser codificado. Quando não há patch que corresponde ao patch a ser codificado na nuvem de pontos codificada, o identificador do patch que corresponde ao patch a ser codificado é 0.
[0295] Deve-se observar que, no Modo 2, especificamente, o identificador do patch que corresponde ao patch a ser codificado é incluído no elemento de sintaxe para indicar, indiretamente, o ângulo de rotação  do patch a ser codificado. Visto que, em um modo de predição inter, o codificador precisa transmitir, ao decodificador, o identificador do patch que corresponde ao patch a ser codificado, pode-se considerar que, na solução técnica fornecida no Modo 2, as informações usadas para indicar o ângulo de rotação  não precisam ser transmitidas de modo adicional. Portanto, sobrecargas de transmissão de fluxo de bits podem ser reduzidas. Além disso, o codificador não precisa obter o ângulo de rotação  . Portanto, a complexidade de cálculo do codificador pode ser reduzida.
[0296] A Figura 15 é um fluxograma esquemático de um método de decodificação de nuvem de pontos de acordo com uma modalidade deste pedido. O método de decodificação de nuvem de pontos fornecido nesta modalidade corresponde ao método de codificação de nuvem de pontos fornecido na modalidade mostrada na Figura 13. Portanto, para explicações de conteúdo relacionado nesta modalidade, consulte a modalidade mostrada na Figura 13. O método mostrado na Figura 15 pode incluir as etapas a seguir.
[0297] S401: Analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar um ângulo de rotação  do patch a ser decodificado.
[0298] A nuvem de pontos a ser decodificada pode ser uma nuvem de pontos que é transmitida por um codificador para um decodificador após o codificador codificar a nuvem de pontos a ser codificada na modalidade mostrada na Figura 13. O patch a ser decodificado pode ser um patch que é transmitido pelo codificador para o decodificador após o codificador codificar o patch a ser codificado na modalidade mostrada na Figura 13. Com referência à estrutura de fluxo de bits mostrada na Figura 3, se a nuvem de pontos a ser decodificada for o 1o quadro de nuvem de pontos no GOF, a S401 pode incluir: analisar o campo 1104, para obter o índice do eixo normal do patch a ser decodificado e as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado.
[0299] De modo opcional, as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado podem incluir: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser decodificado. Um tipo específico de informações incluídas pode ser predefinido, por exemplo, predefinido de acordo com um protocolo, e as informações são consistentes com informações predefinidas pelo codificador. Certamente, esta modalidade deste pedido não é limitada ao mesmo.
[0300] Adicionalmente, de modo opcional, o identificador do patch que corresponde ao patch a ser decodificado é usado para indicar um índice do patch que corresponde ao patch a ser decodificado, ou usado para indicar que há o patch que corresponde ao patch a ser decodificado em uma nuvem de pontos decodificada e um índice do patch que corresponde ao patch a ser decodificado. Um tipo específico de informações que são indicadas pelo identificador do patch que corresponde ao patch a ser decodificado pode ser predefinido, por exemplo, predefinido de acordo com um protocolo, e as informações são consistentes com informações predefinidas pelo codificador. Certamente, esta modalidade deste pedido não é limitada a isso.
[0301] S402: Obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado, em que o índice é obtido através de análise. Por exemplo, um índice do eixo tangente de referência do patch a ser decodificado e um índice do eixo bitangente de referência do patch a ser decodificado são obtidos consultando-se a Tabela 2 com base no índice do eixo normal do patch a ser decodificado e, então, o eixo tangente de referência e o eixo bitangente de referência do patch a ser decodificado são obtidos consultando-se a Tabela 2.
[0302] S403: Determinar um eixo tangente do patch e um eixo bitangente do patch com base no eixo tangente de referência do patch a ser codificado, no eixo bitangente de referência do patch a ser decodificado, e nas informações que são usadas para indicar o ângulo de rotação  do patch a ser decodificado e que são obtidas através de análise.
[0303] S403 pode ser implantada usando-se uma dentre as seguintes etapas S403A a S403C:
[0304] S403A: Quando as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado incluírem o ângulo de rotação  , determinar o eixo tangente e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência e no eixo bitangente de referência do patch a ser decodificado e no ângulo de rotação  . Especificamente, o eixo tangente de referência do patch a ser decodificado é rotacionado no sentido anti-horário, ao redor da origem de coordenada (ou seja, a origem de coordenada de um sistema de coordenadas constituído pelo eixo tangente de referência e pelo eixo bitangente de referência do patch a ser decodificado) em –  (ou seja, rotacionado no sentido horário em  ), para obter o eixo tangente do patch a ser decodificado. De modo correspondente, o eixo bitangente de referência do patch a ser decodificado é rotacionado no sentido anti-horário em –  (ou seja, rotacionado no sentido horário em  ) ao redor da origem de coordenada, para obter o eixo bitangente do patch a ser decodificado.
[0305] S403B: Quando as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado incluírem o índice do ângulo de rotação  , obter o ângulo de rotação  indicado pelo índice do ângulo de rotação  e, então, determinar o eixo tangente e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência e no eixo bitangente de referência do patch a ser decodificado e no ângulo de rotação  .
[0306] S403C: Quando as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado incluírem o identificador do patch que corresponde ao patch a ser decodificado, determinar, com base no identificador que é do patch correspondente ao patch a ser decodificado e que é obtido através de análise, o patch que corresponde ao patch a ser decodificado, e obter um ângulo de rotação  do patch que corresponde ao patch a ser decodificado; e determinar o eixo tangente e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência e no eixo bitangente de referência do patch a ser decodificado e no ângulo de rotação  .
[0307] Por exemplo, se o identificador do patch que corresponde ao patch a ser decodificado for usado para indicar o índice do patch que corresponde ao patch a ser decodificado, o patch que corresponde ao patch a ser decodificado pode ser obtido consultando-se uma tabela com base no índice. A tabela que é consultada inclui uma relação de mapeamento entre os seguintes itens: uma pluralidade de patches e índices dos patches.
[0308] Por exemplo, se o identificador do patch que corresponde ao patch a ser decodificado for usado para indicar que há o patch que corresponde ao patch a ser decodificado na nuvem de pontos decodificada e o índice do patch que corresponde ao patch a ser decodificado, de modo opcional, se um valor do identificador não for 0, isso indica que há o patch que corresponde ao patch a ser decodificado na nuvem de pontos decodificado, e um valor obtido subtraindo- se 1 do valor do identificador é usado como o índice do patch que corresponde ao patch a ser decodificado.
[0309] S404: Reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado.
[0310] Para uma implantação específica da etapa S404, consulte as descrições antecedentes ou uma tecnologia atual.
[0311] De modo opcional, o elemento de sintaxe inclui, adicionalmente, informações usadas para indicar um tamanho de um retângulo delimitador mínimo de um mapa de ocupação do patch a ser decodificado. Nesse caso, S404 pode incluir: reconstruir as informações de geometria da nuvem de pontos a ser decodificada com base no um ou mais eixos tangentes e no um ou mais eixos bitangentes do um ou mais patches na nuvem de pontos a ser decodificada e nas informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser decodificado, em que as informações de tamanho são obtidas analisando-se o fluxo de bits. Para uma implantação específica, consulte as descrições antecedentes ou a tecnologia atual. Para descrições relacionadas tais como as informações de geometria da nuvem de pontos e as informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser decodificado, consulte as descrições antecedentes.
[0312] Visto que o método de decodificação de nuvem de pontos fornecido nesta modalidade corresponde ao método de codificação de nuvem de pontos fornecido na modalidade mostrada na Figura 13, para efeitos benéficos que podem ser alcançados nesta modalidade, consulte as descrições relacionadas na modalidade mostrada na Figura 13.
[0313] A Figura 16 é um fluxograma esquemático de um método de codificação de nuvem de pontos de acordo com uma modalidade deste pedido. O método pode incluir as etapas a seguir.
[0314] S501: Determinar um modo de predição de uma nuvem de pontos a ser codificada a partir de um conjunto de modo de predição candidato, em que o conjunto de modo de predição candidato inclui um modo de predição inter e um modo de predição intra, e o modo de predição da nuvem de pontos a ser codificada é usado para determinar um método para obter um eixo tangente e um eixo bitangente de um patch a ser codificado na nuvem de pontos a ser codificada.
[0315] O modo de predição inter é um modo em que o patch a ser codificado na nuvem de pontos é codificado com base em uma correlação entre nuvens de pontos. Por exemplo, o modo de predição inter é um modo em que um patch a ser codificado em outra nuvem de pontos é codificado com base em informações sobre uma nuvem de pontos codificada (por exemplo, um ângulo de rotação de um patch na nuvem de pontos codificada).
[0316] O modo de predição intra é um modo em que o patch a ser codificado na nuvem de pontos é codificado com base em informações sobre a nuvem de pontos (por exemplo, uma regra de projeção da nuvem de pontos).
[0317] De modo opcional, o modo de predição inter pode incluir, adicionalmente, um modo de predição inter 1, um modo de predição inter 2, ..., e um modo de predição inter M1, em que M1 é um número inteiro maior do que ou igual a 2. Da mesma maneira, o modo de predição intra pode incluir, adicionalmente, um modo de predição intra 1, um modo de predição intra 2, ..., e um modo de predição intra M2, em que M2 é um número inteiro maior do que ou igual a 2.
[0318] S502: Codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui informações usadas para indicar o modo de predição da nuvem de pontos a ser codificada.
[0319] As informações usadas para indicar o modo de predição da nuvem de pontos a ser codificada são informações de nível de quadro. Com referência à estrutura de fluxo de bits mostrada na Figura 3, se a nuvem de pontos a ser codificada for o 1o quadro de nuvem de pontos no GOF, as informações podem ser codificadas no campo 1103 no fluxo de bits. De modo opcional, as informações usadas para indicar o modo de predição da nuvem de pontos a ser codificada podem ser um índice do modo de predição da nuvem de pontos a ser codificada.
[0320] De modo opcional, quando o modo de predição da nuvem de pontos a ser codificada é o modo de predição inter, o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado inclui: obter um eixo tangente de referência do patch a ser codificado e um eixo bitangente de referência do patch a ser codificado; determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  ; e obter um ângulo de rotação de um patch que corresponde ao patch a ser codificado em uma nuvem de pontos codificada, e usar o ângulo de rotação obtido como um ângulo de rotação  do patch a ser codificado, em que o elemento de sintaxe inclui, adicionalmente, um identificador do patch que corresponde ao patch a ser codificado e um índice de um eixo normal do patch a ser codificado. Para um processo de implantação específico e descrições relacionadas do modo opcional, consulte a modalidade mostrada no Modo 2 na Figura 13.
[0321] De modo opcional, quando o modo de predição da nuvem de pontos a ser codificada é o modo de predição intra, o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado inclui: obter um eixo tangente de referência do patch a ser codificado e um eixo bitangente de referência do patch a ser codificado; determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  ; e determinar um ângulo de rotação  do patch a ser codificado a partir de uma pluralidade de ângulos de rotação candidatos de acordo com um critério de custo de distorção de taxa, em que o elemento de sintaxe inclui, adicionalmente, o ângulo de rotação  ou um índice do ângulo de rotação  , e um índice de um eixo normal do patch a ser codificado. Para um processo de implantação específico e descrições relacionadas do modo opcional, consulte a modalidade mostrada no Modo 1 na Figura 13.
[0322] De modo opcional, quando o modo de predição da nuvem de pontos a ser codificada é o modo de predição intra, o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado inclui: adquirir um eixo normal do patch a ser codificado e informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser codificado; e determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o elemento de sintaxe inclui, adicionalmente, um índice do eixo normal do patch a ser codificado e informações que são usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado. Para um processo de implantação específico e descrições relacionadas do modo opcional, consulte a modalidade mostrada na Figura 9.
[0323] De modo opcional, quando o modo de predição da nuvem de pontos a ser codificada é o modo de predição intra, o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado inclui: obter um eixo normal do patch a ser codificado, e determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado. Por exemplo, o eixo tangente e o eixo bitangente do patch a ser codificado são determinados consultando-se a Tabela 2. O elemento de sintaxe inclui, adicionalmente, um índice do eixo normal do patch a ser codificado.
[0324] Essa modalidade fornece uma solução de implantação para determinar “um método para obter um eixo tangente e um eixo bitangente de um patch a ser codificado em uma nuvem de pontos a ser codificada”. Essa solução técnica pode suportar um cenário em que uma pluralidade de métodos para obter o eixo tangente e o eixo bitangente do patch a ser codificado coexiste.
[0325] A Figura 17 é um fluxograma esquemático de um método de decodificação de nuvem de pontos de acordo com uma modalidade deste pedido. O método de decodificação de nuvem de pontos fornecido nesta modalidade corresponde ao método de codificação de nuvem de pontos fornecido na modalidade mostrada na Figura 16. Portanto, para explicações de conteúdo relacionado nesta modalidade, consulte a modalidade mostrada na Figura 16. O método mostrado na Figura 17 pode incluir as etapas a seguir.
[0326] S601: Analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe é usado para indicar um método para obter um eixo tangente de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e um eixo bitangente do patch a ser decodificado, o elemento de sintaxe inclui informações usadas para indicar um modo de predição da nuvem de pontos a ser decodificada, e o modo de predição da nuvem de pontos a ser decodificada inclui um modo de predição inter ou um modo de predição intra.
[0327] A nuvem de pontos a ser decodificada pode ser uma nuvem de pontos que é transmitida por um codificador para um decodificador após o codificador codificar a nuvem de pontos a ser codificada na modalidade mostrada na Figura 16. O patch a ser decodificado pode ser um patch que é transmitido pelo codificador para o decodificador após o codificador codificar o patch a ser codificado na modalidade mostrada na Figura 16. Com referência à estrutura de fluxo de bits mostrada na Figura 3, se a nuvem de pontos a ser decodificada for o 1o quadro de nuvem de pontos no GOF, a S601 pode incluir: analisar o campo 1103 para obter as informações usadas para indicar o modo de predição da nuvem de pontos a ser decodificada. De modo opcional, as informações usadas para indicar o modo de predição da nuvem de pontos a ser decodificada podem ser um índice do modo de predição da nuvem de pontos a ser decodificada.
[0328] S602: Obter o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado de acordo com o método, indicado pelo elemento de sintaxe, para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado.
[0329] De modo opcional, quando o modo de predição da nuvem de pontos a ser decodificada é o modo de predição inter, e o elemento de sintaxe inclui, adicionalmente, um identificador de um patch que corresponde ao patch a ser decodificado e um índice de um eixo normal do patch a ser decodificado, o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado inclui: obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice que é do eixo normal do patch a ser decodificado e que é obtido através de análise; determinar, com base no identificador que é do patch correspondente ao patch a ser decodificado e que é obtido através de análise, o patch que corresponde ao patch a ser decodificado, e obter um ângulo de rotação  do patch que corresponde ao patch a ser decodificado; e determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e no ângulo de rotação  . Para um processo de implantação específico e descrições relacionadas do modo opcional, consulte a modalidade relacionada mostrada na Figura 15.
[0330] De modo opcional, quando o modo de predição da nuvem de pontos a ser decodificada é o modo de predição intra, e o elemento de sintaxe inclui, adicionalmente, o ângulo de rotação  do patch a ser decodificado ou um índice do ângulo de rotação  do patch a ser decodificado, e um índice de um eixo normal do patch a ser decodificado, o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado inclui: obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice que é do eixo normal do patch a ser decodificado e que é obtido através de análise; e determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e no ângulo de rotação  . Para um processo de implantação específico e descrições relacionadas do modo opcional, consulte a modalidade relacionada mostrada na Figura 15.
[0331] De modo opcional, quando o modo de predição da nuvem de pontos a ser decodificada é o modo de predição intra, e o elemento de sintaxe inclui, adicionalmente, um índice de um eixo normal do patch a ser decodificado e informações usadas para indicar informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser decodificado, o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado inclui: determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice do eixo normal e as informações usadas para indicar as informações de descrição são obtidos através de análise. Para um processo de implantação específico e descrições relacionadas do modo opcional, consulte a modalidade relacionada mostrada na Figura 12.
[0332] De modo opcional, quando o modo de predição da nuvem de pontos a ser decodificada é o modo de predição intra, e o elemento de sintaxe inclui, adicionalmente, um índice de um eixo normal do patch a ser decodificado, o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado inclui: determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no índice que é do eixo normal do patch a ser decodificado e que é obtido através de análise. Por exemplo, o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado são determinados consultando-se a Tabela 2.
[0333] O método de decodificação de nuvem de pontos fornecido nesta modalidade corresponde ao método de codificação de nuvem de pontos fornecido na modalidade mostrada na Figura 16. Essa modalidade fornece uma solução de implantação para determinar “um método para obter um eixo tangente e um eixo bitangente de um patch a ser decodificado em uma nuvem de pontos a ser decodificada”. Essa solução técnica pode suportar um cenário em que uma pluralidade de métodos para obter o eixo tangente e o eixo bitangente do patch a ser decodificado coexiste.
[0334] O conteúdo antecedente descreve, essencialmente, as soluções fornecidas nas modalidades deste pedido a partir de uma perspectiva dos métodos. Para implantar as funções antecedentes, aparelhos incluem estruturas de hardware correspondentes e/ou módulos de software para realizar as funções. Um versado na técnica deve estar ciente de que, em combinação com unidades e etapas de algoritmo dos exemplos descritos nas modalidades reveladas neste relatório descritivo, este pedido pode ser implantado por hardware ou uma combinação de hardware e software de computador. O fato de uma função ser realizada por hardware ou hardware conduzido por software de computador depende de aplicações particulares e restrições de projeto das soluções técnicas. Uma pessoa versada na técnica pode utilizar diferentes métodos para implantar as funções descritas para cada aplicação particular, mas não se deve considerar que a implantação se estenda além do escopo deste pedido.
[0335] A divisão em módulos funcionais pode ser realizada em um codificador e um decodificador nas modalidades deste pedido com base nos exemplos de método antecedentes. Por exemplo, cada módulo funcional pode ser obtido através de divisão em correspondência com cada função, ou pelo menos duas funções podem ser integradas em um módulo de processamento. O módulo integrado pode ser implantado em uma forma de hardware, ou pode ser implantado em uma forma de um módulo funcional de software. Deve-se observar, nas modalidades deste pedido, que divisão em módulos é um exemplo, e é apenas uma divisão de função lógica. Em implantação real, divisão em módulos pode ser realizada de outro modo.
[0336] A Figura 18 é um diagrama de blocos esquemático de um codificador 180 de acordo com uma modalidade deste pedido. O codificador 180 pode incluir um módulo de geração de informações de patch 1801 e um módulo de codificação de informações auxiliares 1802. Em um exemplo, o módulo de geração de informações de patch 1801 pode corresponder ao módulo de geração de informações de patch 101 na Figura 2, e o módulo de codificação de informações auxiliares 1802 pode corresponder ao módulo de codificação de informações auxiliares 108 na Figura 2. Certamente, este pedido não é limitado a isso.
[0337] O conteúdo a seguir descreve uma implantação viável de realização de codificação com base em nuvem de pontos pelo codificador 180.
[0338] Em uma implantação viável, o módulo de geração de informações de patch 1801 é configurado para adquirir um eixo normal de um patch a ser codificado em uma nuvem de pontos a ser codificada e informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o eixo normal do patch a ser codificado e as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado são usados para determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado; e o módulo de codificação de informações auxiliares 1802 é configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui um índice do eixo normal do patch a ser codificado e informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado. Por exemplo, o módulo de geração de informações de patch 1801 pode ser configurado para realizar S101 na Figura 9 e/ou outra etapa descrita nas modalidades deste pedido; e o módulo de codificação de informações auxiliares 1802 pode ser configurado para realizar S104 na Figura 9 e/ou outra etapa descrita nas modalidades deste pedido.
[0339] Em uma implantação viável, as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado podem incluir uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
[0340] Em uma implantação viável, as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado incluem um índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser codificado, ou informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
[0341] Em uma implantação viável, o módulo de geração de informações de patch 1801 é configurado, adicionalmente, para: determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado; e projetar o patch a ser codificado de um espaço tridimensional para um espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado. Por exemplo, o módulo de geração de informações de patch 1801 pode ser configurado para realizar S101 na Figura 9 e/ou outra etapa descrita nas modalidades deste pedido; e o módulo de codificação de informações auxiliares 1802 pode ser configurado para realizar S104 na Figura 9 e/ou outra etapa descrita nas modalidades deste pedido.
[0342] Em uma implantação viável, o módulo de geração de informações de patch 1801 é configurado, especificamente, para: determinar, de acordo com uma regra de projeção, o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a regra de projeção se refere à distribuição, no espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser codificada para o espaço bidimensional.
[0343] Em uma implantação viável, a regra de projeção é predefinida, ou a regra de projeção é determinada de acordo com um critério de custo de distorção de taxa.
[0344] Em uma implantação viável, se a regra de projeção for determinada de acordo com o critério de custo de distorção de taxa, o elemento de sintaxe inclui, adicionalmente, informações usadas para indicar a regra de projeção.
[0345] Em uma implantação viável, o módulo de geração de informações de patch 1801 é configurado, especificamente, para: determinar, com base em uma relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch; e o eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado.
[0346] Em uma implantação viável, o módulo de geração de informações de patch 1801 é configurado, especificamente, para: consultar uma tabela com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado, e a tabela inclui uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch.
[0347] Em uma implantação viável, se uma regra de projeção indicar projeção vertical, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado.
[0348] Em uma implantação viável, se uma regra de projeção indicar projeção horizontal, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado.
[0349] A regra de projeção se refere à distribuição, no espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser codificada para o espaço bidimensional. O eixo normal do patch a ser codificado é perpendicular ao espaço bidimensional.
[0350] A Figura 19 é um diagrama de blocos esquemático de um decodificador 190 de acordo com uma modalidade deste pedido. O decodificador 190 pode incluir um módulo de decodificação de informações auxiliares 1901 e um módulo de reconstrução de informações de geometria de nuvem de pontos
1902. Em um exemplo, o módulo de decodificação de informações auxiliares 1901 pode corresponder ao módulo de decodificação de informações auxiliares 204 na Figura 4, e o módulo de reconstrução de informações de geometria de nuvem de pontos 1902 pode corresponder ao módulo de reconstrução de informações de geometria de nuvem de pontos 205 na Figura 4. Certamente, este pedido não é limitado a isso.
[0351] O conteúdo a seguir descreve uma implantação viável de realização de decodificação com base em nuvem de pontos pelo decodificador
190.
[0352] Em uma implantação viável, o módulo de decodificação de informações auxiliares 1901 é configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser decodificado; e determinar um eixo tangente do patch a ser decodificado e um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise. O módulo de reconstrução de informações de geometria de nuvem de pontos 1902 é configurado para reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado. Por exemplo, o módulo de decodificação de informações auxiliares 1901 pode ser configurado para realizar S201 e S202 na Figura 12 e/ou outra etapa descrita nas modalidades deste pedido, e o módulo de reconstrução de informações de geometria de nuvem de pontos 1902 pode ser configurado para realizar S203 na Figura 12 e/ou outra etapa descrita nas modalidades deste pedido.
[0353] Em uma implantação viável, as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado incluem uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
[0354] Em uma implantação viável, as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado incluem um índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, ou informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
[0355] Em uma implantação viável, o módulo de decodificação de informações auxiliares 1901 é configurado, especificamente, para determinar, de acordo com uma regra de projeção, o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser decodificada para o espaço bidimensional.
[0356] Em uma implantação viável, a regra de projeção é predefinida; ou o elemento de sintaxe inclui, adicionalmente, informações usadas para indicar a regra de projeção e, de modo correspondente, a regra de projeção é uma regra de projeção indicada pelo elemento de sintaxe que é obtido analisando-se o fluxo de bits.
[0357] Em uma implantação viável, o módulo de decodificação de informações auxiliares 1901 é configurado, especificamente, para: determinar, com base em uma relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch; e o eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado.
[0358] Em uma implantação viável, o módulo de decodificação de informações auxiliares 1901 é configurado, especificamente, para: consultar uma tabela com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado, e a tabela inclui uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch.
[0359] Em uma implantação viável, se uma regra de projeção indicar projeção vertical, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo bitangente do patch a ser decodificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo tangente do patch a ser decodificado; ou se uma regra de projeção indicar projeção horizontal, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo tangente do patch a ser decodificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo bitangente do patch a ser decodificado. A regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser decodificada para o espaço bidimensional, e o eixo normal do patch a ser decodificado é perpendicular ao espaço bidimensional.
[0360] O conteúdo a seguir descreve algumas outras implantações viáveis de realização de codificação com base em nuvem de pontos pelo codificador 180.
[0361] Em uma implantação viável, o módulo de geração de informações de patch 1801 é configurado para: obter um eixo tangente de referência de um patch a ser codificado em uma nuvem de pontos a ser codificada e um eixo bitangente de referência do patch a ser codificado; e determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  ; e o módulo de codificação de informações auxiliares 1802 é configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui um índice de um eixo normal do patch a ser codificado e informações usadas para indicar o ângulo de rotação  do patch a ser codificado. Por exemplo, o módulo de geração de informações de patch 1801 pode ser configurado para realizar S301 e S302 na Figura 13 e/ou outra etapa descrita nas modalidades deste pedido; e o módulo de codificação de informações auxiliares 1802 pode ser configurado para realizar S305 na Figura 13 e/ou outra etapa descrita nas modalidades deste pedido.
[0362] Em uma implantação viável, as informações usadas para indicar o ângulo de rotação  do patch a ser codificado incluem: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser codificado.
[0363] Em uma implantação viável, o identificador do patch que corresponde ao patch a ser codificado é usado para indicar um índice do patch que corresponde ao patch a ser codificado, ou usado para indicar que há o patch que corresponde ao patch a ser codificado em uma nuvem de pontos codificada e um índice do patch que corresponde ao patch a ser codificado.
[0364] Em uma implantação viável, o módulo de geração de informações de patch 1801 é configurado, adicionalmente, para: determinar o ângulo de rotação  a partir de uma pluralidade de ângulos de rotação candidatos de acordo com um critério de custo de distorção de taxa; ou obter um ângulo de rotação do patch que corresponde ao patch a ser codificado da nuvem de pontos codificada, e usar o ângulo de rotação obtido como o ângulo de rotação  do patch a ser codificado.
[0365] Em uma implantação viável, o módulo de geração de informações de patch 1801 é configurado, adicionalmente, para: projetar o patch a ser codificado de um espaço tridimensional para um espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado, para obter um mapa de ocupação do patch a ser codificado; e determinar um retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado. O elemento de sintaxe inclui, adicionalmente, informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado. Por exemplo, o módulo de geração de informações de patch 1801 pode ser configurado para realizar S303 e S304 na Figura 13.
[0366] O conteúdo a seguir descreve algumas outras implantações viáveis de realização de decodificação com base em nuvem de pontos pelo decodificador 190.
[0367] Em uma implantação viável, o módulo de decodificação de informações auxiliares 1901 é configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar um ângulo de rotação  do patch a ser decodificado; obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado, em que o índice é obtido através de análise; e determinar um eixo tangente do patch e um eixo bitangente do patch com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e nas informações que são usadas para indicar o ângulo de rotação  do patch a ser decodificado e que são obtidas através de análise; e o módulo de reconstrução de informações de geometria de nuvem de pontos 1902 é configurado para reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado. Por exemplo, o módulo de decodificação de informações auxiliares 1901 pode ser configurado para realizar S401, S402 e S403 na Figura 15 e/ou outra etapa descrita nas modalidades deste pedido, e o módulo de reconstrução de informações de geometria de nuvem de pontos 1902 pode ser configurado para realizar S404 na Figura 15 e/ou outra etapa descrita nas modalidades deste pedido.
[0368] Em uma implantação viável, as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado incluem: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser decodificado.
[0369] Em uma implantação viável, o identificador do patch que corresponde ao patch a ser decodificado é usado para indicar um índice do patch que corresponde ao patch a ser decodificado, ou usado para indicar se há o patch que corresponde ao patch a ser decodificado em uma nuvem de pontos decodificada e um índice do patch que corresponde ao patch a ser decodificado.
[0370] Em uma implantação viável, as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado incluem o identificador do patch que corresponde ao patch a ser decodificado; e o módulo de decodificação de informações auxiliares 1901 é configurado, especificamente, para: determinar, com base no identificador que é do patch correspondente ao patch a ser decodificado e que é obtido através de análise, o patch que corresponde ao patch a ser decodificado, e obter um ângulo de rotação  do patch que corresponde ao patch a ser decodificado; e determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e no ângulo de rotação  .
[0371] Em uma implantação viável, o elemento de sintaxe inclui,
adicionalmente, informações de tamanho de um retângulo delimitador mínimo de um mapa de ocupação do patch a ser decodificado; e o módulo de reconstrução de informações de geometria de nuvem de pontos 1902 é configurado, especificamente, para: reconstruir as informações de geometria da nuvem de pontos a ser decodificada com base no um ou mais eixos tangentes e no um ou mais eixos bitangentes do um ou mais patches na nuvem de pontos a ser decodificada e nas informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser decodificado, em que as informações de tamanho são obtidas analisando-se o fluxo de bits.
[0372] O conteúdo a seguir descreve algumas outras implantações viáveis de realização de codificação com base em nuvem de pontos pelo codificador 180.
[0373] Em uma implantação viável, o módulo de geração de informações de patch 1801 é configurado para: projetar um patch a ser codificado de um espaço tridimensional para um espaço bidimensional, para obter um primeiro mapa de ocupação do patch a ser codificado; e obter um segundo mapa de ocupação do patch a ser codificado, em que o segundo mapa de ocupação do patch a ser codificado é obtido rotacionando-se no sentido horário ou anti-horário o primeiro mapa de ocupação do patch a ser codificado por um ângulo de rotação  ; e o módulo de codificação de informações auxiliares 1802 é configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe inclui informações usadas para indicar o ângulo de rotação  .
[0374] Em uma implantação viável, coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser codificado são obtidas com base em coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser codificado e em uma matriz de rotação, em que a matriz de rotação corresponde ao ângulo de rotação.
[0375] Em uma implantação viável, a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
[0376] Em uma implantação viável, a matriz de rotação é
cos  − sin    sin  − cos   representada por  .
[0377] Em uma implantação viável, quando o ângulo de rotação  1 0  0 −1 for 0°, a matriz de rotação é representada por   ; quando o ângulo de 0 −1 1 0  rotação  for 90°, a matriz de rotação é representada por   ; quando o  −1 0   0 1 ângulo de rotação  for 180°, a matriz de rotação é representada por  ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é representada  0 1  −1 0  por  .
[0378] Em uma implantação viável, coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser codificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são x 2 = x 1 cos  − y 1si n  obtidas através de rotação: y 2 = x 1si n  − y 1 cos  .
[0379] Em uma implantação viável, coordenadas (x2, y2) de P2 no segundo mapa de ocupação do patch a ser codificado são obtidas de acordo x 2 = x 1 cos  − y 1si n  com a seguinte fórmula: y 2 = x 1si n  − y 1 cos  , em que (x1, y1) representa coordenadas de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado, e  representa o ângulo de rotação.
[0380] Em uma implantação viável, o segundo mapa de ocupação é obtido rotacionando-se no sentido horário ou anti-horário o primeiro mapa de ocupação do patch a ser codificado pelo ângulo de rotação  ao redor de uma origem de coordenada de um sistema de coordenadas constituído por um primeiro eixo tangente e um primeiro eixo bitangente.
[0381] Em uma implantação viável, as informações usadas para indicar o ângulo de rotação  são um índice usado para indicar o ângulo de rotação  .
[0382] Em uma implantação viável, um ângulo de rotação por meio do qual um segundo eixo tangente do patch a ser codificado rotaciona em relação a um primeiro eixo tangente do patch a ser codificado é  , e um ângulo de rotação por meio do qual um segundo eixo bitangente do patch a ser codificado rotaciona em relação a um primeiro eixo bitangente do patch a ser codificado é .
[0383] De modo correspondente, algumas outras implantações viáveis de realização de decodificação com base em nuvem de pontos pelo decodificador 190 são descritas.
[0384] Em uma implantação viável, o módulo de decodificação de informações auxiliares 1901 é configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe inclui informações usadas para indicar um ângulo de rotação  de um patch a ser decodificado; e obter um segundo mapa de ocupação do patch a ser decodificado; e o módulo de reconstrução de informações de geometria de nuvem de pontos 1902 é configurado para: obter um primeiro mapa de ocupação do patch a ser decodificado, em que o primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário o segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  ; e reconstruir uma nuvem de pontos a ser decodificada com base em um ou mais primeiros mapas de ocupação de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado.
[0385] Em uma implantação viável, coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser decodificado e em uma matriz de rotação, em que a matriz de rotação corresponde ao ângulo de rotação.
[0386] Em uma implantação viável, a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
[0387] Em uma implantação viável, a matriz de rotação é
cos  − sin    sin  − cos   representada por  , ou a matriz de rotação é representada por cos  − sin    sin  − cos   uma matriz inversa de  .
[0388] Em uma implantação viável, quando o ângulo de rotação  1 0  0 −1 for 0°, a matriz de rotação é representada por   ; quando o ângulo de 0 −1 1 0  rotação  for 90°, a matriz de rotação é representada por   ; quando o  −1 0   0 1 ângulo de rotação  for 180°, a matriz de rotação é representada por  ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é representada  0 1  −1 0  por  .
[0389] Em uma implantação viável, quando o ângulo de rotação  1 0  0 −1 for 0°, a matriz de rotação é representada por uma matriz inversa de  ; quando o ângulo de rotação  for 90°, a matriz de rotação é representada por 0 −1 1 0  uma matriz inversa de   ; quando o ângulo de rotação  for 180°, a  −1 0   0 1 matriz de rotação é representada por uma matriz inversa de   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é representada por  0 1  −1 0  uma matriz inversa de  .
[0390] Em uma implantação viável, coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado e coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado satisfazem a seguinte fórmula, em que as coordenadas (x1, y1) do x 2 = x 1 cos  − y 1si n  ponto P1 são obtidas através de contrarrotação: y 2 = x 1si n  − y 1 cos  ou x 1 = x 2 cos  + y 2 si n  y 1 = −x 2 si n  − y 2 cos  .
[0391] Em uma implantação viável, coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado são obtidas de x 2 = x 1 cos  − y 1si n  acordo com a seguinte fórmula: y 2 = x 1si n  − y 1 cos  ou x 1 = x 2 cos  + y 2 si n  y 1 = −x 2 si n  − y 2 cos  , em que (x2, y2) representa coordenadas de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado, e  representa o ângulo de rotação.
[0392] Em uma implantação viável, o primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário o segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  ao redor de uma origem de coordenada de um sistema de coordenadas constituído por um primeiro eixo tangente e um primeiro eixo bitangente.
[0393] Em uma implantação viável, as informações usadas para indicar o ângulo de rotação  são um índice usado para indicar o ângulo de rotação  .
[0394] Em uma implantação viável, um ângulo de rotação por meio do qual um segundo eixo tangente do patch a ser decodificado rotaciona em relação a um primeiro eixo tangente do patch a ser decodificado é  , e um ângulo de rotação por meio do qual um segundo eixo bitangente do patch a ser decodificado rotaciona em relação a um primeiro eixo bitangente do patch a ser decodificado é  .
[0395] Em uma implantação viável, o módulo de decodificação de informações auxiliares 1901 é configurado, especificamente, para: analisar o fluxo de bits para obter o segundo mapa de ocupação do patch a ser decodificado; ou analisar o fluxo de bits para obter informações que são usadas para indicar o segundo mapa de ocupação do patch a ser decodificado, e obter o segundo mapa de ocupação do patch a ser decodificado com base nas informações que são usadas para indicar o segundo mapa de ocupação do patch a ser decodificado.
[0396] O conteúdo a seguir descreve algumas outras implantações viáveis de realização de codificação com base em nuvem de pontos pelo codificador 180.
[0397] O módulo de geração de informações de patch 1801 é configurado para: projetar um patch a ser codificado de um espaço tridimensional para um espaço bidimensional, para obter um primeiro mapa de ocupação do patch a ser codificado; e obter um segundo mapa de ocupação do patch a ser codificado, em que coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser codificado são obtidas com base em coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser codificado e em uma matriz de rotação, em que a matriz de rotação corresponde a um ângulo de rotação  ; e o módulo de codificação de informações auxiliares 1802 é configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe inclui informações usadas para indicar o ângulo de rotação .
[0398] Em uma implantação viável, a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
[0399] Em uma implantação viável, a matriz de rotação é cos  − sin    sin  − cos   representada por  .
[0400] Em uma implantação viável, quando o ângulo de rotação  1 0  0 −1 for 0°, a matriz de rotação é representada por   ; quando o ângulo de 0 −1 1 0  rotação  for 90°, a matriz de rotação é representada por   ; quando o  −1 0   0 1 ângulo de rotação  for 180°, a matriz de rotação é representada por  ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é representada
 0 1  −1 0  por  .
[0401] Em uma implantação viável, coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser codificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são x 2 = x 1 cos  − y 1si n  obtidas através de rotação: y 2 = x 1si n  − y 1 cos  .
[0402] Além disso, uma modalidade deste pedido fornece um aparelho de decodificação, incluindo uma memória de nuvem de pontos e um decodificador de nuvem de pontos. A memória de nuvem de pontos é configurada para armazenar dados de nuvem de pontos. O decodificador de nuvem de pontos é configurado para reconstruir informações de geometria de uma nuvem de pontos a ser decodificada com base em um ou mais primeiros mapas de ocupação de um ou mais patches a serem decodificados na nuvem de pontos a ser decodificada, em que o um ou mais patches incluem o patch a ser decodificado, coordenadas (x1, y1) de um primeiro ponto do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um segundo ponto do patch a ser decodificado e em uma matriz de rotação, e a matriz de rotação corresponde a um ângulo de rotação  do patch a ser decodificado.
[0403] Em uma implantação viável, o fato de coordenadas (x1, y1) de um primeiro ponto do patch a ser decodificado serem obtidas com base em coordenadas (x2, y2) de um segundo ponto do patch a ser decodificado e em uma matriz de rotação significa que coordenadas (x1, y1) de um ponto em um primeiro mapa de ocupação do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um ponto em um segundo mapa de ocupação do patch a ser decodificado e em uma matriz de rotação.
[0404] Em uma implantação viável, as coordenadas (x1, y1) do primeiro ponto do patch a ser decodificado são coordenadas (x1, y1) de um ponto em um primeiro mapa de ocupação do patch a ser decodificado, e as coordenadas (x2, y2) do segundo ponto do patch a ser decodificado são coordenadas (x2, y2) de um ponto em um segundo mapa de ocupação do patch a ser decodificado.
[0405] Em uma implantação viável, um primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário um segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  , ou um segundo mapa de ocupação do patch a ser decodificado é obtido rotacionando-se no sentido horário ou anti-horário um primeiro mapa de ocupação do patch a ser decodificado pelo ângulo de rotação .
[0406] Em uma implantação viável, a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
[0407] Em uma implantação viável, a matriz de rotação é cos  − sin    sin  − cos   representada por  .
[0408] Em uma implantação viável, quando o ângulo de rotação  1 0  0 −1 for 0°, a matriz de rotação é representada por   ; quando o ângulo de 0 −1 1 0  rotação  for 90°, a matriz de rotação é representada por   ; quando o  −1 0   0 1 ângulo de rotação  for 180°, a matriz de rotação é representada por  ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é representada  0 1  −1 0  por  .
[0409] Em uma implantação viável, coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do x 2 = x 1 cos  − y 1si n  ponto P2 são obtidas através de rotação: y 2 = x 1si n  − y 1 cos  .
[0410] A Figura 20 é um diagrama de blocos esquemático de um codificador 210 de acordo com uma modalidade deste pedido. O codificador 210 pode incluir um módulo de determinação de modo de predição 2101 e um módulo de codificação de informações auxiliares 2102. Em um exemplo, o módulo de determinação de modo de predição 2101 pode corresponder ao módulo de determinação de modo de predição relacionado nas descrições antecedentes do codificador mostrado na Figura 2, e o módulo de codificação de informações auxiliares 2102 pode corresponder ao módulo de codificação de informações auxiliares 108 na Figura 2. Certamente, este pedido não é limitado a isso.
[0411] O conteúdo a seguir descreve algumas implantações viáveis de realização de codificação com base em nuvem de pontos pelo codificador 210.
[0412] Em uma implantação viável, o módulo de determinação de modo de predição 2101 é configurado para determinar um modo de predição de uma nuvem de pontos a ser codificada a partir de um conjunto de modo de predição candidato, em que o conjunto de modo de predição candidato inclui um modo de predição inter e um modo de predição intra, e o modo de predição da nuvem de pontos a ser codificada é usado para determinar um método para obter um eixo tangente de um patch a ser codificado na nuvem de pontos a ser codificada e um eixo bitangente do patch a ser codificado; e o módulo de codificação de informações auxiliares 2102 é configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe inclui informações usadas para indicar o modo de predição da nuvem de pontos a ser codificada. Por exemplo, o módulo de determinação de modo de predição 2101 pode ser configurado para realizar S501 na Figura 16, e o módulo de codificação de informações auxiliares 2102 pode ser configurado para realizar S502 na Figura 16 e/ou outra etapa descrita nas modalidades deste pedido.
[0413] Para casos em que o modo de predição da nuvem de pontos a ser codificada é o modo de predição inter ou o modo de predição intra, para descrições relacionadas do método para obter o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, consulte os projetos relacionados no quinto aspecto na parte de sumário ou nas descrições relacionadas na modalidade mostrada na Figura 16.
[0414] A Figura 21 é um diagrama de blocos esquemático de um decodificador 220 de acordo com uma modalidade deste pedido. O decodificador
220 pode incluir um módulo de decodificação de informações auxiliares 2201. Em um exemplo, o módulo de decodificação de informações auxiliares 2201 pode corresponder ao módulo de decodificação de informações auxiliares 204 na Figura 4. Certamente, este pedido não é limitado a isso.
[0415] Em uma implantação viável, o módulo de decodificação de informações auxiliares 2201 é configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe é usado para indicar um método para obter um eixo tangente de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e um eixo bitangente do patch a ser decodificado, o elemento de sintaxe inclui informações usadas para indicar um modo de predição da nuvem de pontos a ser decodificada, e o modo de predição da nuvem de pontos a ser decodificada inclui um modo de predição inter ou um modo de predição intra; e obter o método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado de acordo com o método, indicado pelo elemento de sintaxe, para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado. Por exemplo, o módulo de decodificação de informações auxiliares 2201 pode ser configurado para realizar S601 e S602 na Figura 17 e/ou outra etapa descrita nas modalidades deste pedido.
[0416] Para casos em que o modo de predição da nuvem de pontos a ser decodificada é o modo de predição inter ou o modo de predição intra, para descrições relacionadas do método para obter o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado, consulte os projetos relacionados no sexto aspecto na parte de sumário ou as descrições relacionadas na modalidade mostrada na Figura 17.
[0417] Pode-se entender que os módulos no codificador/decodificador nas modalidades deste pedido são entidades funcionais que implantam várias etapas de execução incluídas no método de codificação/decodificação de nuvem de pontos que corresponde a este pedido. De modo específico, os módulos são entidades funcionais que podem implantar todas as etapas no método de codificação/decodificação de nuvem de pontos que corresponde a este pedido e extensão e transformação dessas etapas. Para detalhes, consulte as descrições do método de codificação/decodificação nuvem de pontos neste relatório descritivo. Por questão de concisão, os detalhes não são descritos neste relatório descritivo.
[0418] A Figura 22 é um diagrama de blocos esquemático de uma implantação de um dispositivo de codificação ou um dispositivo de decodificação (denominado, de maneira concisa, um dispositivo de codificação 230 ou um dispositivo de codificação de nuvem de pontos 230) usado em uma modalidade deste pedido. O dispositivo de codificação 230 pode incluir um processador 2310, uma memória 2330 e um sistema de barramento 2350. O processador 2310 é conectado à memória 2330 através do sistema de barramento 2350. A memória 2330 é configurada para armazenar uma instrução, e o processador 2310 é configurado para executar a instrução armazenada na memória 2330, para realizar vários métodos de codificação/decodificação de nuvem de pontos descritos neste pedido. Para evitar repetição, os detalhes não são descritos novamente na presente invenção.
[0419] Nesta modalidade deste pedido, o processador 2310 pode ser uma unidade central de processamento (central processing unit, CPU), ou o processador 2310 pode ser outro processador de propósito geral, um DSP, um ASIC, um FPGA, outro dispositivo lógico programável, uma porta discreta, um dispositivo lógico de transistor, um componente de hardware discreto ou similares. O processador de propósito geral pode ser um microprocessador, ou pode ser qualquer processador convencional ou similares.
[0420] A memória 2330 pode incluir um dispositivo de ROM ou um dispositivo de RAM. Qualquer outro tipo apropriado de dispositivo de armazenamento também pode ser usado como a memória 2330. A memória 2330 pode incluir código e dados 2331 que são acessados pelo processador 2310 através do sistema de barramento 2350. A memória 2330 pode incluir, adicionalmente, um sistema operacional 2333 e um programa de aplicação 2335. O programa de aplicação 2335 inclui pelo menos um programa que permite que o processador 2310 realize o método de codificação/decodificação de nuvem de pontos descrito neste pedido. Por exemplo, o programa de aplicação 2335 pode incluir aplicações 1 a N, e incluir, adicionalmente, uma aplicação de codificação/decodificação de nuvem de pontos (denominada uma aplicação de codificação de nuvem de pontos) para realizar o método de codificação/decodificação de nuvem de pontos descrito neste pedido.
[0421] O sistema de barramento 2350 pode incluir, adicionalmente,
um barramento de potência, um barramento de controle, um barramento de sinal de status e similares, além de um barramento de dados. Entretanto, para descrição clara, vários tipos de barramentos na figura são denotados como o sistema de barramento 2350.
[0422] De modo opcional, o dispositivo de codificação 230 pode incluir, adicionalmente, um ou mais dispositivos de saída, tais como um visor 2370. Em um exemplo, o visor 2370 pode ser um visor sensível ao toque que combina um visor e uma unidade sensível ao toque que capta, de modo operável, entrada através de toque. O visor 2370 pode ser conectado ao processador 2310 através do sistema de barramento 2350.
[0423] Uma pessoa versada na técnica pode entender que as funções descritas com referência a diversos blocos lógicos, módulos e etapas de algoritmo ilustrativas reveladas e descritas neste relatório descritivo podem ser implantadas por hardware, software, firmware ou qualquer combinação dos mesmos. Se as funções forem implantadas por software, as funções descritas com referência aos blocos lógicos, módulos e etapas ilustrativas podem ser armazenadas ou transmitidas por uma mídia legível por computador como uma ou mais instruções ou código e executadas por uma unidade de processamento com base em hardware. A mídia legível por computador pode incluir uma mídia de armazenamento legível por computador, que corresponde a uma mídia tangível, tal como uma mídia de armazenamento de dados, ou uma mídia de comunicações que inclui qualquer mídia que facilita a transferência de um programa de computador de um local para outro local (por exemplo, de acordo com um protocolo de comunicação). Desse modo, a mídia legível por computador pode corresponder, de modo geral, a: (1) uma mídia de armazenamento legível por computador tangível não transitória, ou (2) uma mídia de comunicações, tal como um sinal ou uma portadora. A mídia de armazenamento de dados pode ser qualquer mídia utilizável que pode ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implantar as tecnologias descritas neste pedido. Um produto de programa de computador pode incluir uma mídia legível por computador.
[0424] Conforme um exemplo e não uma limitação, tal mídia de armazenamento legível por computador pode incluir uma RAM, uma ROM, uma
EEPROM, uma CD-ROM ou outro aparelho de armazenamento de disco compacto, um aparelho de armazenamento de disco magnético ou outro aparelho de armazenamento magnético, uma memória flash ou qualquer outra mídia que pode ser usada para armazenar código de programa desejado em uma forma de uma instrução ou uma estrutura de dados e que pode ser acessado por um computador. Além disso, qualquer conexão é denominada, de maneira apropriada, uma mídia legível por computador. Por exemplo, se uma instrução for transmitida a partir de um site da web, um servidor ou outra origem remota através de um cabo coaxial, uma fibra óptica, um par trançado, uma linha de assinante digital (DSL), ou tecnologias sem fio, tais como infravermelho, rádio e tecnologias de micro-ondas, o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou as tecnologias sem fio, tais como infravermelho, rádio e micro-ondas estão incluídos em uma definição da mídia. Entretanto, deve-se entender que a mídia de armazenamento legível por computador e a mídia de armazenamento de dados não incluem conexões, portadoras, sinais ou outras mídias transitórias, mas significam, de fato, mídias de armazenamento tangíveis não transitórias. Discos magnéticos e discos ópticos, usados neste relatório descritivo, incluem um disco compacto (CD), um disco a laser, um disco óptico, um DVD e um disco Blu-ray. Os discos magnéticos normalmente reproduzem dados magneticamente, enquanto os discos ópticos reproduzem dados opticamente com lasers. Combinações dos itens antecedentes também devem estar incluídas no escopo da mídia legível por computador.
[0425] Uma instrução pode ser executada por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSP), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASIC), arranjos lógicos programáveis em campo (FPGA) ou circuito integrado equivalente ou outros circuitos lógicos discretos. Portanto, o termo “processador”, usado neste relatório descritivo, pode ser qualquer uma dentre as estruturas antecedentes ou qualquer outra estrutura adequada para implantar as tecnologias descritas neste relatório descritivo. Além disso, em alguns aspectos, as funções descritas com referência aos blocos lógicos, módulos e etapas ilustrativas descritas neste relatório descritivo podem ser fornecidas dentro de módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou podem ser incorporadas em um codec combinado. Além disso,
as tecnologias podem ser totalmente implantadas em um ou mais circuitos ou elementos lógicos. Em um exemplo, diversos blocos lógicos, unidades e módulos descritivos no codificador 100 e no decodificador 200 podem ser entendidos como dispositivos de circuito ou elementos lógicos correspondentes.
[0426] As tecnologias neste pedido podem ser implantadas em diversos aparelhos ou dispositivos, que incluem um fone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Diversos componentes, módulos ou unidades são descritos neste pedido para enfatizar aspectos funcionais dos aparelhos configurados para realizar as tecnologias reveladas, mas não são implantados, necessariamente, por unidades de hardware diferentes. De fato, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec em combinação com software e/ou firmware apropriado, ou podem ser fornecidas por unidades de hardware interoperáveis (incluindo um ou mais processadores descritos acima).
[0427] As descrições antecedentes são apenas exemplos de implantações específicas deste pedido, e não se destinam a limitar o escopo de proteção deste pedido. Qualquer variação ou substituição prontamente constatada por uma pessoa versada na técnica dentro do escopo técnico revelado neste pedido deve ser abrangida pelo escopo de proteção deste pedido. Portanto, o escopo de proteção deste pedido deve estar submetido ao escopo de proteção das reivindicações.

Claims (132)

REIVINDICAÇÕES
1. Método de codificação de nuvem de pontos, compreendendo: adquirir um eixo normal de um patch a ser codificado em uma nuvem de pontos a ser codificada e informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o eixo normal do patch a ser codificado e as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado são usados para determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe compreende um índice do eixo normal do patch a ser codificado e informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
2. Método de codificação de nuvem de pontos, de acordo com a reivindicação 1, em que as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado compreendem uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
3. Método de codificação de nuvem de pontos, de acordo com a reivindicação 2, em que as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado compreendem um índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser codificado, ou informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
4. Método de codificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 1 a 3, em que o método compreende adicionalmente: determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado; e projetar o patch a ser codificado a partir de um espaço tridimensional para um espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado.
5. Método de codificação de nuvem de pontos, de acordo com a reivindicação 4, em que a determinação do eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado compreende: determinar, de acordo com uma regra de projeção, o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a regra de projeção se refere à distribuição, no espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser codificada para o espaço bidimensional.
6. Método de codificação de nuvem de pontos, de acordo com a reivindicação 5, em que a regra de projeção é predefinida, ou a regra de projeção é determinada de acordo com um critério de custo de distorção de taxa.
7. Método de codificação de nuvem de pontos, de acordo com a reivindicação 6, em que se a regra de projeção for determinada de acordo com o critério de custo de distorção de taxa, o elemento de sintaxe compreende adicionalmente informações usadas para indicar a regra de projeção.
8. Método de codificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 4 a 7, em que a determinação do eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado compreende: determinar, com base em uma relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch; e o eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado.
9. Método de codificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 4 a 7, em que a determinação do eixo tangente do patch a ser codificado e do eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado compreende: consultar uma tabela com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado, e a tabela compreende uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch.
10. Método de codificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 1 a 3, em que se uma regra de projeção indicar projeção vertical, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado; ou se uma regra de projeção indicar projeção horizontal, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado; em que a regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser codificada para o espaço bidimensional, e o eixo normal do patch a ser codificado é perpendicular ao espaço bidimensional.
11. Método de decodificação de nuvem de pontos, compreendendo: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe compreende um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser decodificado; determinar um eixo tangente do patch a ser decodificado e um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise; e reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches compreendem o patch a ser decodificado.
12. Método de decodificação de nuvem de pontos, de acordo com a reivindicação 11, em que as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado compreendem uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
13. Método de decodificação de nuvem de pontos, de acordo com a reivindicação 12, em que as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado compreendem um índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, ou informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
14. Método de decodificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 11 a 13, em que a determinação de um eixo tangente do patch a ser decodificado e de um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise, compreende: determinar, de acordo com uma regra de projeção, o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser decodificada para o espaço bidimensional.
15. Método de decodificação de nuvem de pontos, de acordo com a reivindicação 14, em que a regra de projeção é predefinida; ou o elemento de sintaxe compreende adicionalmente informações usadas para indicar a regra de projeção e, correspondentemente, a regra de projeção é uma regra de projeção indicada pelo elemento de sintaxe que é obtido analisando-se o fluxo de bits.
16. Método de decodificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 11 a 15, em que a determinação de um eixo tangente do patch a ser decodificado e de um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise, compreende: determinar, com base em uma relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch; e o eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado.
17. Método de decodificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 11 a 15, em que a determinação de um eixo tangente do patch a ser decodificado e de um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise, compreende: consultar uma tabela com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado, e a tabela compreende uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch.
18. Método de decodificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 11 a 13, em que se uma regra de projeção indicar projeção vertical, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo bitangente do patch a ser decodificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo tangente do patch a ser decodificado; ou se uma regra de projeção indicar projeção horizontal, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo tangente do patch a ser decodificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo bitangente do patch a ser decodificado; em que a regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser decodificada para o espaço bidimensional, e o eixo normal do patch a ser decodificado é perpendicular ao espaço bidimensional.
19. Método de codificação de nuvem de pontos, compreendendo: obter um eixo tangente de referência de um patch a ser codificado em uma nuvem de pontos a ser codificada e um eixo bitangente de referência do patch a ser codificado; determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  ; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe compreende um índice de um eixo normal do patch a ser codificado e informações usadas para indicar o ângulo de rotação  do patch a ser codificado.
20. Método de codificação de nuvem de pontos, de acordo com a reivindicação 19, em que as informações usadas para indicar o ângulo de rotação  do patch a ser codificado compreendem: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser codificado.
21. Método de codificação de nuvem de pontos, de acordo com a reivindicação 20, em que o identificador do patch que corresponde ao patch a ser codificado é usado para indicar um índice do patch que corresponde ao patch a ser codificado, ou usado para indicar que existe o patch que corresponde ao patch a ser codificado em uma nuvem de pontos codificada e um índice do patch que corresponde ao patch a ser codificado.
22. Método de codificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 19 a 21, em que o método compreende adicionalmente: determinar o ângulo de rotação  a partir de uma pluralidade de ângulos de rotação candidatos de acordo com um critério de custo de distorção de taxa; ou obter um ângulo de rotação do patch que corresponde ao patch a ser codificado a partir da nuvem de pontos codificada, e usar o ângulo de rotação obtido como o ângulo de rotação  do patch a ser codificado.
23. Método de codificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 19 a 22, em que o método compreende adicionalmente: projetar o patch a ser codificado a partir de um espaço tridimensional para um espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado, para obter um mapa de ocupação do patch a ser codificado; e determinar um retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado; em que o elemento de sintaxe compreende adicionalmente informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado.
24. Método de decodificação de nuvem de pontos, compreendendo: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe compreende um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar um ângulo de rotação  do patch a ser decodificado; obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado, em que o índice é obtido através de análise; determinar um eixo tangente do patch e um eixo bitangente do patch com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e nas informações que são usadas para indicar o ângulo de rotação  do patch a ser decodificado e que são obtidas através de análise; e reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches compreendem o patch a ser decodificado.
25. Método de decodificação de nuvem de pontos, de acordo com a reivindicação 24, em que as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado compreendem: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser decodificado.
26. Método de decodificação de nuvem de pontos, de acordo com a reivindicação 25, em que o identificador do patch que corresponde ao patch a ser decodificado é usado para indicar um índice do patch que corresponde ao patch a ser decodificado, ou usado para indicar se existe o patch que corresponde ao patch a ser decodificado em uma nuvem de pontos decodificada e um índice do patch que corresponde ao patch a ser decodificado.
27. Método de decodificação de nuvem de pontos, de acordo com a reivindicação 25 ou 26, em que as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado compreendem o identificador do patch que corresponde ao patch a ser decodificado, e a determinação de um eixo tangente do patch e de um eixo bitangente do patch com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e nas informações que são usadas para indicar o ângulo de rotação  do patch a ser decodificado e que são obtidas através de análise, compreende: determinar, com base no identificador que é do patch que corresponde ao patch a ser decodificado e que é obtido através de análise, o patch que corresponde ao patch a ser decodificado, e obter um ângulo de rotação  do patch que corresponde ao patch a ser decodificado; e determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e no ângulo de rotação  .
28. Método de decodificação de nuvem de pontos, de acordo com qualquer uma das reivindicações 24 a 27, em que o elemento de sintaxe compreende adicionalmente informações de tamanho de um retângulo delimitador mínimo de um mapa de ocupação do patch a ser decodificado, e a reconstrução de informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada compreende: reconstruir as informações de geometria da nuvem de pontos a ser decodificada com base no um ou mais eixos tangentes e no um ou mais eixos bitangentes do um ou mais patches na nuvem de pontos a ser decodificada e nas informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser decodificado, em que as informações de tamanho são obtidas analisando-se o fluxo de bits.
29. Codificador, compreendendo: um módulo de geração de informações de patch, configurado para adquirir um eixo normal de um patch a ser codificado em uma nuvem de pontos a ser codificada e informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o eixo normal do patch a ser codificado e as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado são usados para determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado; e um módulo de codificação de informações auxiliares, configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe compreende um índice do eixo normal do patch a ser codificado e informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
30. Codificador, de acordo com a reivindicação 29, em que as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado compreendem uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
31. Codificador, de acordo com a reivindicação 30, em que as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado compreendem um índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser codificado, ou informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser codificado.
32. Codificador, de acordo com qualquer uma das reivindicações 29 a 31, em que o módulo de geração de informações de patch é adicionalmente configurado para: determinar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado; e projetar o patch a ser codificado a partir de um espaço tridimensional para um espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado.
33. Codificador, de acordo com a reivindicação 32, em que o módulo de geração de informações de patch é especificamente configurado para: determinar, conforme definido em uma regra de projeção, o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a regra de projeção se refere à distribuição, no espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser codificada para o espaço bidimensional.
34. Codificador, de acordo com a reivindicação 33, em que a regra de projeção é predefinida, ou a regra de projeção é determinada de acordo com um critério de custo de distorção de taxa.
35. Codificador, de acordo com a reivindicação 34, em que se a regra de projeção for determinada de acordo com o critério de custo de distorção de taxa, o elemento de sintaxe compreende adicionalmente informações usadas para indicar a regra de projeção.
36. Codificador, de acordo com qualquer uma das reivindicações 32 a 35, em que o módulo de geração de informações de patch é especificamente configurado para: determinar, com base em uma relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch; e o eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado.
37. Codificador, de acordo com qualquer uma das reivindicações 32 a 35, em que o módulo de geração de informações de patch é especificamente configurado para: consultar uma tabela com base no eixo normal do patch a ser codificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser codificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser codificado, em que o eixo tangente alvo é o eixo tangente do patch a ser codificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser codificado, e a tabela compreende uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch.
38. Codificador, de acordo com qualquer uma das reivindicações 29 a 31, em que se uma regra de projeção indicar projeção vertical, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado; ou se uma regra de projeção indicar projeção horizontal, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo tangente do patch a ser codificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser codificado está localizado é o eixo bitangente do patch a ser codificado; em que a regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser codificada para o espaço bidimensional, e o eixo normal do patch a ser codificado é perpendicular ao espaço bidimensional.
39. Decodificador, compreendendo: um módulo de decodificação de informações auxiliares, configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe compreende um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar informações de descrição de um retângulo delimitador mínimo que corresponde ao patch a ser decodificado; e determinar um eixo tangente do patch a ser decodificado e um eixo bitangente do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado e nas informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o índice e as informações são obtidos através de análise; e um módulo de reconstrução de informações de geometria de nuvem de pontos, configurado para reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches compreendem o patch a ser decodificado.
40. Decodificador, de acordo com a reivindicação 39, em que as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado compreendem uma relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
41. Decodificador, de acordo com a reivindicação 40, em que as informações usadas para indicar as informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado compreendem um índice da relação entre tamanhos de lados do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, ou informações de tamanho do retângulo delimitador mínimo que corresponde ao patch a ser decodificado.
42. Decodificador, de acordo com qualquer uma das reivindicações 39 a 41, em que o módulo de decodificação de informações auxiliares é especificamente configurado para determinar, de acordo com uma regra de projeção, o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser decodificada para o espaço bidimensional.
43. Decodificador, de acordo com a reivindicação 42, em que a regra de projeção é predefinida; ou o elemento de sintaxe compreende adicionalmente informações usadas para indicar a regra de projeção e, correspondentemente, a regra de projeção é uma regra de projeção indicada pelo elemento de sintaxe que é obtido analisando-se o fluxo de bits.
44. Decodificador, de acordo com qualquer uma das reivindicações 39 a 43, em que o módulo de decodificação de informações auxiliares é especificamente configurado para: determinar, com base em uma relação de mapeamento, um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que a relação de mapeamento é uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch; e o eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado.
45. Decodificador, de acordo com qualquer uma das reivindicações 39 a 43, em que o módulo de decodificação de informações auxiliares é especificamente configurado para: consultar uma tabela com base no eixo normal do patch a ser decodificado e nas informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, para obter um eixo tangente alvo e um eixo bitangente alvo que correspondem tanto ao eixo normal do patch a ser decodificado quanto às informações de descrição do retângulo delimitador mínimo que corresponde ao patch a ser decodificado, em que o eixo tangente alvo é o eixo tangente do patch a ser decodificado, e o eixo bitangente alvo é o eixo bitangente do patch a ser decodificado, e a tabela compreende uma relação de mapeamento entre os seguintes itens: uma pluralidade de eixos normais de um patch, uma pluralidade de tipos de informações de descrição de um retângulo delimitador mínimo que corresponde ao patch, uma pluralidade de eixos tangentes do patch, e uma pluralidade de eixos bitangentes do patch.
46. Decodificador, de acordo com qualquer uma das reivindicações 39 a 41, em que se uma regra de projeção indicar projeção vertical, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo bitangente do patch a ser decodificado, e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo tangente do patch a ser decodificado; ou se uma regra de projeção indicar projeção horizontal, um eixo no qual um lado mais longo do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo tangente do patch a ser decodificado,
e um eixo no qual um lado mais curto do retângulo delimitador mínimo que corresponde ao patch a ser decodificado está localizado é o eixo bitangente do patch a ser decodificado; em que a regra de projeção se refere à distribuição, em um espaço bidimensional, de um ou mais mapas de ocupação obtidos projetando-se um ou mais patches na nuvem de pontos a ser decodificada para o espaço bidimensional, e o eixo normal do patch a ser decodificado é perpendicular ao espaço bidimensional.
47. Codificador, compreendendo: um módulo de geração de informações de patch, configurado para: obter um eixo tangente de referência de um patch a ser codificado em uma nuvem de pontos a ser codificada e um eixo bitangente de referência do patch a ser codificado; e determinar um eixo tangente do patch a ser codificado e um eixo bitangente do patch a ser codificado com base no eixo tangente de referência do patch a ser codificado e no eixo bitangente de referência do patch a ser codificado, em que um ângulo de rotação do eixo tangente do patch a ser codificado em relação ao eixo tangente de referência do patch a ser codificado é  , e um ângulo de rotação do eixo bitangente do patch a ser codificado em relação ao eixo bitangente de referência do patch a ser codificado é  ; e um módulo de codificação de informações auxiliares, configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe é usado para indicar o eixo tangente do patch a ser codificado e o eixo bitangente do patch a ser codificado, e o elemento de sintaxe compreende um índice de um eixo normal do patch a ser codificado e informações usadas para indicar o ângulo de rotação  do patch a ser codificado.
48. Codificador, de acordo com a reivindicação 47, em que as informações usadas para indicar o ângulo de rotação  do patch a ser codificado compreende: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser codificado.
49. Codificador, de acordo com a reivindicação 48, em que o identificador do patch que corresponde ao patch a ser codificado é usado para indicar um índice do patch que corresponde ao patch a ser codificado, ou usado para indicar que existe o patch que corresponde ao patch a ser codificado em uma nuvem de pontos codificada e um índice do patch que corresponde ao patch a ser codificado.
50. Codificador, de acordo com qualquer uma das reivindicações 47 a 49, em que o módulo de geração de informações de patch é adicionalmente configurado para: determinar o ângulo de rotação  a partir de uma pluralidade de ângulos de rotação candidatos de acordo com um critério de custo de distorção de taxa; ou obter um ângulo de rotação do patch que corresponde ao patch a ser codificado a partir da nuvem de pontos codificada, e usar o ângulo de rotação obtido como o ângulo de rotação  do patch a ser codificado.
51. Codificador, de acordo com qualquer uma das reivindicações 47 a 50, em que o módulo de geração de informações de patch é adicionalmente configurado para: projetar o patch a ser codificado a partir de um espaço tridimensional para um espaço bidimensional com base no eixo tangente do patch a ser codificado e no eixo bitangente do patch a ser codificado, para obter um mapa de ocupação do patch a ser codificado; e determinar um retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado; em que o elemento de sintaxe compreende adicionalmente informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser codificado.
52. Decodificador, compreendendo: um módulo de decodificação de informações auxiliares, configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe compreende um índice de um eixo normal de um patch a ser decodificado em uma nuvem de pontos a ser decodificada e informações usadas para indicar um ângulo de rotação  do patch a ser decodificado; obter um eixo tangente de referência do patch a ser decodificado e um eixo bitangente de referência do patch a ser decodificado com base no índice do eixo normal do patch a ser decodificado, em que o índice é obtido através de análise; e determinar um eixo tangente do patch e um eixo bitangente do patch com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e nas informações que são usadas para indicar o ângulo de rotação  do patch a ser decodificado e que são obtidas através de análise; e um módulo de reconstrução de informações de geometria de nuvem de pontos, configurado para reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais eixos tangentes e em um ou mais eixos bitangentes de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches compreendem o patch a ser decodificado.
53. Decodificador, de acordo com a reivindicação 52, em que as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado compreendem: o ângulo de rotação  , ou um índice do ângulo de rotação  , ou um identificador de um patch que corresponde ao patch a ser decodificado.
54. Decodificador, de acordo com a reivindicação 53, em que o identificador do patch que corresponde ao patch a ser decodificado é usado para indicar um índice do patch que corresponde ao patch a ser decodificado, ou usado para indicar se existe o patch que corresponde ao patch a ser decodificado em uma nuvem de pontos decodificada e um índice do patch que corresponde ao patch a ser decodificado.
55. Decodificador, de acordo com a reivindicação 53 ou 54, em que as informações usadas para indicar o ângulo de rotação  do patch a ser decodificado compreendem o identificador do patch que corresponde ao patch a ser decodificado; e o módulo de decodificação de informações auxiliares é especificamente configurado para: determinar, com base no identificador que é do patch compatível com o patch a ser decodificado e que é obtido através de análise, o patch que corresponde ao patch a ser decodificado, e obter um ângulo de rotação  do patch que corresponde ao patch a ser decodificado; e determinar o eixo tangente do patch a ser decodificado e o eixo bitangente do patch a ser decodificado com base no eixo tangente de referência do patch a ser decodificado, no eixo bitangente de referência do patch a ser decodificado, e no ângulo de rotação  .
56. Decodificador, de acordo com qualquer uma das reivindicações 52 a 55, em que o elemento de sintaxe compreende adicionalmente informações de tamanho de um retângulo delimitador mínimo de um mapa de ocupação do patch a ser decodificado; e o módulo de reconstrução de informações de geometria de nuvem de pontos é especificamente configurado para: reconstruir as informações de geometria da nuvem de pontos a ser decodificada com base no um ou mais eixos tangentes e no um ou mais eixos bitangentes do um ou mais patches na nuvem de pontos a ser decodificada e nas informações de tamanho do retângulo delimitador mínimo do mapa de ocupação do patch a ser decodificado, em que as informações de tamanho são obtidas analisando-se o fluxo de bits.
57. Método de codificação de nuvem de pontos, compreendendo: projetar um patch a ser codificado de um espaço tridimensional para um espaço bidimensional, para obter um primeiro mapa de ocupação do patch a ser codificado; obter um segundo mapa de ocupação do patch a ser codificado, em que o segundo mapa de ocupação do patch a ser codificado é obtido rotacionando-se no sentido horário ou anti-horário o primeiro mapa de ocupação do patch a ser codificado por um ângulo de rotação  ; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe compreende informações usadas para indicar o ângulo de rotação  .
58. Método, de acordo com a reivindicação 57, em que coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser codificado são obtidas com base em coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser codificado e em uma matriz de rotação, em que a matriz de rotação corresponde ao ângulo de rotação.
59. Método, de acordo com a reivindicação 58, em que a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
60. Método, de acordo com a reivindicação 58 ou 59, em que cos  − sin    sin  − cos   a matriz de rotação é representada por  .
61. Método, de acordo com a reivindicação 60, em que quando o ângulo de rotação  for 0°, a matriz de rotação é 1 0  0 −1 representada por  ; quando o ângulo de rotação  for 90°, a matriz de rotação é 0 −1 1 0  representada por  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é  0 1  −1 0  representada por  .
62. Método, de acordo com a reivindicação 57, em que coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser codificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são obtidas através de rotação: x 2 = x 1 cos  − y 1si n  y 2 = x 1si n  − y 1 cos  .
63. Método, de acordo com a reivindicação 57, em que coordenadas (x2, y2) de P2 no segundo mapa de ocupação do patch a ser codificado são obtidas de acordo com a seguinte fórmula: x 2 = x 1 cos  − y 1si n  y 2 = x 1si n  − y 1 cos  , em que (x1, y1) representa coordenadas de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado, e  representa o ângulo de rotação.
64. Método, de acordo com qualquer uma das reivindicações 57 a 63, em que o segundo mapa de ocupação é obtido rotacionando-se no sentido horário ou anti-horário o primeiro mapa de ocupação do patch a ser codificado pelo ângulo de rotação  ao redor de uma origem de coordenada de um sistema de coordenadas constituído por um primeiro eixo tangente e um primeiro eixo bitangente.
65. Método, de acordo com qualquer uma das reivindicações 57 a 64, em que as informações usadas para indicar o ângulo de rotação  são um índice usado para indicar o ângulo de rotação  .
66. Método, de acordo com a reivindicação 57, em que um ângulo de rotação por qual um segundo eixo tangente do patch a ser codificado rotaciona em relação a um primeiro eixo tangente do patch a ser codificado é  , e um ângulo de rotação por qual um segundo eixo bitangente do patch a ser codificado rotaciona em relação a um primeiro eixo bitangente do patch a ser codificado é .
67. Método de decodificação de nuvem de pontos, compreendendo: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe compreende informações usadas para indicar um ângulo de rotação  de um patch a ser decodificado; obter um segundo mapa de ocupação do patch a ser decodificado; obter um primeiro mapa de ocupação do patch a ser decodificado, em que o primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário o segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  ; e reconstruir informações de geometria de uma nuvem de pontos a ser decodificada com base em um ou mais primeiros mapas de ocupação de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches compreendem o patch a ser decodificado.
68. Método, de acordo com a reivindicação 67, em que coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser decodificado e em uma matriz de rotação, em que a matriz de rotação corresponde ao ângulo de rotação.
69. Método, de acordo com a reivindicação 68, em que a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
70. Método, de acordo com a reivindicação 68 ou 69, em que cos  − sin    sin  − cos   a matriz de rotação é representada por  , ou a matriz cos  − sin    sin  − cos   de rotação é representada por uma matriz inversa de  .
71. Método, de acordo com a reivindicação 70, em que quando o ângulo de rotação  for 0°, a matriz de rotação é 1 0  0 −1 representada por  ; quando o ângulo de rotação  for 90°, a matriz de rotação é 0 −1 1 0  representada por  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é  0 1  −1 0  representada por  .
72. Método, de acordo com a reivindicação 70, em que quando o ângulo de rotação  for 0°, a matriz de rotação é 1 0  0 −1 representada por uma matriz inversa de  ; quando o ângulo de rotação  for 90°, a matriz de rotação é 0 −1 1 0  representada por uma matriz inversa de  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por uma matriz inversa de   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é
 0 1  −1 0  representada por uma matriz inversa de  .
73. Método, de acordo com a reivindicação 67, em que coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado e coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado satisfazem a seguinte fórmula, em que as coordenadas (x1, y1) do ponto P1 são obtidas através de contrarrotação: x 2 = x 1 cos  − y 1si n  x 1 = x 2 cos  + y 2 si n  y 2 = x 1si n  − y 1 cos  ou y 1 = −x 2 si n  − y 2 cos  .
74. Método, de acordo com a reivindicação 67, em que coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado são obtidas de acordo com a seguinte fórmula: x 2 = x 1 cos  − y 1si n  x 1 = x 2 cos  + y 2 si n  y 2 = x 1si n  − y 1 cos  ou y 1 = −x 2 si n  − y 2 cos  , em que (x2, y2) representa coordenadas de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado, e  representa o ângulo de rotação.
75. Método, de acordo com qualquer uma das reivindicações 67 a 74, em que o primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário o segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  ao redor de uma origem de coordenada de um sistema de coordenadas constituído por um primeiro eixo tangente e um primeiro eixo bitangente.
76. Método, de acordo com qualquer uma das reivindicações 67 a 75, em que as informações usadas para indicar o ângulo de rotação  são um índice usado para indicar o ângulo de rotação  .
77. Método, de acordo com a reivindicação 67, em que um ângulo de rotação por qual um segundo eixo tangente do patch a ser decodificado rotaciona em relação a um primeiro eixo tangente do patch a ser decodificado é  , e um ângulo de rotação por qual um segundo eixo bitangente do patch a ser decodificado rotaciona em relação a um primeiro eixo bitangente do patch a ser decodificado é  .
78. Método, de acordo com qualquer uma das reivindicações 67 a 77,
em que a obtenção de um segundo mapa de ocupação do patch a ser decodificado compreende: analisar o fluxo de bits para obter o segundo mapa de ocupação do patch a ser decodificado; ou analisar o fluxo de bits para obter informações que são usadas para indicar o segundo mapa de ocupação do patch a ser decodificado, e obter o segundo mapa de ocupação do patch a ser decodificado com base nas informações que são usadas para indicar o segundo mapa de ocupação do patch a ser decodificado.
79. Método de codificação de nuvem de pontos, compreendendo: projetar um patch a ser codificado a partir de um espaço tridimensional para um espaço bidimensional, para obter um primeiro mapa de ocupação do patch a ser codificado; obter um segundo mapa de ocupação do patch a ser codificado, em que coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser codificado são obtidas com base em coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser codificado e em uma matriz de rotação, em que a matriz de rotação corresponde a um ângulo de rotação  ; e codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe compreende informações usadas para indicar o ângulo de rotação  .
80. Método, de acordo com a reivindicação 79, em que a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
81. Método, de acordo com a reivindicação 79 ou 80, em que cos  − sin    sin  − cos   a matriz de rotação é representada por  .
82. Método, de acordo com a reivindicação 81, em que quando o ângulo de rotação  for 0°, a matriz de rotação é 1 0  0 −1 representada por  ; quando o ângulo de rotação  for 90°, a matriz de rotação é
0 −1 1 0  representada por  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é  0 1  −1 0  representada por  .
83. Método, de acordo com qualquer uma das reivindicações 79 a 82, em que coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser codificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são obtidas através de rotação: x 2 = x 1 cos  − y 1si n  y 2 = x 1si n  − y 1 cos  .
84. Método de decodificação de nuvem de pontos, compreendendo: reconstruir informações de geometria de uma nuvem de pontos a ser decodificada com base em um ou mais primeiros mapas de ocupação de um ou mais patches a serem decodificados na nuvem de pontos a ser decodificada, em que o um ou mais patches compreendem um patch a ser decodificado, coordenadas (x1, y1) de um primeiro ponto do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um segundo ponto do patch a ser decodificado e em uma matriz de rotação, e a matriz de rotação corresponde a um ângulo de rotação  do patch a ser decodificado.
85. Método, de acordo com a reivindicação 84, em que coordenadas (x1, y1) de um primeiro ponto do patch a ser decodificado serem obtidas com base em coordenadas (x2, y2) de um segundo ponto do patch a ser decodificado e em uma matriz de rotação significa que coordenadas (x1, y1) de um ponto em um primeiro mapa de ocupação do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um ponto em um segundo mapa de ocupação do patch a ser decodificado e em uma matriz de rotação.
86. Método, de acordo com a reivindicação 84, em que as coordenadas (x1, y1) do primeiro ponto do patch a ser decodificado são coordenadas (x1, y1) de um ponto em um primeiro mapa de ocupação do patch a ser decodificado, e as coordenadas (x2, y2) do segundo ponto do patch a ser decodificado são coordenadas (x2, y2) de um ponto em um segundo mapa de ocupação do patch a ser decodificado.
87. Método, de acordo com a reivindicação 84, em que um primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário um segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  , ou um segundo mapa de ocupação do patch a ser decodificado é obtido rotacionando-se no sentido horário ou anti- horário um primeiro mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  .
88. Método, de acordo com qualquer uma das reivindicações 84 a 87, em que a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
89. Método, de acordo com qualquer uma das reivindicações 84 a 88, em que cos  − sin    sin  − cos   a matriz de rotação é representada por  .
90. Método, de acordo com a reivindicação 89, em que quando o ângulo de rotação  for 0°, a matriz de rotação é 1 0  0 −1 representada por  ; quando o ângulo de rotação  for 90°, a matriz de rotação é 0 −1 1 0  representada por  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é
 0 1  −1 0  representada por  .
91. Método, de acordo com qualquer uma das reivindicações 84 a 90, em que coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são obtidas através de rotação: x 2 = x 1 cos  − y 1si n  y 2 = x 1si n  − y 1 cos  .
92. Codificador, compreendendo: um módulo de geração de informações de patch, configurado para: projetar um patch a ser codificado a partir de um espaço tridimensional para um espaço bidimensional, para obter um primeiro mapa de ocupação do patch a ser codificado; e obter um segundo mapa de ocupação do patch a ser codificado, em que o segundo mapa de ocupação do patch a ser codificado é obtido rotacionando-se no sentido horário ou anti-horário o primeiro mapa de ocupação do patch a ser codificado por um ângulo de rotação  ; e um módulo de codificação de informações auxiliares, configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe compreende informações usadas para indicar o ângulo de rotação  .
93. Codificador, de acordo com a reivindicação 92, em que coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser codificado são obtidas com base em coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser codificado e em uma matriz de rotação, em que a matriz de rotação corresponde ao ângulo de rotação.
94. Codificador, de acordo com a reivindicação 93, em que a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
95. Codificador, de acordo com a reivindicação 93 ou 94, em que cos  − sin    sin  − cos   a matriz de rotação é representada por  .
96. Codificador, de acordo com a reivindicação 95, em que quando o ângulo de rotação  for 0°, a matriz de rotação é 1 0  0 −1 representada por  ; quando o ângulo de rotação  for 90°, a matriz de rotação é 0 −1 1 0  representada por  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é  0 1  −1 0  representada por  .
97. Codificador, de acordo com a reivindicação 92, em que coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser codificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são obtidas através de rotação: x 2 = x 1 cos  − y 1si n  y 2 = x 1si n  − y 1 cos  .
98. Codificador, de acordo com a reivindicação 92, em que coordenadas (x2, y2) de P2 no segundo mapa de ocupação do patch a ser codificado são obtidas de acordo com a seguinte fórmula: x 2 = x 1 cos  − y 1si n  y 2 = x 1si n  − y 1 cos  , em que (x1, y1) representa coordenadas de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado, e  representa o ângulo de rotação.
99. Codificador, de acordo com qualquer uma das reivindicações 92 a 98, em que o segundo mapa de ocupação é obtido rotacionando-se no sentido horário ou anti-horário o primeiro mapa de ocupação do patch a ser codificado pelo ângulo de rotação  ao redor de uma origem de coordenada de um sistema de coordenadas constituído por um primeiro eixo tangente e um primeiro eixo bitangente.
100. Codificador, de acordo com qualquer uma das reivindicações 92 a 99, em que as informações usadas para indicar o ângulo de rotação  são um índice usado para indicar o ângulo de rotação  .
101. Codificador, de acordo com a reivindicação 92, em que um ângulo de rotação por qual um segundo eixo tangente do patch a ser codificado rotaciona em relação a um primeiro eixo tangente do patch a ser codificado é  , e um ângulo de rotação por qual um segundo eixo bitangente do patch a ser codificado rotaciona em relação a um primeiro eixo bitangente do patch a ser codificado é  .
102. Decodificador, compreendendo: um módulo de decodificação de informações auxiliares, configurado para: analisar um fluxo de bits para obter um elemento de sintaxe, em que o elemento de sintaxe compreende informações usadas para indicar um ângulo de rotação  de um patch a ser decodificado; e obter um segundo mapa de ocupação do patch a ser decodificado; e um módulo de reconstrução de informações de geometria de nuvem de pontos, configurado para: obter um primeiro mapa de ocupação do patch a ser decodificado, em que o primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário o segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  ; e reconstruir informações de geometria da nuvem de pontos a ser decodificada com base em um ou mais primeiros mapas de ocupação de um ou mais patches na nuvem de pontos a ser decodificada, em que o um ou mais patches compreendem o patch a ser decodificado.
103. Decodificador, de acordo com a reivindicação 102, em que coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser decodificado e em uma matriz de rotação, em que a matriz de rotação corresponde ao ângulo de rotação.
104. Decodificador, de acordo com a reivindicação 103, em que a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
105. Decodificador, de acordo com a reivindicação 103 ou 104, em que cos  − sin    sin  − cos   a matriz de rotação é representada por  , ou a matriz cos  − sin    sin  − cos   de rotação é representada por uma matriz inversa de  .
106. Decodificador, de acordo com a reivindicação 105, em que quando o ângulo de rotação  for 0°, a matriz de rotação é 1 0  0 −1 representada por  ; quando o ângulo de rotação  for 90°, a matriz de rotação é 0 −1 1 0  representada por  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é  0 1  −1 0  representada por  .
107. Decodificador, de acordo com a reivindicação 105, em que quando o ângulo de rotação  for 0°, a matriz de rotação é 1 0  0 −1 representada por uma matriz inversa de  ; quando o ângulo de rotação  for 90°, a matriz de rotação é 0 −1 1 0  representada por uma matriz inversa de  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por uma matriz inversa de   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é  0 1  −1 0  representada por uma matriz inversa de  .
108. Decodificador, de acordo com a reivindicação 102, em que coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado e coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado satisfazem a seguinte fórmula, em que as coordenadas (x1, y1) do ponto P1 são obtidas através de contrarrotação: x 2 = x 1 cos  − y 1si n  x 1 = x 2 cos  + y 2 si n  y 2 = x 1si n  − y 1 cos  ou y 1 = −x 2 si n  − y 2 cos  .
109. Decodificador, de acordo com a reivindicação 102, em que coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado são obtidas de acordo com a seguinte fórmula: x 2 = x 1 cos  − y 1si n  x 1 = x 2 cos  + y 2 si n  y 2 = x 1si n  − y 1 cos  ou y 1 = −x 2 si n  − y 2 cos  , em que (x2, y2) representa coordenadas de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado, e  representa o ângulo de rotação.
110. Decodificador, de acordo com qualquer uma das reivindicações 102 a 109, em que o primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário o segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  ao redor de uma origem de coordenada de um sistema de coordenadas constituído por um primeiro eixo tangente e um primeiro eixo bitangente.
111. Decodificador, de acordo com qualquer uma das reivindicações 102 a 110, em que as informações usadas para indicar o ângulo de rotação  é um índice usado para indicar o ângulo de rotação  .
112. Decodificador, de acordo com a reivindicação 105, em que um ângulo de rotação por qual um segundo eixo tangente do patch a ser decodificado rotaciona em relação a um primeiro eixo tangente do patch a ser decodificado é  , e um ângulo de rotação por qual um segundo eixo bitangente do patch a ser decodificado rotaciona em relação a um primeiro eixo bitangente do patch a ser decodificado é  .
113. Decodificador, de acordo com qualquer uma das reivindicações 102 a 112, em que o módulo de decodificação de informações auxiliares é especificamente configurado para: analisar o fluxo de bits para obter o segundo mapa de ocupação do patch a ser decodificado; ou analisar o fluxo de bits para obter informações que são usadas para indicar o segundo mapa de ocupação do patch a ser decodificado, e obter o segundo mapa de ocupação do patch a ser decodificado com base nas informações que são usadas para indicar o segundo mapa de ocupação do patch a ser decodificado.
114. Codificador, compreendendo: um módulo de geração de informações de patch, configurado para: projetar um patch a ser codificado a partir de um espaço tridimensional para um espaço bidimensional, para obter um primeiro mapa de ocupação do patch a ser codificado; e obter um segundo mapa de ocupação do patch a ser codificado, em que coordenadas (x2, y2) de um ponto no segundo mapa de ocupação do patch a ser codificado são obtidas com base em coordenadas (x1, y1) de um ponto no primeiro mapa de ocupação do patch a ser codificado e em uma matriz de rotação, em que a matriz de rotação corresponde a um ângulo de rotação  ; e um módulo de codificação de informações auxiliares, configurado para codificar um elemento de sintaxe em um fluxo de bits, em que o elemento de sintaxe compreende informações usadas para indicar o ângulo de rotação  .
115. Codificador, de acordo com a reivindicação 114, em que a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
116. Codificador, de acordo com a reivindicação 114 ou 115, em que cos  − sin    sin  − cos   a matriz de rotação é representada por  .
117. Codificador, de acordo com a reivindicação 116, em que quando o ângulo de rotação  for 0°, a matriz de rotação é
1 0  0 −1 representada por  ; quando o ângulo de rotação  for 90°, a matriz de rotação é 0 −1 1 0  representada por  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é  0 1  −1 0  representada por  .
118. Codificador, de acordo com qualquer uma das reivindicações 114 a 117, em que coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser codificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser codificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são obtidas através de rotação: x 2 = x 1 cos  − y 1si n  y 2 = x 1si n  − y 1 cos  .
119. Aparelho de decodificação, compreendendo: uma memória de nuvem de pontos, configurada para armazenar dados de nuvem de pontos; e um decodificador de nuvem de pontos, configurado para reconstruir informações de geometria de uma nuvem de pontos a ser decodificada com base em um ou mais primeiros mapas de ocupação de um ou mais patches a serem decodificados na nuvem de pontos a ser decodificada, em que o um ou mais patches compreendem um patch a ser decodificado, coordenadas (x1, y1) de um primeiro ponto do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um segundo ponto do patch a ser decodificado e em uma matriz de rotação, e a matriz de rotação corresponde a um ângulo de rotação  do patch a ser decodificado.
120. Aparelho de decodificação, de acordo com a reivindicação 119,
em que coordenadas (x1, y1) de um primeiro ponto do patch a ser decodificado serem obtidas com base em coordenadas (x2, y2) de um segundo ponto do patch a ser decodificado e em uma matriz de rotação significa que coordenadas (x1, y1) de um ponto em um primeiro mapa de ocupação do patch a ser decodificado são obtidas com base em coordenadas (x2, y2) de um ponto em um segundo mapa de ocupação do patch a ser decodificado e em uma matriz de rotação.
121. Aparelho de decodificação, de acordo com a reivindicação 119, em que as coordenadas (x1, y1) do primeiro ponto do patch a ser decodificado são coordenadas (x1, y1) de um ponto em um primeiro mapa de ocupação do patch a ser decodificado, e as coordenadas (x2, y2) do segundo ponto do patch a ser decodificado são coordenadas (x2, y2) de um ponto em um segundo mapa de ocupação do patch a ser decodificado.
122. Aparelho de decodificação, de acordo com a reivindicação 119, em que um primeiro mapa de ocupação do patch a ser decodificado é obtido contrarrotacionando-se no sentido horário ou anti-horário um segundo mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  , ou um segundo mapa de ocupação do patch a ser decodificado é obtido rotacionando-se no sentido horário ou anti-horário um primeiro mapa de ocupação do patch a ser decodificado pelo ângulo de rotação  .
123. Aparelho de decodificação, de acordo com qualquer uma das reivindicações 119 a 122, em que a matriz de rotação é determinada com base no ângulo de rotação  , ou é determinada com base em uma relação funcional do ângulo de rotação  .
124. Aparelho de decodificação, de acordo com qualquer uma das reivindicações 119 a 123, em que cos  − sin    sin  − cos   a matriz de rotação é representada por  .
125. Aparelho de decodificação, de acordo com a reivindicação 124, em que quando o ângulo de rotação  for 0°, a matriz de rotação é 1 0  0 −1 representada por  ;
quando o ângulo de rotação  for 90°, a matriz de rotação é 0 −1 1 0  representada por  ; quando o ângulo de rotação  for 180°, a matriz de rotação é  −1 0   0 1 representada por   ; e/ou quando o ângulo de rotação  for 270°, a matriz de rotação é  0 1  −1 0  representada por  .
126. Aparelho de decodificação, de acordo com qualquer uma das reivindicações 119 a 125, em que coordenadas (x1, y1) de um ponto P1 no primeiro mapa de ocupação do patch a ser decodificado e coordenadas (x2, y2) de um ponto P2 no segundo mapa de ocupação do patch a ser decodificado satisfazem a seguinte fórmula, em que as coordenadas (x2, y2) do ponto P2 são obtidas através de rotação: x 2 = x 1 cos  − y 1si n  y 2 = x 1si n  − y 1 cos  .
127. Método de decodificação de nuvem de pontos, compreendendo: reconstruir uma nuvem de pontos compreende um ou mais patches, em que o um ou mais patches compreendem um patch atual, em que o processo de reconstrução compreende: transformar coordenadas (x2, y2) de um segundo ponto do patch atual em um segundo sistema de coordenadas em coordenadas (x1, y1) de um primeiro ponto do patch atual em um primeiro sistema de coordenadas, em que as coordenadas (x1, y1) do primeiro ponto do patch atual no primeiro sistema de coordenadas são obtidas com base nas coordenadas (x2, y2) do segundo ponto do patch atual no segundo sistema de coordenadas e em uma matriz de transformada.
128. Método, de acordo com a reivindicação 127, em que a matriz de transformada é uma matriz de rotação, e 1 0  0 −1 a matriz de rotação é representada por   , em que o ângulo de rotação  é 0°; 0 −1 1 0  a matriz de rotação é representada por   , em que o ângulo de rotação  é 90°;  −1 0   0 1 a matriz de rotação é representada por   , em que o ângulo de rotação  é 180°; e/ou  0 1  −1 0  a matriz de rotação é representada por   , em que o ângulo de rotação  é 270°.
129. Aparelho de codificação, em que o aparelho compreende uma memória e um processador, em que a memória é configurada para armazenar código de programa, e o processador é configurado para invocar o código de programa para executar o método de codificação de nuvem de pontos conforme definido em qualquer uma das reivindicações 1 a 10, qualquer uma das reivindicações 19 a 23, qualquer uma das reivindicações 57 a 66, ou qualquer uma das reivindicações 79 a 83.
130. Aparelho de decodificação, em que o aparelho compreende uma memória e um processador, em que a memória é configurada para armazenar código de programa, e o processador é configurado para invocar o código de programa para realizar o método de decodificação de nuvem de pontos conforme definido em qualquer uma das reivindicações 11 a 18, qualquer uma das reivindicações 24 a 28, qualquer uma das reivindicações 67 a 78, qualquer uma das reivindicações 84 a 91, ou reivindicação 127 ou 128.
131. Mídia de armazenamento legível por computador, compreendendo código de programa, em que o código de programa compreende uma instrução usada para realizar uma porção ou todas as etapas do método de codificação de nuvem de pontos conforme definido em qualquer uma das reivindicações 1 a 10, qualquer uma das reivindicações 19 a 23, qualquer uma das reivindicações 57 a 66, ou qualquer uma das reivindicações 79 a 83.
132. Mídia de armazenamento legível por computador,
compreendendo código de programa, em que o código de programa compreende uma instrução usada para realizar uma porção ou todas as etapas do método de decodificação de nuvem de pontos conforme definido em qualquer uma das reivindicações 11 a 18, qualquer uma das reivindicações 24 a 28, qualquer uma das reivindicações 67 a 78, qualquer uma das reivindicações 84 a 91, ou reivindicação 127 ou 128.
BR112021000366-5A 2018-07-12 2019-07-12 Método de codificação de nuvem de pontos, método de decodificação de nuvem de pontos, codificador, e decodificador BR112021000366A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810766911.3A CN110719497B (zh) 2018-07-12 2018-07-12 点云编解码方法和编解码器
CN201810766911.3 2018-07-12
PCT/CN2019/095884 WO2020011265A1 (zh) 2018-07-12 2019-07-12 点云编解码方法和编解码器

Publications (1)

Publication Number Publication Date
BR112021000366A2 true BR112021000366A2 (pt) 2021-04-06

Family

ID=69143170

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021000366-5A BR112021000366A2 (pt) 2018-07-12 2019-07-12 Método de codificação de nuvem de pontos, método de decodificação de nuvem de pontos, codificador, e decodificador

Country Status (9)

Country Link
US (1) US20210183110A1 (pt)
EP (1) EP3813377A4 (pt)
JP (1) JP7264572B2 (pt)
KR (2) KR20220165287A (pt)
CN (1) CN110719497B (pt)
BR (1) BR112021000366A2 (pt)
MX (1) MX2021000396A (pt)
SG (1) SG11202100255QA (pt)
WO (1) WO2020011265A1 (pt)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10650554B2 (en) * 2018-09-27 2020-05-12 Sony Corporation Packing strategy signaling
WO2021060850A1 (ko) * 2019-09-24 2021-04-01 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021196029A1 (zh) * 2020-03-31 2021-10-07 深圳市大疆创新科技有限公司 一种用于点云编码、解码的方法和设备
CN111729322A (zh) * 2020-06-15 2020-10-02 完美世界(北京)软件科技发展有限公司 模型的描边处理方法、装置、计算机设备及可读存储介质
CN114078191A (zh) * 2020-08-18 2022-02-22 腾讯科技(深圳)有限公司 一种点云媒体的数据处理方法、装置、设备及介质
US20240179347A1 (en) * 2021-03-19 2024-05-30 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
EP4329310A1 (en) * 2021-04-21 2024-02-28 LG Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2023287220A1 (ko) * 2021-07-15 2023-01-19 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치
EP4160535A1 (en) * 2021-09-30 2023-04-05 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8179393B2 (en) * 2009-02-13 2012-05-15 Harris Corporation Fusion of a 2D electro-optical image and 3D point cloud data for scene interpretation and registration performance assessment
CN103221993B (zh) * 2010-09-13 2017-02-15 巴里·林恩·詹金斯 传输和控制包括渲染的几何、纹理和光照数据的流交互媒体
US8274508B2 (en) * 2011-02-14 2012-09-25 Mitsubishi Electric Research Laboratories, Inc. Method for representing objects with concentric ring signature descriptors for detecting 3D objects in range images
US9767598B2 (en) * 2012-05-31 2017-09-19 Microsoft Technology Licensing, Llc Smoothing and robust normal estimation for 3D point clouds
CN104424655A (zh) * 2013-09-10 2015-03-18 鸿富锦精密工业(深圳)有限公司 点云曲面重构系统及方法
CN104298998B (zh) * 2014-09-28 2017-09-08 北京理工大学 一种3d点云的数据处理方法
JP6512575B2 (ja) * 2015-03-03 2019-05-15 芳隆 大吉 三次元形状情報の配信または放送の方法
US20170214943A1 (en) * 2016-01-22 2017-07-27 Mitsubishi Electric Research Laboratories, Inc. Point Cloud Compression using Prediction and Shape-Adaptive Transforms
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
CN108235007B (zh) * 2016-12-12 2023-06-27 上海天荷电子信息有限公司 各模式使用不同精度同种编码参数的数据压缩方法和装置
US20200074593A1 (en) * 2017-03-01 2020-03-05 Peking University Shenzhen Graduate School Panoramic image mapping method, apparatus, and device
CN107403456B (zh) * 2017-07-28 2019-06-18 北京大学深圳研究生院 一种基于kd树和优化图变换的点云属性压缩方法
CN107633539A (zh) * 2017-09-25 2018-01-26 潍坊学院 一种基于四边面片分割的三维点云模型数据压缩方法
US10783668B2 (en) * 2017-12-22 2020-09-22 Samsung Electronics Co., Ltd. Handling duplicate points in point cloud compression
US11651523B2 (en) * 2017-12-28 2023-05-16 Nokia Technologies Oy Apparatus, a method and a computer program for volumetric video
US10909726B2 (en) * 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US11756234B2 (en) * 2018-04-11 2023-09-12 Interdigital Vc Holdings, Inc. Method for encoding depth values of a set of 3D points once orthogonally projected into at least one image region of a projection plane
US11399189B2 (en) * 2018-04-11 2022-07-26 Sony Corporation Image processing apparatus and method
WO2019234290A1 (en) * 2018-06-04 2019-12-12 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
CN110662087B (zh) * 2018-06-30 2021-05-11 华为技术有限公司 点云编解码方法和编解码器
CN110675315A (zh) * 2018-07-03 2020-01-10 财团法人工业技术研究院 点云拼贴处理方法及装置
US11202098B2 (en) * 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
CA3106234A1 (en) * 2018-07-11 2020-01-16 Sony Corporation Image processing apparatus and method
WO2020071703A1 (ko) * 2018-10-01 2020-04-09 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및/또는 포인트 클라우드 데이터 수신 방법
CN111327902B (zh) * 2018-12-13 2022-11-22 华为技术有限公司 点云的编解码方法及装置
KR102562209B1 (ko) * 2019-01-14 2023-07-31 후아웨이 테크놀러지 컴퍼니 리미티드 포인트 클라우드 코딩에서의 효율적인 패치 회전

Also Published As

Publication number Publication date
JP2021524642A (ja) 2021-09-13
EP3813377A1 (en) 2021-04-28
CN110719497B (zh) 2021-06-22
KR102473729B1 (ko) 2022-12-01
SG11202100255QA (en) 2021-02-25
KR20210030440A (ko) 2021-03-17
US20210183110A1 (en) 2021-06-17
KR20220165287A (ko) 2022-12-14
MX2021000396A (es) 2021-05-12
JP7264572B2 (ja) 2023-04-25
WO2020011265A1 (zh) 2020-01-16
CN110719497A (zh) 2020-01-21
EP3813377A4 (en) 2021-06-02

Similar Documents

Publication Publication Date Title
BR112021000366A2 (pt) Método de codificação de nuvem de pontos, método de decodificação de nuvem de pontos, codificador, e decodificador
BR112020027024A2 (pt) Método de codificação de nuvem de pontos, método de decodificação de nuvem de pontos, codificador, e decodificador
US20210029381A1 (en) Method and apparatus for obtaining global matched patch
US11875538B2 (en) Point cloud encoding method and encoder
US11388442B2 (en) Point cloud encoding method, point cloud decoding method, encoder, and decoder
US11961265B2 (en) Point cloud encoding and decoding method and apparatus
WO2020063294A1 (zh) 点云编解码方法及编解码器
WO2020147379A1 (zh) 点云滤波方法、装置及存储介质
WO2020151496A1 (zh) 点云的编解码方法及装置
WO2020063718A1 (zh) 点云编解码方法和编解码器
JP2022526289A (ja) 点群符号化方法及び装置、点群復号方法及び装置、並びに記憶媒体
WO2020143725A1 (zh) 点云译码方法及译码器
WO2020015517A1 (en) Point cloud encoding method, point cloud decoding method, encoder and decoder