BR112021005937A2 - aparelho e método de processamento de imagem. - Google Patents

aparelho e método de processamento de imagem. Download PDF

Info

Publication number
BR112021005937A2
BR112021005937A2 BR112021005937-7A BR112021005937A BR112021005937A2 BR 112021005937 A2 BR112021005937 A2 BR 112021005937A2 BR 112021005937 A BR112021005937 A BR 112021005937A BR 112021005937 A2 BR112021005937 A2 BR 112021005937A2
Authority
BR
Brazil
Prior art keywords
point cloud
section
intersection
image processing
data
Prior art date
Application number
BR112021005937-7A
Other languages
English (en)
Inventor
Ohji Nakagami
Koji Yano
Satoru Kuma
Tsuyoshi Kato
Hiroyuki Yasuda
Original Assignee
Sony Corporation
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 Sony Corporation filed Critical Sony Corporation
Publication of BR112021005937A2 publication Critical patent/BR112021005937A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • 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
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

A presente descrição se refere a um dispositivo e a um método de processamento de imagem que tornam possível suprimir um aumento da carga durante a geração de uma nuvem de pontos a partir de uma malha. A presente descrição gera dados da nuvem de pontos pelo posicionamento dos pontos nos pontos de interseção entre uma superfície da malha e um vetor com coordenadas de localização que correspondem à resolução especificada como um ponto da origem. Por exemplo, a presente descrição realiza uma determinação de interseção entre a superfície da malha e o vetor e, quando determinado que a interseção ocorre, calcula as coordenadas do dito ponto de interseção. Por exemplo, a presente descrição é aplicável em um dispositivo de processamento de imagem, um dispositivo eletrônico, um método de processamento de imagem ou programa.

Description

1 / 50
APARELHO E MÉTODO DE PROCESSAMENTO DE IMAGEM Campo Técnico
[001] A presente descrição se refere A um aparelho de processamento de imagem e a um método de processamento de imagem e, em particular, a um aparelho de processamento de imagem e a um método de processamento de imagem que são capazes de suprimir um aumento na carga quando uma nuvem de pontos for gerada a partir de uma malha. Fundamentos da Técnica
[002] Na tecnologia relacionada, por exemplo, a codificação com uma Árvore óctupla está disponível como um método para a codificação dos dados 3D representativos de uma estrutura tridimensional, tal como uma nuvem de pontos (por exemplo, veja NPL 1).
[003] Nos últimos anos, houve uma proposta de que, depois que um objeto 3D alvo for voxelizado, a codificação é realizada pelo uso de uma combinação de codificação da Árvore óctupla e codificação de malha (sopa de triângulos) (veja, por exemplo, NPL 2). Lista de Citação Literatura Não Patentária
[004] NPL 1 R. Mekuria, Student Member IEEE, K. Blom, P. Cesar., Member, IEEE, "Design, Implementation and Evaluation of a Point Cloud Codec for Tele-Immersive Video,” tcsvt_paper_submitted_february.pdf.
[005] NPL 2 Ohji Nakagami, Phil Chou, Maja Krivokuca, Khaled Mammou, Robert Cohen, Vladyslav Zakharchenko, Gaelle Martin-Cocher, "Second Working Draft for PCC Categories 1, 3,” ISO/IEC JTC1/SC29/WG11, MPEG 2018/N17533, April 2018, San Diego, US. Sumário Problema Técnico
[006] Entretanto, em métodos conhecidos, quando uma nuvem de
2 / 50 pontos for gerada a partir da malha, os pontos são densamente amostrados nas superfícies da malha para gerar uma nuvem de pontos de alta densidade e, subsequentemente, a nuvem de pontos é reamostrada em dados de voxel com uma resolução comparável com a resolução de entrada. Isto leva à alta taxa de transferência e uma grande quantidade de dados a serem processados, e a carga pode aumentar quando a nuvem de pontos for gerada a partir da malha.
[007] Em vista de tais circunstâncias, um objetivo da presente descrição é habilitar a supressão de um aumento na carga quando a nuvem de pontos for gerada a partir da malha. Solução para o Problema
[008] Um aparelho de processamento de imagem de acordo com um aspecto da presente técnica é um aparelho de processamento de imagem que inclui uma seção de geração da nuvem de pontos que gera os dados da nuvem de pontos pelo posicionamento de um ponto em um ponto de interseção entre uma superfície de uma malha e um vetor que inclui, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução especificada.
[009] Um método de processamento de imagem de acordo com um aspecto da presente técnica é um método de processamento de imagem que inclui gerar os dados da nuvem de pontos pelo posicionamento de um ponto em um ponto de interseção entre uma superfície de uma malha e um vetor que inclui, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução especificada.
[0010] No aparelho de processamento de imagem e no método de processamento de imagem de acordo com o aspecto da presente técnica, os dados da nuvem de pontos são gerados pelo posicionamento do ponto no ponto de interseção entre a superfície da malha e o vetor que inclui, como a origem inicial, as coordenadas de posição correspondentes à resolução especificada. Breve Descrição dos Desenhos
3 / 50
[0011] A figura 1 ilustra os diagramas de processamento para gerar uma nuvem de pontos a partir de uma malha.
[0012] A figura 2 é um diagrama que ilustra o processamento para gerar a nuvem de pontos a partir da malha.
[0013] A figura 3 é um diagrama que ilustra um exemplo de uma maneira em que os pontos de interseção são calculados.
[0014] A figura 4 é um diagrama de blocos que ilustra um exemplo de uma configuração principal de um aparelho de geração da nuvem de pontos.
[0015] A figura 5 é um fluxograma que ilustra um exemplo de um fluxo de processamento de geração da nuvem de pontos.
[0016] A figura 6 é um diagrama que ilustra um exemplo de uma maneira em que os pontos de interseção são derivados.
[0017] A figura 7 é um diagrama que ilustra um exemplo de uma maneira em que os pontos de interseção são derivados.
[0018] A figura 8 é um diagrama que ilustra um exemplo de uma maneira em que os pontos de interseção são derivados.
[0019] A figura 9 é um diagrama de blocos que ilustra um exemplo de uma configuração principal de um aparelho de decodificação.
[0020] A figura 10 é um fluxograma que ilustra um exemplo de um fluxo do processamento de decodificação.
[0021] A figura 11 é um diagrama de blocos que ilustra um exemplo de uma configuração principal de um aparelho de codificação.
[0022] A figura 12 é um fluxograma que ilustra um exemplo de um fluxo do processamento de codificação.
[0023] A figura 13 é um diagrama que ilustra um exemplo de uma maneira em que uma sopa de triângulos é tornada escalável.
[0024] A figura 14 é um diagrama que ilustra um exemplo de uma maneira em que os pontos são gerados.
[0025] A figura 15 é um diagrama que ilustra um exemplo de uma
4 / 50 maneira em que os pontos são gerados.
[0026] A figura 16 é um diagrama que ilustra um exemplo de uma maneira em que os pontos são gerados.
[0027] A figura 17 é um diagrama que ilustra um exemplo de uma maneira em que os pontos são gerados.
[0028] A figura 18 é um diagrama que ilustra um exemplo de uma maneira em que os pontos são gerados.
[0029] A figura 19 é um fluxograma que ilustra um exemplo de um fluxo de processamento de geração da nuvem de pontos.
[0030] A figura 20 é um diagrama de blocos que ilustra um exemplo de uma configuração principal de um computador. Descrição das Modalidades
[0031] Os modos para realizar a presente descrição (a seguir referidos como modalidades) serão descritos a seguir. Note que a descrição é dada na seguinte ordem.
1. Geração da Nuvem de Pontos
2. Primeira Modalidade (Aparelho de Geração da Nuvem de Pontos)
3. Segunda Modalidade (Aparelho de Decodificação)
4. Terceira Modalidade (Aparelho de Codificação)
5. Quarta Modalidade (Tornando a Sopa de Triângulos Escalável)
6. Característica Complementar <1. Geração da Nuvem de Pontos>
[0032] <Documentos e Similares que Suportam os Conteúdos e os Termos Técnicos>
[0033] O escopo descrito na presente descrição inclui, bem como os conteúdos descritos nas modalidades, os conteúdos descritos na seguinte literatura não patentária que eram conhecidos no momento do depósito do pedido.
[0034] NPL 1: (supradescrito).
5 / 50
[0035] NPL 2: (supradescrito).
[0036] NPL 3: SETOR DE PADRONIZAÇÃO DE TELECOMUNICAÇÃO DA ITU (União Internacional de Telecomunicação), "Codificação de vídeo avançada para serviços audiovisuais genéricos”, H.264, 04/2017.
[0037] NPL 4: SETOR DE PADRONIZAÇÃO DE TELECOMUNICAÇÃO DA ITU (União Internacional de Telecomunicação), "Codificação de vídeo de alta eficiência”, H.265, 12/2016.
[0038] NPL 5: Jianle Chen, Elena Alshina, Gary J. Sullivan, Jens- Rainer, Jill Boyce, "Algorithm Description of Joint Exploration Test Model 4,” JVET-G1001_v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: Torino, IT, 13-21 July
2017.
[0039] Em outras palavras, os conteúdos descritos na literatura não patentária listada anteriormente constituem os fundamentos para a determinação das exigências de suporte. Por exemplo, pretende-se que uma Estrutura do Bloco de Árvore Quádrupla descrita em NPL 4 e uma Estrutura de Bloco QTBT (Árvore Quádrupla Mais Árvore Binária) descritas em NPL 5 estejam no alcance da descrição da presente técnica e satisfaçam as exigências de suporte nas reivindicações mesmo em um caso em que as modalidades incluírem nenhuma descrição das estruturas. Similarmente, pretende-se que os termos técnicos, tais como análise sintática, sintaxe e semântica, estejam no alcance da descrição da presente técnica e satisfaçam as exigências de suporte nas reivindicações mesmo em um caso em que as modalidades incluírem nenhuma descrição dos termos. <Nuvem de Pontos>
[0040] Na arte relacionada, os dados 3D, tais como uma nuvem de pontos e uma malha, estavam disponíveis. Especificamente, a nuvem de pontos representa uma estrutura tridimensional pelo uso da informação de
6 / 50 posição, da informação de atributo e similares em relação a um grupo de pontos, e a malha inclui vértices, bordas e superfícies e define uma forma tridimensional pelo uso da representação poligonal.
[0041] Por exemplo, em um caso da nuvem de pontos, uma estrutura tridimensional (um objeto em uma forma tridimensional) é representada como um conjunto de um grande número de pontos (grupo de pontos). Em outras palavras, os dados na nuvem de pontos (a seguir também referidos como dados da nuvem de pontos) incluem a informação de posição e a informação de atributo (por exemplo, cores e similares) em relação a cada um dos pontos do grupo de pontos. Assim, a estrutura de dados é relativamente simples, e um número de pontos suficientemente grande é usado para permitir que uma estrutura tridimensional opcional seja representada com uma precisão suficiente. <Quantização da Informação de Posição Usando Voxels>
[0042] Tais dados da nuvem de pontos envolvem uma quantidade de dados relativamente grande e, assim, um método de codificação que usa voxels foi verificado para a compressão da quantidade de dados resultante da codificação e similares. Os voxels são regiões tridimensionais para a quantização da informação de posição em relação a um objeto a ser codificado.
[0043] Em outras palavras, uma região tridimensional que contém uma nuvem de pontos é dividida em pequenas regiões tridimensionais referidas como voxels e, para cada um dos voxels, se ou não os pontos estão contidos no voxel é indicado. Isto faz com que a posição de cada ponto seja quantizada em unidades de voxels. Consequentemente, pela conversão dos dados da nuvem de pontos em tais dados em relação aos voxels (também referidos como dados de voxel), um aumento na quantidade de informação pode ser suprimido (tipicamente, a quantidade da informação pode ser reduzida).
7 / 50 <Árvore Óctupla>
[0044] Adicionalmente, a construção de uma Árvore óctupla usando tais dados de voxel foi verificada. A Árvore óctupla corresponde a uma estrutura de árvore na qual os dados de voxel são formados. O valor de cada bit no nó mais inferior da Árvore óctupla indica se ou não os pontos estão presentes em cada voxel. Por exemplo, o valor “1” indica um voxel que contém pontos, e o valor “0” indica um voxel que não contém pontos. Na Árvore óctupla, um nó corresponde a oito voxels. Em outras palavras, cada nó da Árvore óctupla inclui dados de 8 bits, e os 8 bits indicam se ou não os pontos estão presentes nos oito voxels.
[0045] Um nó superior na Árvore óctupla indica se ou não os pontos estão presentes em uma região na qual oito voxels correspondentes aos nós inferiores que pertencem ao nó superior são organizados. Em outras palavras, a organização da informação em relação aos voxels para os nós inferiores gera o nó superior. Note que, em um caso em que os nós tiverem um valor de “0”, isto é, em um caso em que nenhum dos oito voxels correspondentes contiver pontos, os nós são deletados.
[0046] Isto permite a construção de uma estrutura de árvore (Árvore óctupla) que inclui os nós com um valor que não é “0”. Em outras palavras, a Árvore óctupla pode indicar se os pontos estão presentes ou não nos voxels com diferentes resoluções. Consequentemente, em um caso em que os dados de voxel forem formados em uma Árvore óctupla e a Árvore óctupla for codificada, então, durante a decodificação, os dados de voxel com uma variedade de resoluções podem ser mais facilmente restaurados. Em outras palavras, a escalabilidade dos voxels pode ser mais facilmente alcançada.
[0047] Adicionalmente, a omissão dos nós com o valor “0”, da forma supradescrita, habilita uma redução na resolução dos voxels em regiões em que nenhum ponto está presente, assim, permitindo a supressão adicional de um aumento na quantidade da informação (tipicamente, permitindo uma
8 / 50 redução na quantidade da informação). <Combinação de Árvore Óctupla e Malha>
[0048] Nos últimos anos, houve uma proposta em que, depois que um objeto 3D alvo for voxelizado, a codificação é realizada pelo uso de uma combinação da codificação da Árvore óctupla e da codificação de malha (sopa de triângulos), da forma descrita, por exemplo, em NPL 2.
[0049] Por exemplo, da forma ilustrada em A da figura 1, os dados da Árvore óctupla são decodificados para gerar os dados de voxel. No exemplo em A da figura 1, um voxel 11-1, um voxel 11-2, e um voxel 11-3 são gerados.
[0050] Então, da forma ilustrada em, por exemplo, B da figura 1, uma forma da malha (isto é, uma superfície da malha) é restaurada a partir dos dados de voxel. No exemplo em B da figura 1, uma superfície 12 da malha é restaurada com base no voxel 11-1, no voxel 11-2 e no voxel 11-3.
[0051] Então, da forma ilustrada em, por exemplo, C da figura 1, os pontos 13 são posicionados na superfície 12 da malha com uma resolução de 1/(2*largura do bloco). Note que a largura do bloco indica o lado mais longo de uma caixa de delimitação que inclui uma malha.
[0052] Então, da forma ilustrada em, por exemplo, D da figura 1, os pontos 13 são revoxelizados com uma resolução especificada d. Neste momento, os dados de malha (superfície 12 e similares) são removidos. Em outras palavras, quando os dados da nuvem de pontos com uma resolução desejada forem gerados a partir dos dados de malha, a amostragem é realizada para reduzir a resolução dos pontos 13 (o número de pontos) temporariamente amostrados com uma alta resolução.
[0053] Entretanto, um método como este precisa realizar a amostragem duas vezes, envolvendo o processamento redundante. Adicionalmente, uma nuvem de pontos de alta densidade é amostrada, levando a uma maior quantidade de dados. Assim, a carga pode aumentar
9 / 50 quando uma nuvem de pontos for gerada a partir da malha. Consequentemente, um tempo de processamento pode ser estendido, e o uso de recursos, tais como memórias, pode ser aumentado. <Controle de Resolução da Nuvem de Pontos>
[0054] Assim, pela utilização do fato em que uma nuvem de pontos de saída tem a mesma resolução que a resolução de uma nuvem de pontos de entrada voxelizada, o número de determinações de voxel é limitado para permitir que uma nuvem de pontos seja gerada em alta velocidade.
[0055] Mais especificamente, os dados da nuvem de pontos são gerados pelo posicionamento dos pontos nos pontos de interseção entre uma superfície de uma malha e os vetores, cada qual incluindo, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução especificada.
[0056] Por exemplo, um aparelho de processamento de imagem inclui uma seção de geração da nuvem de pontos que gera os dados da nuvem de pontos pelo posicionamento dos pontos nos pontos de interseção entre uma superfície de uma malha e os vetores, cada qual incluindo, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução especificada.
[0057] Isto permite que dados de voxel equivalentes a uma resolução de entrada sejam gerados a partir de uma malha por uma única etapa de processamento. Consequentemente, um possível aumento na carga pode ser suprimido quando uma nuvem de pontos for gerada a partir de uma malha. Assim, um tempo de processamento estendido e um maior uso de recursos, tais como memórias, podem ser suprimidos. Tipicamente, o tempo de processamento pode ser encurtado, e o uso de recursos, tais como memórias, pode ser reduzido. Adicionalmente, uma nuvem de pontos pode ser gerada em velocidade mais alta. <Derivação da Nuvem de Pontos>
10 / 50
[0058] A seguir, um método para derivar uma nuvem de pontos será descrito mais especificamente. Primeiro, da forma ilustrada na figura 2, os vetores Vi que têm os mesmos direção e comprimento que aqueles dos lados de uma caixa de delimitação que inclui os dados a serem codificados são gerados em um intervalo k*d. Na figura 2, para uma superfície 22 de uma malha presente na caixa de delimitação 21, os vetores Vi, da forma ilustrada pelas setas 23, são definidos. O “d” denota um tamanho da quantização usado quando a caixa de delimitação for voxelizada. O “k” é qualquer número natural. Em outras palavras, os vetores Vi são definidos, cada um dos quais incluindo, como uma origem inicial, as coordenadas de posição correspondentes à resolução especificada.
[0059] Então, a determinação da interseção é realizada entre a superfície decodificada 22 da malha (isto é, uma malha triangular) e os vetores definidos Vi (seta 23). Em um caso em que os vetores Vi fizerem interseção com a superfície triangular 22, os valores de coordenada dos pontos de interseção 24 entre os vetores Vi e a superfície triangular 22 são calculados.
[0060] Note que, como as direções dos vetores Vi, duas direções correspondentes às direções positiva e negativa podem ser definidas para cada uma de uma direção x, uma direção y e uma direção z que são perpendiculares umas às outras (direções paralelas aos respectivos lados da caixa de delimitação). Em outras palavras, a determinação da interseção pode ser realizada nos respectivos vetores Vi que se estendem nos seis tipos de direções. De uma maneira como esta, a determinação da interseção é realizada em mais direções, permitindo que os pontos de interseção sejam mais confiavelmente detectados.
[0061] Note que o ponto inicial de cada um dos vetores Vi pode ser limitado no alcance de três vértices de uma malha triangular. Isto habilita uma redução no número de vetores Vi a serem processados, permitindo a
11 / 50 supressão de um possível aumento na carga (por exemplo, permitindo que o processamento seja executado em velocidade mais alta).
[0062] Adicionalmente, como processamento auxiliar, em um caso em que os valores de coordenada dos pontos de interseção sobrepuserem entre diferentes vetores ou malhas, todos os pontos sobrepostos podem ser deletados, exceto um. A remoção dos pontos sobrepostos de uma maneira como esta permite um aumento no processamento desnecessário e nas cargas seja suprimido (por exemplo, habilita processamento mais rápido).
[0063] Adicionalmente, como processamento auxiliar, em um caso em que os valores de coordenada de um ponto de interseção estiverem fora da caixa de delimitação, o processamento de corte pode ser usado para cortar (mover) a posição do ponto de interseção para o interior da caixa de delimitação. Alternativamente, o ponto de interseção pode ser deletado.
[0064] Os pontos com valores de coordenada determinados da forma supradescrita são transmitidos como resultados de decodificação. Em outras palavras, os pontos são posicionados nos valores de coordenada determinados. Isto permite que os dados de voxel equivalentes a uma resolução de entrada sejam gerados a partir de uma malha por uma única etapa de processamento. Consequentemente, um possível aumento nas cargas pode ser suprimido quando uma nuvem de pontos for gerada a partir de uma malha. <Determinação da Interseção e Cálculo dos Valores de Coordenada>
[0065] Note que os métodos para a determinação da interseção e o cálculo dos valores de coordenada são opcionais. Por exemplo, a regra de Cramer pode ser usada para a determinação, da forma ilustrada na figura 3. Por exemplo, considerando que “P” denota as coordenadas de um ponto de interseção, a “origem” denota as coordenadas do raio, o “raio” denota um vetor da direção, e “t” denota um valor escalar, um ponto de interseção que passa através do raio é representado como segue pelo uso de uma expressão
12 / 50 linear. P = origem + raio * t
[0066] Adicionalmente, “vo” denota as coordenadas de vértice de um triângulo, “borda1” denota um vetor obtido pela subtração das coordenadas v0 das coordenadas v1, e “borda2” denota um vetor similarmente obtido pela subtração das coordenadas v0 das coordenadas v2. Um ponto P é representado por u (valor escalar) a partir de v0 em uma direção do vetor borda1, e um ponto de interseção em um triângulo é expressado como segue pelo uso dos vetores das bordas. P = v0 + borda1 * u + borda2 * v
[0067] A associação das duas equações resulta em equações simultâneas. origem + raio * t = v0 + borda1 * u + borda2 * v
[0068] As equações podem ser organizadas e expressadas como segue. borda1 * u + borda2 * v · raio * t = origem · v0
[0069] Como exposto, uma equação linear simultânea com três incógnitas é obtida e pode, assim, ser automaticamente calculada como uma determinante pelo uso da regra de Cramer. <2. Primeira Modalidade> <Aparelho de Geração da Nuvem de Pontos>
[0070] A seguir, será descrita uma configuração que implementa o processamento, como exposto. A figura 4 é um diagrama de blocos que ilustra um exemplo de uma configuração de um aparelho de geração da nuvem de pontos como um aspecto de um aparelho de processamento de imagem no qual a presente técnica é aplicada. Um aparelho de geração da nuvem de pontos 100 ilustrado na figura 4 é um aparelho que gera uma nuvem de pontos a partir de uma malha, da forma descrita em <1. Geração da Nuvem de Pontos>.
13 / 50
[0071] Note que a figura 4 ilustra os componentes principais, tais como as seções de processamento e os fluxos de dados, e que nem todos os componentes do aparelho de geração da nuvem de pontos 100 são ilustrados na figura 4. Em outras palavras, no aparelho de geração da nuvem de pontos 100, podem estar presentes as seções de processamento que não são ilustradas como os blocos na figura 4, ou podem estar presentes os fluxos de processamento ou de dados que não são ilustrados como setas ou similares na figura 4.
[0072] Da forma ilustrada na figura 4, o aparelho de geração da nuvem de pontos 100 inclui uma seção de definição do vetor 111, uma seção de determinação da interseção 112, uma seção de processamento auxiliar 113, e uma seção de saída 114.
[0073] A seção de definição do vetor 111 define (gera) os vetores Vi para a determinação da interseção, como exposto, por exemplo, em <Derivação da Nuvem de Pontos>. Os vetores Vi têm a mesma direção e o mesmo comprimento que aqueles dos lados de uma caixa de delimitação que inclui os dados a serem codificados, como exposto. A seção de definição do vetor 111 alimenta a seção de determinação da interseção 112 com a informação de vetor que indica os vetores definidos Vi.
[0074] A seção de determinação da interseção 112 adquire os dados de malha inseridos no aparelho de geração da nuvem de pontos 100 e adquire adicionalmente a informação de vetor alimentada a partir da seção de definição do vetor 111. A seção de determinação da interseção 112 realiza a determinação da interseção entre uma superfície de uma malha indicada pelos dados de malha adquiridos e os vetores Vi indicados pela informação de vetor, como exposto, por exemplo, em <Derivação da Nuvem de Pontos>, <Determinação da Interseção e Cálculo dos Valores de Coordenada> e similares. Em um caso em que os pontos de interseção forem detectados, a seção de determinação da interseção 112 calcula os valores de coordenada dos
14 / 50 pontos de interseção. A seção de determinação da interseção 112 alimenta os valores de coordenada calculados dos pontos de interseção (coordenadas do ponto de interseção) para a seção de processamento auxiliar 113.
[0075] A seção de processamento auxiliar 113 adquire as coordenadas do ponto de interseção alimentadas a partir da seção de determinação da interseção 112 e executa o processamento auxiliar nos pontos de interseção, como exposto, por exemplo, em <Derivação da Nuvem de Pontos>. A seção de processamento auxiliar 113 alimenta as coordenadas do ponto de interseção nas quais o processamento auxiliar foi executado para a seção de saída 114, conforme necessário.
[0076] A seção de saída 114 transmite as coordenadas do ponto de interseção alimentadas a partir da seção de processamento auxiliar 113 para o exterior do aparelho de geração da nuvem de pontos 100 como (informação de posição nos) dados da nuvem de pontos. Em outras palavras, os dados da nuvem de pontos com pontos posicionados nas coordenadas do ponto de interseção derivadas são gerados e transmitidos.
[0077] Note que as seções de processamento (seção de definição do vetor 111 até seção de saída 114) têm configurações opcionais. Por exemplo, cada uma das seções de processamento pode incluir um circuito lógico que implementa o supradescrito processamento. Adicionalmente, cada seção de processamento pode, por exemplo, incluir uma CPU (Seção de Processamento Central), uma ROM (Memória Somente de Leitura), uma RAM (Memória de Acesso Aleatório) e similares, e usa a CPU e as memórias para executar um programa, implementando o supradescrito processamento. É desnecessário dizer que cada seção de processamento pode ter ambas as supradescritas configurações para implementar uma parte do supradescrito processamento pelo uso de um circuito lógico, durante a implementação da parte restante do processamento pelo uso de um programa. As seções de processamento podem ser configuradas independentemente umas das outras. Por exemplo, algumas
15 / 50 seções de processamento podem implementar uma parte do supradescrito processamento pelo uso de um circuito lógico, outras seções de processamento podem implementar o supradescrito processamento pela execução de um programa, e as outras seções de processamento podem implementar o supradescrito processamento tanto pelo uso de um circuito lógico quanto pela execução de um programa.
[0078] Uma configuração como esta permite que o aparelho de geração da nuvem de pontos 100 produza os efeitos da forma descrita em <1. Geração da Nuvem de Pontos>. Por exemplo, os dados de voxel equivalentes a uma resolução de entrada podem ser gerados a partir de uma malha pela execução de uma única etapa de processamento. Assim, um aumento nas cargas envolvidas na geração dos dados da nuvem de pontos pode ser suprimido. Consequentemente, por exemplo, os dados da nuvem de pontos podem ser gerados em velocidade mais alta. Adicionalmente, por exemplo, os custos de manufatura do aparelho de geração da nuvem de pontos 100 podem ser reduzidos. <Fluxo do Processamento de Geração da Nuvem de Pontos>
[0079] A seguir, um exemplo de um fluxo do processamento de geração da nuvem de pontos executado pelo aparelho de geração da nuvem de pontos 100 será descrito em relação a um fluxograma na figura 5.
[0080] Quando o processamento de geração da nuvem de pontos for iniciado, a seção de determinação da interseção 112 adquire os dados de malha na etapa S101.
[0081] Na etapa S102, a seção de definição do vetor 111 define os vetores Vi, cada qual incluindo, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução de voxel especificada (o vetor tendo a mesma direção e o mesmo comprimento que aqueles de cada lado de uma caixa de delimitação que inclui os dados a serem codificados).
[0082] Na etapa S103, a seção de determinação da interseção 112
16 / 50 realiza a determinação da interseção entre os vetores Vi definidos na etapa S102 e uma superfície (triângulo) de uma malha indicada pelos dados de malha adquiridos na etapa S101.
[0083] Na etapa S104, a seção de determinação da interseção 112 calcula as coordenadas dos pontos de interseção detectadas na etapa S103.
[0084] Na etapa S105, a seção de processamento auxiliar 113 deleta os pontos de interseção sobrepostos, exceto um.
[0085] Na etapa S106, a seção de processamento auxiliar 113 processa os pontos de interseção fora da caixa de delimitação (por exemplo, executa o processamento de corte nos pontos de interseção ou deleta os pontos de interseção).
[0086] Na etapa S107, a seção de saída 114 transmite, como os dados da nuvem de pontos (informação de posição), as coordenadas dos pontos de interseção determinadas como exposto.
[0087] Quando a etapa S107 de processamento terminar, o processamento de geração da nuvem de pontos termina.
[0088] Note que as respectivas etapas de processamento supradescritas são executadas, como é o caso com o exemplo supradescrito em <1. Geração da Nuvem de Pontos>. Assim, pela execução das respectivas etapas de processamento supradescritas, o aparelho de geração da nuvem de pontos 100 pode produzir os efeitos da forma descrita na <1. Geração da Nuvem de Pontos>. Por exemplo, os dados de voxel equivalentes a uma resolução de entrada podem ser gerados a partir de uma malha pela execução de uma única etapa de processamento. Assim, um aumento nas cargas envolvidas na geração dos dados da nuvem de pontos pode ser suprimido. Consequentemente, por exemplo, os dados da nuvem de pontos podem ser gerados em velocidade mais alta. Adicionalmente, por exemplo, os custos de manufatura do aparelho de geração da nuvem de pontos 100 podem ser reduzidos.
17 / 50 <Redução dos Pontos de Interseção na Superfície em Relação ao Centro>
[0089] Note que, na determinação da interseção, como exposto, a determinação da interseção pode ser realizada em uma parte de uma superfície em relação ao centro pelo uso de vetores mais esparsos Vi do que aqueles usados no caso da determinação da interseção realizada nas extremidades da superfície. Por exemplo, como é o caso com um exemplo na figura 6, a determinação da interseção pode ser realizada em uma superfície 201 pelo uso de vetores Vi 202-1 a 202-8. Neste exemplo, os intervalos entre os vetores Vi 202-1 a 202-8 são definidos de maneira tal que os intervalos entre os vetores Vi 202-1 a 202-3 e os intervalos entre os vetores Vi 202-6 a 202-8 sejam pequenos. Em outras palavras, os intervalos entre os vetores Vi 202-3 a 202-6 são definidos maiores do que os intervalos entre os outros vetores Vi. Especificamente, os vetores Vi 202-1 a 202-3 e os vetores Vi 202- 6 a 202-8, que são usados para realizar a determinação da interseção nas extremidades da superfície 201, têm intervalos definidos menores (os vetores são densos), enquanto que os vetores Vi 202-3 a 202-6, que são usados para realizar a determinação da interseção em uma parte da superfície 201 em relação ao centro, têm intervalos definidos maiores (os vetores são esparsos).
[0090] Como exposto, em uma parte do triângulo em relação ao centro, a detecção da colisão é realizada nos vetores Vi pelo uso intencional de intervalos maiores (os intervalos entre as origens iniciais são aumentados), habilitando uma redução no número de pontos gerados na parte do triângulo em relação ao centro. Consequentemente, um aumento na taxa de bit de codificação da informação de atributo (informação de cor e similares) em relação à nuvem de pontos pode ser suprimido. <Omissão da Determinação da Interseção>
[0091] Adicionalmente, as coordenadas nas quais a determinação da interseção foi realizada uma vez podem ser impedidas de serem calculadas novamente. Por exemplo, em um caso em que uma pluralidade de superfícies
18 / 50 (superfície 212 e superfície 213) de uma malha estiverem presentes para um vetor Vi 211, da forma ilustrada em um exemplo na figura 7, a determinação da interseção é simultaneamente realizada em um vetor Vi 211 para permitir que o processamento seja executado em velocidade mais alta. <Adição de Processamento de Remoção de Ruído>
[0092] Adicionalmente, da forma ilustrada na figura 8, em um caso em que um vetor Vi 221 fizer interseção com uma pluralidade de triângulos (superfície 222 e superfície 223) e quando um espaço estiver presente entre os triângulos, os pontos (na figura, os pontos negros) podem ser gerados no espaço para preencher o vazio (remoção de ruído). Isto permite que uma nuvem de pontos mais precisa seja gerada. Em outras palavras, a degradação da qualidade de imagem da imagem de exibição pode ser suprimida (tipicamente, a qualidade da imagem pode ser melhorada). <Paralelização do Processamento>
[0093] Note que, para a determinação da interseção, como exposto, uma pluralidade de etapas de processamento pode ser executada em paralelo. Por exemplo, a determinação da interseção para uma pluralidade de vetores para uma superfície de uma malha pode ser processada em paralelo (etapas de processamento podem ser executadas em paralelo). Em outras palavras, o processamento pode ser executado independentemente para cada vetor. Isto permite que a determinação da interseção seja realizada em velocidade mais alta.
[0094] Adicionalmente, por exemplo, a determinação da interseção pode ser realizada em uma pluralidade de superfícies para um vetor em paralelo (etapas de processamento podem ser executadas em paralelo). Em outras palavras, o processamento pode ser executado independentemente para cada superfície da malha. Isto permite que a determinação da interseção seja alcançada em velocidade mais alta. <3. Segunda Modalidade>
19 / 50 <Aparelho de Decodificação>
[0095] A figura 9 é um diagrama de blocos que ilustra um exemplo de uma configuração de um aparelho de decodificação como um aspecto de um aparelho de processamento de imagem no qual a presente técnica é aplicada. Um aparelho de decodificação 300 ilustrado na figura 9 corresponde a um aparelho de codificação 500 na figura 11 descrito a seguir e, por exemplo, decodifica um fluxo contínuo de bits gerado pelo aparelho de codificação 500 para restaurar os dados da nuvem de pontos.
[0096] Note que a figura 9 ilustra os componentes principais, tais como as seções de processamento e os fluxos de dados, e que nem todos os componentes do aparelho de decodificação 300 são ilustrados na figura 9. Em outras palavras, no aparelho de decodificação 300, podem estar presentes as seções de processamento que não são ilustradas como os blocos na figura 9, ou podem ser presentes os fluxos de processamento ou de dados que não são ilustrados como setas ou similares na figura 9.
[0097] Da forma ilustrada na figura 9, o aparelho de decodificação 300 inclui uma seção de decodificação sem perdas 311, uma seção de decodificação da Árvore óctupla 312, uma seção de restauração da forma da malha 313, uma seção de geração da nuvem de pontos 314, e uma seção de decodificação do atributo 315.
[0098] A seção de decodificação sem perdas 311 adquire um fluxo contínuo de bits inserido no aparelho de decodificação 300 e decodifica o fluxo contínuo de bits para gerar os dados da Árvore óctupla. A seção de decodificação sem perdas 311 alimenta os dados da Árvore óctupla para a seção de decodificação da Árvore óctupla 312.
[0099] A seção de decodificação da Árvore óctupla 312 adquire os dados da Árvore óctupla alimentados a partir da seção de decodificação sem perdas 311, constrói uma Árvore óctupla a partir dos dados da Árvore óctupla, e gera os dados de voxel a partir da Árvore óctupla. A seção de decodificação
20 / 50 da Árvore óctupla 312 alimenta os dados de voxel gerados na seção de restauração da forma da malha 313.
[00100] A seção de restauração da forma da malha 313 usa os dados de voxel alimentados a partir da seção de decodificação da Árvore óctupla 312 para restaurar uma forma da malha. A seção de restauração da forma da malha 313 alimenta os dados de malha gerados para a seção de geração da nuvem de pontos 314.
[00101] A seção de geração da nuvem de pontos 314 gera os dados da nuvem de pontos a partir dos dados de malha alimentados a partir da seção de restauração da forma da malha 313 e alimenta os dados da nuvem de pontos gerados para a seção de decodificação do atributo 315. A seção de geração da nuvem de pontos 314 é configurada similarmente ao aparelho de geração da nuvem de pontos 100 (figura 4) e executa o processamento similar ao processamento executado pelo aparelho de geração da nuvem de pontos 100. Especificamente, a seção de geração da nuvem de pontos 314 gera os dados da nuvem de pontos a partir dos dados de malha pelo uso de um método da forma supradescrita em <1. Geração da Nuvem de Pontos> e <2. Primeira Modalidade>.
[00102] Assim, a seção de geração da nuvem de pontos 314 pode produzir os efeitos similares aos efeitos do aparelho de geração da nuvem de pontos 100. Por exemplo, a seção de geração da nuvem de pontos 314 pode gerar, a partir de uma malha, os dados de voxel equivalentes a uma resolução de entrada pela execução de uma única etapa de processamento. Assim, a seção de geração da nuvem de pontos 314 pode suprimir um aumento nas cargas envolvidas na geração dos dados da nuvem de pontos. Consequentemente, a seção de geração da nuvem de pontos 314 pode, por exemplo, gerar os dados da nuvem de pontos em velocidade mais alta. Adicionalmente, por exemplo, os custos de manufatura da seção de geração da nuvem de pontos 314 podem ser reduzidos.
21 / 50
[00103] A seção de decodificação do atributo 315 executa o processamento relacionado à decodificação da informação de atributo. Por exemplo, a seção de decodificação do atributo 315 decodifica a informação de atributo correspondente aos dados da nuvem de pontos alimentados a partir da seção de geração da nuvem de pontos 314. Então, a seção de decodificação do atributo 315 inclui a informação de atributo decodificada nos dados da nuvem de pontos alimentados a partir da seção de geração da nuvem de pontos 314 e transmite os dados da nuvem de pontos para o exterior do aparelho de decodificação 300.
[00104] Note que estas seções de processamento (seção de decodificação sem perdas 311 até seção de decodificação do atributo 315) têm configurações opcionais. Por exemplo, cada uma das seções de processamento pode incluir um circuito lógico que implementa o supradescrito processamento. Adicionalmente, cada seção de processamento pode, por exemplo, incluir uma CPU, uma ROM, uma RAM e similares e usar a CPU e as memórias para executar um programa, implementando o supradescrito processamento. É desnecessário dizer que cada seção de processamento pode ter ambas as configurações supradescritas para implementar uma parte do supradescrito processamento pelo uso de um circuito lógico, ao mesmo tempo em que implementa a parte restante do processamento pelo uso de um programa. As seções de processamento podem ser configuradas independentemente umas das outras. Por exemplo, algumas seções de processamento podem implementar uma parte do supradescrito processamento pelo uso de um circuito lógico, outras seções de processamento podem implementar o supradescrito processamento pela execução de um programa, e as outras seções de processamento podem implementar o supradescrito processamento tanto pelo uso de um circuito lógico quanto pela execução de um programa.
[00105] Uma configuração como esta permite que o aparelho de
22 / 50 decodificação 300 produza os efeitos da forma descrita em <1. Geração da Nuvem de Pontos> e <2. Primeira Modalidade>. Por exemplo, o aparelho de decodificação 300 pode gerar os dados de voxel equivalentes a uma resolução de entrada a partir de uma malha pela execução de uma única etapa de processamento e pode, assim, suprimir um aumento nas cargas envolvidas na geração dos dados da nuvem de pontos. Consequentemente, por exemplo, o aparelho de decodificação 300 pode gerar os dados da nuvem de pontos em velocidade mais alta. Adicionalmente, por exemplo, os custos de manufatura do aparelho de decodificação 300 podem ser reduzidos. <Fluxo do Processamento de Decodificação>
[00106] A seguir, um exemplo de um fluxo do processamento de decodificação executado pelo aparelho de decodificação 300 será descrito em relação a um fluxograma na figura 10.
[00107] Quando o processamento de decodificação for iniciado, na etapa S301, a seção de decodificação sem perdas 311 adquire um fluxo contínuo de bits.
[00108] Na etapa S302, a seção de decodificação sem perdas 311 realiza a decodificação sem perdas no fluxo contínuo de bits adquiridos na etapa S301.
[00109] Na etapa S303, a seção de decodificação da Árvore óctupla 312 constrói uma Árvore óctupla e restaura os dados de voxel.
[00110] Na etapa S304, a seção de restauração da forma da malha 313 restaura uma forma da malha a partir dos dados de voxel restaurados na etapa S303.
[00111] Na etapa S305, a seção de geração da nuvem de pontos 314 executa o processamento de geração da nuvem de pontos (figura 5) e usa um método da forma supradescrita em <1. Geração da Nuvem de Pontos> e <2. Primeira Modalidade> para gerar uma nuvem de pontos a partir da forma da malha restaurada na etapa S304.
23 / 50
[00112] Na etapa S306, a seção de decodificação do atributo 315 decodifica a informação de atributo.
[00113] Na etapa S307, a seção de decodificação do atributo 315 inclui, nos dados da nuvem de pontos, a informação de atributo decodificada na etapa S306 e transmite os dados da nuvem de pontos.
[00114] Quando a etapa S307 de processamento terminar, o processamento de decodificação termina.
[00115] Pela execução de cada etapa de processamento, como exposto, o aparelho de decodificação 300 pode produzir os efeitos da forma descrita em <1. Geração da Nuvem de Pontos> e <2. Primeira Modalidade>. <4. Terceira Modalidade> <Aparelho de Codificação>
[00116] A figura 11 é um diagrama de blocos que ilustra um exemplo de uma configuração de um aparelho de codificação como um aspecto de um aparelho de processamento de imagem no qual a presente técnica é aplicada. O aparelho de codificação 500 ilustrado na figura 11 é um aparelho que codifica dados 3D, tal como uma nuvem de pontos, pelo uso de voxels e Árvores óctuplas.
[00117] Note que a figura 11 ilustra os componentes principais, tais como as seções de processamento e os fluxos de dados, e que nem todos os componentes do aparelho de codificação 500 são ilustrados na figura 11. Em outras palavras, no aparelho de codificação 500, podem estar presentes as seções de processamento que não são ilustradas como os blocos na figura 11, ou podem estar presentes os fluxos de processamento ou de dados que não são ilustrados como as setas ou similares na figura 11. Isto também se aplica a outras figuras para descrever as seções de processamento e similares no aparelho de codificação 500.
[00118] O aparelho de codificação 500 ilustrado na figura 11 inclui uma seção de geração de voxel 511, uma seção de codificação da geometria
24 / 50 512, uma seção de decodificação da geometria 513, uma seção de codificação do atributo 514, e uma seção de geração do fluxo contínuo de bits 515.
[00119] A seção de geração de voxel 511 adquire os dados da nuvem de pontos inseridos no aparelho de codificação 500, define uma caixa de delimitação para uma região que inclui os dados da nuvem de pontos adquiridos, e divide adicionalmente a caixa de delimitação para definir os voxels, quantizando a informação de posição nos dados da nuvem de pontos. A seção de geração de voxel 511 alimenta os dados de voxel assim gerados para a seção de codificação da geometria 512.
[00120] A seção de codificação da geometria 512 codifica os dados de voxel alimentados a partir da seção de geração de voxel 511 para codificar a informação de posição em relação à nuvem de pontos. A seção de codificação da geometria 512 alimenta a seção de geração do fluxo contínuo de bits 515 com os dados codificados gerados da informação de posição em relação à nuvem de pontos. Adicionalmente, a seção de codificação da geometria 512 alimenta a seção de decodificação da geometria 513 com os dados da Árvore óctupla gerados quando a informação de posição em relação à nuvem de pontos for codificada.
[00121] A seção de decodificação da geometria 513 decodifica os dados da Árvore óctupla para gerar a informação de posição em relação à nuvem de pontos. A seção de decodificação da geometria 513 alimenta os dados da nuvem de pontos gerados (informação de posição) para a seção de codificação do atributo 514.
[00122] Com base nos parâmetros de codificação inseridos, a seção de codificação do atributo 514 codifica a informação de atributo correspondente aos dados da nuvem de pontos (informação de posição). A seção de codificação do atributo 514 alimenta os dados codificados gerados da informação de atributo para a seção de geração do fluxo contínuo de bits 515.
[00123] A seção de geração do fluxo contínuo de bits 515 gera um
25 / 50 fluxo contínuo de bits que inclui os dados codificados da informação de posição alimentada a partir da seção de codificação da geometria 512 e os dados codificados da informação de atributo alimentada a partir da seção de codificação do atributo 514, e transmite o fluxo contínuo de bits para o exterior do aparelho de codificação 500. <Seção de Codificação da Geometria>
[00124] A seção de codificação da geometria 512 inclui uma seção de geração da Árvore óctupla 521, uma seção de geração da malha 522, e uma seção de codificação sem perdas 523.
[00125] A seção de geração da Árvore óctupla 521 usa os dados de voxel alimentados a partir da seção de geração de voxel 511 para construir uma Árvore óctupla e gerar os dados da Árvore óctupla. A seção de geração da Árvore óctupla 521 alimenta os dados da Árvore óctupla gerados para a seção de geração da malha 522.
[00126] A seção de geração da malha 522 usa dados da Árvore óctupla alimentados a partir da seção de geração da Árvore óctupla 521 para gerar os dados de malha e alimenta os dados de malha para a seção de codificação sem perdas 523. Adicionalmente, a seção de geração da malha 522 alimenta os dados da Árvore óctupla para a seção de decodificação da geometria 513.
[00127] A seção de codificação sem perdas 523 adquire os dados de malha alimentados a partir da seção de geração da malha 522. Adicionalmente, a seção de codificação sem perdas 523 adquire um parâmetro de codificação inserido a partir do exterior do aparelho de codificação 500. O parâmetro de codificação é a informação que designa o tipo de codificação a ser aplicada, e o parâmetro de codificação é inserido por uma operação de usuário ou alimentado a partir de um aparelho externo ou similares. A seção de codificação sem perdas 523 codifica os dados de malha pelo uso de um tipo designado pelo parâmetro de codificação para gerar os dados codificados da informação de posição. A seção de codificação sem
26 / 50 perdas 523 alimenta a informação de posição para a seção de geração do fluxo contínuo de bits 515. <Seção de Decodificação da Geometria>
[00128] A seção de decodificação da geometria 513 inclui uma seção de decodificação da Árvore óctupla 531, uma seção de restauração da forma da malha 532, e uma seção de geração da nuvem de pontos 533.
[00129] A seção de decodificação da Árvore óctupla 531 decodifica os dados da Árvore óctupla alimentados a partir da seção de codificação da geometria 512 para gerar os dados de voxel. A seção de decodificação da Árvore óctupla 531 alimenta os dados de voxel gerados para a seção de restauração da forma da malha 532.
[00130] A seção de restauração da forma da malha 532 usa os dados de voxel alimentados a partir da seção de decodificação da Árvore óctupla 531 para restaurar uma forma da malha, e alimenta os dados de malha resultantes para a seção de geração da nuvem de pontos 533.
[00131] A seção de geração da nuvem de pontos 533 gera os dados da nuvem de pontos a partir dos dados de malha alimentados a partir da seção de restauração da forma da malha 532, e alimenta os dados da nuvem de pontos gerados para a seção de codificação do atributo 514. A seção de geração da nuvem de pontos 533 é configurada similarmente ao aparelho de geração da nuvem de pontos 100 (figura 4) e executa o processamento similar ao processamento executado pelo aparelho de geração da nuvem de pontos 100. Especificamente, a seção de geração da nuvem de pontos 533 gera os dados da nuvem de pontos a partir dos dados de malha pelo uso de um método da forma descrita em <1. Geração da Nuvem de Pontos> e <2. Primeira Modalidade>.
[00132] Assim, a seção de geração da nuvem de pontos 533 pode produzir os efeitos similares aos efeitos do aparelho de geração da nuvem de pontos 100. Por exemplo, a seção de geração da nuvem de pontos 533 pode
27 / 50 gerar os dados de voxel equivalentes a uma resolução de entrada a partir de uma malha pela execução de uma única etapa de processamento. Assim, a seção de geração da nuvem de pontos 533 pode suprimir um aumento nas cargas envolvidas na geração de dados da nuvem de pontos. Consequentemente, a seção de geração da nuvem de pontos 533 pode, por exemplo, gerar os dados da nuvem de pontos em velocidade mais alta. Adicionalmente, por exemplo, os custos de manufatura da seção de geração da nuvem de pontos 533 podem ser reduzidos.
[00133] Note que estas seções de processamento (seção de geração de voxel 511 até seção de codificação do atributo 514, seção de geração da Árvore óctupla 521 até seção de codificação sem perdas 523, e seção de decodificação da Árvore óctupla 531 até seção de geração da nuvem de pontos 533) têm configurações opcionais. Por exemplo, cada uma das seções de processamento pode incluir um circuito lógico que implementa o supradescrito processamento. Adicionalmente, cada seção de processamento pode, por exemplo, incluir uma CPU, uma ROM, uma RAM e similares e usar a CPU e as memórias para executar um programa, implementando o supradescrito processamento. É desnecessário dizer que cada seção de processamento pode ter ambas as configurações supradescritas para implementar uma parte do processamento supradescrito pelo uso de um circuito lógico, ao mesmo tempo em que implementa a parte restante do processamento pelo uso de um programa. As seções de processamento podem ser configuradas independentemente umas das outras. Por exemplo, algumas seções de processamento podem implementar uma parte do supradescrito processamento pelo uso de um circuito lógico, outras seções de processamento podem implementar o supradescrito processamento pela execução de um programa, e as outras seções de processamento podem implementar o supradescrito processamento tanto pelo uso de um circuito lógico quanto pela execução de um programa.
28 / 50
[00134] Uma configuração como esta permite que o aparelho de codificação 500 produza os efeitos da forma descrita em <1. Geração da Nuvem de Pontos> e <2. Primeira Modalidade>. Por exemplo, o aparelho de codificação 500 pode gerar os dados de voxel equivalentes a uma resolução de entrada a partir de uma malha pela execução de uma única etapa de processamento, e pode, assim, suprimir um aumento nas cargas envolvidas na geração de dados da nuvem de pontos. Consequentemente, o aparelho de codificação 500 pode, por exemplo, gerar um fluxo contínuo de bits em velocidade mais alta. Adicionalmente, por exemplo, os custos de manufatura do aparelho de codificação 500 podem ser reduzidos. <Fluxo do Processamento de Codificação>
[00135] A seguir, um exemplo de um fluxo do processamento de codificação executado pelo aparelho de codificação 500 será descrito em relação a um fluxograma na figura 12.
[00136] Quando o processamento de codificação for iniciado, a seção de geração de voxel 511 adquire os dados da nuvem de pontos na etapa S501.
[00137] Na etapa S502, a seção de geração de voxel 511 usa os dados da nuvem de pontos para gerar os dados de voxel.
[00138] Na etapa S503, a seção de geração da Árvore óctupla 521 usa os dados de voxel para construir uma Árvore óctupla e gerar os dados da Árvore óctupla.
[00139] Na etapa S504, a seção de geração da malha 522 gera os dados de malha com base nos dados da Árvore óctupla.
[00140] Na etapa S505, a seção de codificação sem perdas 523 realiza a codificação sem perdas nos dados de malha para gerar os dados codificados da informação de posição em relação a uma nuvem de pontos.
[00141] Na etapa S506, a seção de decodificação da Árvore óctupla 531 usa os dados da Árvore óctupla gerados na etapa S503 para restaurar os dados de voxel.
29 / 50
[00142] Na etapa S507, a seção de restauração da forma da malha 532 restaura uma forma da malha a partir dos dados de voxel.
[00143] Na etapa S508, a seção de geração da nuvem de pontos 533 executa o processamento de geração da nuvem de pontos (figura 5) para gerar os dados da nuvem de pontos a partir da forma da malha pelo uso de um método da forma descrita em <1. Geração da Nuvem de Pontos> e <2. Primeira Modalidade>.
[00144] Na etapa S509, a seção de codificação do atributo 514 usa os dados da nuvem de pontos para codificar a informação de atributo.
[00145] Na etapa S510, a seção de geração do fluxo contínuo de bits 515 gera um fluxo contínuo de bits que inclui os dados codificados da informação de posição gerada na etapa S505 e os dados codificados da informação de atributo gerada na etapa S509.
[00146] Na etapa S511, a seção de geração do fluxo contínuo de bits 515 transmite o fluxo contínuo de bits para o exterior do aparelho de codificação 500.
[00147] Quando a etapa S511 de processamento terminar, o processamento de codificação termina.
[00148] Pela execução de cada etapa de processamento, como exposto, o aparelho de codificação 500 pode produzir os efeitos da forma descrita em <1. Geração da Nuvem de Pontos> e <2. Primeira Modalidade>. <5. Quarta Modalidade> <Tornando a Sopa de Triângulos Escalável>
[00149] Na descrição exposto, em uma sopa de triângulos, os dados da nuvem de pontos são gerados pela geração de pontos nos pontos de interseção entre uma superfície de uma malha e vetores, cada qual incluindo, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução de voxel especificada. A presente invenção não é limitada a esta configuração, e os dados da nuvem de pontos podem ser gerados a partir de uma malha com
30 / 50 uma resolução opcional.
[00150] Por exemplo, da forma ilustrada na figura 13, considera-se que uma Árvore óctupla é aplicada nas camadas com resoluções inferiores (LoD = 0 até 2) e que uma sopa de triângulos é aplicada nas camadas com resoluções superiores. Para as camadas nas quais a Árvore óctupla é aplicada, a escalabilidade da resolução pode ser implementada durante a decodificação (uma das camadas em que os dados da nuvem de pontos devem ser gerados é selecionada com base em diferentes resoluções das camadas).
[00151] Para as camadas inferiores, os intervalos d entre os vetores Vi são definidos de maneira tal que d = 1, e a sopa de triângulos permite a aquisição dos dados da nuvem de pontos com uma resolução equivalente a LoD = 4. Por exemplo, em um caso da figura 13, um voxel 601 equivalente a LoD = 2 (voxel mais à direita 601 na figura) contém uma superfície triangular 602 de uma malha.
[00152] Então, os vetores Vi 603 são definidos, cada um dos quais inclui uma origem inicial correspondente a uma superfície do voxel 601 e é perpendicular à superfície, os vetores Vi 603 dividindo cada lado do voxel 601 em quatro peças (d = 1). Na figura 13, um sinal de referência é atribuído a apenas uma seta. Entretanto, todas as setas no voxel 601 (incluindo as extremidades do voxel 601) correspondem aos vetores Vi 603.
[00153] Então, são derivados os pontos 604 que ficam localizados nos pontos de interseção entre a superfície 602 da malha e os vetores Vi 603. Na figura 13, um sinal de referência é atribuído a apenas um ponto. Entretanto, todos os pontos no voxel 601 (incluindo as extremidades do voxel 601) correspondem aos pontos 604.
[00154] Isto permite a aquisição dos dados da nuvem de pontos com uma resolução equivalente a LoD = 4.
[00155] Em outras palavras, quando os vetores Vi forem definidos, cada um dos quais incluindo, como uma origem inicial, as coordenadas de
31 / 50 posição correspondentes à resolução de voxel especificada, os dados da nuvem de pontos com a resolução final são obtidos. A resolução final indica uma resolução mais alta pré-determinada. Por exemplo, em um caso de codificação e decodificação, a resolução mais alta indica a resolução dos dados da nuvem de pontos que ainda não foram codificados pelo uso de uma Árvore óctupla, uma malha ou similares.
[00156] Aqui, em vez da operação exposta, quando os intervalos d entre os vetores Vi 603 forem definidos em d = 2 (isto é, os intervalos entre os vetores Vi 603 são dobrados), os pontos 604 (superfície 602 e vetores Vi 603) são derivados como em um caso do segundo voxel mais à direita 601 na figura 13. Em outras palavras, os dados da nuvem de pontos com uma resolução equivalente a LoD = 3 são adquiridos.
[00157] A figura 14 ilustra o estado do voxel 601 em uma vista plana para simplificação da descrição. No voxel 601 (incluindo as extremidades do voxel 601), todas as linhas cheias e linhas pontilhadas paralelas a qualquer um dos quatro lados do voxel 601 indicam os vetores Vi 603 nos intervalos (d = 1) correspondentes à resolução final (por exemplo, LoD = 4). São derivados os pontos 604 que ficam localizados nos pontos de interseção entre a superfície 602 da malha e os vetores Vi 603.
[00158] Na figura 14, os vetores Vi 603 ilustrados pelas linhas cheias e os vetores Vi 603 ilustrados pelas linhas pontilhadas são alternadamente arranjados. Em outras palavras, os intervalos d entre os vetores Vi 603 ilustrados pelas linhas cheias são d = 2. Em outras palavras, os vetores Vi 603 ilustrados pelas linhas cheias são os vetores Vi 603 em uma camada (por exemplo, LoD = 3) imediatamente acima da resolução final. Desta maneira, aumentar os intervalos d reduz o número dos vetores Vi 603, assim, reduzindo o número dos pontos 604 localizados nos pontos de interseção. Em outras palavras, a resolução dos dados da nuvem de pontos é reduzida.
[00159] Como exposto, os intervalos d entre os vetores Vi habilitam
32 / 50 que os dados da nuvem de pontos com uma resolução opcional sejam derivados. Assim, a resolução da sopa de triângulos pode ser tornada escalável.
[00160] Os intervalos d entre os vetores Vi podem ser definidos em um valor opcional. Por exemplo, os intervalos d entre os vetores Vi podem ser definidos em uma potência de 2. Isto torna a resolução escalável para cada camada da Árvore óctupla. Em outras palavras, podem ser derivados os dados da nuvem de pontos que têm uma resolução correspondente a cada camada da Árvore óctupla. Por exemplo, considerando que uma diferença entre uma camada desejada (camada derivada) da Árvore óctupla e a camada mais inferior (camada com a resolução final) é L (L é um número inteiro não negativo), definir d = 2L habilita a derivação dos dados da nuvem de pontos com a resolução correspondente à camada desejada.
[00161] Note que L pode ser um valor negativo. A definição de L em um valor negativo habilita a derivação dos dados da nuvem de pontos com uma resolução mais alta do que a resolução final.
[00162] Adicionalmente, o valor dos intervalos d entre os vetores Vi pode ser um valor diferente da potência de 2. Os intervalos d entre os vetores Vi podem ser um número inteiro ou um decimal, desde que o número seja positivo. Por exemplo, quando os intervalos d entre os vetores Vi forem definidos em um valor diferente da potência de 2, podem ser derivados os dados da nuvem de pontos que têm uma resolução diferente das resoluções correspondentes às camadas da Árvore óctupla. Por exemplo, quando o valor dos intervalos d entre os vetores Vi for definido em 3, são adquiridos os dados da nuvem de pontos que têm uma resolução entre LoD = 2 e LoD = 3. <Tornando a Posição da Origem Inicial Independente>
[00163] Por exemplo, em um caso da figura 14, tanto para os vetores Vi 603 na direção vertical na figura quanto para os vetores Vi 603 na direção horizontal na figura, os vetores Vi 603 com números de identificação 0, 2, 4,
33 / 50 6, e 8 ilustrados na figura são adotados como os vetores Vi 603 na camada imediatamente acima. Em outras palavras, na camada imediatamente acima, os vetores Vi 603 que têm números de identificação 1, 3, 5, e 7 ilustrados na figura (vetores Vi 603 ilustrados pelas linhas pontilhadas) são decimados.
[00164] Como exposto, os vetores Vi 603 adotados na camada imediatamente acima (isto é, os vetores Vi 603 a serem decimados) podem ser definidos independentemente em cada direção dos vetores Vi 603 (isto é, em cada uma de três direções axiais perpendiculares umas às outras (direções x, y, z)). Em outras palavras, as posições das origens iniciais dos vetores Vi 603 podem ser independentes umas das outras em cada uma das três direções axiais perpendiculares umas às outras (direções x, y, z).
[00165] Por exemplo, em um caso da figura 15, para os vetores Vi 603 na direção vertical na figura, os vetores Vi 603 que têm os números de identificação 1, 3, 5, e 7 ilustrados na figura são adotados como os vetores Vi 603 na camada imediatamente acima. Ao contrário, para os vetores Vi 603 na direção horizontal na figura, os vetores Vi 603 que têm os números de identificação 0, 2, 4, 6, e 8 ilustrados na figura são adotados como os vetores Vi 603 na camada imediatamente acima.
[00166] Em outras palavras, na camada imediatamente acima, os vetores Vi 603 arranjados na direção vertical na figura e que têm números de identificação 0, 2, 4, 6, e 8 ilustrados na figura (os vetores Vi 603 ilustrados pelas linhas pontilhadas) são decimados. Ao contrário, na camada imediatamente acima, os vetores Vi 603 arranjados na direção horizontal na figura e que têm os números de identificação 1, 3, 5, e 7 ilustrados na figura (vetores Vi 603 ilustrados pelas linhas pontilhadas) são decimados.
[00167] Isto permite que os pontos 604 sejam gerados nas posições diferentes das posições em um caso da figura 14 sem mudar a resolução dos dados da nuvem de pontos derivados. <Tornando os Intervalos entre as Origens Iniciais Independentes>
34 / 50
[00168] Por exemplo, em um caso da figura 14 e da figura 15, na camada imediatamente acima, tanto para os vetores Vi 603 na direção vertical na figura quanto para os vetores Vi 603 na direção horizontal na figura, metade dos vetores são decimados. Em outras palavras, os intervalos d entre os vetores Vi são os mesmos para as direções vertical e horizontal na figura.
[00169] Como exposto, o número de vetores Vi 603 adotados para a camada imediatamente acima (isto é, os vetores Vi 603 a serem decimados) pode ser definido independentemente para cada direção dos vetores Vi 603 (isto é, para cada uma das três direções axiais perpendiculares umas às outras (as direções x, y, e z)). Em outras palavras, os intervalos entre as origens iniciais dos vetores Vi 603 nas três direções axiais perpendiculares umas às outras (direções x, y, e z) podem ser independentes uns dos outros para cada uma das direções.
[00170] Por exemplo, em um caso da figura 16, considerando que apenas os vetores Vi 603 ilustrados pelas linhas cheias são adotados (os vetores Vi 603 ilustrados pelas linhas pontilhadas são decimados), para os vetores Vi 603 na direção vertical na figura, todos os vetores Vi 603 que têm os números de identificação 0 a 8 são adotados, enquanto que, para os vetores Vi 603 na direção horizontal na figura, apenas os vetores Vi 603 que têm os números de identificação 0, 2, 4, 6, e 8 são adotados. Em outras palavras, os intervalos d entre os vetores Vi 603 na direção vertical na figura diferem dos intervalos d entre os vetores Vi 603 na direção horizontal na figura. Assim, os intervalos entre os pontos gerados na direção vertical na figura diferem dos intervalos entre os pontos gerados na direção horizontal na figura. Em outras palavras, a resolução dos dados da nuvem de pontos difere entre a direção vertical na figura e a direção horizontal na figura.
[00171] Em outras palavras, isto habilita que a resolução dos dados da nuvem de pontos seja definida independentemente para cada direção dos vetores Vi 603 (isto é, cada uma das três direções axiais perpendiculares umas
35 / 50 às outras (direções x, y, e z)). <Geração de Pontos em Alguns dos Pontos de Interseção>
[00172] Note que os pontos podem ser gerados em alguns dos pontos de interseção entre a superfície da malha e os vetores Vi. Em outras palavras, a geração de um ponto pode ser omitida até mesmo para os pontos de interseção. Em outras palavras, uma resolução reduzida da nuvem de pontos pode ser alcançada (isto é, a escalabilidade da resolução pode ser alcançada) pela redução do número de pontos de interseção nos quais os pontos são gerados.
[00173] Um método para selecionar os pontos de interseção nos quais os pontos devem ser gerados (ou pontos não devem ser gerados) é opcional. Por exemplo, da forma ilustrada na figura 17, os pontos podem ser gerados em um arranjo escalonado (pontos são gerados em cada outro ponto de interseção para cada uma das três direções axiais).
[00174] Isto habilita que a escalabilidade da resolução seja alcançada sem depender dos intervalos entre os vetores Vi (ou do número de vetores Vi). <Adição de Pontos>
[00175] Os pontos não localizados nos pontos de interseção entre a superfície da malha e os vetores Vi podem ser gerados e incluídos nos dados da nuvem de pontos. Por exemplo, da forma ilustrada na figura 18, em vez dos pontos de interseção, os pontos 611 podem ser gerados nas posições nos vetores Vi que são próximas dos respectivos lados da superfície 602 (triângulo) da malha e podem ser incluídos nos dados da nuvem de pontos. Na figura 18, ao mesmo tempo em que um sinal de referência é atribuído apenas a um ponto, os pontos ilustrados pelos círculos brancos são todos os pontos 611 gerados, como exposto.
[00176] Note que um método para determinar as posições nas quais os pontos devem ser gerados (em um caso do exemplo na figura 18, um método
36 / 50 para determinar os pontos próximos de cada lado) é opcional.
[00177] Isto habilita que os pontos sejam adicionados sem depender das posições dos pontos de interseção, permitindo que a resolução de uma parte desejada seja mais facilmente melhorada. Por exemplo, em um caso da figura 18, os pontos próximos de cada lado da superfície 602 são incluídos nos dados da nuvem de pontos para permitir que a resolução seja feita mais alta ao redor de cada lado da superfície 602 do que nas outras áreas. Isto permite que a configuração de cada lado da superfície 602 seja mais precisamente expressada nos dados da nuvem de pontos. Consequentemente, uma estrutura tridimensional expressada pela malha também pode ser expressada nos dados da nuvem de pontos mais precisamente. <Combinação>
[00178] Qualquer número plural das técnicas supradescritas na presente modalidade pode ser combinado em conjunto para aplicação. Adicionalmente, cada uma das técnicas supradescritas na presente modalidade pode ser combinada, para aplicação, com qualquer uma das técnicas supradescritas em <Geração da Nuvem de Pontos>. <Seleção do Método>
[00179] Adicionalmente, uma técnica desejada (ou uma combinação de técnicas desejadas) pode ser selecionada a partir de algumas ou todas as técnicas aqui supradescritas e, então, ser aplicada. Neste caso, um método para selecionar a técnica é opcional. Por exemplo, todos os padrões de aplicação podem ser avaliados, e o melhor dos mesmos pode ser selecionado. Isto permite que os dados da nuvem de pontos sejam gerados pelo uso de uma técnica mais adequada para a estrutura tridimensional ou similares. <Aplicação no Aparelho de Geração da Nuvem de Pontos>
[00180] Similarmente às técnicas descritas em <1. Geração da Nuvem de Pontos>, as técnicas supradescritas na presente modalidade podem ser aplicadas no aparelho de geração da nuvem de pontos 100 supradescrito na
37 / 50 primeira modalidade. Neste caso, a configuração do aparelho de geração da nuvem de pontos 100 é similar à configuração no caso descrito em relação à figura 4.
[00181] Um exemplo de um fluxo de processamento de geração da nuvem de pontos executado pelo aparelho de geração da nuvem de pontos 100 no caso supradescrito será descrito em relação a um fluxograma na figura 19.
[00182] Quando o processamento de geração da nuvem de pontos for iniciado, a seção de determinação da interseção 112 adquire os dados de malha na etapa S601.
[00183] Na etapa S602, a seção de definição do vetor 111 define os vetores Vi, cada qual incluindo, como uma origem inicial, as coordenadas de posição em cada superfície de um voxel correspondente a uma resolução especificada, por exemplo, pelo usuário ou similares, o vetor Vi sendo perpendicular a cada superfície do voxel (paralelo a cada lado do voxel).
[00184] Na etapa S603, a seção de determinação da interseção 112 realiza a determinação da interseção entre uma superfície (triângulo) de uma malha indicada pelos dados de malha adquiridos na etapa S601 e os vetores Vi definidos na etapa S602.
[00185] As respectivas etapas S604 a S607 de processamento são executadas similarmente às etapas S104 a S107 de processamento.
[00186] Quando a etapa S607 de processamento terminar, o processamento de geração da nuvem de pontos termina.
[00187] Note que o supradescrito processamento é executado, por exemplo, como é o caso com o exemplo supradescrito na presente modalidade. Assim, pela execução de cada etapa de processamento supradescrita, o aparelho de geração da nuvem de pontos 100 pode produzir, por exemplo, os efeitos da forma descrita na presente modalidade. Por exemplo, os dados de voxel com uma resolução opcional podem ser gerados a partir de uma malha pela execução de uma única etapa de processamento. Em
38 / 50 outras palavras, a escalabilidade da resolução dos dados da nuvem de pontos pode ser alcançada.
[00188] Além do mais, um aumento nas cargas envolvidas na geração de dados da nuvem de pontos pode ser suprimido. Assim, por exemplo, os dados da nuvem de pontos podem ser gerados em velocidade mais alta. Adicionalmente, por exemplo, os custos de manufatura do aparelho de geração da nuvem de pontos 100 podem ser reduzidos. <Aplicação no Aparelho de Decodificação>
[00189] Adicionalmente, similarmente às técnicas descritas em <1. Geração da Nuvem de Pontos>, as técnicas supradescritas na presente modalidade podem ser aplicadas no aparelho de decodificação 300 supradescrito na segunda modalidade. A configuração do aparelho de decodificação 300 neste caso é similar ao caso descrito em relação à figura 9.
[00190] A seção de geração da nuvem de pontos 314 é configurada similarmente ao aparelho de geração da nuvem de pontos 100 supradescrito na presente modalidade, e gera os dados da nuvem de pontos a partir dos dados de malha, da forma supradescrita na presente modalidade.
[00191] Assim, a seção de geração da nuvem de pontos 314 pode produzir os efeitos similares aos efeitos do aparelho de geração da nuvem de pontos 100 da presente modalidade. Por exemplo, a seção de geração da nuvem de pontos 314 pode gerar os dados de voxel com uma resolução opcional a partir de uma malha pela execução de uma única etapa de processamento. Em outras palavras, a escalabilidade da resolução dos dados da nuvem de pontos pode ser alcançada.
[00192] Além do mais, a seção de geração da nuvem de pontos 314 pode suprimir um aumento nas cargas envolvidas na geração dos dados da nuvem de pontos. Assim, a seção de geração da nuvem de pontos 314 pode, por exemplo, gerar os dados da nuvem de pontos em velocidade mais alta. Adicionalmente, por exemplo, os custos de manufatura da seção de geração
39 / 50 da nuvem de pontos 314 podem ser reduzidos.
[00193] Note que, neste caso, a seção de decodificação do atributo 315 pode decodificar a informação de atributo de uma maneira escalável. Em outras palavras, para a informação de atributo, a escalabilidade da resolução também pode ser alcançada.
[00194] Adicionalmente, o processamento de decodificação executado pelo aparelho de decodificação 300, neste caso, é executado de acordo com um fluxo similar ao fluxo na segunda modalidade (figura 10). Consequentemente, o aparelho de decodificação 300 pode produzir os efeitos similares aos efeitos supradescritos na presente modalidade (por exemplo, similares aos efeitos do aparelho de geração da nuvem de pontos 100). <6. Característica Complementar> <Computador>
[00195] A série de etapas de processamento supradescrita pode ser executada por hardware ou por software. Em um caso em que a série de processamento for executada por software, um programa que constitui o software é instalado em um computador. O computador, da forma aqui usada, inclui um computador integrado em hardware dedicado e, por exemplo, um computador de propósito geral que pode executar várias funções quando vários programas forem instalados no computador.
[00196] A figura 20 é um diagrama de blocos que ilustra um exemplo de configuração de hardware de um computador que executa a série de etapas de processamento supradescrita de acordo com um programa.
[00197] Em um computador 900 ilustrado na figura 20, uma CPU (Unidade de Processamento Central) 901, uma ROM (Memória Exclusiva de Leitura) 902, e uma RAM (Memória de Acesso Aleatório) 903 são conectadas em conjunto por meio de um barramento 904.
[00198] Uma interface de entrada/saída 910 também é conectada no barramento 904. A interface de entrada/saída 910 conecta em uma seção de
40 / 50 entrada 911, uma seção de saída 912, uma seção de armazenamento 913, uma seção de comunicação 914, e um drive 915.
[00199] A seção de entrada 911 inclui, por exemplo, um teclado, um mouse, um microfone, um painel sensível ao toque, um terminal de entrada e similares. A seção de saída 912 inclui, por exemplo, um visor, um alto- falante, um terminal de saída e similares. A seção de armazenamento 913 inclui, por exemplo, um disco rígido, um disco de RAM, uma memória não volátil e similares. A seção de comunicação 914 inclui, por exemplo, uma interface de rede. O drive 915 aciona uma mídia removível 921, tais como um disco magnético, um disco óptico, um disco magneto-óptico ou uma memória semicondutora.
[00200] No computador configurado como exposto, por exemplo, a CPU 901 carrega um programa armazenado na seção de armazenamento 913 na RAM 903 por meio da interface de entrada/saída 910 e do barramento 904, e executa o programa para realizar a série de etapas de processamento supradescrita. A RAM 903 também armazena, conforme apropriado, os dados ou similares exigidos para que a CPU 901 execute as várias etapas de processamento.
[00201] O programa executado pelo computador (CPU 901) pode ser, por exemplo, gravado na mídia removível 921, usado como uma mídia acondicionada ou similares, para aplicação. Neste caso, o programa pode ser instalado na seção de armazenamento 913 por meio da interface de entrada/saída 910 pela anexação da mídia removível 921 no drive 915.
[00202] Adicionalmente, o programa pode ser provido por meio de uma mídia de transmissão com fios ou sem fio, tais como uma rede de área local, a Internet ou difusão digital via satélite. Neste caso, o programa pode ser recebido pela seção de comunicação 914 e instalado na seção de armazenamento 913.
[00203] Além disto, o programa pode ser pré-instalado na ROM 902 ou
41 / 50 na seção de armazenamento 913. <Objeto no qual a Presente Técnica é Aplicada>
[00204] A aplicação da presente técnica na codificação e na decodificação dos dados da nuvem de pontos foi descrita. Entretanto, a presente técnica não é limitada a estes exemplos e pode ser aplicada na codificação e na decodificação dos dados 3D em conformidade com um padrão opcional. Em outras palavras, as especificações de vários tipos de processamento, tais como esquemas de codificação e de decodificação, e as especificações de vários tipos de dados, tais como dados 3D e metadados, são opcionais, a menos que as especificações sejam inconsistentes com a presente técnica supradescrita. Adicionalmente, parte do supramencionado processamento ou das especificações podem ser omitidas, a menos que a omissão seja inconsistente com a presente técnica.
[00205] A presente técnica pode ser aplicada em uma configuração opcional. A presente técnica pode ser aplicada, por exemplo, em um transmissor e em um receptor (por exemplo, um receptor de televisão e um telefone celular) em difusão com fios, tais como difusão via satélite ou TV a cabo, na distribuição na Internet, na distribuição para um terminal através de comunicação celular e similares, ou pode ser aplicada em vários tipos de equipamento eletrônico, tais como aparelhos (por exemplo, um gravador de disco rígido e uma câmera) que gravam as imagens em mídia, tais como um disco óptico, um disco magnético e uma memória flash, e que reproduz as imagens a partir destas mídias de armazenamento.
[00206] Adicionalmente, a presente técnica pode ser implementada, por exemplo, como uma configuração parcial de um aparelho, tais como um processador (por exemplo, um processador de vídeo) usado como um sistema LSI (Integração em Larga Escala) ou similares, um módulo (por exemplo, um módulo de vídeo) que usa uma pluralidade de processadores ou similares, uma unidade (por exemplo, uma unidade de vídeo) que usa uma pluralidade
42 / 50 de módulos ou similares, ou um aparelho (por exemplo, um aparelho de vídeo) correspondente a uma unidade com funções adicionais.
[00207] Adicionalmente, a presente técnica pode ser aplicada, por exemplo, em um sistema em rede que inclui uma pluralidade de aparelhos. A presente técnica pode ser implementada, por exemplo, como computação em nuvem em que o processamento é compartilhado e cooperativamente executado por uma pluralidade de aparelhos por meio de uma rede. A presente técnica pode ser implementada, por exemplo, em um serviço em nuvem que provê os serviços relacionados às imagens (imagens em movimento) para um terminal opcional, tais como um computador, um equipamento AV (audiovisual), um terminal de processamento de informação portátil ou um dispositivo IoT (Internet das Coisas).
[00208] Note que o sistema, da forma aqui usada, significa um conjunto de uma pluralidade de componentes (aparelhos, módulos (partes) ou similares), independente se ou não todos os componentes estão presentes no mesmo alojamento. Assim, uma pluralidade de aparelhos alojados em alojamentos separados e conectados em conjunto por meio de uma rede correspondem a um sistema, e um aparelho que inclui uma pluralidade de módulos alojados em um alojamento também corresponde a um sistema. <Campos nos Quais a Presente Técnica pode ser Aplicada e Aplicações da Presente Técnica>
[00209] Um sistema, um aparelho, uma seção de processamento e similares nos quais a presente técnica é aplicada podem ser utilizados em campos opcionais, incluindo, por exemplo, transporte, cuidados médicos, prevenção criminal, agricultura, indústria pecuária, indústria da mineração, cuidados com a beleza, fábricas, utensílios elétricos domésticos, meteorologia, vigilância da natureza e similares. Adicionalmente, a presente técnica pode ser usada para quaisquer propósitos. <Miscelânea>
43 / 50
[00210] Note que um “indicador”, da forma aqui usada, se refere à informação para identificar uma pluralidade de estados e inclui a informação que habilita que três ou mais estados sejam identificados, bem como a informação usada para identificar dois estados, isto é, verdadeiro (1) e falso (0). Assim, os valores que podem ser tomados pelo “indicador” podem ser, por exemplo, dois valores de 1/0 ou três ou mais valores. Especificamente, qualquer número de bits pode constituir o “indicador”, e o número de bits pode ser um ou diversos. Adicionalmente, considera-se que a informação de identificação (incluindo o indicador) é considerada por ter uma forma em que a informação da diferença entre a informação de identificação e certa informação usada como uma referência é incluída em um fluxo contínuo de bits, bem como uma forma em que a informação de identificação é incluída no fluxo contínuo de bits. Portanto, o “indicador” ou a “informação de identificação”, da forma aqui usada, incluem não apenas a informação dos mesmos, mas, também, a informação da diferença entre a informação e certa informação usada como uma referência.
[00211] Adicionalmente, vários tipos de informação (metadados e similares) relacionados aos dados codificados (fluxo contínuo de bits) podem ser transmitidos ou gravados em qualquer forma, desde que a informação seja associada com os dados codificados. Aqui, o termo “associar” significa que, por exemplo, quando uma peça de dados for processada, a outra peça de dados é feita disponível (pode ser ligada). Em outras palavras, os dados associados uns com os outros podem ser organizados em uma peça de dados ou podem ser usados como peças de dados separadas. Por exemplo, a informação associada com os dados codificados (imagem) pode ser transmitida em um canal de transmissão diferente de um canal de transmissão no qual os dados codificados (imagem) são transmitidos. Adicionalmente, por exemplo, os dados codificados associados à informação (imagem) podem ser gravados em uma mídia de gravação diferente de uma mídia de gravação em
44 / 50 que os dados codificados (imagem) são gravados (ou em uma área de gravação de uma mídia de gravação diferente de uma área de gravação da mesma mídia de gravação em que os dados codificados são gravados). Note que a “associação” pode ser realizada em uma parte dos dados, em vez de na íntegra dos dados. Por exemplo, uma imagem e a informação correspondente à imagem podem ser associadas uma com a outra em quaisquer unidades, tais como uma pluralidade de quadros, um quadro, ou partes em um quadro.
[00212] Note que os termos “sintetizar”, “multiplexar”, “adicionar”, “integrar”, “incluir”, “armazenar”, “colocar em”, “plugar em”, “inserir” e similares, da forma aqui usada, significa organização de uma pluralidade de objetos em um objeto, por exemplo, organização de dados codificados e metadados em dados, e significa um método para a “associação” supradescrita.
[00213] Adicionalmente, as modalidades da presente técnica não são limitadas às modalidades supradescritas e podem ser variadamente mudadas sem fugir dos espíritos da presente técnica.
[00214] Por exemplo, uma configuração descrita como um aparelho (ou seção de processamento) pode ser dividida e configurada em uma pluralidade de aparelhos (ou seções de processamento). Ao contrário, as configurações supradescritas como uma pluralidade de aparelhos (ou seções de processamento) podem ser organizadas ou configuradas em um aparelho (ou seção de processamento). Adicionalmente, é desnecessário dizer que uma configuração diferente daquela supradescrita pode ser adicionada na configuração de cada aparelho (ou cada seção de processamento). Adicionalmente, uma parte da configuração de um aparelho (ou seção de processamento) pode ser incluída na configuração de um outro aparelho (ou uma outra seção de processamento), desde que a configuração e a operação do sistema como um todo permaneçam substancialmente as mesmas.
[00215] Adicionalmente, por exemplo, o programa supradescrito pode
45 / 50 ser executado em um aparelho opcional. Neste caso, é suficiente que o aparelho inclua as funções exigidas (blocos funcionais ou similares) e possa obter a informação exigida.
[00216] Adicionalmente, por exemplo, cada etapa de um fluxograma pode ser executada por um aparelho, ou a execução de cada etapa pode ser compartilhada por uma pluralidade de aparelhos. Adicionalmente, em um caso em que uma etapa incluir uma pluralidade de processos, a pluralidade de processos pode ser executada por um aparelho, ou a execução da pluralidade de processos pode ser compartilhada por uma pluralidade de aparelhos. Em outras palavras, uma pluralidade de processos incluídos em uma etapa pode ser executada como uma pluralidade de etapas do processo. Ao contrário, um processo descrito como uma pluralidade de etapas pode ser organizado em uma única etapa para a execução.
[00217] Adicionalmente, por exemplo, no programa executado pelo computador, as etapas que descrevem o programa podem ser cronologicamente executadas ao longo da ordem aqui descrita ou podem ser executadas em paralelo ou individualmente nos sincronismos exigidos, tais como os sincronismos em que o programa é invocado. Em outras palavras, as etapas de processamento podem ser executadas em uma ordem diferente da ordem supradescrita, a menos que a ordem leve à inconsistência. Adicionalmente, as etapas que descrevem o programa podem ser executadas em paralelo ou em combinação com o processamento de um outro programa.
[00218] Adicionalmente, por exemplo, uma pluralidade de técnicas relacionadas à presente técnica podem ser independentemente e unitariamente implementadas, a menos que a execução leve à inconsistência. É desnecessário dizer que qualquer número plural das presentes técnicas pode ser implementado em conjunto. Por exemplo, uma parte da ou toda a presente técnica descrita em qualquer uma das modalidades pode ser implementada em combinação com uma parte da ou toda a presente técnica descrita em uma
46 / 50 outra modalidade. Adicionalmente, uma parte ou a íntegra de qualquer uma das presentes técnicas supradescritas pode ser implementada juntamente com uma outra técnica não supradescrita.
[00219] Note que a presente técnica pode tomar as seguintes configurações.
[00220] (1) Um aparelho de processamento de imagem, que inclui: uma seção de geração da nuvem de pontos que gera os dados da nuvem de pontos pelo posicionamento de um ponto em um ponto de interseção entre uma superfície de uma malha e um vetor que inclui, como uma origem inicial, coordenadas de posição correspondentes a uma resolução especificada.
[00221] (2) O aparelho de processamento, de imagem de acordo com (1), em que a seção de geração da nuvem de pontos realiza a determinação da interseção entre a superfície e o vetor, e em um caso de determinação que a superfície e o vetor fazem interseção um com o outro, calcula as coordenadas do ponto de interseção.
[00222] (3) O aparelho de processamento, de imagem de acordo com (2), em que a seção de geração da nuvem de pontos realiza a determinação da interseção entre a superfície e o vetor em cada uma das direções positiva e negativa de cada uma de três direções axiais perpendiculares umas às outras.
[00223] (4) O aparelho de processamento, de imagem de acordo com (3), em que, em um caso em que múltiplos pontos de interseção tiverem valores de coordenada sobrepostos, a seção de geração da nuvem de pontos deleta todos os pontos de interseção incluídos em um grupo dos pontos de interseção sobrepostos uns aos outros, exceto qualquer um dos pontos de
47 / 50 interseção.
[00224] (5) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (4), em que a seção de geração da nuvem de pontos realiza a determinação da interseção entre a superfície e o vetor que inclui a origem inicial localizada em um alcance de cada um dos vértices da superfície.
[00225] (6) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (5), em que, em um caso em que as coordenadas do ponto de interseção calculado estiverem fora de uma caixa de delimitação, a seção de geração da nuvem de pontos corta as coordenadas do ponto de interseção no interior da caixa de delimitação.
[00226] (7) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (6), em que, em um caso em que as coordenadas do ponto de interseção calculado estiverem fora da caixa de delimitação, a seção de geração da nuvem de pontos deleta o ponto de interseção.
[00227] (8) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (7), em que a seção de geração da nuvem de pontos realiza a determinação da interseção em uma parte da superfície em relação ao centro pelo uso do vetor mais esparso do que um vetor usado em um caso da determinação da interseção realizada nas extremidades da superfície.
[00228] (9) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (8), em que, em um caso em que o vetor fizer interseção com uma pluralidade das superfícies e quando um espaço estiver presente entre a pluralidade de superfícies, a seção de geração da nuvem de pontos adiciona um ponto no interior do espaço.
48 / 50
[00229] (10) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (9), em que a seção de geração da nuvem de pontos realiza a determinação da interseção em cada um de uma pluralidade dos vetores em relação à única superfície em paralelo.
[00230] (11) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (10), em que a seção de geração da nuvem de pontos realiza a determinação da interseção em cada uma de uma pluralidade das superfícies em relação ao único vetor em paralelo.
[00231] (12) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (11), em que o vetor inclui, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução de voxel especificada.
[00232] (13) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (12), em que o vetor inclui, como uma origem inicial, as coordenadas de posição correspondentes a uma potência de 2 da resolução de voxel especificada.
[00233] (14) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (13), em que as posições das origens iniciais dos vetores em três direções axiais perpendiculares umas às outras são independentes umas das outras.
[00234] (15) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (14), em que os intervalos entre as origens iniciais dos vetores nas três direções axiais perpendiculares umas às outras são independentes uns dos outros.
[00235] (16) O aparelho de processamento de imagem, de acordo com
49 / 50 qualquer um de (2) até (15), em que a seção de geração da nuvem de pontos inclui, nos dados da nuvem de pontos, um ponto não posicionado no ponto de interseção.
[00236] (17) O aparelho de processamento de imagem, de acordo com qualquer um de (2) até (16), que inclui adicionalmente: uma seção de restauração da forma da malha que restaura uma forma da malha a partir dos dados de voxel, em que a seção de geração da nuvem de pontos gera os dados da nuvem de pontos pelo uso, como um ponto, do ponto de interseção entre o vetor e a superfície restaurado pela seção de restauração da forma da malha.
[00237] (18) O aparelho de processamento, de imagem de acordo com (17), que inclui adicionalmente: uma seção de decodificação sem perdas que realiza decodificação sem perdas em um fluxo contínuo de bits para gerar os dados da Árvore óctupla; e uma seção de decodificação da Árvore óctupla que gera os dados de voxel pelo uso dos dados da Árvore óctupla gerados pela seção de decodificação sem perdas, em que a seção de restauração da forma da malha restaura a forma da malha dos dados de voxel gerados pela seção de decodificação da Árvore óctupla.
[00238] (19) O aparelho de processamento, de imagem de acordo com (17), que inclui adicionalmente: uma seção de codificação da informação de posição que codifica a informação de posição nos dados da nuvem de pontos; e uma seção de decodificação da Árvore óctupla que gera os dados de voxel pelo uso dos dados da Árvore óctupla gerados quando a seção de codificação da informação de posição codificar a informação de posição.
[00239] (20) Um método de processamento de imagem, que inclui:
50 / 50 gerar os dados da nuvem de pontos pelo posicionamento de um ponto em um ponto de interseção entre uma superfície de uma malha e um vetor que inclui, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução especificada. Lista dos Sinais de Referência
[00240] 100 Aparelho de geração da nuvem de pontos 111 Seção de definição do vetor 112 Seção de determinação da interseção 113 Seção de processamento auxiliar 114 Seção de saída 300 Aparelho de decodificação 311 Seção de decodificação sem perdas 312 Seção de decodificação da Árvore óctupla 313 Seção de restauração da forma da malha 314 Seção de geração da nuvem de pontos 315 Seção de decodificação do atributo 500 Aparelho de codificação 511 Seção de geração de voxel 512 Seção de codificação da geometria 513 Seção de decodificação da geometria 514 Seção de codificação do atributo 515 Seção de geração do fluxo contínuo de bits 521 Seção de geração da Árvore óctupla 522 Seção de geração da malha 523 Seção de codificação sem perdas 531 Seção de decodificação da Árvore óctupla 532 Seção de restauração da forma da malha 533 Seção de geração da nuvem de pontos

Claims (20)

REIVINDICAÇÕES
1. Aparelho de processamento de imagem, caracterizado pelo fato de que compreende: uma seção de geração da nuvem de pontos que gera os dados da nuvem de pontos pelo posicionamento de um ponto em um ponto de interseção entre uma superfície de uma malha e um vetor que inclui, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução especificada.
2. Aparelho de processamento de imagem de acordo com a reivindicação 1, caracterizado pelo fato de que a seção de geração da nuvem de pontos realiza a determinação da interseção entre a superfície e o vetor, e em um caso de determinação que a superfície e o vetor fazem interseção um com o outro, calcula as coordenadas do ponto de interseção.
3. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que a seção de geração da nuvem de pontos realiza a determinação da interseção entre a superfície e o vetor em cada uma das direções positiva e negativa de cada uma de três direções axiais perpendiculares umas às outras.
4. Aparelho de processamento de imagem de acordo com a reivindicação 3, caracterizado pelo fato de que, em um caso em que múltiplos pontos de interseção tiverem valores de coordenada sobrepostos, a seção de geração da nuvem de pontos deleta todos os pontos de interseção incluídos em um grupo dos pontos de interseção sobrepostos uns aos outros, exceto qualquer um dos pontos de interseção.
5. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que a seção de geração da nuvem de pontos realiza a determinação da interseção entre a superfície e o vetor que inclui a origem inicial localizada em um alcance de cada um dos vértices da superfície.
6. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que, em um caso em que as coordenadas do ponto de interseção calculado estiverem fora de uma caixa de delimitação, a seção de geração da nuvem de pontos corta as coordenadas do ponto de interseção no interior da caixa de delimitação.
7. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que, em um caso em que as coordenadas do ponto de interseção calculado estiverem fora de uma caixa de delimitação, a seção de geração da nuvem de pontos deleta o ponto de interseção.
8. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que a seção de geração da nuvem de pontos realiza a determinação da interseção em uma parte da superfície em relação a um centro pelo uso do vetor mais esparso do que um vetor usado em um caso da determinação da interseção realizada nas extremidades da superfície.
9. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que, em um caso em que o vetor fizer interseção com uma pluralidade das superfícies e quando um espaço estiver presente entre a pluralidade de superfícies, a seção de geração da nuvem de pontos adiciona um ponto no interior do espaço.
10. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que a seção de geração da nuvem de pontos realiza a determinação da interseção em cada um de uma pluralidade dos vetores em relação à única superfície em paralelo.
11. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que a seção de geração da nuvem de pontos realiza a determinação da interseção em cada uma de uma pluralidade das superfícies em relação ao único vetor em paralelo.
12. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que o vetor inclui, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução de voxel especificada.
13. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que o vetor inclui, como uma origem inicial, as coordenadas de posição correspondentes a uma potência de 2 de uma resolução de voxel especificada.
14. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que as posições das origens iniciais dos vetores em três direções axiais perpendiculares umas às outras são independentes umas das outras.
15. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que os intervalos entre as origens iniciais dos vetores em três direções axiais perpendiculares umas às outras são independentes uns dos outros.
16. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que a seção de geração da nuvem de pontos inclui, nos dados da nuvem de pontos, um ponto não posicionado no ponto de interseção.
17. Aparelho de processamento de imagem de acordo com a reivindicação 2, caracterizado pelo fato de que compreende adicionalmente: uma seção de restauração da forma da malha que restaura uma forma da malha a partir dos dados de voxel, em que a seção de geração da nuvem de pontos gera os dados da nuvem de pontos pelo uso, como um ponto, do ponto de interseção entre o vetor e a superfície restaurado pela seção de restauração da forma da malha.
18. Aparelho de processamento de imagem de acordo com a reivindicação 17, caracterizado pelo fato de que compreende adicionalmente: uma seção de decodificação sem perdas que realiza decodificação sem perdas em um fluxo contínuo de bits para gerar os dados da Árvore óctupla; e uma seção de decodificação da Árvore óctupla que gera os dados de voxel pelo uso dos dados da Árvore óctupla gerados pela seção de decodificação sem perdas, em que a seção de restauração da forma da malha restaura a forma da malha a partir dos dados de voxel gerados pela seção de decodificação da Árvore óctupla.
19. Aparelho de processamento de imagem de acordo com a reivindicação 17, caracterizado pelo fato de que compreende adicionalmente: uma seção de codificação da informação de posição que codifica a informação de posição nos dados da nuvem de pontos; e uma seção de decodificação da Árvore óctupla que gera os dados de voxel pelo uso dos dados da Árvore óctupla gerados quando a seção de codificação da informação de posição codificar a informação de posição.
20. Método de processamento de imagem, caracterizado pelo fato de que compreende: gerar os dados da nuvem de pontos pelo posicionamento de um ponto em um ponto de interseção entre uma superfície de uma malha e um vetor que inclui, como uma origem inicial, as coordenadas de posição correspondentes a uma resolução especificada.
BR112021005937-7A 2018-10-02 2019-09-18 aparelho e método de processamento de imagem. BR112021005937A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2018-187482 2018-10-02
JP2018187482 2018-10-02
JP2019114627 2019-06-20
JP2019-114627 2019-06-20
PCT/JP2019/036469 WO2020071114A1 (ja) 2018-10-02 2019-09-18 画像処理装置および方法

Publications (1)

Publication Number Publication Date
BR112021005937A2 true BR112021005937A2 (pt) 2021-06-29

Family

ID=70054769

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021005937-7A BR112021005937A2 (pt) 2018-10-02 2019-09-18 aparelho e método de processamento de imagem.

Country Status (13)

Country Link
US (2) US11568602B2 (pt)
EP (1) EP3843046A4 (pt)
JP (1) JP7424299B2 (pt)
KR (1) KR20210070271A (pt)
CN (1) CN112771582B (pt)
AU (1) AU2019355381A1 (pt)
BR (1) BR112021005937A2 (pt)
CA (1) CA3115203A1 (pt)
MX (1) MX2021003538A (pt)
PH (1) PH12021550654A1 (pt)
SG (1) SG11202102923PA (pt)
TW (1) TW202025746A (pt)
WO (1) WO2020071114A1 (pt)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11172224B2 (en) * 2019-09-03 2021-11-09 Tencent America LLC Techniques and apparatus for generalized Trisoup geometry coding
US20220414940A1 (en) * 2019-10-01 2022-12-29 Sony Group Corporation Information processing apparatus and method
US11584448B2 (en) * 2020-11-12 2023-02-21 Rivian Ip Holdings, Llc Systems and methods for joining a vehicle structure
CN114466212A (zh) * 2022-02-07 2022-05-10 百度在线网络技术(北京)有限公司 一种直播方法、装置、电子设备和介质
WO2023167430A1 (ko) * 2022-03-04 2023-09-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0584638A (ja) * 1991-09-26 1993-04-06 Hitachi Ltd 曲面加工における逆オフセツト操作の並列処理方法
US6126603A (en) * 1997-05-07 2000-10-03 General Electric Company Method and apparatus for segmenting color flow mode data using velocity information in three-dimensional ultrasound imaging
KR100298789B1 (ko) * 1998-04-29 2001-09-06 윤종용 그래픽 처리에 있어서 클리핑 처리방법
WO2003031005A2 (en) * 2001-10-09 2003-04-17 Massachusetts Institute Of Technology Methods and apparatus for detecting and correcting penetration between objects
GB0329534D0 (en) * 2003-12-20 2004-01-28 Ibm Method for determining the bounding voxelisation of a 3d polygon
KR100695142B1 (ko) * 2004-03-08 2007-03-14 삼성전자주식회사 적응적 2의 n 제곱 진트리 생성방법 및 이를 이용한 3차원 체적 데이터 부호화/복호화 방법 및 장치
KR100738107B1 (ko) * 2006-02-15 2007-07-12 삼성전자주식회사 3차원 포인트 기반 모델링 장치 및 방법
KR100797400B1 (ko) * 2006-12-04 2008-01-28 한국전자통신연구원 주성분분석 및 자동상관을 이용한 단백질 구조 비교 장치및 그 방법
US9592408B2 (en) * 2008-04-24 2017-03-14 Koninklijke Philips N.V. Dose-volume kernel generation
US8502818B1 (en) * 2010-07-12 2013-08-06 Nvidia Corporation System and method for surface tracking
JP5337776B2 (ja) * 2010-09-24 2013-11-06 富士フイルム株式会社 ナノインプリント方法およびそれを利用した基板の加工方法
US8849015B2 (en) * 2010-10-12 2014-09-30 3D Systems, Inc. System and apparatus for haptically enabled three-dimensional scanning
US9159162B2 (en) * 2011-12-28 2015-10-13 St. Jude Medical, Atrial Fibrillation Division, Inc. Method and system for generating a multi-dimensional surface model of a geometric structure
JP5806169B2 (ja) * 2012-06-21 2015-11-10 トヨタ自動車株式会社 設計データ生成装置、その生成方法及びプログラム
US9805497B2 (en) * 2013-02-05 2017-10-31 Reuven Bakalash Collision-culling of lines over polygons
US20170109462A1 (en) * 2013-11-27 2017-04-20 Akademia Gorniczo-Hutnicza Im. Stanislawa Staszica W Krakowie System and a method for determining approximate set of visible objects in beam tracing
CN105631936A (zh) * 2014-10-31 2016-06-01 富泰华工业(深圳)有限公司 点云修补方法及系统
KR20160071774A (ko) * 2014-12-12 2016-06-22 삼성전자주식회사 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체
JP6361547B2 (ja) * 2015-03-25 2018-07-25 トヨタ自動車株式会社 粒子モデルおよびメッシュモデル間のデータ引き継ぎ方法
US10706608B2 (en) * 2016-01-19 2020-07-07 Nvidia Corporation Tree traversal with backtracking in constant time
US10573091B2 (en) * 2017-02-22 2020-02-25 Andre R. Vincelette Systems and methods to create a virtual object or avatar
US11514613B2 (en) * 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US10825244B1 (en) * 2017-11-07 2020-11-03 Arvizio, Inc. Automated LOD construction for point cloud

Also Published As

Publication number Publication date
KR20210070271A (ko) 2021-06-14
AU2019355381A1 (en) 2021-05-20
EP3843046A4 (en) 2021-10-27
EP3843046A1 (en) 2021-06-30
CA3115203A1 (en) 2020-04-09
CN112771582B (zh) 2024-01-12
US11922579B2 (en) 2024-03-05
WO2020071114A1 (ja) 2020-04-09
SG11202102923PA (en) 2021-04-29
CN112771582A (zh) 2021-05-07
US20220036654A1 (en) 2022-02-03
JPWO2020071114A1 (ja) 2021-09-09
PH12021550654A1 (en) 2022-02-21
TW202025746A (zh) 2020-07-01
US11568602B2 (en) 2023-01-31
JP7424299B2 (ja) 2024-01-30
MX2021003538A (es) 2021-05-27
US20230126000A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
JP7384159B2 (ja) 画像処理装置および方法
BR112021005937A2 (pt) aparelho e método de processamento de imagem.
JP7327166B2 (ja) 画像処理装置および方法
WO2019198523A1 (ja) 画像処理装置および方法
JPWO2020066680A1 (ja) 画像処理装置および方法
JP2018198421A (ja) 二次元ポイントクラウドを符号化および復号する方法および装置
US11699248B2 (en) Image processing apparatus and method
KR20210127070A (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
JP7342858B2 (ja) 画像処理装置および方法
BR112021005904A2 (pt) dispositivo e método de processamento de imagem
JP7415937B2 (ja) 画像処理装置および方法
US11790567B2 (en) Information processing apparatus and method
WO2022230941A1 (ja) 情報処理装置および方法
WO2023127513A1 (ja) 情報処理装置および方法
US20220353493A1 (en) Information processing apparatus and method
KR20230052944A (ko) 동적 메시 압축을 위한 2d uv 아틀라스 샘플링 기반 방법
CN116868572A (zh) 用于编码及解码3d点云的方法、编码器及解码器

Legal Events

Date Code Title Description
B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B11Y Definitive dismissal - extension of time limit for request of examination expired [chapter 11.1.1 patent gazette]