BR112020025049A2 - método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais - Google Patents

método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais Download PDF

Info

Publication number
BR112020025049A2
BR112020025049A2 BR112020025049-0A BR112020025049A BR112020025049A2 BR 112020025049 A2 BR112020025049 A2 BR 112020025049A2 BR 112020025049 A BR112020025049 A BR 112020025049A BR 112020025049 A2 BR112020025049 A2 BR 112020025049A2
Authority
BR
Brazil
Prior art keywords
dimensional data
information
coding
dimensional
node
Prior art date
Application number
BR112020025049-0A
Other languages
English (en)
Inventor
Toshiyasu Sugio
Chi Wang
Pongsak Lasang
Chung Dean HAN
Noritaka Iguchi
Original Assignee
Panasonic Intellectual Property Corporation Of America
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 Panasonic Intellectual Property Corporation Of America filed Critical Panasonic Intellectual Property Corporation Of America
Publication of BR112020025049A2 publication Critical patent/BR112020025049A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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

Landscapes

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

Abstract

A presente invenção refere-se a métodos e dispositivos de codificação e de decodificação (métodos, e codificador e decodificador) de dados tridimensionais, que incluem: codificar um primeiro flag que indica se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido na codificação do nó atual incluído em uma estrutura de árvore N-ária de pontos tridimensionais incluídos em dados tridimensionais, N sendo um número inteiro maior do que ou igual a 2 (S3661); selecionar uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido (SIM em S3662) (S3663); e selecionar uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido (NÃO em S3662), M sendo um número inteiro diferente de N (S3664).

Description

Relatório Descritivo da Patente de Invenção para "MÉTODO DE CODIFICAÇÃO DE DADOS TRIDIMENSIONAIS, MÉTODO DE DECODIFICAÇÃO DE DADOS TRIDIMENSIONAIS, DISPOSITIVO DE
CODIFICAÇÃO DE DADOS TRIDIMENSIONAIS E DISPOSITIVO DE DECODIFICAÇÃO DE DADOS TRIDIMENSIONAIS". CAMPO TÉCNICO
[001] A presente descrição se refere a um método de codificação de dados tridimensionais, a um método de decodificação de dados tridimensionais, a um dispositivo de codificação (codificador) de dados tridimensionais e a um dispositivo de decodificação (decodificador) de dados tridimensionais.
ANTECEDENTES DA TÉCNICA
[002] Os dispositivos ou serviços que usam dados tridimensionais devem ter seu uso difundido em uma faixa ampla de campos, tal como exibição computadorizada que permite as operações autônomas de carros e robôs, informação de mapa, monitoramento, inspeção de infraestrutura e distribuição de vídeo. Os dados tridimensionais são obtidos através de vários meios, incluindo um sensor de distância, tal como um buscador de faixa, além de uma câmera estéreo e uma combinação de uma pluralidade de câmeras monoculares.
[003] Os métodos de representação dos dados tridimensionais incluem um método conhecido como um esquema de nuvem de pontos que representa o formato de uma estrutura tridimensional por um grupo de pontos em um espaço tridimensional. No esquema de nuvem de pontos, as posições e cores de um grupo de pontos são armazenadas. Enquanto a nuvem de pontos deve ser um método principal de representação de dados tridimensionais, uma quantidade massiva de dados de um grupo de pontos necessita de compressão da quantidade de dados tridimensionais, através de codificação, para fins de acúmulo e transmissão, tal como no caso de uma imagem em movimento bidimensional (exemplos incluem MPEG-4 AVC e HEVC padronizado por MPEG).
[004] Entretanto, a compressão da nuvem de pontos é parcialmente suportada, por exemplo, por uma biblioteca de fonte aberta (Point Cloud Library) para processamento relacionado com a nuvem de pontos.
[005] Ainda, uma técnica de busca e exibição de uma instalação, localizada nas proximidades do veículo, é conhecida (por exemplo, consulte Literatura de Patente (PTL) 1).
LISTA DE CITAÇÃO LITERATURA DE PATENTE
[006] PTL 1: Publicação Internacional WO 2014/020663
SUMÁRIO DA INVENÇÃO PROBLEMA TÉCNICO
[007] Tem havido uma demanda para reduzir a quantidade de processamento na codificação e decodificação de dados tridimensionais.
[008] A presente invenção tem um objetivo de fornecer um método de codificação de dados tridimensionais, um método de decodificação de dados tridimensionais, um dispositivo de codificação de dados tridimensionais ou um dispositivo de decodificação de dados tridimensionais que são capazes de reduzir a quantidade de processamento.
SOLUÇÕES PARA O PROBLEMA
[009] Um método de codificação de dados tridimensionais de acordo com um aspecto da presente invenção inclui: codificar um primeiro flag que indica se um nó que tem um nó pai diferente de um nó pai de um nó atual deve ser referido na codificação do nó atual incluído em uma estrutura de árvore N-ária de pontos tridimensionais incluídos em dados tridimensionais, N sendo um número inteiro maior do que ou igual a 2; selecionar uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação de nós vizinhos do nó atual e realizar a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e selecionar uma tabela de codificação a partir das M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
[0010] Um método de decodificação de dados tridimensionais de acordo com um aspecto da presente invenção inclui: decodificar um primeiro flag que indica se um nó que tem um nó pai diferente de um nó pai de um nó atual deve ser referido na decodificação do nó atual incluído em uma estrutura de árvore N-ária de pontos tridimensionais incluídos em dados tridimensionais, N sendo um número inteiro maior do que ou igual a 2; selecionar uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e selecionar uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
EFEITO VANTAJOSO DA INVENÇÃO
[0011] A presente invenção fornece um método de codificação de dados tridimensionais, um método de decodificação de dados tridimensionais, um dispositivo de codificação de dados tridimensionais ou um dispositivo de decodificação de dados tridimensionais que são capazes de reduzir uma quantidade de processamento.
BREVE DESCRIÇÃO DOS DESENHOS
[0012] A Figura 1 é um diagrama que mostra a estrutura de dados tridimensionais codificados de acordo com a Modalidade 1.
[0013] A Figura 2 é um diagrama que mostra um exemplo de estruturas de previsão dentre os SPCs que pertencem à camada mais inferior em um GOS de acordo com a Modalidade 1.
[0014] A Figura 3 é um diagrama que mostra um exemplo de estruturas de previsão dentre as camadas de acordo com a Modalidade
1.
[0015] A Figura 4 é um diagrama que mostra uma ordem ilustrativa de codificação de GOSs de acordo com a Modalidade 1.
[0016] A Figura 5 é um diagrama que mostra uma ordem ilustrativa de codificação de GOSs de acordo com a Modalidade 1.
[0017] A Figura 6 é um diagrama de blocos de um dispositivo de codificação de dados tridimensionais de acordo com a Modalidade 1.
[0018] A Figura 7 é um fluxograma de processos de codificação de acordo com a Modalidade 1.
[0019] A Figura 8 é um diagrama de blocos de um dispositivo de decodificação de dados tridimensionais de acordo com a Modalidade 1.
[0020] A Figura 9 é um fluxograma de processos de decodificação de acordo com a Modalidade 1.
[0021] A Figura 10 é um diagrama que mostra um exemplo de meta informação de acordo com a Modalidade 1.
[0022] A Figura 11 é um diagrama que mostra uma estrutura ilustrativa de um SWLD de acordo com a Modalidade 2.
[0023] A Figura 12 é um diagrama que mostra operações ilustrativas realizadas por um servidor e por um cliente de acordo com a Modalidade 2.
[0024] A Figura 13 é um diagrama que mostra operações ilustrativas realizadas pelo servidor e por um cliente de acordo com a Modalidade 2.
[0025] A Figura 14 é um diagrama que mostra operações ilustrativas realizadas pelo servidor e pelos clientes de acordo com a Modalidade 2.
[0026] A Figura 15 é um diagrama que mostra operações ilustrativas realizadas pelo servidor e pelos clientes de acordo com a Modalidade 2.
[0027] A Figura 16 é um diagrama de blocos de um dispositivo de codificação de dados tridimensionais de acordo com a Modalidade 2.
[0028] A Figura 17 é um fluxograma dos processos de codificação de acordo com a Modalidade 2.
[0029] A Figura 18 é um diagrama de blocos de um dispositivo de decodificação de dados tridimensionais de acordo com a Modalidade 2.
[0030] A Figura 19 é um fluxograma dos processos de decodificação de acordo com a Modalidade 2.
[0031] A Figura 20 é um diagrama que mostra uma estrutura ilustrativa de um WLD de acordo com a Modalidade 2.
[0032] A Figura 21 é um diagrama que mostra uma estrutura de "octree" ilustrativa de WLD de acordo com a Modalidade 2.
[0033] A Figura 22 é um diagrama que mostra uma estrutura ilustrativa de um SWLD de acordo com a Modalidade 2.
[0034] A Figura 23 é um diagrama que mostra uma estrutura de "octree" ilustrativa do SWLD de acordo com a Modalidade 2.
[0035] A Figura 24 é um diagrama de blocos de um dispositivo de criação de dados tridimensionais de acordo com a Modalidade 3.
[0036] A Figura 25 é um diagrama de blocos de um dispositivo de transmissão de dados tridimensionais de acordo com a Modalidade 3.
[0037] A Figura 26 é um diagrama de blocos de um dispositivo de processamento de informação tridimensional de acordo com a Modalidade 4.
[0038] A Figura 27 é um diagrama de blocos de um dispositivo de criação de dados tridimensionais de acordo com a Modalidade 5.
[0039] A Figura 28 é um diagrama que mostra uma estrutura de um sistema de acordo com a Modalidade 6.
[0040] A Figura 29 é um diagrama de blocos de um dispositivo de cliente de acordo com a Modalidade 6.
[0041] A Figura 30 é um diagrama de blocos de um servidor de acordo com a Modalidade 6.
[0042] A Figura 31 é um fluxograma de um processo de criação de dados tridimensionais realizado pelo dispositivo de cliente de acordo com a Modalidade 6.
[0043] A Figura 32 é um fluxograma de um processo de transmissão de informação sobre sensor realizado pelo dispositivo de cliente de acordo com a Modalidade 6.
[0044] A Figura 33 é um fluxograma de um processo de criação de dados tridimensionais realizado pelo servidor de acordo com a Modalidade 6.
[0045] A Figura 34 é um fluxograma de um processo de transmissão de mapa tridimensional realizado pelo servidor de acordo com a Modalidade 6.
[0046] A Figura 35 é um diagrama que mostra uma estrutura de uma variação do sistema de acordo com a Modalidade 6.
[0047] A Figura 36 é um diagrama que mostra uma estrutura dos dispositivos de servidor e de cliente de acordo com a Modalidade 6.
[0048] A Figura 37 é um diagrama de blocos de um dispositivo de codificação de dados tridimensionais de acordo com a Modalidade 7.
[0049] A Figura 38 é um diagrama que mostra um exemplo de um residual de previsão de acordo com a Modalidade 7.
[0050] A Figura 39 é um diagrama que mostra um exemplo de um volume de acordo com a Modalidade 7.
[0051] A Figura 40 é um diagrama que mostra um exemplo de uma representação "octree" do volume de acordo com a Modalidade 7.
[0052] A Figura 41 é um diagrama que mostra um exemplo de sequências de bits de volume de acordo com a Modalidade 7.
[0053] A Figura 42 é um diagrama que mostra um exemplo de uma representação "octree" de um volume de acordo com a Modalidade 7.
[0054] A Figura 43 é um diagrama que mostra um exemplo de volume de acordo com a Modalidade 7.
[0055] A Figura 44 é um diagrama para descrever um processo de intraprevisão de acordo com a Modalidade 7.
[0056] A Figura 45 é um diagrama para descrever um processo de rotação e translação de acordo com a Modalidade 7.
[0057] A Figura 46 é um diagrama que mostra uma sintaxe ilustrativa de um indicador de RT e informação sobre RT de acordo com a Modalidade 7.
[0058] A Figura 47 é um diagrama para descrever um processo de interprevisão de acordo com a Modalidade 7.
[0059] A Figura 48 é um diagrama de blocos de um dispositivo de decodificação de dados tridimensionais de acordo com a Modalidade 7.
[0060] A Figura 49 é um fluxograma de um processo de codificação de dados tridimensionais realizado pelo dispositivo de codificação de dados tridimensionais de acordo com a Modalidade 7.
[0061] A Figura 50 é um fluxograma de um processo de decodificação de dados tridimensionais realizado pelo dispositivo de decodificação de dados tridimensionais de acordo com a Modalidade 7.
[0062] A Figura 51 é um diagrama que ilustra uma estrutura de árvore de acordo com a Modalidade 8.
[0063] A Figura 52 é um diagrama que ilustra um exemplo de códigos de ocupação de acordo com a Modalidade 8.
[0064] A Figura 53 é um diagrama que ilustra esquematicamente uma operação realizada por um dispositivo de codificação de dados tridimensionais de acordo com a Modalidade 8.
[0065] A Figura 54 é um diagrama que ilustra um exemplo de informação sobre geometria de acordo com a Modalidade 8.
[0066] A Figura 55 é um diagrama que ilustra um exemplo de seleção de uma tabela de codificação que usa informação sobre geometria de acordo com a Modalidade 8.
[0067] A Figura 56 é um diagrama que ilustra um exemplo de seleção de uma tabela de codificação que usa informação sobre estrutura de acordo com a Modalidade 8.
[0068] A Figura 57 é um diagrama que ilustra um exemplo de seleção de uma tabela de codificação que usa informação sobre atributo de acordo com a Modalidade 8.
[0069] A Figura 58 é um diagrama que ilustra um exemplo de seleção de uma tabela de codificação que usa informação sobre atributo de acordo com a Modalidade 8.
[0070] A Figura 59 é um diagrama que ilustra um exemplo de uma estrutura de um fluxo de bits de acordo com a Modalidade 8.
[0071] A Figura 60 é um diagrama que ilustra um exemplo de uma tabela de codificação de acordo com a Modalidade 8.
[0072] A Figura 61 é um diagrama que ilustra um exemplo de uma tabela de codificação de acordo com a Modalidade 8.
[0073] A Figura 62 é um diagrama que ilustra um exemplo de uma estrutura de um fluxo de bits de acordo com a Modalidade 8.
[0074] A Figura 63 é um diagrama que ilustra um exemplo de uma tabela de codificação de acordo com a Modalidade 8.
[0075] A Figura 64 é um diagrama que ilustra um exemplo de uma tabela de codificação de acordo com a Modalidade 8.
[0076] A Figura 65 é um diagrama que ilustra um exemplo de números de bits de um código de ocupação de acordo com a Modalidade 8.
[0077] A Figura 66 é um fluxograma de um processo de codificação que usa informação sobre geometria de acordo com a Modalidade 8.
[0078] A Figura 67 é um fluxograma de um processo de decodificação que usa informação sobre geometria de acordo com a Modalidade 8.
[0079] A Figura 68 é um fluxograma de um processo de codificação que usa informação sobre estrutura de acordo com a Modalidade 8.
[0080] A Figura 69 é um fluxograma de um processo de decodificação que usa informação sobre estrutura de acordo com a Modalidade 8.
[0081] A Figura 70 é um fluxograma de um processo de codificação que usa informação sobre atributo de acordo com a Modalidade 8.
[0082] A Figura 71 é um fluxograma de um processo de decodificação que usa informação sobre atributo de acordo com a Modalidade 8.
[0083] A Figura 72 é um fluxograma de um processo de seleção de uma tabela de codificação que usa informação sobre geometria de acordo com a Modalidade 8.
[0084] A Figura 73 é um fluxograma de um processo de seleção de uma tabela de codificação que usa informação sobre estrutura de acordo com a Modalidade 8.
[0085] A Figura 74 é um fluxograma de um processo de seleção de uma tabela de codificação que usa informação sobre atributo de acordo com a Modalidade 8.
[0086] A Figura 75 é um diagrama de blocos de um dispositivo de codificação de dados tridimensionais de acordo com a Modalidade 8.
[0087] A Figura 76 é um diagrama de blocos de um dispositivo de decodificação de dados tridimensionais de acordo com a Modalidade 8.
[0088] A Figura 77 é um diagrama que ilustra uma relação de referência em uma estrutura "octree" de acordo com a Modalidade 9.
[0089] A Figura 78 é um diagrama que ilustra uma relação de referência em uma região espacial de acordo com a Modalidade 9.
[0090] A Figura 79 é um diagrama que ilustra um exemplo de nós de referência vizinhos de acordo com a Modalidade 9.
[0091] A Figura 80 é um diagrama que ilustra uma relação entre um nó pai e nós de acordo com a Modalidade 9.
[0092] A Figura 81 é um diagrama que ilustra um exemplo de um código de ocupação do nó pai de acordo com a Modalidade 9.
[0093] A Figura 82 é um diagrama de blocos de um dispositivo de codificação de dados tridimensionais de acordo com a Modalidade 9.
[0094] A Figura 83 é um diagrama de blocos de um dispositivo de decodificação de dados tridimensionais de acordo com a Modalidade 9.
[0095] A Figura 84 é um fluxograma de um processo de codificação de dados tridimensionais de acordo com a Modalidade 9.
[0096] A Figura 85 é um fluxograma de um processo de decodificação de dados tridimensionais de acordo com a Modalidade 9.
[0097] A Figura 86 é um diagrama que ilustra um exemplo de seleção de uma tabela de codificação de acordo com a Modalidade 9.
[0098] A Figura 87 é um diagrama que ilustra uma relação de referência em uma região espacial de acordo com a Variação 1 da Modalidade 9.
[0099] A Figura 88 é um diagrama que ilustra um exemplo de uma sintaxe de informação de cabeçalho de acordo com a Variação 1 da Modalidade 9.
[00100] A Figura 89 é um diagrama que ilustra um exemplo de uma sintaxe de informação de cabeçalho de acordo com a Variação 1 da Modalidade 9.
[00101] A Figura 90 é um diagrama que ilustra um exemplo de nós de referência vizinhos de acordo com a Variação 2 da Modalidade 9.
[00102] A Figura 91 é um diagrama que ilustra um exemplo de um nó atual e nós vizinhos de acordo com a Variação 2 da Modalidade 9.
[00103] A Figura 92 é um diagrama que ilustra uma relação de referência em uma estrutura "octree" de acordo com a Variação 3 da Modalidade 9.
[00104] A Figura 93 é um diagrama que ilustra uma relação de referência em uma região espacial de acordo com a Variação 3 da Modalidade 9.
[00105] A Figura 94 é um diagrama que ilustra um exemplo de translação de acordo com a Modalidade 10.
[00106] A Figura 95 é um diagrama que ilustra um exemplo de rotação de acordo com a Modalidade 10.
[00107] A Figura 96 é um diagrama que ilustra um exemplo de horizontalidade e verticalidade de acordo com a Modalidade 10.
[00108] A Figura 97 é um diagrama que ilustra um exemplo de uma superfície adjacente de acordo com a Modalidade 10.
[00109] A Figura 98 é um diagrama que ilustra exemplos de translação de acordo com a Modalidade 10.
[00110] A Figura 99 é um diagrama que ilustra exemplos de rotação do eixo x de acordo com a Modalidade 10.
[00111] A Figura 100 é um diagrama que ilustra exemplos de rotação do eixo y de acordo com a Modalidade 10.
[00112] A Figura 101 é um diagrama que ilustra exemplos de rotação do eixo z de acordo com a Modalidade 10.
[00113] A Figura 102 é um diagrama que ilustra exemplos de horizontalidade e verticalidade de acordo com a Modalidade 10.
[00114] A Figura 103 é um diagrama que ilustra exemplos de uma superfície adjacente de acordo com a Modalidade 10.
[00115] A Figura 104 é um diagrama que ilustra um exemplo de agrupamento de padrões de ocupação de vizinhos de acordo com a Modalidade 10.
[00116] Figura 105 é um diagrama que ilustra um exemplo de agrupamento de padrões de ocupação de vizinhos de acordo com a Modalidade 10.
[00117] A Figura 106 é um diagrama que ilustra um exemplo de uma tabela de conversão de acordo com a Modalidade 10.
[00118] A Figura 107 é um diagrama que ilustra um exemplo de uma tabela de conversão de acordo com a Modalidade 10.
[00119] A Figura 108 é um diagrama que ilustra um esboço de um processo de mapeamento de acordo com a Modalidade 10.
[00120] A Figura 109 é um diagrama que ilustra um esboço de um processo de mapeamento de acordo com a Modalidade 10.
[00121] A Figura 110 é um diagrama de blocos de um dispositivo de codificação de dados tridimensionais de acordo com a Modalidade 10.
[00122] A Figura 111 é um diagrama de blocos de um dispositivo de decodificação de dados tridimensionais de acordo com a Modalidade
10.
[00123] A Figura 112 é um fluxograma de um processo de codificação de dados tridimensionais de acordo com a Modalidade 10.
[00124] A Figura 113 é um fluxograma de um processo de decodificação de dados tridimensionais de acordo com a Modalidade
10.
[00125] A Figura 114 é um fluxograma de um processo de codificação de dados tridimensionais de acordo com a Modalidade 10.
[00126] A Figura 115 é um fluxograma de um processo de decodificação de dados tridimensionais de acordo com a Modalidade
10.
[00127] A Figura 116 é um fluxograma de um processo de codificação de dados tridimensionais de acordo com a Modalidade 10.
[00128] A Figura 117 é um fluxograma de um processo de decodificação de dados tridimensionais de acordo com a Modalidade
10.
[00129] A Figura 118 é um diagrama que ilustra um exemplo de agrupamento de padrões de ocupação de vizinhos de acordo com a Modalidade 11.
[00130] A Figura 119 é um fluxograma de um processo de seleção de tabela de codificação de acordo com a Modalidade 11.
[00131] A Figura 120 é um fluxograma de um processo de codificação de dados tridimensionais de acordo com a Modalidade 11.
[00132] A Figura 121 é um fluxograma de um processo de decodificação de dados tridimensionais de acordo com a Modalidade
11.
[00133] A Figura 122 é um diagrama para ilustrar tabelas de codificação redundantes de acordo com a Modalidade 12.
[00134] A Figura 123 é um diagrama que ilustra tabelas de codificação estáticas e dinâmicas de acordo com a Modalidade 12.
[00135] A Figura 124 é um diagrama que ilustra um exemplo de um nó atual de acordo com a Modalidade 12.
[00136] A Figura 125 é um diagrama que ilustra as operações no caso 1 de acordo com a Modalidade 12.
[00137] A Figura 126 é um diagrama que ilustra as operações no caso 2 de acordo com a Modalidade 12.
[00138] A Figura 127 é um diagrama que ilustra um exemplo de nós vizinhos de acordo com a Modalidade 12.
[00139] A Figura 128 é um diagrama que ilustra exemplos específicos do número de tabelas redundantes de acordo com a Modalidade 12.
[00140] A Figura 129 é um diagrama que ilustra exemplos específicos do número de tabelas redundantes de acordo com a Modalidade 12.
[00141] A Figura 130 é um diagrama que ilustra um exemplo específico de uma tabela redundante de acordo com a Modalidade 12.
[00142] A Figura 131 é um diagrama que ilustra exemplos específicos de uma tabela redundante de acordo com a Modalidade 12.
[00143] A Figura 132 é um diagrama que ilustra uma operação de não remover uma tabela redundante de acordo com a Modalidade 12.
[00144] A Figura 133 é um diagrama que ilustra exemplos de tabelas de codificação das quais tabelas redundantes são removidas de acordo com a Modalidade 12.
[00145] A Figura 134 é um diagrama que ilustra exemplos do número de tabelas de codificação quando tabelas redundantes são removidas de acordo com a Modalidade 12.
[00146] A Figura 135 é um diagrama que ilustra um processo de criação de uma tabela de codificação com um tamanho dinâmico de acordo com a Modalidade 12.
[00147] A Figura 136 é um diagrama que ilustra exemplos do tamanho de uma tabela de acordo com a Modalidade 12.
[00148] A Figura 137 é um fluxograma de um processo de criação de uma tabela de codificação com um tamanho dinâmico de acordo com a Modalidade 12.
[00149] A Figura 138 é um diagrama que ilustra exemplos do tamanho de uma tabela de acordo com a Modalidade 12.
[00150] A Figura 139 é um fluxograma de um processo de seleção de tabela de codificação de acordo com a Modalidade 12.
DESCRIÇÃO DE MODALIDADES EXEMPLIFICATIVAS
[00151] Um método de codificação de dados tridimensionais de acordo com um aspecto da presente invenção inclui: codificar um primeiro flag que indica se um nó que tem um nó pai diferente de um nó pai de um nó atual deve ser referido na codificação do nó atual incluído em uma estrutura de árvore N-ária de pontos tridimensionais incluídos em dados tridimensionais, N sendo um número inteiro maior do que ou igual a 2; selecionar uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação de nós vizinhos do nó atual e realizar a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e selecionar uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
[00152] De acordo com esta configuração, uma vez que é possível reduzir o número de tabelas de codificação, é possível reduzir a quantidade de processamento. Além disso, uma vez que é possível definir uma tabela de codificação de forma adequada ao alterar o número de tabelas de codificação de acordo com se um nó que tem um nó pai diferente de um nó pai de um nó atual deve ser referido, é possível reduzir a quantidade de processamento, ao mesmo tempo em que suprime a redução da eficiência de codificação.
[00153] Por exemplo, N pode ser maior do que M.
[00154] Por exemplo, quando uma tabela de codificação é selecionada a partir de M tabelas de codificação, a tabela de codificação pode ser selecionada a partir de M tabelas de codificação por meio de referência a uma tabela de correspondência de acordo com os estados de ocupação dos nós vizinhos, a tabela de correspondência indicando uma relação de correspondência entre L padrões de ocupação que indicam os estados de ocupação dos nós vizinhos e as M tabelas de codificação, L sendo um número inteiro maior do que M.
[00155] Por exemplo, quando uma tabela de codificação é selecionada a partir de M tabelas de codificação, a tabela de codificação pode ser selecionada a partir de M tabelas de codificação por meio de referência a uma primeira tabela de correspondência e uma segunda tabela de correspondência de acordo com os estados de ocupação dos nós vizinhos, a primeira tabela de correspondência indicando uma relação de correspondência entre L padrões de ocupação que indicam os estados de ocupação dos nós vizinhos e I tabelas de codificação, a segunda tabela de correspondência indicando uma relação de correspondência entre as I tabelas de codificação e as M tabelas de codificação, L sendo um número inteiro maior do que I , I um sendo número inteiro maior do que M.
[00156] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido podem ser padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai e uma tabela de codificação idêntica entre as M tabelas de codificação podem ser atribuídos, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e vizinhos do nó atual em uma direção horizontal a um plano x-y.
[00157] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido podem ser padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai e uma tabela de codificação idêntica entre as M tabelas de codificação podem ser atribuídos, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e vizinhos do nó atual em uma direção vertical a um plano x-y.
[00158] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido podem ser padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai e uma tabela de codificação idêntica entre as M tabelas de codificação podem ser atribuídos, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido por dois dos três nós vizinhos ocupados e o nó atual é horizontal a um plano x-y.
[00159] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido podem ser padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai e uma tabela de codificação idêntica entre as M tabelas de codificação podem ser atribuídos, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido por dois dos três nós vizinhos ocupados e o nó atual é vertical a um plano x-y.
[00160] Um método de decodificação de dados tridimensionais de acordo com um aspecto da presente invenção inclui: decodificar um primeiro flag que indica se um nó que tem um nó pai diferente de um nó pai de um nó atual deve ser referido na decodificação do nó atual incluído em uma estrutura de árvore N-ária de pontos tridimensionais incluídos em dados tridimensionais, N sendo um número inteiro maior do que ou igual a 2; selecionar uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e selecionar uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
[00161] De acordo com esta configuração, uma vez que é possível reduzir o número de tabelas de codificação, é possível reduzir a quantidade de processamento. Além disso, uma vez que é possível definir uma tabela de codificação de forma adequada ao alterar o número de tabelas de codificação de acordo com se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido, é possível reduzir a quantidade de processamento, ao mesmo tempo em que suprime a redução da eficiência de codificação.
[00162] Por exemplo, N pode ser maior do que M.
[00163] Por exemplo, quando uma tabela de codificação é selecionada a partir de M tabelas de codificação, a tabela de codificação pode ser selecionada a partir de M tabelas de codificação por meio de referência a uma tabela de correspondência de acordo com os estados de ocupação dos nós vizinhos, a tabela de correspondência indicando uma relação de correspondência entre L padrões de ocupação que indicam os estados de ocupação dos nós vizinhos e as M tabelas de codificação, L sendo um número inteiro maior do que M.
[00164] Por exemplo, quando uma tabela de codificação é selecionada a partir de M tabelas de codificação, a tabela de codificação pode ser selecionada a partir de M tabelas de codificação por meio de referência a uma primeira tabela de correspondência e uma segunda tabela de correspondência de acordo com os estados de ocupação dos nós vizinhos, a primeira tabela de correspondência indicando uma relação de correspondência entre L padrões de ocupação que indicam os estados de ocupação dos nós vizinhos e I tabelas de codificação, a segunda tabela de correspondência indicando uma relação de correspondência entre as I tabelas de codificação e as M tabelas de codificação, L sendo um número inteiro maior do que I, I sendo um número inteiro maior do que M.
[00165] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido podem ser padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai e uma tabela de codificação idêntica entre as M tabelas de codificação podem ser atribuídos, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e vizinho do nó atual em uma direção horizontal para um plano x-y.
[00166] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido podem ser padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai e uma tabela de codificação idêntica entre as M tabelas de codificação podem ser atribuídos, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e vizinho do nó atual em uma direção vertical a um plano x-y.
[00167] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido podem ser padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai e uma tabela de codificação idêntica entre as M tabelas de codificação podem ser atribuídos, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido por dois dos três nós vizinhos ocupados e o nó atual é horizontal a um plano x-y.
[00168] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido podem ser padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai e uma tabela de codificação idêntica entre as M tabelas de codificação podem ser atribuídos, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido por dois dos três nós vizinhos ocupados e o nó atual é vertical a um plano x-y.
[00169] Um dispositivo de codificação de dados tridimensionais de acordo com um aspecto da presente invenção é um dispositivo de codificação de dados tridimensionais que codifica pontos tridimensionais, cada um incluindo informação sobre atributo, o dispositivo de codificação de dados tridimensionais incluindo um processador e uma memória. Usando a memória, o processador: codifica um primeiro flag que indica se um nó que tem um nó pai diferente de um nó pai de um nó atual deve ser referido na codificação do nó atual incluído em uma estrutura de árvore N-ária de pontos tridimensionais incluídos em dados tridimensionais, N sendo um número inteiro maior do que ou igual a 2; seleciona uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação de nós vizinhos do nó atual e realiza a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e seleciona uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realiza a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
[00170] De acordo com esta configuração, uma vez que é possível reduzir o número de tabelas de codificação, é possível reduzir a quantidade de processamento. Além disso, uma vez que é possível definir uma tabela de codificação de forma adequada ao alterar o número de tabelas de codificação de acordo com se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido, é possível reduzir a quantidade de processamento, ao mesmo tempo em que suprime a redução da eficiência de codificação.
[00171] Um dispositivo de decodificação de dados tridimensionais de acordo com um aspecto da presente invenção é um dispositivo de decodificação de dados tridimensionais que decodifica pontos tridimensionais, cada um tendo informação sobre atributo, o dispositivo de decodificação de dados tridimensionais incluindo um processador e uma memória. Usando a memória, o processador: decodifica um primeiro flag que indica se um nó que tem um nó pai diferente de um nó pai de um nó atual deve ser referido na decodificação do nó atual incluído em uma estrutura de árvore N-ária de pontos tridimensionais incluídos em dados tridimensionais, N sendo um número inteiro maior do que ou igual a 2; seleciona uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realiza a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e seleciona uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realiza a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
[00172] De acordo com esta configuração, uma vez que é possível reduzir o número de tabelas de codificação, é possível reduzir a quantidade de processamento. Além disso, uma vez que é possível definir uma tabela de codificação de forma adequada ao alterar o número de tabelas de codificação de acordo com se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido, é possível reduzir a quantidade de processamento, ao mesmo tempo em que suprime a redução da eficiência de decodificação.
[00173] Observe que estes aspectos gerais ou específicos podem ser implementados como um sistema, um método, um circuito integrado, um programa de computador ou um meio de gravação legível em computador, tal como um CD-ROM, ou podem ser implementados como qualquer combinação de um sistema, um método, um circuito integrado, um programa de computador e um meio de gravação.
[00174] O seguinte descreve modalidades com referência aos desenhos. Observe que as modalidades a seguir mostram modalidades exemplificativas da presente invenção. Os valores numéricos, formatos, materiais, componentes estruturais, o arranjo e conexão dos componentes estruturais, etapas, a ordem de processamento das etapas, etc. mostrados nas modalidades a seguir são meros exemplos e, portanto, não se destinam a limitar a presente invenção. Dos componentes estruturais descritos nas modalidades a seguir, os componentes estruturais não citados em qualquer uma das reivindicações independentes que indicam os conceitos mais amplos serão descritos como componentes estruturais opcionais. MODALIDADE 1
[00175] Primeiro, a estrutura de dados dos dados tridimensionais codificados (daqui em diante também denominados como dados codificados), de acordo com a presente modalidade, será descrita. A Figura 1 é um diagrama que mostra a estrutura de dados tridimensionais codificados de acordo com a presente modalidade.
[00176] Na presente modalidade, um espaço tridimensional é dividido em espaços (SPCs), os quais correspondem às imagens na codificação de imagem em movimento, e os dados tridimensionais são codificados em uma base SPC por SPC. Cada SPC é ainda dividido em volumes (VLMs), os quais correspondem a macro blocos, etc., na codificação de imagem em movimento, e previsões e transformações são realizadas em uma base VLM por VLM. Cada volume inclui uma pluralidade de "voxels" (VXLs), cada um sendo uma unidade mínima na qual coordenadas de posição estão associadas. Observe que a previsão é um processo de geração de dados tridimensionais de previsão análogo a uma unidade de processamento atual por meio de referência à outra unidade de processamento e que codifica um diferencial entre os dados tridimensionais de previsão e a unidade de processamento atual, tal como no caso de previsões realizadas em imagens bidimensionais. Tal previsão inclui não apenas previsão espacial, na qual outra unidade de previsão que corresponde ao mesmo tempo, é referida, mas também previsão temporal, na qual uma unidade de previsão que corresponde a um tempo diferente, é referida.
[00177] Quando de decodificação de um espaço tridimensional representado pelos dados do grupo de pontos, tal como uma nuvem de pontos, por exemplo, o dispositivo de codificação de dados tridimensionais (daqui em diante também denominado como dispositivo de codificação) codifica os pontos no grupo de pontos ou pontos incluídos nos respectivos "voxels", de uma forma coletiva, de acordo com um tamanho de "voxel". "Voxels" mais finos permitem uma representação altamente precisa do formato tridimensional de um grupo de pontos, enquanto que "voxels" maiores permitem uma representação aproximada do formato tridimensional de um grupo de pontos.
[00178] Observe que o seguinte descreve o caso no qual os dados tridimensionais são uma nuvem de pontos, mas os dados tridimensionais não estão limitados a uma nuvem de pontos e, desta forma, dados tridimensionais de qualquer formato podem ser empregados.
[00179] Além disso, observe que "voxels" com uma estrutura hierárquica podem ser usados. Em tal caso, quando a hierarquia inclui n níveis, pode ser sequencialmente indicado se um ponto de amostragem está incluído no n-1-ésimo nível ou seus níveis inferiores (os níveis inferiores do n-ésimo nível). Por exemplo, quando apenas o n-ésimo nível é decodificado e o n-1-ésimo nível ou seus níveis inferiores incluem um ponto de amostragem, o n-ésimo nível pode ser decodificado considerando que um ponto de amostragem está incluído no centro de um "voxel" no n-ésimo nível.
[00180] Além disso, o dispositivo de codificação obtém dados de grupo de pontos usando, por exemplo, um sensor de distância, uma câmera estéreo, uma câmera monocular, um sensor giroscópico ou um sensor de inércia.
[00181] Como no caso de codificação de imagem em movimento, cada SPC é classificado em uma de pelo menos três estruturas de previsão que incluem intra SPC (I-SPC), a qual é individualmente decodificável; SPC de previsão (P-SPC) capaz de uma referência unidirecional apenas; e SPC bidirecional (B-SPC) capaz de referências bidirecionais. Cada SPC inclui dois tipos de informação sobre tempo: tempo de decodificação e tempo de exibição.
[00182] Ainda, conforme mostrado na Figura 1, uma unidade de processamento que inclui uma pluralidade de SPCs é um grupo de espaços (GOS), o qual é uma unidade de acesso randômico. Além disso, uma unidade de processamento que inclui uma pluralidade de GOSs é um mundo (WLD).
[00183] A região espacial ocupada por cada mundo está associada a uma posição absoluta na terra ao usar, por exemplo, GPS ou informação sobre latitude e longitude. Tal informação sobre posição é armazenada como meta informação. Observe que a meta informação pode ser incluída em dados codificados ou pode ser transmitida separadamente dos dados codificados.
[00184] Além disso, dentro de um GOS, todos os SPCs podem ser tridimensionalmente adjacentes entre si ou pode haver um SPC que não é tridimensionalmente adjacente a outro SPC.
[00185] Observe que o seguinte também descreve processos, tal como codificação, decodificação e referência, a serem realizados nos dados tridimensionais incluídos nas unidades de processamento, tal como GOS, SPC e VLM, simplesmente como realização de codificação/para codificar, decodificação/para decodificar, referência, etc. em uma unidade de processamento. Observe também que os dados tridimensionais incluídos em uma unidade de processamento incluem, por exemplo, pelo menos um par de uma posição espacial, tal como coordenadas tridimensionais, e um valor de atributo, tal como informação sobre cor.
[00186] Em seguida, as estruturas de previsão dentre SPCs em um GOS serão descritas. Uma pluralidade de SPCs, no mesmo GOS, ou uma pluralidade de VLMs, no mesmo SPC, ocupam espaços mutuamente diferentes, ao mesmo tempo em que têm a mesma informação sobre tempo (o tempo de decodificação e o tempo de exibição).
[00187] Um SPC em um GOS que vem primeiro na ordem de decodificação é um I-SPC. GOSs são de dois tipos: GOS fechado e GOS aberto. Um GOS fechado é um GOS no qual todos os SPCs no GOS são decodificáveis quando a decodificação começa a partir do primeiro I-SPC. Entretanto, um GOS aberto é um GOS no qual um GOS diferente é referido em um ou mais SPCs que antecedem o primeiro I- SPC no GOS no momento de exibição e, desta forma, não podem ser decodificados individualmente.
[00188] Observe que, no caso de dados codificados da informação sobre mapa, por exemplo, um WLD é, algumas vezes, decodificado na direção reversa, a qual é oposta à ordem de codificação e, desta forma, a reprodução reversa é difícil quando os GOSs são interdependentes. Em tal caso, um GOS fechado é basicamente usado.
[00189] Cada GOS tem uma estrutura de camadas na direção da altura, e SPCs são sequencialmente codificados ou decodificados a partir dos SPCs na camada inferior.
[00190] A Figura 2 é um diagrama que mostra um exemplo de estruturas de previsão dentre os SPCs que pertencem à camada mais inferior de um GOS. A Figura 3 é um diagrama que mostra um exemplo de estruturas de previsão dentre as camadas.
[00191] Um GOS inclui pelo menos um I-SPC. Dos objetos em um espaço tridimensional, tal como uma pessoa, um animal, um carro, uma bicicleta, um sinal e um edifício, que servem como um marco, um objeto de tamanho reduzido é especialmente eficiente quando codificado como um I-SPC. Quando da decodificação de um GOS em um rendimento baixo ou em uma alta velocidade, por exemplo, o dispositivo de decodificação de dados tridimensionais (daqui em diante também denominado como dispositivo de decodificação) decodifica apenas I- SPC(s) no GOS.
[00192] O dispositivo de codificação também pode alterar o intervalo de codificação ou a frequência de surgimento de I-SPCs, dependendo do grau de escassez e densidade dos objetos em um WLD.
[00193] Na estrutura mostrada na Figura 3, o dispositivo de codificação ou o dispositivo de decodificação codificam ou decodificam uma pluralidade de camadas sequencialmente a partir da camada inferior (camada 1). Isto aumenta a prioridade de dados no solo e em suas proximidades, o que envolve uma maior quantidade de informação quando, por exemplo, um carro de direção automática é considerado.
[00194] Com referência aos dados codificados usados para um drone, por exemplo, a codificação ou decodificação pode ser realizada sequencialmente a partir de SPCs na camada superior em um GOS na direção da altura.
[00195] O dispositivo de codificação ou o dispositivo de decodificação também podem codificar ou decodificar uma pluralidade de camadas de uma forma na qual o dispositivo de decodificação pode ter uma ideia aproximada de um GOS a princípio e, então, a resolução é gradualmente aumentada. O dispositivo de codificação ou o dispositivo de decodificação pode realizar a codificação ou decodificação na ordem das camadas 3, 8, 1, 9.., por exemplo.
[00196] Em seguida, será descrito o manuseio de objetos estáticos e objetos dinâmicos.
[00197] Um espaço tridimensional inclui cenas ou objetos inanimados, tal como um edifício ou uma estrada (daqui em diante coletivamente denominados de objetos estáticos), e objetos com movimento, tal como um carro e uma pessoa (daqui em diante coletivamente denominados como objetos dinâmicos). A detecção do objeto é realizada separadamente, por exemplo, ao extrair pontos- chave a partir dos dados de nuvem de pontos ou a partir do vídeo de uma câmera, tal como uma câmera estéreo. Na presente descrição, será descrito um método ilustrativo de codificação de um objeto dinâmico.
[00198] Um primeiro método é um método no qual um objeto estático e um objeto dinâmico são codificados sem distinção. Um segundo método é um método no qual uma distinção é feita entre um objeto estático e um objeto dinâmico com base na informação sobre identificação.
[00199] Por exemplo, um GOS é usado como uma unidade de identificação. Em tal caso, uma distinção é feita entre um GOS que inclui SPCs que constituem um objeto estático e um GOS que inclui SPCs que constituem um objeto dinâmico, com base na informação sobre identificação armazenada nos dados codificados ou armazenada separadamente dos dados codificados.
[00200] Alternativamente, um SPC pode ser usado como uma unidade de identificação. Em tal caso, uma distinção é feita entre um SPC que inclui VLMs que constituem um objeto estático e um SPC que inclui VLMs que constituem um objeto dinâmico, com base na informação sobre identificação assim descrita.
[00201] Alternativamente, um VLM ou um VXL pode ser usado como uma unidade de identificação. Em tal caso, uma distinção é feita entre um VLM ou um VXL que inclui um objeto estático e um VLM ou um VXL que inclui um objeto dinâmico, com base na informação sobre identificação assim descrita.
[00202] O dispositivo de codificação também pode codificar um objeto dinâmico como pelo menos um VLM ou SPC e pode codificar um VLM ou um SPC que inclui um objeto estático e um SPC que inclui um objeto dinâmico como GOSs mutuamente diferentes. Quando o tamanho do GOS é variável, dependendo do tamanho de um objeto dinâmico, o dispositivo de codificação armazena, separadamente, o tamanho de GOS como meta informação.
[00203] O dispositivo de codificação também pode codificar um objeto estático e um objeto dinâmico, separadamente um do outro, e pode sobrepor o objeto dinâmico a um mundo constituído por objetos estáticos. Em tal caso, o objeto dinâmico é constituído por pelo menos um SPC e cada SPC está associado a pelo menos um SPC que constitui o objeto estático, no qual cada SPC deve ser sobreposto. Observe que um objeto dinâmico pode ser representado não pelos SPC(s), mas por pelo menos um VLM ou VXL.
[00204] O dispositivo de codificação também pode codificar um objeto estático e um objeto dinâmico como sequências mutuamente diferentes.
[00205] O dispositivo de codificação também pode gerar um GOS que inclui pelo menos um SPC que constitui um objeto dinâmico. O dispositivo de codificação pode, ainda, configurar o tamanho de um
GOS que inclui um objeto dinâmico (GOS_M) e o tamanho de um GOS que inclui um objeto estático que corresponde à região espacial de GOS_M no mesmo tamanho (tal como a mesma região espacial sendo ocupada). Isto permite que a sobreposição seja realizada em uma base GOS por GOS.
[00206] SPC(s) incluídos em outros GOS codificados podem ser referidos em um P-SPC ou um B-SPC que constituem um objeto dinâmico. No caso onde a posição de um objeto dinâmico muda temporalmente e um mesmo objeto dinâmico é codificado como um objeto em um GOS que corresponde a um tempo diferente, a referência a SPC(s)_ através dos GOSs é eficiente em termos da taxa de compressão.
[00207] O primeiro método e o segundo método podem ser selecionados de acordo com o uso pretendido dos dados codificados. Quando os dados tridimensionais codificados são usados como um mapa, por exemplo, um objeto dinâmico deve ser separado e, desta forma, o dispositivo de codificação usa o segundo método. Entretanto, o dispositivo de codificação usa o primeiro método quando a separação de um objeto dinâmico não é necessária, tal como no caso onde os dados tridimensionais de um evento, tal como um concerto ou um evento esportivo, são codificados.
[00208] O tempo de codificação e o tempo de exibição de um GOS ou um SPC podem ser armazenados nos dados codificados ou como meta informação. Todos os objetos estáticos podem ter a mesma informação sobre tempo. Em tal caso, o dispositivo de decodificação pode determinar o tempo real de decodificação e o tempo real de exibição. Alternativamente, um valor diferente pode ser designado para cada GOS ou SPC como o tempo de decodificação, e o mesmo valor pode ser designado como tempo de exibição. Ainda, tal como no caso do modelo de decodificador na codificação de imagem em movimento,
tal como o Decodificador de Referência Hipotética (Hypothetical Reference Decoder, HRD) de acordo com HEVC, pode ser empregado um modelo que assegure que um decodificador possa realizar a decodificação sem falhas ao ter um buffer temporário de um tamanho predeterminado e através de leitura de uma sequência de bits em uma taxa de bits predeterminada, de acordo com os tempos de decodificação.
[00209] Em seguida, será descrita a topologia dos GOSs em um mundo. As coordenadas do espaço tridimensional em um mundo são representadas pelos três eixos geométricos de coordenadas (eixo geométrico x, eixo geométrico y e eixo geométrico z), os quais são ortogonais entre si. Uma regra predeterminada definida para a ordem de codificação de GOSs permite que a codificação seja realizada, de modo que GOSs espacialmente adjacentes sejam contíguos nos dados codificados. Em um exemplo mostrado na Figura 4, por exemplo, GOSs nos planos x e z são codificados sucessivamente. Após a conclusão da codificação de todos os GOSs em determinados planos x e z, o valor do eixo geométrico y é atualizado. De outra forma, o mundo expande na direção do eixo geométrico y à medida que a codificação progride. Os números de índice GOS são determinados de acordo com a ordem de codificação.
[00210] No presente documento, os espaços tridimensionais nos respectivos mundos são previamente associados, um para um, às coordenadas geográficas absolutas, tal como coordenadas GPS ou coordenadas de latitude/longitude. Alternativamente, cada espaço tridimensional pode ser representado como uma posição relativa a uma posição de referência previamente determinada. As direções do eixo geométrico x, do eixo geométrico y e do eixo geométrico z no espaço tridimensional são representadas por vetores direcionais que são determinados com base nas latitudes e longitudes, etc. Tais vetores direcionais são armazenados juntamente com os dados codificados como meta informação.
[00211] GOSs têm um tamanho fixo e o dispositivo de codificação armazena tal tamanho como meta informação. O tamanho de GOS pode ser alterado dependendo, por exemplo, se ele é uma área urbana ou não ou se está dentro ou fora de um cômodo. De outra forma, o tamanho de GOS pode ser alterado de acordo com a quantidade ou atributos dos objetos com valores de informação. Alternativamente, no mesmo mundo, o dispositivo de codificação pode alterar, de forma adaptativa, o tamanho de GOS ou intervalo entre I-SPCs nos GOSs de acordo com a densidade do objeto, etc. Por exemplo, o dispositivo de codificação define o tamanho de GOS para que seja menor e o intervalo entre I- SPCs nos GOSs para que seja mais curto à medida que a densidade do objeto aumenta.
[00212] Em um exemplo mostrado na Figura 5, para se permitir o acesso randômico com um maior detalhamento, um GOS com uma alta densidade de objeto é dividido em regiões dos terceiro ao décimo GOSs. Observe que os sétimo a décimo GOSs estão localizados atrás dos terceiro a sexto GOSs.
[00213] Em seguida, serão descritos a estrutura e o fluxo operacional do dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade. A Figura 6 é um diagrama de blocos do dispositivo de codificação de dados tridimensionais 100 de acordo com a presente modalidade. A Figura 7 é um fluxograma de uma operação ilustrativa realizada pelo dispositivo de codificação de dados tridimensionais 100.
[00214] O dispositivo de codificação de dados tridimensionais 100 mostrado na Figura 6 codifica os dados tridimensionais 111, deste modo, gerando dados tridimensionais codificados 112. Tal dispositivo de codificação de dados tridimensionais 100 inclui o elemento de obtenção 101, o determinador de região de codificação 102, o divisor
103 e o codificador 104.
[00215] Conforme mostrado na Figura 7, primeiro, o elemento de obtenção 101 obtém os dados tridimensionais 111, os quais são dados de grupo de pontos (S101).
[00216] Em seguida, o determinador de região de codificação 102 determina uma região atual para codificação dentre as regiões espaciais que correspondem aos dados do grupo de pontos (S102) obtidos. Por exemplo, de acordo com a posição de um usuário ou de um veículo, o determinador de região de codificação 102 determina, como a região atual, uma região espacial em torno de tal posição.
[00217] Em seguida, o divisor 103 divide os dados do grupo de pontos incluídos na região atual em unidades de processamento. As unidades de processamento, no presente documento, significam unidades, tais como GOSs e SPCs, conforme descrito acima. A região atual, no presente documento corresponde, por exemplo, a um mundo descrito acima. Mais especificamente, o divisor 103 divide os dados de grupo de pontos em unidades de processamento com base em um tamanho de GOS predeterminado ou na presença/ausência/tamanho de um objeto dinâmico (S103). O divisor 103 determina, ainda, a posição inicial do SPC que vem primeiro na ordem de codificação em cada GOS.
[00218] Em seguida, o codificador 104 codifica sequencialmente uma pluralidade de SPCs em cada GOS, deste modo, gerando os dados tridimensionais codificados 112 (S104).
[00219] Observe que, embora seja descrito no presente documento um exemplo no qual a região atual é dividida em GOSs e SPCs, após o que cada GOS é codificado, as etapas de processamento não estão limitadas a tal ordem. Por exemplo, podem ser empregadas etapas nas quais a estrutura de um único GOS é determinada, a qual é seguida pela codificação de tal GOS e, então, a estrutura do GOS subsequente é determinada.
[00220] Conforme assim descrito, o dispositivo de codificação de dados tridimensionais 100 codifica os dados tridimensionais 111, deste modo, gerando os dados tridimensionais codificados 112. Mais especificamente, o dispositivo de codificação de dados tridimensionais 100 divide os dados tridimensionais em primeiras unidades de processamento (GOSs), cada uma sendo uma unidade de acesso randômico e estando associada a coordenadas tridimensionais, divide cada uma das primeiras unidades de processamento (GOSs) em segundas unidades de processamento (SPCs) e divide cada uma das segundas unidades de processamento (SPCs) em terceiras unidades de processamento (VLMs). Cada uma das terceiras unidades de processamento (VLMs) inclui pelo menos um "voxel" (VXL), a qual é a unidade mínima na qual a informação sobre posição está associada.
[00221] Em seguida, o dispositivo de codificação de dados tridimensionais 100 codifica cada uma das primeiras unidades de processamento (GOSs), deste modo, gerando dados tridimensionais codificados 112. Mais especificamente, o dispositivo de codificação de dados tridimensionais 100 codifica cada uma das segundas unidades de processamento (SPCs) em cada uma das primeiras unidades de processamento (GOSs). O dispositivo de codificação de dados tridimensionais 100 codifica, ainda, cada uma das terceiras unidades de processamento (VLMs) em cada uma das segundas unidades de processamento (SPCs).
[00222] Quando uma primeira unidade de processamento atual (GOS) é um GOS fechado, por exemplo, o dispositivo de codificação de dados tridimensionais 100 codifica uma segunda unidade de processamento atual (SPC) incluída em tal primeira unidade de processamento atual (GOS) ao fazer referência à outra segunda unidade de processamento (SPC) incluída na primeira unidade de processamento atual (GOS). Dito de outra forma, o dispositivo de codificação de dados tridimensionais 100 não faz referência a qualquer segunda unidade de processamento (SPC) incluída em uma primeira unidade de processamento (GOS) que seja diferente da primeira unidade de processamento atual (GOS).
[00223] Entretanto, quando uma primeira unidade de processamento atual (GOS) é um GOS aberto, o dispositivo de codificação de dados tridimensionais 100 codifica uma segunda unidade de processamento atual (SPC) incluída em tal primeira unidade de processamento atual (GOS) ao fazer referência à outra segunda unidade de processamento (SPC) incluída na primeira unidade de processamento atual (GOS) ou uma segunda unidade de processamento (SPC) incluída em uma primeira unidade de processamento (GOS) que seja diferente da primeira unidade de processamento atual (GOS).
[00224] Além disso, o dispositivo de codificação de dados tridimensionais 100 seleciona, como o tipo de uma segunda unidade de processamento atual (SPC), um dos seguintes: um primeiro tipo (I-SPC) no qual outra segunda unidade de processamento (SPC) não é referida; um segundo tipo (P-SPC) no qual outra segunda unidade de processamento individual (SPC) é referida; e um terceiro tipo no qual outras duas unidades de processamento (SPC) são referidas. O dispositivo de codificação de dados tridimensionais 100 codifica a segunda unidade de processamento atual (SPC) de acordo com o tipo selecionado.
[00225] Em seguida, serão descritos a estrutura e o fluxo operacional do dispositivo de decodificação de dados tridimensionais de acordo com a presente modalidade. A Figura 8 é um diagrama de blocos do dispositivo de decodificação de dados tridimensionais 200 de acordo com a presente modalidade. A Figura 9 é um fluxograma de uma operação ilustrativa realizada pelo dispositivo de decodificação de dados tridimensionais 200.
[00226] O dispositivo de decodificação de dados tridimensionais 200 mostrado na Figura 8 decodifica os dados tridimensionais codificados 211, deste modo, gerando os dados tridimensionais decodificados 212. Os dados tridimensionais codificados 211, no presente documento, por exemplo, são dados tridimensionais codificados 112 gerados pelo dispositivo de codificação de dados tridimensionais 100. Tal dispositivo de decodificação de dados tridimensionais 200 inclui o elemento de obtenção 201, o determinador de decodificação de GOS inicial 202, o determinador de decodificação de SPC 203 e o decodificador 204.
[00227] Primeiro, o elemento de obtenção 201 obtém os dados tridimensionais codificados 211 (S201). Em seguida, o determinador de decodificação de GOS inicial 202 determina um GOS atual para decodificação (S202). Mais especificamente, o determinador de decodificação de GOS inicial 202 se refere à meta informação armazenada nos dados tridimensionais codificados 211 ou armazenada separadamente dos dados tridimensionais codificados para determinar, como o GOS atual, um GOS que inclui um SPC que corresponde à posição espacial, ao objeto ou ao momento a partir do qual a decodificação deve ser iniciada.
[00228] Em seguida, o determinador de decodificação de SPC 203 determina o tipo (I, P e/ou B) de SPCs a serem decodificados no GOS (S203). Por exemplo, o determinador de decodificação de SPC 203 determina se (1) decodifica apenas I-SPC(s), (2) se decodifica I-SPC(s) e P-SPCs ou (3) se decodifica SPCs de todos os tipos. Observe que a presente etapa pode não ser realizada quando o(s) tipo(s) de SPCs a serem decodificados são previamente determinados, tal como quando todos os SPCs são previamente determinados para serem decodificados.
[00229] Em seguida, o decodificador 204 obtém uma localização de endereço dentro dos dados tridimensionais codificados 211 a partir do qual um SPC, que vem primeiro no GOS na ordem de decodificação (a mesma que a ordem de codificação) começa. O decodificador 204 obtém os dados codificados do primeiro SPC a partir da localização de endereço e decodifica sequencialmente os SPCs a partir de tal primeiro SPC (S204). Observe que a localização de endereço é armazenada na meta informação, etc.
[00230] O dispositivo de decodificação de dados tridimensionais 200 decodifica os dados tridimensionais decodificados 212 conforme descrito no presente documento. Mais especificamente, o dispositivo de decodificação de dados tridimensionais 200 decodifica cada um dos dados tridimensionais codificados 211 das primeiras unidades de processamento (GOSs), cada um sendo uma unidade de acesso randômico e estando associado a coordenadas tridimensionais, desta forma, gerando os dados tridimensionais decodificados 212 das primeiras unidades de processamento (GOSs). Ainda mais especificamente, o dispositivo de decodificação de dados tridimensionais 200 decodifica cada uma das segundas unidades de processamento (SPCs) em cada uma das primeiras unidades de processamento (GOSs). O dispositivo de decodificação de dados tridimensionais 200 decodifica, ainda, cada uma das terceiras unidades de processamento (VLMs) em cada uma das segundas unidades de processamento (SPCs).
[00231] Em seguida é descrita a meta informação para acesso randômico. Tal meta informação é gerada pelo dispositivo de codificação de dados tridimensionais 100 e incluída nos dados tridimensionais codificados 112 (211).
[00232] No acesso randômico convencional para uma imagem em movimento bidimensional, a decodificação começa no primeiro quadro em uma unidade de acesso randômico que está próximo de um tempo especificado. Entretanto, além dos tempos, considera-se que o acesso randômico a espaços (coordenadas, objetos, etc.) é realizado em um mundo.
[00233] Para permitir o acesso randômico a pelo menos três elementos de coordenadas, objetos e tempos, tabelas são preparadas ao associar os respectivos elementos aos números de índice GOS. Ainda, os números de índice GOS são associados aos respectivos endereços dos primeiros I-SPCs nos GOSs. A Figura 10 é um diagrama que mostra tabelas exemplificativas incluídas na meta informação. Observe que nem todas as tabelas mostradas na Figura 10 precisam ser usadas, e, desta forma, pelo menos uma das tabelas é usada.
[00234] Em seguida é descrito um exemplo no qual o acesso randômico é realizado a partir das coordenadas como um ponto de partida. Para acessar as coordenadas (x2, y2 e z2), a tabela de coordenadas GOS é primeiramente referida, a qual indica que o ponto que corresponde às coordenadas (x2, y2, z2) está incluído no segundo GOS. Em seguida, a tabela de endereço GOS é referida, a qual indica que o endereço do primeiro I-SPC no segundo GOS é addr(2). Como tal, o decodificador 204 obtém dados a partir deste endereço para iniciar a decodificação.
[00235] Observe que os endereços podem ser endereços lógicos ou endereços físicos de um HDD ou uma memória. Alternativamente, a informação que identifica os segmentos de arquivo pode ser usada em vez dos endereços. Segmentos de arquivo são, por exemplo, unidades obtidas pela segmentação de pelo menos um GOS, etc.
[00236] Quando um objeto abrange uma pluralidade de GOSs, a tabela de objetos GOS pode ilustrar uma pluralidade de GOSs à qual tal objeto pertence. Quando tal pluralidade de GOSs é composta por GOSs fechados, o dispositivo de codificação e o dispositivo de decodificação podem realizar a codificação ou decodificação paralela. Entretanto, quando tal pluralidade de GOSs é GOSs abertos, uma eficiência de compressão mais alta é alcançada pela pluralidade de GOSs ao fazer referência entre si.
[00237] Objetos ilustrativos incluem uma pessoa, um animal, um carro, uma bicicleta, um sinal e um edifício que servem como um marco. Por exemplo, o dispositivo de codificação de dados tridimensionais 100 extrai pontos-chave específicos de um objeto a partir de uma nuvem de pontos tridimensionais, etc., quando codifica um mundo e detecta o objeto com base em tais pontos-chave para determinar o objeto detectado como um ponto de acesso randômico.
[00238] Conforme assim descrito, o dispositivo de codificação de dados tridimensionais 100 gera a primeira informação que indica uma pluralidade de primeiras unidades de processamento (GOSs) e as coordenadas tridimensionais associadas às respectivas primeiras unidades de processamento (GOSs). Os dados tridimensionais codificados 112 (211) incluem tal primeira informação. A primeira informação indica, ainda, pelo menos um de objetos, tempos e localizações de armazenamento de dados que estão associados às respectivas primeiras unidades de processamento (GOSs).
[00239] O dispositivo de decodificação de dados tridimensionais 200 obtém a primeira informação a partir dos dados tridimensionais codificados 211. Usando tal primeira informação, o dispositivo de decodificação de dados tridimensionais 200 identifica os dados tridimensionais codificados 211 da primeira unidade de processamento que corresponde às coordenadas tridimensionais específicas, objeto ou tempo, e decodifica os dados tridimensionais codificados 211.
[00240] O seguinte descreve um exemplo de outra meta informação. Além da meta informação para acesso randômico, o dispositivo de codificação de dados tridimensionais 100 também pode gerar e armazenar meta informação, conforme descrito abaixo, e o dispositivo de decodificação de dados tridimensionais 200 pode usar tal meta informação no momento da decodificação.
[00241] Quando dados tridimensionais são usados como informação sobre mapa, por exemplo, é definido um perfil de acordo com o uso pretendido e a informação que indica tal perfil pode ser incluída na meta informação. Por exemplo, um perfil é definido para uma área urbana ou suburbana ou para um objeto voador e o tamanho máximo ou mínimo, etc. de um mundo, um SPC ou um VLM, etc. é definido em cada perfil. Por exemplo, informação mais detalhada é necessária para uma área urbana do que para uma área suburbana e, desta forma, o tamanho mínimo de VLM é definido para pequeno.
[00242] A meta informação pode incluir valores de indicador (tag) que indicam os tipos de objeto. Cada um dos ditos valores de indicador está associado a VLMs, SPCs ou GOSs que constituem um objeto. Por exemplo, um valor de indicador pode ser definido para cada tipo de objeto de modo que, por exemplo, o valor de indicador "0" indique "pessoa", o valor de indicador "1" indique "carro" e o valor de indicador "2" indique "sinal". Alternativamente, quando um tipo de objeto é difícil de julgar ou tal julgamento não se faz necessário, o valor de indicador pode ser usado para indicar o tamanho ou indicar o atributo, por exemplo, se um objeto é um objeto dinâmico ou um objeto estático.
[00243] A meta informação também pode incluir informação que indica uma faixa da região espacial ocupada por um mundo.
[00244] A meta informação também pode armazenar o tamanho de SPC ou VXL como informação de cabeçalho em comum a toda a sequência de dados codificados ou a uma pluralidade de SPCs, tais como SPCs em um GOS.
[00245] A meta informação também pode incluir a informação sobre identificação em um sensor de distância ou uma câmera que foi usada para gerar uma nuvem de pontos ou informação que indica a precisão de posicionamento de um grupo de pontos na nuvem de pontos.
[00246] A meta informação também pode incluir informação que indica se um mundo é constituído apenas de objetos estáticos ou inclui um objeto dinâmico.
[00247] Em seguida, são descritas variações da presente modalidade.
[00248] O dispositivo de codificação ou o dispositivo de decodificação pode codificar ou decodificar dois ou mais SPCs ou GOSs mutuamente diferentes em paralelo. GOSs a serem codificados ou decodificados em paralelo podem ser determinados com base na meta informação, etc., que indica as posições espaciais dos GOSs.
[00249] Quando dados tridimensionais são usados como um mapa espacial para uso por um carro ou um objeto voador, etc., em deslocamento ou para criação de tal mapa espacial, por exemplo, o dispositivo de codificação ou o dispositivo de decodificação pode codificar ou decodificar GOSs ou SPCs incluídos em um espaço que é identificado com base na informação sobre o GPS, na informação sobre rota, na amplificação por zoom, etc.
[00250] O dispositivo de decodificação também pode iniciar a decodificação sequencialmente a partir de um espaço que está próximo da autolocalização ou da rota de percurso. O dispositivo de codificação ou o dispositivo de decodificação pode fornecer uma prioridade mais baixa para um espaço distante da autolocalização ou da rota de percurso do que a prioridade para um espaço próximo para codificar ou decodificar tal localização distante. "Fornecer uma prioridade mais baixa" significa, no presente documento, por exemplo, diminuir a prioridade na sequência de processamento, reduzir a resolução (para aplicar decimação no processamento) ou reduzir a qualidade de imagem (para aumentar a eficiência de codificação, por exemplo, ao definir a etapa de quantização para que seja maior).
[00251] Quando da decodificação dos dados codificados, os quais são codificados de forma hierárquica em um espaço, o dispositivo de decodificação pode decodificar apenas o nível inferior na hierarquia.
[00252] O dispositivo de decodificação também pode iniciar a decodificação preferivelmente a partir do nível inferior da hierarquia, de acordo com a amplificação por zoom ou uso pretendido do mapa.
[00253] Para estimativa de autolocalização ou reconhecimento de objeto, etc., envolvido na direção automática de um carro ou um robô, o dispositivo de codificação ou o dispositivo de decodificação pode codificar ou decodificar regiões em uma resolução mais baixa, exceto quanto a uma região que é inferior a ou está em uma altura específica a partir do chão (a região a ser reconhecida).
[00254] O dispositivo de codificação também pode codificar as nuvens de pontos que representam os formatos espaciais de um interior de um cômodo ou um exterior de um cômodo separadamente. Por exemplo, a separação de um GOS que representa o interior de um cômodo (GOS interno) e um GOS que representa o exterior de um cômodo (GOS externo) permite que o dispositivo de decodificação selecione um GOS a ser decodificado de acordo com uma localização de ponto de vista quando de uso de dados codificados.
[00255] O dispositivo de codificação também pode codificar um GOS interno e um GOS externo que têm coordenadas próximas, de modo que tais GOSs se tornem adjacentes entre si em uma sequência codificada. Por exemplo, o dispositivo de codificação associa os identificadores de tais GOS entre si e armazena informação que indica os identificadores associados na meta informação que está armazenada na sequência codificada ou armazenada separadamente. Isto permite que o dispositivo de decodificação faça referência à informação na meta informação para identificar um GOS interno e um GOS externo que têm coordenadas próximas.
[00256] O dispositivo de codificação também muda o tamanho do
GOS ou o tamanho de SPC dependendo se um GOS é um GOS interno ou um GOS externo. Por exemplo, o dispositivo de codificação define o tamanho de um GOS interno para que seja menor do que o tamanho do GOS externo. O dispositivo de codificação também pode mudar a precisão dos pontos-chave de extração a partir de uma nuvem de pontos ou a precisão da detecção de objetos, por exemplo, dependendo se um GOS é um GOS interno ou um GOS externo.
[00257] O dispositivo de codificação também pode adicionar, aos dados codificados, a informação pela qual o dispositivo de decodificação exibe objetos com uma distinção entre um objeto dinâmico e um objeto estático. Isto permite que o dispositivo de decodificação exiba um objeto dinâmico juntamente, por exemplo, com uma caixa ou letras em vermelho para explicação. Observe que o dispositivo de decodificação pode exibir apenas uma caixa ou letras em vermelho para fins de explicação, em vez de um objeto dinâmico. O dispositivo de decodificação também pode exibir tipos de objetos mais particulares. Por exemplo, uma caixa em vermelho pode ser usada para um carro e uma caixa em amarelo pode ser usada para uma pessoa.
[00258] O dispositivo de codificação ou o dispositivo de decodificação também pode determinar se codifica ou decodifica um objeto dinâmico ou um objeto estático como um SPC ou GOS diferente, de acordo, por exemplo, com a frequência de surgimento de objetos dinâmicos ou uma proporção entre os objetos estáticos e os objetos dinâmicos. Por exemplo, quando a frequência de surgimento ou a proporção de objetos dinâmicos excede um limite, um SPC ou um GOS que inclui merge de um objeto dinâmico e um objeto estático é aceito enquanto que, quando a frequência de surgimento ou a proporção de objetos dinâmicos está abaixo de um limite, um SPC ou GOS que inclui merge de um objeto dinâmico e um objeto estático não é aceito.
[00259] Quando da detecção de um objeto dinâmico que não a partir de uma nuvem de pontos, mas de uma informação sobre imagem tridimensional proveniente de uma câmera, o dispositivo de codificação pode obter, separadamente, informação para identificar um resultado de detecção (caixa ou letras) e a posição do objeto, e codificar estes itens de informação como parte dos dados tridimensionais codificados. Em tal caso, o dispositivo de decodificação sobrepõe a informação auxiliar (caixa ou letras) que indica o objeto dinâmico em um resultado da decodificação de um objeto estático para exibição do mesmo.
[00260] O dispositivo de codificação também pode alterar a escassez e densidade de VXLs ou VLMs em um SPC de acordo com o grau de complexidade do formato de um objeto estático. Por exemplo, o dispositivo de codificação define VXLs ou VLMs com uma densidade maior à medida que o formato de um objeto estático se torna mais complexo. O dispositivo de codificação pode determinar, ainda, uma etapa de quantização, etc., para quantizar as posições espaciais ou informação sobre cor de acordo com a escassez e densidade de VXLs ou VLMs. Por exemplo, o dispositivo de codificação define a etapa de quantização para que seja menor à medida que a densidade de VXLs ou VLMs é maior.
[00261] Conforme descrito acima, o dispositivo de codificação ou o dispositivo de decodificação, de acordo com a presente modalidade, codifica ou decodifica um espaço, SPC por SPC, que inclui a informação sobre coordenadas.
[00262] Ainda, o dispositivo de codificação e o dispositivo de decodificação realizam a codificação ou a decodificação, volume por volume, em um SPC. Cada volume inclui um "voxel", o qual é a unidade mínima na qual a informação sobre posição está associada.
[00263] Além disso, usando uma tabela que associa os respectivos elementos da informação espacial, incluindo coordenadas, objetos e tempos, com GOSs ou usando uma tabela que associa estes elementos entre si, o dispositivo de codificação e o dispositivo de decodificação associam qualquer um dos elementos a quaisquer outros para realizar a codificação ou decodificação. O dispositivo de decodificação usa os valores dos elementos selecionados para determinar as coordenadas e identifica um volume, um "voxel" ou um SPC a partir de tais coordenadas para decodificar um SPC que inclui tal volume ou "voxel" ou o SPC identificado.
[00264] Ainda, o dispositivo de codificação determina um volume, um "voxel" ou um SPC que é selecionável de acordo com os elementos através da extração de pontos-chave e reconhecimento de objeto e codifica o volume,"voxel" ou SPC determinado como um volume, um "voxel" ou um SPC ao qual o acesso randômico é possível.
[00265] SPCs são classificados em três tipos: I-SPC que é codificado ou decodificado de forma individual; P-SPC que é codificado ou decodificado por meio de referência a qualquer um dos SPCs processados; e B-SPC que é codificado ou decodificado por meio de referência a quaisquer dois dos SPCs processados.
[00266] Pelo menos um volume corresponde a um objeto estático ou a um objeto dinâmico. Um SPC que inclui um objeto estático e um SPC que inclui um objeto dinâmico são codificados ou decodificados como GOSs mutuamente diferentes. De outra forma, um SPC que inclui um objeto estático e um SPC que inclui um objeto dinâmico são atribuídos a GOSs diferentes.
[00267] Objetos dinâmicos são codificados ou decodificados, objeto por objeto e são associados a pelo menos um SPC que inclui um objeto estático. De outra forma, uma pluralidade de objetos dinâmicos é individualmente codificada e os dados codificados obtidos dos objetos dinâmicos são associados a um SPC que inclui um objeto estático.
[00268] O dispositivo de codificação e o dispositivo de decodificação fornecem uma prioridade maior ao I-SPC em um GOS para realizar a codificação ou decodificação. Por exemplo, o dispositivo de codificação realiza a codificação de uma forma que impede a degradação dos I- SPCs (de uma forma que permita que os dados tridimensionais originais sejam reproduzidos com uma maior fidelidade depois de decodificados). O dispositivo de decodificação decodifica, por exemplo, apenas I-SPCs.
[00269] O dispositivo de codificação pode alterar a frequência de uso de I-SPCs dependendo da escassez e densidade ou do número (quantidade) de objetos em um mundo para realizar a codificação. De outra forma, o dispositivo de codificação altera a frequência de seleção de I-SPCs dependendo do número ou da escassez e densidade dos objetos incluídos nos dados tridimensionais. Por exemplo, o dispositivo de codificação usa os I-SPCs com uma frequência mais alta quando a densidade dos objetos em um mundo é mais alta.
[00270] O dispositivo de codificação também define os pontos de acesso randômico, GOS por GOS e armazena a informação que indica as regiões espaciais que correspondem aos GOSs na informação de cabeçalho.
[00271] O dispositivo de codificação usa, por exemplo, um valor padrão como o tamanho espacial de um GOS. Observe que o dispositivo de codificação pode alterar o tamanho do GOS dependendo do número (quantidade) ou da escassez e densidade dos objetos ou objetos dinâmicos. Por exemplo, o dispositivo de codificação define o tamanho espacial de um GOS para que seja menor quando a densidade dos objetos ou objetos dinâmicos é maior ou o número de objetos ou objetos dinâmicos é maior.
[00272] Além disso, cada SPC ou volume inclui um grupo de pontos- chave que é derivado usando a informação obtida por um sensor, tal como um sensor de profundidade, um sensor giroscópico ou um sensor de câmera. As coordenadas dos pontos-chave são definidas nas posições centrais dos respectivos "voxels". Ainda, "voxels" mais finos permitem uma informação sobre posição mais precisa.
[00273] O grupo de pontos-chave é derivado usando uma pluralidade de imagens. Uma pluralidade de imagens inclui pelo menos dois tipos de informação sobre tempo: a informação sobre tempo real e a mesma informação sobre tempo em comum a uma pluralidade de imagens que estão associadas aos SPCs (por exemplo, o tempo de codificação usado para o controle de taxa, etc.).
[00274] Além disso, a codificação ou decodificação é realizada em uma base GOS por GOS que inclui pelo menos um SPC.
[00275] O dispositivo de codificação e o dispositivo de decodificação preveem P-SPCs ou B-SPCs em um GOS atual por meio de referência aos SPCs em um GOS processado.
[00276] Alternativamente, o dispositivo de codificação e o dispositivo de decodificação preveem P-SPCs ou B-SPCs em um GOS atual usando os SPCs processados no GOS atual sem referência a um GOS diferente.
[00277] Ainda, o dispositivo de codificação e o dispositivo de decodificação transmitem ou recebem uma sequência codificada, em uma base mundo por mundo, que inclui pelo menos um GOS.
[00278] Além disso, um GOS tem uma estrutura de camadas em uma direção pelo menos em um mundo e o dispositivo de codificação e o dispositivo de decodificação podem iniciar a codificação ou a decodificação a partir da camada inferior. Por exemplo, um GOS acessível randomicamente pertence à camada mais inferior. Um GOS que pertence à mesma camada ou a uma camada inferior é referido em um GOS que pertence a uma camada superior. De outra forma, um GOS é espacialmente dividido em uma direção predeterminada antecipadamente para ter uma pluralidade de camadas, cada uma incluindo pelo menos um SPC. O dispositivo de codificação e o dispositivo de decodificação codificam ou decodificam cada SPC por meio de referência a um SPC incluído na mesma camada que cada SPC ou um SPC incluído em uma camada mais inferior do que aquela de cada SPC.
[00279] Além disso, o dispositivo de codificação e o dispositivo de decodificação codificam ou decodificam sucessivamente GOSs, em uma base mundo por mundo, que inclui tais GOSs. Ao fazê-lo, o dispositivo de codificação e o dispositivo de decodificação gravam ou leem a informação que indica a ordem (direção) de codificação ou decodificação como metadados. De outra forma, os dados codificados incluem informação que indica a ordem de codificação de uma pluralidade de GOSs.
[00280] O dispositivo de codificação e o dispositivo de decodificação também codificam ou decodificam dois ou mais SPCs ou GOSs mutuamente diferentes em paralelo.
[00281] Ainda, o dispositivo de codificação e o dispositivo de decodificação codificam ou decodificam a informação espacial (coordenadas, tamanho, etc.) em um SPC ou um GOS.
[00282] O dispositivo de codificação e o dispositivo de decodificação codificam ou decodificam SPCs ou GOSs incluídos em um espaço identificado que é identificado com base na informação externa de autolocalização e/ou uma região de tamanho, tal como a informação sobre GPS, informação sobre rota ou amplificação.
[00283] O dispositivo de codificação ou o dispositivo de decodificação fornece uma prioridade mais baixa para um espaço distante da autolocalização do que a prioridade para um espaço próximo para realizar a codificação ou decodificação.
[00284] O dispositivo de codificação define uma direção em uma das direções em um mundo de acordo com a amplificação ou o uso pretendido para codificar um GOS que tem uma estrutura de camadas em tal direção. Além disso, o dispositivo de decodificação decodifica um
GOS que tem uma estrutura de camadas em uma das direções em um mundo que foi definida de acordo com a amplificação ou o uso pretendido, de preferência a partir da camada inferior.
[00285] O dispositivo de codificação muda a precisão dos pontos- chave de extração, a precisão do reconhecimento de objetos ou o tamanho das regiões espaciais, etc., incluídos em um SPC dependendo se um objeto é um objeto interno ou um objeto externo. Observe que o dispositivo de codificação e o dispositivo de decodificação codificam ou decodificam um GOS interno e um GOS externo que têm coordenadas próximas de uma forma pela qual estes GOSs se tornem adjacentes entre si em um mundo e associa seus identificadores entre si para codificação e decodificação. MODALIDADE 2
[00286] Quando de uso de dados codificados de uma nuvem de pontos em um dispositivo ou serviço real, é desejável que a informação necessária seja transmitida/recebida de acordo com o uso pretendido de modo a reduzir a largura de banda da rede. No entanto, não tem havido tal funcionalidade na estrutura de codificação de dados tridimensionais, nem em um método de codificação para a mesma.
[00287] A presente modalidade descreve um método de codificação de dados tridimensionais e um dispositivo de codificação de dados tridimensionais para fornecer a funcionalidade de transmissão/recepção apenas da informação necessária nos dados codificados de uma nuvem de pontos tridimensionais de acordo com o uso pretendido, além de um método de decodificação de dados tridimensionais e um dispositivo de decodificação de dados tridimensionais para decodificação de tais dados codificados.
[00288] Um "voxel" (VXL) com uma característica superior a ou igual a uma quantidade determinada é definido como um "voxel" de característica (FVXL) e um mundo (WLD) constituído por FVXLs é definido como um mundo esparso (SWLD). A Figura 11 é um diagrama que mostra estruturas exemplificativas de um mundo esparso e um mundo. Um SWLD inclui FGOSs, cada um sendo um GOS constituído por FVXLs; FSPCs, cada um sendo um SPC constituído por FVXLs; e FVLMs, cada um sendo um VLM constituído por FVXLs. A estrutura de dados e a estrutura de previsão de um FGOS, um FSPC e um FVLM podem ser iguais àquelas de um GOS, um SPC e um VLM.
[00289] Uma característica representa a informação sobre posição tridimensional em um VXL ou a informação sobre luz visível na posição de um VXL. Um grande número de características é detectado especialmente em um canto, uma borda, etc., de um objeto tridimensional. Mais especificamente, tal característica é uma característica tridimensional ou uma característica de luz visível, conforme descrito abaixo, mas pode ser qualquer característica que represente a informação sobre posição, luminescência ou cor, etc., em um VXL.
[00290] São usadas como características tridimensionais a assinatura de histogramas de características de orientação (SHOT), características de histogramas de característica de ponto (PFH) ou características de característica de par de pontos (PPF).
[00291] As características SHOT são obtidas ao dividir a periferia de um VXL e calcular um produto interno do ponto de referência e do vetor normal de cada região dividida para representar o resultado do cálculo como um histograma. Características SHOT são caracterizadas por um grande número de dimensões e representação de característica de alto nível.
[00292] Características PFH são obtidas ao selecionar um grande número de dois pares de pontos nas proximidades de um VXL e calcular o vetor normal, etc., a partir de cada um do par de dois pontos para representar o resultado do cálculo como um histograma. As características PFH são características de histograma e, desta forma, são caracterizadas pela robustez contra uma determinada extensão de distúrbio e também a representação de característica de alto nível.
[00293] As características PPF são obtidas usando um vetor normal, etc., para cada dois pontos de VXLs. As características PPF, para as quais todos os VXLs são usados, apresentam robustez contra oclusão.
[00294] São usadas como características de luz visível a transformação de característica que não varia com escala (SIFT), características robustas aceleradas (SURF) ou histograma de gradientes orientados (HOG), etc., os quais usam a informação sobre uma imagem, tal como uma informação sobre gradiente de luminescência.
[00295] Um SWLD é gerado ao calcular as características descritas acima dos respectivos VXLs em um WLD para extração de FVXLs. No presente documento, o SWLD pode ser atualizado cada vez que o WLD for atualizado ou pode ser atualizado com regularidade após ter se passado um determinado período de tempo, independentemente do momento no qual o WLD é atualizado.
[00296] Um SWLD pode ser gerado para cada tipo de característica. Por exemplo, diferentes SWLDs podem ser gerados para tipos respectivos de características, tal como SWLDS1 com base em características SHOT e SWLD2 com base em características SIFT, de modo que os SWLDs sejam usados seletivamente de acordo com o uso pretendido. Além disso, a característica calculada de cada FVXL pode ser mantida em cada FVXL como informação sobre característica.
[00297] Em seguida, será descrito o uso de um mundo esparso (SWLD). Um SWLD inclui apenas os "voxels" de característica (FVXLs) e, desta forma, seu tamanho de dados é menor em geral com relação ao WLD que inclui todos os VXLs.
[00298] Em uma aplicação que usa as características para uma determinada finalidade, o uso da informação em um SWLD, em vez de um WLD, reduz o tempo necessário para se ler os dados a partir de um disco rígido, além da largura de banda e tempo necessários para a transferência de dados através de uma rede. Por exemplo, um WLD e um SWLD são mantidos em um servidor como informação sobre mapa, de modo que a informação sobre mapa a ser enviada seja selecionada entre o WLD e o SWLD de acordo com a solicitação de um cliente. Isto reduz a largura de banda da rede e o tempo necessário para a transferência de dados. Exemplos mais específicos serão descritos abaixo.
[00299] A Figura 12 e a Figura 13 são diagramas que mostram exemplos de uso de um SWLD e um WLD. Conforme mostra a Figura 12, quando o cliente 1, o qual é um dispositivo montado em veículo, requer informação sobre mapa para usá-la para a determinação de autolocalização, o cliente 1 envia para um servidor uma solicitação para obtenção de dados de mapa para estimativa de autolocalização (S301). O servidor envia, para o cliente 1, o SWLD em resposta à solicitação de obtenção (S302). O cliente 1 usa o SWLD recebido para determinar a autolocalização (S303). Ao fazê-lo, o cliente1 obtém informação VXL sobre a periferia do cliente 1 através de vários meios, incluindo um sensor de distância, tal como um buscador de faixa, além de uma câmera estéreo ou uma combinação dentre uma pluralidade de câmeras monoculares. O cliente 1, então, estima a informação sobre autolocalização a partir da informação VXL obtida e o SWLD. No presente documento, a informação sobre autolocalização inclui informação sobre posição tridimensional, orientação, etc., do cliente1.
[00300] Conforme mostra a Figura 13, quando o cliente 2, o qual é um dispositivo montado em veículo, requer informação sobre mapa para usá-la para criar um mapa, tal como um mapa tridimensional, o cliente 2 envia, para o servidor, uma solicitação de obtenção de dados de mapa para criação do mapa (S311). O servidor envia para o cliente 2 o WLD, em resposta à solicitação de obtenção (S312). O cliente 2 usa o WLD recebido para criar um mapa (S313). Ao fazê-lo, o cliente 2 usa, por exemplo, uma imagem que o cliente 2 capturou através de uma câmera de luz visível, etc., e o WLD obtido a partir do servidor para criar uma imagem de criação e transforma tal imagem criada em uma tela de um sistema de navegação automotivo, etc.
[00301] Conforme descrito acima, o servidor envia, para um cliente, um SWD quando as características dos respectivos VXLs são basicamente necessárias, tal como no caso de estimativa de autolocalização, e envia para um cliente um WLD quando a informação VXL detalhada é necessária, tal como no caso de criação de mapa. Isto permite um envio/recepção eficiente de dados de mapa.
[00302] Observe que um cliente pode julgar qual dentre um SWLD e um WLD é necessário e solicitar que o servidor envie um SWLD ou um WLD. Além disso, o servidor pode julgar qual dentre um SWLD e um WLD enviar, de acordo com a situação do cliente ou de uma rede.
[00303] Em seguida, será descrito um método para comutar o envio/recepção entre um mundo esparso (SWLD) e um mundo (WLD).
[00304] A decisão se recebe um WLD ou um SWLD pode ser comutada de acordo com a largura de banda da rede. A Figura 14 é um diagrama que mostra uma operação exemplificativa em tal caso. Por exemplo, quando uma rede de baixa velocidade é usada, limitando a largura de banda de rede utilizável, tal como em um ambiente de Evolução de Longo Prazo (Long-Term Evolution, LTE), um cliente acessa o servidor através de uma rede de baixa velocidade (S321) e obtém o SWLD do servidor como informação sobre mapa (S322). Entretanto, quando uma rede de alta velocidade é usada e tem uma largura de banda de rede adequadamente ampla, tal como em um ambiente WiFi, um cliente acessa o servidor através de uma rede de alta velocidade (S323) e obtém o WLD a partir do servidor (S324). Isto permite que o cliente obtenha informação sobre mapa adequada de acordo com a largura de banda da rede que tal cliente está usando.
[00305] Mais especificamente, um cliente recebe o SWLD através de uma rede LTE quando interno e obtém o WLD através de uma rede WiFi quando interno, tal como em uma instalação. Isto permite que o cliente obtenha informação sobre mapa mais detalhada sobre o ambiente interno.
[00306] Conforme descrito acima, um cliente pode solicitar um WLD ou um SWLD de acordo com a largura de banda de uma rede que tal cliente está usando. Alternativamente, o cliente pode enviar para o servidor a informação que indica a largura de banda de uma rede que tal cliente está usando e o servidor pode enviar, para o cliente, dados (WLD ou SWLD) adequados para tal cliente de acordo com a informação. Alternativamente, o servidor pode identificar a largura de banda da rede que o cliente está usando e enviar para o cliente dados (WLD ou SWLD) adequados para tal cliente.
[00307] Além disso, a recepção de um WLD ou SWLD pode ser permutada de acordo com a velocidade de deslocamento. A Figura 15 é um diagrama que mostra uma operação exemplificativa em tal caso. Por exemplo, quando se deslocando em uma alta velocidade (S331), um cliente recebe um SWLD do servidor (S332). Entretanto, quando se deslocando em uma baixa velocidade (S333), o cliente recebe um WLD do servidor (S334). Isto permite que o cliente obtenha informação sobre mapa adequada para a velocidade, ao mesmo tempo em que reduz a largura de banda da rede. Mais especificamente, quando se deslocando em uma via expressa, o cliente recebe um SWLD com uma quantidade pequena de dados, o que permite a atualização da informação sobre mapa bruta em uma velocidade adequada. Entretanto, quando se deslocando em uma estrada geral, o cliente recebe um WLD, o que permite a obtenção de informação sobre mapa mais detalhada.
[00308] Conforme descrito acima, o cliente pode solicitar do servidor um WLD ou um SWLD de acordo com a velocidade de deslocamento de tal cliente. Alternativamente, o cliente pode enviar para o servidor a informação que indica a velocidade de deslocamento de tal cliente e o servidor pode enviar para o cliente os dados (WLD ou SWLD) adequados para tal cliente de acordo com a informação. Alternativamente, o servidor pode identificar a velocidade de deslocamento do cliente para enviar dados (WLD ou SWLD) adequados para tal cliente.
[00309] Além disso, o cliente pode obter, a partir do servidor, um SWLD primeiro, a partir do qual o cliente pode obter um WLD de uma região importante. Por exemplo, quando da obtenção de informação sobre mapa, o cliente primeiro obtém um SWLD para a informação sobre mapa aproximada, de onde o cliente estreita para uma região na qual características, tal como edifícios, sinais ou pessoas, aparecem com alta frequência, de modo que o cliente possa, posteriormente, obter um WLD de tal região estreitada. Isto permite que o cliente obtenha a informação detalhada sobre uma região necessária, ao mesmo tempo em que reduz a quantidade de dados recebidos do servidor.
[00310] O servidor também pode criar, a partir de um WLD, diferentes SWLDs para os respectivos objetos e o cliente pode receber SWLDs de acordo com o uso pretendido. Isto reduz a largura de banda da rede. Por exemplo, o servidor reconhece as pessoas ou carros em um WLD antecipadamente e cria um SWLD das pessoas e um SWLD dos carros. O cliente, quando deseja obter informação sobre pessoas em torno do cliente, recebe o SWLD das pessoas e, quando deseja obter informação sobre carros, recebe um SWLD sobre os carros. Tais tipos de SWLDs podem ser distinguidos pela informação (indicador ou tipo, etc.) adicionada ao cabeçalho, etc.
[00311] Em seguida, serão descritos a estrutura e o fluxo operacional do dispositivo de codificação de dados tridimensionais (por exemplo, um servidor) de acordo com a presente modalidade. A Figura 16 é um diagrama de blocos do dispositivo de codificação de dados tridimensionais 400 de acordo com a presente modalidade. A Figura 17 é um fluxograma dos processos de codificação de dados tridimensionais realizados pelo dispositivo de codificação de dados tridimensionais 400.
[00312] O dispositivo de codificação de dados tridimensionais 400 mostrado na Figura 16 codifica os dados tridimensionais registrados 411, deste modo, gerando os dados tridimensionais codificados 413 e os dados tridimensionais codificados 414, cada um sendo uma sequência codificada. No presente documento, os dados tridimensionais codificados 413 são dados tridimensionais codificados que correspondem a um WLD e os dados tridimensionais codificados 414 são dados tridimensionais codificados que correspondem a um SWLD. Tal dispositivo de codificação de dados tridimensionais 400 inclui um elemento de obtenção 401, um determinador de região de codificação 402, um extrator de SWLD 403, um codificador de WLD 404 e um codificador de SWLD 405.
[00313] Primeiro, conforme mostra a Figura 17, o elemento de obtenção 401 obtém os dados tridimensionais registrados 411, os quais são dados de grupo de pontos em um espaço tridimensional (S401).
[00314] Em seguida, o determinador de região de codificação 402 determina uma região espacial atual para codificação com base em uma região espacial na qual os dados de nuvem de pontos estão presentes (S402).
[00315] Em seguida, o extrator de SWLD 403 define a região espacial atual como um WLD e calcula a característica a partir de cada VXL incluído no WLD. Então, o extrator de SWLD 403 extrai VXLs que têm uma quantidade de características maior do que ou igual a um limite predeterminado, define VXLs extraídos como FVXLs e adiciona tais FVXLs a um SWLD, deste modo, gerando dados tridimensionais extraídos 412 (S403). De outra forma, os dados tridimensionais extraídos 412 que têm uma quantidade de características maior do que ou igual ao limite são extraídos a partir dos dados tridimensionais registrados 411.
[00316] Em seguida, o codificador de WLD 404 codifica os dados tridimensionais registrados 411 que correspondem ao WLD, deste modo, gerando os dados tridimensionais codificados 413 que correspondem ao WLD (S404). Ao fazê-lo, o codificador de WLD 404 adiciona ao cabeçalho de dados tridimensionais codificados 413 a informação que distingue que tais dados tridimensionais codificados 413 são uma sequência que inclui um WLD.
[00317] O codificador de SWLD 405 codifica os dados tridimensionais extraídos 412 que correspondem ao SWLD, deste modo, gerando os dados tridimensionais codificados 414 que correspondem ao SWLD (S405). Ao fazê-lo, o codificador SWLD 405 adiciona ao cabeçalho de dados tridimensionais codificados 414 a informação que distingue que tais dados tridimensionais codificados 414 são uma sequência que inclui um SWLD.
[00318] Observe que o processo de geração dos dados tridimensionais codificados 413 e o processo de geração de dados tridimensionais codificados 414 podem ser realizados na ordem inversa. Além disso, observe que uma parte ou todos estes processos podem ser realizados em paralelo.
[00319] Um parâmetro "world_type" é definido, por exemplo, como a informação adicionada a cada cabeçalho de dados tridimensionais codificados 413 e dados tridimensionais codificados 414. world_type=0 indica que uma sequência inclui um WLD e world_type=1 indica que uma sequência inclui um SWLD. Um número aumentado de valores pode ser designado, ainda, para definir um número maior de tipos, por exemplo, world_type=2. Além disso, um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414 pode incluir um flag especificado. Por exemplo, os dados tridimensionais codificados 414 podem receber um flag que indica que tal sequência inclui um SWLD. Em tal caso, o dispositivo de decodificação pode distinguir se tal sequência é uma sequência que inclui um WLD ou uma sequência que inclui um SWLD, de acordo com a presença/ausência do flag.
[00320] Além disso, um método de codificação usado pelo codificador de WLD 404 para codificar um WLD pode ser diferente de um método de codificação usado pelo codificador de SWLD 405 para codificar um SWLD.
[00321] Por exemplo, os dados de um SWLD são decimados e, desta forma, podem ter uma correlação mais baixa com os dados vizinhos do que aquela de um WLD. Por esta razão, dentre a intraprevisão e interprevisão, a interprevisão pode ser realizada de forma mais preferível em um método de codificação usado para um SWLD do que em um método de codificação usado para um WLD.
[00322] Além disso, um método de codificação usado para um SWLD e um método de codificação usado para um WLD podem apresentar posições tridimensionais de formas diferentes. Por exemplo, coordenadas tridimensionais podem ser usadas para representar as posições tridimensionais de FVXLs em um SWLD e uma "octree" descrita abaixo pode ser usada para representar as posições tridimensionais em um WLD e vice-versa.
[00323] Além disso, o codificador de SWLD 405 realiza a codificação de uma maneira pela qual os dados tridimensionais codificados 414 de um SWLD apresentam um tamanho de dados menor do que o tamanho de dados dos dados tridimensionais codificados 413 em um WLD. Um SWLD pode ter uma correção interdados, por exemplo, menor do que aquela de um WLD, conforme descrito acima. Isto pode resultar em uma eficiência de codificação reduzida, e, desta forma, em dados tridimensionais codificados 414 que exibem um tamanho de dados maior do que o tamanho de dados dos dados tridimensionais codificados 413 de um WLD. Quando o tamanho de dados dos dados tridimensionais codificados 414 resultantes é maior do que o tamanho de dados dos dados tridimensionais codificados 413 de um WLD, o codificador de SWLD 405 realiza a codificação novamente para regenerar os dados tridimensionais codificados 414 que têm um tamanho de dados reduzido.
[00324] Por exemplo, o extrator de SWLD 403 regenera os dados tridimensionais extraídos 412 que têm um número reduzido de pontos- chave a serem extraídos e o codificador SWLD 405 codifica tais dados tridimensionais extraídos 412. Alternativamente, o codificador de SWLD 405 pode realizar uma quantização mais bruta. A quantização mais bruta é alcançada, por exemplo, ao arredondar os dados no nível mais inferior em uma estrutura "octree", descrita abaixo.
[00325] Quando de falha em reduzir o tamanho de dados dos dados tridimensionais codificados 414 do SWLD para menor do que o tamanho de dados dos dados tridimensionais codificados 413 do WLD, o codificador de SWLD 405 pode gerar os dados tridimensionais codificados 414 do SWLD. Alternativamente, os dados tridimensionais codificados 413 do WLD podem ser copiados como dados tridimensionais codificados 414 do SWLD. De outra forma, os dados tridimensionais codificados 413 do WLD podem ser usados como estão, como dados tridimensionais codificados 414 do SWLD.
[00326] Em seguida, serão descritos a estrutura e o fluxo operacional do dispositivo de decodificação de dados tridimensionais (por exemplo, um cliente) de acordo com a presente modalidade. A Figura 18 é um diagrama de blocos do dispositivo de decodificação de dados tridimensionais 500 de acordo com a presente modalidade. A Figura 19 é um fluxograma de processos de decodificação de dados tridimensionais realizados pelo dispositivo de decodificação de dados tridimensionais 500.
[00327] O dispositivo de decodificação de dados tridimensionais 500 mostrado na Figura 18 decodifica os dados tridimensionais codificados 511, desta forma, gerando os dados tridimensionais decodificados 512 ou os dados tridimensionais decodificados 513. Os dados tridimensionais codificados 511, no presente documento são, por exemplo, dados tridimensionais codificados 413 ou dados tridimensionais codificados 414 gerados pelo dispositivo de codificação de dados tridimensionais 400.
[00328] Tal dispositivo de decodificação de dados tridimensionais 500 inclui um elemento de obtenção 501, um analisador de cabeçalho 502, um decodificador de WLD 503 e um decodificador de SWLD 504.
[00329] Primeiro, conforme mostra a Figura 19, o elemento de obtenção 501 obtém os dados tridimensionais codificados 511 (S501). Em seguida, o analisador de cabeçalho 502 analisa o cabeçalho dos dados tridimensionais codificados 511 para identificar se os dados tridimensionais codificados 511 são uma sequência que inclui um WLD ou uma sequência que inclui um SWLD (S502). Por exemplo, o parâmetro world_type descrito acima é referido na criação de tal identificação.
[00330] Quando os dados tridimensionais codificados 511 são uma sequência que inclui um WLD (sim, em S503), o decodificador de WLD 503 decodifica os dados tridimensionais codificados 511, deste modo, gerando os dados tridimensionais decodificados 512 do WLD (S504). Entretanto, quando os dados tridimensionais codificados 511 são uma sequência que inclui um SWLD (não, em S503), o decodificador de SWLD 504 decodifica os dados tridimensionais codificados 511, deste modo, gerando os dados tridimensionais decodificados 513 do SWLD (S505).
[00331] Além disso, como no caso do dispositivo de codificação, um método de decodificação usado pelo decodificador de WLD 503 para decodificar um WLD pode ser diferente de um método de decodificação usado pelo decodificador de SWLD 504 para decodificar um SWLD. Por exemplo, dentre a intraprevisão e a interprevisão, a interprevisão pode ser realizada com maior preferência em um método de decodificação usado para um SWLD do que em um método de decodificação usado para um WLD.
[00332] Além disso, um método de decodificação usado para um SWLD e um método de decodificação usado para um WLD podem representar posições tridimensionais de formas diferentes. Por exemplo, coordenadas tridimensionais podem ser usadas para representar as posições tridimensionais de FVXLs em um SWLD e uma "octree" descrita abaixo pode ser usada para representar posições tridimensionais em um WLD e vice-versa.
[00333] Em seguida, será descrita uma representação "octree", a qual é um método de representação de posições tridimensionais. Dados VXL incluídos nos dados tridimensionais são convertidos em uma estrutura "octree" antes de serem codificados. A Figura 20 é um diagrama que mostra VXLs ilustrativos em um WLD. A Figura 21 é um diagrama que mostra uma estrutura "octree" do WLD mostrado na Figura 20. Um exemplo mostrado na Figura 20 ilustra três VXLs de 1 a 3 que incluem grupos de pontos (daqui em diante denominados como VXLs efetivos). Conforme mostra a Figura 21, a estrutura "octree" é feita de nós e folhas. Cada nó tem um máximo de oito nós ou folhas. Cada folha tem informação VXL. No presente documento, dentre as folhas mostradas na Figura 21, a folha 1, a folha 2 e a folha 3 representam VXL1, VXL2 e VXL3 mostrados na Figura 20, respectivamente.
[00334] Mais especificamente, cada nó e cada folha correspondem a uma posição tridimensional. O nó 1 corresponde a todo o bloco mostrado na Figura 20. O bloco que corresponde ao nó 1 é dividido em oito blocos. Destes oito blocos, os blocos que incluem VXLs eficientes são definidos como nós, enquanto que os outros blocos são definidos como folhas. Cada bloco que corresponde a um nó é ainda dividido em oitos nós ou folhas. Estes processos são repetidos pelo número de itens que é igual ao número de níveis na estrutura "octree". Todos os blocos no nível mais inferior são definidos como folhas.
[00335] A Figura 22 é um diagrama que mostra um SWLD ilustrativo gerado a partir de um WLD mostrado na Figura 20. VXL1 e VXL2, mostrados na Figura 20, são considerados como FVXL1 e FVXL2 como um resultado da extração de características e, desta forma, são adicionados ao SWLD. Entretanto, VXL3 não é considerado como FVXL, e, desta forma, não é adicionado ao SWLD. A Figura 23 é um diagrama que mostra uma estrutura "octree" de SWLD mostrada na Figura 22. Na estrutura "octree", mostrada na Figura 23, a folha 3, a qual corresponde ao VXL3 mostrado na Figura 21, é eliminada. Consequentemente, o nó 3 mostrado na Figura 21 perdeu um VXL efetivo e mudou para uma folha. Conforme descrito acima, um SWLD tem um número menor de folhas em geral em relação ao WLD, e, desta forma, os dados tridimensionais codificados do SWLD são menores do que os dados tridimensionais codificados do WLD.
[00336] Em seguida, são descritas variações da presente modalidade.
[00337] Para estimativa de autolocalização, por exemplo, um cliente, o qual é um dispositivo montado em um veículo, etc., pode receber um SWLD do servidor para usar tal SWLD na estimativa da autolocalização. Entretanto, para detecção de obstáculos, o cliente pode detectar os obstáculos usando a informação tridimensional sobre a periferia obtida por tal cliente através de vários meios, incluindo um sensor de distância, tal como um buscador de faixa, além de uma câmera estéreo e uma combinação de uma pluralidade de câmeras monoculares.
[00338] Em geral, há menos probabilidade de que um SWLD inclua dados VXL em uma região plana. Como tal, o servidor pode reter um mundo de subamostras (subWLD) obtido pela subamostragem de um WLD para detecção de obstáculos estáticos e enviar, para o cliente, o SWLD e o subWLD. Isto permite que o cliente realize a estimativa de autolocalização e a detecção de obstáculo na parte do cliente, ao mesmo tempo em que reduz a largura de banda da rede.
[00339] Quando o cliente cria dados de mapa tridimensionais em alta velocidade, a informação sobre mapa, a qual tem uma estrutura de entrelaçamento, é mais útil em alguns casos. Como tal, o servidor pode gerar um entrelaçamento de um WLD para reter o mesmo antecipadamente como um mundo entrelaçado (MWLD). Por exemplo, quando deseja realizar uma criação tridimensional aproximada, o cliente recebe um MWLD e, quando deseja realizar uma criação tridimensional detalhada, o cliente recebe um WLD. Isto reduz a largura de banda da rede.
[00340] Na descrição acima, o servidor define, como FVXLs, VXLs que têm uma quantidade de características maior do que ou igual ao limite, mas o servidor pode calcular FVXLs através de um método diferente. Por exemplo, o servidor pode considerar um VXL, um VLM, um SPC ou um GOS que constituem um sinal ou uma interseção, etc., como necessários para a estimativa de autolocalização, assistência à direção ou direção autônoma, etc., e incorporar tal VXL, VLM, SPC ou GOS em um SWLD como um FVXL, um FVLM, um FSPC ou um FGOS. Tal julgamento pode ser realizado manualmente. Além disso, FVXLs, etc., que foram definidos com base em uma quantidade de características podem ser adicionados a FVXLs, etc., obtidos por meio do método acima. De outra forma, o extrator de SWLD 403 pode extrair, ainda, a partir dos dados tridimensionais registrados 411, dados que correspondem a um objeto que tem um atributo predeterminado, como dados tridimensionais extraídos 412.
[00341] Além disso, o fato de um VXL, um VLM, um SPC ou um GOS ser necessário para tal uso pretendido pode ser indicado separadamente das características. O servidor pode reter, separadamente, como uma camada superior de um SWLD (por exemplo, um mundo de faixa), FVXLs de um sinal ou uma interseção, etc., necessários para a estimativa de autolocalização, assistência à direção ou direção autônoma, etc.
[00342] O servidor também pode adicionar um atributo aos VXLs em um WLD com base em acesso randômico ou com base em unidade predeterminada. Um atributo, por exemplo, inclui informação que indica se VXLs são necessários para a estimativa de autolocalização ou informação que indica se VXLs são importantes como informação de tráfego, tal como um sinal ou uma interseção, etc. Um atributo também pode incluir uma correspondência entre VXLs e características (interseção ou estrada, etc.) na informação sobre faixa (arquivos de dados geográficos (Geographic Data File, GDF), etc.).
[00343] Um método conforme descrito abaixo pode ser usado para atualizar um WLD ou um SWLD.
[00344] A informação sobre atualização que indica mudanças, etc. em uma pessoa, uma obra na estrada ou uma linha de árvores (para caminhões) é carregada para o servidor como grupos de pontos ou metadados. O servidor atualiza um WLD com base em tal informação carregada e, então, atualiza um SWLD usando um WLD atualizado.
[00345] O cliente, quando detecta uma falta de combinação entre a informação tridimensional que tal cliente gerou no momento da estimativa de autolocalização e a informação tridimensional recebida a partir do servidor, pode enviar para o servidor a informação tridimensional que tal cliente gerou, juntamente com uma notificação de atualização. Em tal caso, o servidor atualiza o SWLD usando o WLD. Quando o SWLD não precisa ser atualizado, o servidor considera que o WLD propriamente dito está ultrapassado.
[00346] Na descrição acima, a informação que distingue se uma sequência codificada que é proveniente de um WLD ou um SWLD é adicionada como informação de cabeçalho da sequência codificada. No entanto, quando houver muitos tipos de mundos, tal como um mundo entrelaçado e um mundo de faixa, a informação que distingue estes tipos de mundos pode ser adicionada à informação de cabeçalho. Além disso, quando houver muitos SWLDs com quantidades diferentes de características, a informação que distingue os respectivos SWLDs pode ser adicionada à informação de cabeçalho.
[00347] Na descrição acima, um SWLD é constituído por FVXLs, mas um SWLD pode incluir VXLs que não foram considerados como FVXLs. Por exemplo, um SWLD pode incluir um VXL adjacente usado para calcular a característica de um FVXL. Isto permite que o cliente calcule a característica de um FVXL quando recebe um SWLD, mesmo no caso onde a informação sobre característica não é adicionada a cada FVXL do SWLD. Em tal caso, o SWLD pode incluir informação que distingue se cada VXL é um FVXL ou um VXL.
[00348] Conforme descrito acima, o dispositivo de codificação de dados tridimensionais 400 extrai, a partir dos dados tridimensionais registrados 411 (os primeiros dados tridimensionais), os dados tridimensionais extraídos 412 (os segundos dados tridimensionais) que têm uma quantidade de uma característica que é maior do que ou igual a um limite e codifica os dados tridimensionais extraídos 412 para gerar os dados tridimensionais codificados 414 (primeiros dados tridimensionais codificados).
[00349] Este dispositivo de codificação de dados tridimensionais 400 gera dados tridimensionais codificados 414 que são obtidos pela codificação de dados que têm uma quantidade de uma característica maior do que ou igual ao limite. Isto reduz a quantidade de dados comparado com o caso onde os dados tridimensionais registrados 411 são codificados como se apresentam. O dispositivo de codificação de dados tridimensionais 400 é, desta forma, capaz de reduzir a quantidade de dados a serem transmitidos.
[00350] O dispositivo de codificação de dados tridimensionais 400 codifica, ainda, os dados tridimensionais registrados 411 para gerar os dados tridimensionais codificados 413 (segundos dados tridimensionais codificados).
[00351] Este dispositivo de codificação de dados tridimensionais 400 permite a transmissão seletiva de dados tridimensionais codificados 413 e dados tridimensionais codificados 414 de acordo, por exemplo, com o uso pretendido, etc.
[00352] Além disso, os dados tridimensionais extraídos 412 são codificados através de um primeiro método de codificação e os dados tridimensionais registrados 411 são codificados através de um segundo método de codificação, diferente do primeiro método de codificação.
[00353] Este dispositivo de codificação de dados tridimensionais 400 permite o uso de um método de codificação adequado para cada um dos dados tridimensionais registrados 411 e os dados tridimensionais extraídos 412.
[00354] Além disso, dentre a intraprevisão e a interprevisão, a interprevisão é, mais preferivelmente, realizada no primeiro método de codificação do que no segundo método de codificação.
[00355] Este dispositivo de codificação de dados tridimensionais 400 permite que a interprevisão seja, mais preferivelmente, realizada nos dados tridimensionais extraídos 412, nos quais itens de dados adjacentes têm chances de apresentarem baixa correlação.
[00356] Além disso, o primeiro método de codificação e o segundo método de codificação representam posições tridimensionais diferentemente. Por exemplo, o segundo método de codificação representa as posições tridimensionais por "octree" e o primeiro método de codificação representa as posições tridimensionais por coordenadas tridimensionais.
[00357] O dispositivo de codificação de dados tridimensionais 400 permite o uso de um método mais adequado para representar as posições tridimensionais dos dados tridimensionais considerando a diferença de número de itens de dados (o número de VXLs ou FVXLs) incluídos.
[00358] Além disso, pelo menos um dentre os dados tridimensionais codificados 413 e os dados tridimensionais codificados 415 inclui um identificador que indica se os dados tridimensionais codificados são dados tridimensionais codificados obtidos pela codificação de dados tridimensionais registrados 411 ou dados tridimensionais codificados obtidos pela codificação de parte dos dados tridimensionais registrados
411. De outra forma, tal identificador identifica se os dados tridimensionais codificados são dados tridimensionais codificados 413 de um WLD ou dados tridimensionais codificados 414 de um SWLD.
[00359] Isto permite que o dispositivo de decodificação julgue prontamente se os dados tridimensionais codificados obtidos são dados tridimensionais codificados 413 ou dados tridimensionais codificados
414.
[00360] Além disso, o dispositivo de codificação de dados tridimensionais 400 codifica os dados tridimensionais extraídos 412 de uma forma que os dados tridimensionais codificados 414 apresentem uma quantidade de dados menor do que uma quantidade de dados dos dados tridimensionais codificados 413.
[00361] Este dispositivo de codificação de dados tridimensionais 400 permite que os dados tridimensionais codificados 414 tenham uma quantidade de dados menor do que a quantidade de dados, dos dados tridimensionais codificados 413.
[00362] Além disso, o dispositivo de codificação de dados tridimensionais 400 extrai, ainda, dados que correspondem a um objeto que tem um atributo predeterminado dos dados tridimensionais registrados 411, como dados tridimensionais extraídos 412. O objeto que tem um atributo predeterminado é, por exemplo, um objeto necessário para a estimativa de autolocalização, assistência à direção ou direção autônoma, etc., ou, mais especificamente, um sinal, uma interseção, etc.
[00363] Este dispositivo de codificação de dados tridimensionais 400 pode gerar dados tridimensionais codificados 414 que incluem dados exigidos pelo dispositivo de decodificação.
[00364] Além disso, o dispositivo de codificação de dados tridimensionais 400 (servidor) envia, ainda, para um cliente, um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414, de acordo com uma situação do cliente.
[00365] Este dispositivo de codificação de dados tridimensionais 400 pode enviar dados adequados, de acordo com a situação do cliente.
[00366] Além disso, a situação do cliente inclui uma dentre uma condição de comunicação (por exemplo, largura de banda de rede) do cliente e uma velocidade de percurso do cliente.
[00367] Além disso, o dispositivo de codificação de dados tridimensionais 400 envia, ainda, para um cliente, um dentre os dados tridimensionais codificados 413 e os dados tridimensionais codificados 414, de acordo com uma solicitação do cliente.
[00368] Este dispositivo de codificação de dados tridimensionais 400 pode enviar dados adequados, de acordo com uma solicitação do cliente.
[00369] Além disso, o dispositivo de decodificação de dados tridimensionais 500, de acordo com a presente modalidade, decodifica os dados tridimensionais codificados 413 ou dados tridimensionais codificados 414, gerados pelo dispositivo de codificação de dados tridimensionais 400 descrito acima.
[00370] De outra forma, o dispositivo de decodificação de dados tridimensionais 500 decodifica, através de um primeiro método de decodificação, os dados tridimensionais codificados 414 obtidos pela codificação de dados tridimensionais extraídos 412, que têm uma quantidade de uma característica superior a ou igual a um limite, dados tridimensionais extraídos 412, tendo sido extraídos dos dados tridimensionais registrados 411. O dispositivo de decodificação de dados tridimensionais 500 também decodifica, através de um segundo método de decodificação, os dados tridimensionais codificados 413 obtidos pela codificação dos dados tridimensionais registrados 411, o segundo método de decodificação sendo diferente do primeiro método de decodificação.
[00371] Este dispositivo de decodificação de dados tridimensionais 500 permite a recepção seletiva dos dados tridimensionais codificados 414 obtidos pela codificação de dados que têm uma quantidade de uma característica maior do que e/ou igual ao limite e dados tridimensionais codificados 413 de acordo, por exemplo, com o uso pretendido, etc. O dispositivo de decodificação tridimensional 500 é, desta forma, capaz de reduzir a quantidade de dados a ser transmitida. Tal dispositivo de decodificação de dados tridimensionais 500 permite, ainda, o uso de um método de decodificação adequado para cada um dentre os dados tridimensionais registrados 411 e os dados tridimensionais extraídos
412.
[00372] Além disso, dentre a intraprevisão e a interprevisão, a interprevisão é mais preferivelmente realizada no primeiro método de decodificação do que no segundo método de decodificação.
[00373] Este dispositivo de decodificação de dados tridimensionais 500 permite que a interprevisão seja mais preferivelmente realizada nos dados tridimensionais extraídos onde os itens de dados adjacentes têm mais chances de apresentar uma baixa correlação.
[00374] Além disso, o primeiro método de decodificação e o segundo método de decodificação representam as posições tridimensionais de formas diferentes. Por exemplo, o segundo método de decodificação representa as posições tridimensionais por "octree" e o primeiro método de decodificação representa as posições tridimensionais pelas coordenadas tridimensionais.
[00375] Este dispositivo de decodificação de dados tridimensionais 500 permite o uso de um método mais adequado para representar as posições tridimensionais dos dados tridimensionais, considerando a diferença no número de itens de dados (o número de VXLs ou FVXLs) incluído.
[00376] Além disso, pelo menos um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414 inclui um identificador que indica se os dados tridimensionais codificados são dados tridimensionais codificados obtidos pela codificação de dados tridimensionais registrados 411 ou dados tridimensionais codificados obtidos pela codificação de parte dos dados tridimensionais registrados
411. O dispositivo de decodificação de dados tridimensionais 500 se refere a tal identificador na identificação entre os dados tridimensionais codificados 413 e os dados tridimensionais codificados 414.
[00377] Este dispositivo de decodificação de dados tridimensionais 500 pode julgar prontamente se os dados tridimensionais codificados obtidos são dados tridimensionais codificados 413 ou dados tridimensionais codificados 414.
[00378] O dispositivo de decodificação de dados tridimensionais 500 notifica, ainda, um servidor sobre uma situação do cliente (dispositivo de decodificação de dados tridimensionais 500). O dispositivo de decodificação de dados tridimensionais 500 recebe um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414 do servidor, de acordo com a situação do cliente.
[00379] Este dispositivo de decodificação de dados tridimensionais 500 pode receber dados adequados, de acordo com a situação do cliente.
[00380] Além disso, a situação do cliente inclui uma dentre uma condição de comunicação (por exemplo, largura de banda da rede) do cliente e uma velocidade de percurso do cliente.
[00381] O dispositivo de decodificação de dados tridimensionais 500 realiza, ainda, uma solicitação do servidor por um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414 e recebe um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414 do servidor, de acordo com a solicitação.
[00382] Este dispositivo de decodificação de dados tridimensionais 500 pode receber dados adequados de acordo com o uso pretendido. MODALIDADE 3
[00383] A presente modalidade descreverá um método de transmissão/recepção de dados tridimensionais entre veículos. Por exemplo, os dados tridimensionais são transmitidos/recebidos entre o próprio veículo e o veículo próximo.
[00384] A Figura 24 é um diagrama de blocos do dispositivo de criação de dados tridimensionais 620, de acordo com a presente modalidade. Tal dispositivo de criação de dados tridimensionais 620, que é incluído, por exemplo, no próprio veículo, merge os primeiros dados tridimensionais 632, criados pelo dispositivo de criação de dados tridimensionais 620, com os segundos dados tridimensionais recebidos 635, criando, assim, os terceiros dados tridimensionais 636 que têm uma densidade maior.
[00385] Tal dispositivo de criação de dados tridimensionais 620 inclui o criador de dados tridimensionais 621, o determinador de faixa de solicitação 622, o buscador 623, o receptor 624, o decodificador 625 e o merger 626.
[00386] Primeiro, o criador de dados tridimensionais 621 cria os primeiros dados tridimensionais 632, pelo uso da informação sobre sensor 631 detectada pelo sensor incluído no próprio veículo. Em seguida, o determinador de faixa de solicitação 622 determina uma faixa de solicitação, que está na faixa de um espaço tridimensional, os dados sobre a qual são insuficientes nos primeiros dados tridimensionais criados 632.
[00387] Em seguida, o buscador 623 busca pelo veículo próximo que tem os dados tridimensionais da faixa de solicitação e envia a informação da faixa de solicitação 633 que indica a faixa de solicitação para o veículo próximo 601 que foi buscado (S632). Em seguida, o receptor 624 recebe os dados tridimensionais codificados 634, que é uma sequência codificada da faixa de solicitação, a partir do veículo próximo 601 (S624). Observe que o buscador 623 pode enviar, de forma indiscriminada, solicitações para todos os veículos incluídos em uma faixa especificada, para receber os dados tridimensionais codificados 634 de um veículo que responder à solicitação. O buscador 623 pode enviar uma solicitação não apenas para os veículos, mas também para um objeto, tal como um sinal e receber dados tridimensionais codificados 634 do objeto.
[00388] Em seguida, o decodificador 625 decodifica os dados tridimensionais codificados recebidos 634, obtendo, desta forma, os segundos dados tridimensionais 635. Em seguida, o merger 626 merge os primeiros dados tridimensionais 632 com os segundos dados tridimensionais 635, pela criação de dados tridimensionais 636 que têm uma maior densidade.
[00389] Em seguida, a estrutura e as operações do dispositivo de transmissão de dados tridimensionais 640, de acordo com a presente modalidade, serão descritas. A Figura 25 é um diagrama de blocos do dispositivo de transmissão de dados tridimensionais 640.
[00390] O dispositivo de transmissão de dados tridimensionais 640 é incluído, por exemplo, no veículo próximo descrito acima. O dispositivo de transmissão de dados tridimensionais 640 processa os quintos dados tridimensionais 652, criados pelo veículo próximo, em sextos dados tridimensionais 654 solicitado pelo próprio veículo, codifica os sextos dados tridimensionais 654 para gerar os dados tridimensionais codificados 634 e envia os dados tridimensionais codificados 634 para o próximo veículo.
[00391] O dispositivo de transmissão de dados tridimensionais 640 inclui o criador de dados tridimensionais 641, o receptor 642, o extrator 643, o codificador 644 e o transmissor 645.
[00392] Primeiro, o criador de dados tridimensionais 641 cria os quintos dados tridimensionais 652 pelo uso da informação sobre sensor 651, detectada pelo sensor incluído no veículo próximo. Em seguida, o receptor 642 recebe a informação de faixa de solicitação 633 do próximo veículo.
[00393] Em seguida, o extrator 643 extrai dos quintos dados tridimensionais 652, os dados tridimensionais da faixa de solicitação indicada pela informação de faixa de solicitação 633, processando, assim, os quintos dados tridimensionais 652 em sextos dados tridimensionais 654. Em seguida, o codificador 644 codifica os sextos dados tridimensionais 654 para gerar os dados tridimensionais codificados 643, que é uma sequência codificada. Então, o transmissor
645 envia os dados tridimensionais codificados 634 para o próprio veículo.
[00394] Observe que apesar de um caso ilustrativo ser descrito no presente documento, no qual o próprio veículo inclui o dispositivo de criação de dados tridimensionais 620 e o veículo próximo incluir o dispositivo de transmissão de dados tridimensionais 640, cada um dos veículos pode incluir a funcionalidade de ambos o dispositivo de criação de dados tridimensionais 620 e o dispositivo de transmissão de dados tridimensionais 640. MODALIDADE 4
[00395] A presente modalidade descreve as operações realizadas em casos anormais, quando a estimativa de autolocalização é realizada com base em um mapa tridimensional.
[00396] Um mapa tridimensional deve ter seu uso expandido em direção autônoma de um veículo e movimento autônomo, etc. de um objeto móvel, tal como um robô e um objeto voador (por exemplo, um drone). Meios ilustrativos para se permitir tal movimento autônomo incluem um método no qual um objeto móvel se move de acordo com um mapa tridimensional, enquanto estima sua autolocalização no mapa (estimativa de autolocalização).
[00397] A estimativa de autolocalização é permitida pela combinação de um mapa tridimensional com a informação tridimensional das cernias do próprio veículo (daqui em diante referidos como dados tridimensionais auto detectados), obtidos por um sensor equipado no próprio veículo, tal como um buscador de faixa (por exemplo, um LiDAR) e uma câmera estéreo para estimar a localização do próprio veículo no mapa tridimensional.
[00398] Como no caso de um mapa HD sugerido por HERE Technologies, por exemplo, um mapa tridimensional pode incluir, não apenas uma nuvem de pontos tridimensionais, mas também dados de mapa bidimensionais, tal como informação dos formatos das estradas e interseções ou informação que muda em tempo real, tal como informação de um engarrafamento no tráfego e um acidente. Um mapa tridimensional inclui uma pluralidade de camadas, tal como as camadas de dados tridimensionais, dados bidimensionais e metadados que mudam em tempo real, dentre os quais o dispositivo pode obter ou se referir apenas aos dados necessários.
[00399] Os dados de nuvem de pontos podem ser um SWLD, conforme descrito acima ou podem incluir dados de grupos de pontos que são diferentes dos pontos-chave. A transmissão/recepção dos dados de nuvem de pontos é basicamente realizada em uma ou mais unidades de acesso randômico.
[00400] Um método descrito abaixo é usado como um método de combinação de um mapa tridimensional com dados tridimensionais auto detectados. Por exemplo, o dispositivo compara os formatos dos grupos de pontos nas nuvens de pontos dos outros e determina quais partes, que tem um alto grau de similaridade dentre os pontos-chave, correspondem à mesma posição. Quando o mapa tridimensional é formado por um SWLD, o dispositivo também realiza a combinação pela comparação dos pontos-chaves que formam o SWLD com pontos- chaves tridimensionais extraídos dos dados tridimensionais auto detectados.
[00401] No presente documento, para se permitir a estimativa de autolocalização altamente precisa, o seguinte precisa ser satisfeito: (A) o mapa tridimensional e os dados tridimensionais auto detectados já foram obtidos; e (B) suas precisões satisfazem uma exigência predeterminada. No entanto, um dentre (A) e (B) não pode ser satisfeito em casos anormais, tal como os descritos abaixo.
1. Um mapa tridimensional não pode ser obtido através da comunicação.
2. Um mapa tridimensional não está presente ou um mapa tridimensional obtido está corrompido.
3. Um sensor do próprio veículo apresenta problemas ou a precisão dos dados tridimensionais auto detectados gerados é inadequada devido ao mau tempo.
[00402] O apresentado em seguida descreve as operações para se lidar com tais casos anormais. A descrição em seguida ilustra um caso ilustrativo de um veículo, mas o método descrito abaixo é aplicável a objetos móveis como um todo que podem realizar movimento autônomo, tal como um robô e um drone.
[00403] Em seguida descreve-se a estrutura do dispositivo de processamento de informação tridimensional e sua operação, de acordo com a presente modalidade, capaz de lidar com casos anormais que se referem a um mapa tridimensional ou a dados tridimensionais auto detectados. A Figura 26 é um diagrama de blocos de uma estrutura ilustrativa do dispositivo de processamento de informação tridimensional 700, de acordo com a presente modalidade.
[00404] O dispositivo de processamento de informação tridimensional 700 é equipado, por exemplo, em um objeto móvel, tal como um carro. Conforme mostrado na Figura 26, o dispositivo de processamento de informação tridimensional 700 inclui o elemento de obtenção de mapa tridimensional 701, o elemento de obtenção de dados auto detectados 702, a unidade de julgamento de caso anormal 703, o determinador de operação de enfrentamento 704 e o controlador de operação 705.
[00405] Observe que o dispositivo de processamento de informação tridimensional 700 pode incluir um sensor bidimensional ou unidimensional, não mostrado, que detecta um objeto estrutural ou um objeto móvel em torno do próprio veículo, tal como uma câmera capaz de obter imagens bidimensionais e um sensor para os dados unidimensionais usando ultrassom ou laser. O dispositivo de processamento de informação tridimensional 700 também pode incluir uma unidade de comunicação não mostrada que obtém um mapa tridimensional através de uma rede de comunicação móvel, tal como 4G e 5G ou através da comunicação interveicular ou da comunicação de estrada para veículo.
[00406] O elemento de obtenção de mapa tridimensional 701 obtém o mapa tridimensional 711 das cercanias da rota de percurso. Por exemplo, o elemento de obtenção de mapa tridimensional 701 obtém o mapa tridimensional 711 através de uma rede de comunicação móvel ou através da comunicação interveicular ou comunicação de estrada para veículo.
[00407] Em seguida, o elemento de obtenção de dados auto detectado 702 obtém os dados tridimensionais auto detectados 712 com base na informação sobre sensor. Por exemplo, o elemento de obtenção de dados auto detectado 702 gera os dados tridimensionais auto detectados 712 com base na informação sobre sensor obtida por um sensor equipado no próprio veículo.
[00408] Em seguida, a unidade de julgamento de caso anormal 703 conduz uma verificação predeterminada de pelo menos um dentre o mapa tridimensional obtido 711 e os dados tridimensionais auto detectados 712 para detectar um caso anormal. De outra forma, a unidade de julgamento de caso anormal 703 julga se pelo menos um dentre o mapa tridimensional obtido 711 e os dados tridimensionais auto detectados 712 é anormal.
[00409] Quando o caso anormal é detectado, a determinação de operação de enfrentamento 704 determina uma operação de enfrentamento para enfrentar tal caso anormal. Em seguida, o controlador de operação 705 controla a operação de cada uma das unidades de processamento necessárias para se realizar a operação de enfrentamento.
[00410] Entretanto, quando nenhum caso anormal é detectado, o dispositivo de processamento de informação tridimensional 700 encerra o processo.
[00411] Além disso, o dispositivo de processamento de informação tridimensional 700 estima a localização do veículo equipado com o dispositivo de processamento de informação tridimensional 700, usando o mapa tridimensional 711 e os dados tridimensionais auto detectados
712. Em seguida, o dispositivo de processamento de informação tridimensional 700 realiza a operação automática do veículo pelo uso da localização estimada do veículo.
[00412] Conforme descrito acima, o dispositivo de processamento de informação tridimensional 700 obtém, através de um canal de comunicação, dados de mapa (mapa tridimensional 711) que incluem a primeira informação sobre posição tridimensional. A primeira informação sobre posição tridimensional inclui, por exemplo, uma pluralidade de unidades de acesso randômico, cada uma das quais é uma montagem de pelo menos um subespaço e é decodificável individualmente, o pelo menos um subespaço que tem informação sobre coordenadas tridimensionais e servindo como uma unidade, na qual cada uma, dentre a pluralidade de unidades de acesso randômico, é codificada. A primeira informação sobre posição tridimensional é, por exemplo, dados (SWLD) obtidos pela codificação de pontos-chave, cada um dos quais tem uma quantidade de uma característica tridimensional superior a ou igual a um limite predeterminado.
[00413] O dispositivo de processamento de informação tridimensional 700 também gera a segunda informação sobre posição tridimensional (dados tridimensionais auto detectados 712) a partir da informação detectada por um sensor. O dispositivo de processamento de informação tridimensional 700, então, julga se uma, dentre a primeira informação sobre posição tridimensional e a segunda informação sobre posição tridimensional, é anormal pela realização, em uma dentre a primeira informação sobre posição tridimensional e a segunda informação sobre posição tridimensional, de um processo de julgamento de se uma anomalia está presente.
[00414] O dispositivo de processamento de informação tridimensional 700 determina uma operação de enfrentamento para enfrentar a anomalia quando uma, dentre a primeira informação sobre posição tridimensional e a segunda informação sobre posição tridimensional, é considerada como sendo anormal. O dispositivo de processamento de informação tridimensional 700, então, executa um controle que é necessário para se realizar a operação de enfrentamento.
[00415] Essa estrutura permite que o dispositivo de processamento de informação tridimensional 700 detecte uma anomalia referente à primeira informação sobre posição tridimensional e à segunda informação sobre posição tridimensional e realize uma operação de enfrentamento para a mesma. MODALIDADE 5
[00416] A presente modalidade descreve um método, etc. de transmissão de dados tridimensionais para um veículo seguinte.
[00417] A Figura 27 é um diagrama de blocos de uma estrutura ilustrativa do dispositivo de criação de dados tridimensionais 810, de acordo com a presente modalidade. Tal dispositivo de criação de dados tridimensionais 810 é equipado, por exemplo, em um veículo. O dispositivo de criação de dados tridimensionais 810 transmite e recebe dados tridimensionais para e de um sistema de monitoramento de tráfego com base em nuvem externa, um veículo anterior ou um veículo seguinte e cria e armazena dados tridimensionais.
[00418] O dispositivo de criação de dados tridimensionais 810 inclui um receptor de dados 811, uma unidade de comunicação 812, um controlador de recepção 813, um conversor de formato 814, uma pluralidade de sensores 815, um criador de dados tridimensionais 816, um sintetizador de dados tridimensionais 817, um buffer de dados tridimensionais 818, uma unidade de comunicação 819, um controlador de transmissão 820, um conversor de formato 821 e um transmissor de dados 822.
[00419] O receptor de dados 811 recebe dados tridimensionais 831 de um sistema de monitoramento de tráfego com base em nuvem ou um veículo anterior. Os dados tridimensionais 831 incluem, por exemplo, informação de uma região não detectável pelos sensores 815 do próprio veículo, tal como uma nuvem de pontos, um vídeo de luz visível, informação de profundidade, informação sobre posição de sensor e informação de velocidade.
[00420] A unidade de comunicação 812 se comunica com o sistema de monitoramento de tráfego com base em nuvem ou com o veículo anterior, para transmitir uma solicitação de transmissão de dados, etc. para o sistema de monitoramento de tráfego com base em nuvem ou no veículo anterior.
[00421] O controlador de recepção 813 permuta informação, tal como informação dos formatos suportados, com um parceiro de comunicações através da unidade de comunicação 812 para estabelecer a comunicação com o parceiro de comunicações.
[00422] O conversor de formato 814 aplica a conversão de formato, etc. aos dados tridimensionais 831 recebidos pelo receptor de dados 811 para gerar os dados tridimensionais 832. O conversor de formato 814 também descomprime ou decodifica os dados tridimensionais 831 quando os dados tridimensionais 831 são comprimidos ou codificados.
[00423] Uma pluralidade de sensores 815 são grupos de sensores, tal como câmeras de luz visível e câmeras de infravermelho, que obtêm a informação do exterior do veículo e geram informação sobre sensor
833. A informação sobre sensor 833 é, por exemplo, dados tridimensionais, tal como uma nuvem de pontos (dados de grupo de pontos), quando os sensores 815 são sensores de laser, tal como LiDARs. Observe que um sensor individual pode servir como uma pluralidade de sensores 815.
[00424] O criador de dados tridimensionais 816 gera dados tridimensionais 834 a partir da informação sobre sensor 833. Os dados tridimensionais 834 incluem, por exemplo, informação, tal como uma nuvem de pontos, vídeo de luz visível, informação de profundidade, informação sobre posição de sensor e informação de velocidade.
[00425] O sintetizador de dados tridimensionais 817 sintetiza os dados tridimensionais 834 criados com base na informação sobre sensor 833 do próprio veículo com os dados tridimensionais 832 criados pelo sistema de monitoramento de tráfego com base em nuvem ou veículo anterior, etc., formando, assim, os dados tridimensionais 835 de um espaço que inclui o espaço à frente do veículo anterior, não detectável pelos sensores 815 do próprio veículo.
[00426] O buffer de dados tridimensionais 818 armazena os dados tridimensionais gerados 835, etc.
[00427] A unidade de comunicação 819 se comunica com o sistema de monitoramento de tráfego com base em nuvem ou com o veículo em seguida, para transmitir uma solicitação de transmissão de dados, etc. para o sistema de monitoramento de tráfego com base em nuvem ou o veículo em seguida.
[00428] O controlador de transmissão 820 permuta a informação, tal como a informação em formatos suportados, com um parceiro de comunicações, através da unidade de comunicação 819 para estabelecer a comunicação com o parceiro de comunicações. O controlador de transmissão 820 também determina uma região de transmissão, que é um espaço dos dados tridimensionais a serem transmitidos, com base na informação de formação de dados tridimensionais nos dados tridimensionais 832 gerados pelo sintetizador de dados tridimensionais 817 e a solicitação de transmissão de dados a partir do parceiro de comunicações.
[00429] Mais especificamente, o controlador de transmissão 820 determina uma região de transmissão que inclui o espaço à frente do próprio veículo que não é detectável por um sensor do veículo seguinte, em resposta à solicitação de transmissão de dados do sistema de monitoramento de tráfego com base em nuvem ou veículo seguinte. O controlador de transmissão 820 julga, por exemplo, se um espaço é transmissível ou se o espaço já transmitido inclui uma atualização, com base na informação de formação de dados tridimensionais, para determinar uma região de transmissão. Por exemplo, o controlador de transmissão 820 determina, como uma região de transmissão, uma região que é uma região especificada pela solicitação de transmissão de dados; e uma região, correspondente aos dados tridimensionais 835 dos quais está presente. O controlador de transmissão 820, então, notifica o conversor de formato 821 sobre o formato suportado pelo parceiro de comunicações e região de transmissão.
[00430] Dos três dados tridimensionais 835 armazenados no buffer de dados tridimensionais 818, o conversor de formato 821 converte os dados tridimensionais 836 da região de transmissão no formato suportado pela extremidade do receptor para gerar dados tridimensionais 837. Observe que o conversor de formato 821 pode comprimir ou codificar os dados tridimensionais 837 para reduzir a quantidade de dados.
[00431] O transmissor de dados 822 transmite os dados tridimensionais 837 para o sistema de monitoramento de tráfego com base em nuvem ou para o veículo seguinte. Tais dados tridimensionais 837 incluem, por exemplo, informação de um ponto cego, que é uma região ocultada da visão do veículo seguinte, tal como uma nuvem de pontos à frente do próprio veículo, vídeo de luz visível, informação de profundidade e informação sobre posição de sensor.
[00432] Observe que o exemplo foi descrito, no qual o conversor de formato 814 e o conversor de formato 821 realizam a conversão de formato, etc., mas a conversão de formato pode não ser realizada.
[00433] Com a estrutura acima, o dispositivo de criação de dados tridimensionais 810 obtém, a partir de um dispositivo externo, os dados tridimensionais 831 de uma região não detectável pelos sensores 815 do próprio veículo e sintetiza os dados tridimensionais 831 com dados tridimensionais 834 que são baseados na informação sobre sensor 833 detectada pelos sensores 815 do próprio veículo, deste modo, gerando os dados tridimensionais 835. O dispositivo de criação de dados tridimensionais 810 é, desta forma, capaz de gerar dados tridimensionais de uma faixa não detectável pelos sensores 815 do próprio veículo.
[00434] O dispositivo de criação de dados tridimensionais 810 pode transmitir, para o sistema de monitoramento de tráfego com base em nuvem ou o veículo em seguida, por exemplo, dados tridimensionais de um espaço que inclui o espaço à frente do próprio veículo, não detectável por um sensor do veículo em seguida, em resposta à solicitação de transmissão de dados a partir do sistema de monitoramento de tráfego com base em nuvem ou o veículo em seguida. MODALIDADE 6
[00435] Na modalidade 5, um exemplo é descrito no qual um dispositivo de cliente de um veículo ou similar transmite os dados tridimensionais para outro veículo ou um servidor, tal como um sistema de monitoramento de tráfego com base em nuvem. Na presente modalidade, um dispositivo de cliente transmite a informação sobre sensor obtida através de um sensor para um servidor ou um dispositivo de cliente.
[00436] Uma estrutura de um sistema, de acordo com a presente modalidade, será descrita primeiro. A Figura 28 é um diagrama que mostra a estrutura de um sistema de transmissão/recepção de um mapa tridimensional e informação sobre sensor, de acordo com a presente modalidade. Esse sistema inclui o servidor 901 e dispositivos de cliente 902A e 902B. Observe que os dispositivos de cliente 902A e 902B também são referidos como um dispositivo de cliente 902 quando nenhuma distinção em particular for feita entre os mesmos.
[00437] O dispositivo de cliente 902 é, por exemplo, um dispositivo montado em veículo equipado em um objeto móvel, tal como um veículo. O servidor 901 é, por exemplo, um sistema de monitoramento de tráfego com base em nuvem e pode se comunicar com a pluralidade de dispositivos de cliente 902.
[00438] O servidor 901 transmite o mapa tridimensional formado por uma nuvem de pontos para o dispositivo de cliente 902. Observe que uma estrutura do mapa tridimensional não está limitada a uma nuvem de pontos e também pode ser outra estrutura que expressa os dados tridimensionais, tal como uma estrutura entrelaçada.
[00439] O dispositivo de cliente 902 transmite a informação sobre sensor obtida pelo dispositivo de cliente 902 para o servidor 901. A informação sobre sensor inclui, por exemplo, pelo menos uma dentre a informação obtida pelo LiDAR, uma imagem de luz visível, uma imagem de infravermelho, uma imagem de profundidade, a informação sobre posição de sensor ou a informação de velocidade de sensor.
[00440] Os dados a serem transmitidos e recebidos entre o servidor 901 e o dispositivo de cliente 902 podem ser comprimidos a fim de reduzir o volume de dados e também podem ser transmitidos de forma descomprimida a fim de manter a precisão dos dados. Quando da compressão de dados, é possível se usar um método de compressão tridimensional na nuvem de pontos com base, por exemplo, em uma estrutura "octree". É possível se usar um método de compressão de imagem bidimensional na imagem de luz visível, imagem de infravermelho e imagem de profundidade. O método de compressão de imagem bidimensional é, por exemplo, MPEG-4 AVC ou HEVC padronizado por MPEG.
[00441] O servidor 901 transmite o mapa tridimensional gerenciado pelo servidor 901 para o dispositivo de cliente 902, em resposta a uma solicitação de transmissão para o mapa tridimensional a partir do dispositivo de cliente 902. Observe que o servidor 901 também pode transmitir o mapa tridimensional sem esperar pela solicitação de transmissão para o mapa tridimensional, a partir do dispositivo de cliente
902. Por exemplo, o servidor 901 pode difundir o mapa tridimensional para pelo menos um dispositivo de cliente 902 localizado em um espaço predeterminado. O servidor 901 também pode transmitir o mapa tridimensional adequado para uma posição do dispositivo de cliente 902 em intervalos de tempo fixos para o dispositivo de cliente 902 que recebeu a solicitação de transmissão uma vez. O servidor 901 pode transmitir também o mapa tridimensional gerenciado pelo servidor 901 para o dispositivo de cliente 902 cada vez que o mapa tridimensional é atualizado.
[00442] O dispositivo de cliente 902 envia a solicitação de transmissão do mapa tridimensional para o servidor 901. Por exemplo, quando o dispositivo de cliente 902 deseja realizar a estimativa de autolocalização durante um percurso, o dispositivo de cliente 902 transmite a solicitação de transmissão do mapa tridimensional para o servidor 901.
[00443] Observe que nos casos em seguida, o dispositivo de cliente 902 pode enviar a solicitação de transmissão do mapa tridimensional para o servidor 901. O dispositivo de cliente 902 pode enviar a solicitação de transmissão do mapa tridimensional para o servidor 901 quando o mapa tridimensional armazenado pelo dispositivo de cliente 902 está desatualizado. Por exemplo, o dispositivo de cliente 902 pode enviar a solicitação de transmissão do mapa tridimensional para o servidor 901 quando um período fixo tiver passado desde que o mapa tridimensional foi obtido pelo dispositivo de cliente 902.
[00444] O dispositivo de cliente 902 também pode enviar a solicitação de transmissão do mapa tridimensional para o servidor 901 antes de um tempo fixo, quando o dispositivo de cliente 902 sai de um espaço mostrado no mapa tridimensional, armazenado pelo dispositivo de cliente 902. Por exemplo, o dispositivo de cliente 902 pode enviar a solicitação de transmissão do mapa tridimensional para o servidor 901 quando o dispositivo de cliente 902 estiver localizado a uma distância predeterminada de um limite do espaço mostrado no mapa tridimensional armazenado pelo dispositivo de cliente 902. Quando um percurso de movimento e uma velocidade de movimento do dispositivo de cliente 902 são compreendidos, um momento no qual o dispositivo de cliente 902 sai do espaço mostrado no mapa tridimensional armazenado pelo dispositivo de cliente 902 pode ser previsto com base no percurso de movimento e na velocidade de movimento do dispositivo de cliente 902.
[00445] O dispositivo de cliente 902 também pode enviar a solicitação de transmissão do mapa tridimensional para o servidor 901 quando um erro, durante o alinhamento dos dados tridimensionais e do mapa tridimensional, criado a partir da informação sobre sensor pelo dispositivo de cliente 902, está pelo menos em um nível fixo.
[00446] O dispositivo de cliente 902 transmite a informação sobre sensor para o servidor 901 em resposta a uma solicitação de transmissão da informação sobre sensor do servidor 901. Observe que o dispositivo de cliente 902 pode transmitir a informação sobre sensor para o servidor 901 sem esperar pela solicitação de transmissão da informação sobre sensor proveniente do servidor 901. Por exemplo, o dispositivo de cliente 902 pode transmitir, periodicamente, a informação sobre sensor durante um período fixo, quando o dispositivo de cliente 902 recebeu a solicitação de transmissão da informação sobre sensor do sensor 901 uma vez. O dispositivo de cliente 902 pode determinar que existe uma possibilidade de ter ocorrido uma mudança no mapa tridimensional de uma área circundante do dispositivo de cliente 902 e transmite essa informação e a informação sobre sensor, para o servidor 901, quando o erro, durante o alinhamento dos dados tridimensionais, criado pelo dispositivo de cliente 902, com base na informação sobre sensor e no mapa tridimensional obtido a partir do servidor 901, está pelo menos no nível fixo.
[00447] O servidor 901 envia uma solicitação de transmissão para a informação sobre sensor para o dispositivo de cliente 902. Por exemplo, o servidor 901 recebe a informação sobre posição, tal como a informação de GPS, sobre o dispositivo de cliente 902 do dispositivo de cliente 902. O servidor 901 envia a solicitação de transmissão da informação sobre sensor para o dispositivo de cliente 902 a fim de gerar um novo mapa tridimensional, quando for determinado que o dispositivo de cliente 902 está se aproximando de um espaço, no qual o mapa tridimensional gerenciado pelo servidor 901 contém pouca informação, com base na informação sobre posição do dispositivo de cliente 902. O servidor 901 também pode enviar a solicitação de transmissão da informação sobre sensor, quando desejar (i) atualizar o mapa tridimensional, (ii) verificar as condições da estrada durante uma nevasca, um desastre ou similar ou (iii) verificar as condições de congestionamento de tráfego, condições de acidente/incidente ou similares.
[00448] O dispositivo de cliente 902 pode conFigurar uma quantidade de dados da informação sobre sensor a ser transmitida para o servidor 901, de acordo com as condições de comunicação ou largura de banda durante a recepção da solicitação de transmissão da informação sobre sensor a ser recebida do servidor 901. ConFigurar a quantidade de dados de informação sobre sensor a ser transmitida para o servidor 901, por exemplo, aumenta/reduz os dados propriamente ditos ou seleciona adequadamente um método de compressão.
[00449] A Figura 29 é um diagrama de blocos que mostra uma estrutura ilustrativa do dispositivo de cliente 902. O dispositivo de cliente 902 recebe o mapa tridimensional formado por uma nuvem de pontos e assim por diante a partir do servidor 901 e estima uma autolocalização do dispositivo de cliente 902 usando o mapa tridimensional criado com base na informação sobre sensor do dispositivo de cliente 902. O dispositivo de cliente 902 transmite a informação sobre sensor obtida para o servidor 901.
[00450] O dispositivo de cliente 902 inclui o receptor e dados 1011, a unidade de comunicação 1012, o controlador de recepção 1013, o conversor de formato 1014, os sensores 1015, o criador de dados tridimensionais 1016, o processador de imagem tridimensional 1017, o buffer de dados tridimensionais 1018, o conversor de formato 1019, a unidade de comunicação 10120, o controlador de transmissão 1021 e o transmissor de dados 1022.
[00451] O receptor de dados 1011 recebe o mapa tridimensional 1031 a partir do servidor 901. O mapa tridimensional 1031 são dados que incluem uma nuvem de pontos, tal como WLD ou um SWLD. O mapa tridimensional 1031 pode incluir os dados comprimidos ou dados não comprimidos.
[00452] A unidade de comunicação 1012 comunica com o servidor 901 e transmite uma solicitação de transmissão de dados (por exemplo,
solicitação de transmissão do mapa tridimensional) para o servidor 901.
[00453] O controlador de recepção 1013 permuta a informação, tal como a informação de formatos suportados, com um parceiro de comunicações através da unidade de comunicação 1012 para estabelecer a comunicação com o parceiro de comunicações.
[00454] O conversor de formato 1014 realiza uma conversão de formato e assim por diante no mapa tridimensional 1031 recebido pelo receptor de dados 1011 para gerar o mapa tridimensional 1032. O conversor de formato 1014 também realiza um processo de descompressão ou decodificação quando o mapa tridimensional 1031 é comprimido ou codificado. Observe que o conversor de formato 1014 não realiza o processo de descompressão ou decodificação quando o mapa tridimensional 1031 são dados não comprimidos.
[00455] Os sensores 815 são um grupo de sensores, tal como LiDARs, câmeras de luz visível, câmeras de infravermelho ou sensores de profundidade que obtêm a informação do exterior de um veículo equipado com o dispositivo de cliente 902 e geram a informação sobre sensor 1033. A informação sobre sensor 1033 é, por exemplo, dados tridimensionais, tal como uma nuvem de pontos (dados de grupo de pontos), quando sensores 1015 são sensores de laser, tal como LiDARs. Observe que um único sensor pode servir como sensores
1015.
[00456] O criador de dados tridimensionais 1016 gera os dados tridimensionais 1034 de uma área circundante do próprio veículo com base na informação sobre sensor 1033. Por exemplo, o criador de dados tridimensionais 1016 gera os dados de nuvem de pontos com a informação e cor na área circundante do próprio veículo usando a informação obtida pelo LiDAR e vídeo de luz visível obtido por uma câmera de luz visível.
[00457] O processador de imagem tridimensional 1017 realiza um processo de estimativa de autolocalização e assim por diante do próprio veículo, usando (i) o mapa tridimensional recebido 1032, tal como uma nuvem de pontos e (ii) dados tridimensionais 1034 da área circundante do próprio veículo gerado usando a informação sobre sensor 1033. Observe que o processador de imagem tridimensional 1017 pode gerar os dados tridimensionais 1035 sobre as cercanias do próprio veículo pela merge do mapa tridimensional 1032 e dos dados tridimensionais 1034 e pode realizar o processo de estimativa de autolocalização usando os dados tridimensionais criados 1035.
[00458] O buffer de dados tridimensionais 1018 armazena o mapa tridimensional 1032, dados tridimensionais 1034, dados tridimensionais 1035 e assim por diante.
[00459] O conversor de formato 1019 gera a informação sobre sensor 1037 pela conversão da informação sobre sensor 1033 em um formato suportado por uma extremidade receptora. Observe que o conversor de formato 1019 pode reduzir a quantidade de dados pela compressão ou codificação da informação sobre sensor 1037. O conversor de formato 1019 pode omitir esse processo quando a conversão de formato não é necessária. O conversor de formato 1019 também pode controlar a quantidade de dados a ser transmitida de acordo com uma faixa de transmissão especificada.
[00460] A unidade de comunicação 1020 se comunica com o servidor 901 e recebe uma solicitação de transmissão de dados (solicitação de transmissão da informação sobre sensor) e assim por diante a partir do servidor 901.
[00461] O controlador de transmissão 1021 permuta informação, tal como informação de formatos suportados, com um parceiro de comunicações através da unidade de comunicação 1020 para estabelecer a comunicação com o parceiro de comunicações.
[00462] O transmissor de dados 1022 transmite a informação sobre sensor 1037 para o servidor 901. A informação sobre sensor 1037 inclui, por exemplo, a informação obtida através dos sensores 1015, tal como a informação obtida por LiDAR, uma imagem de luminescência obtida por uma câmera de luz visível, uma imagem de infravermelho obtida por uma câmera de infravermelho, uma imagem de profundidade obtida por um sensor de profundidade, a informação sobre posição de sensor e a informação de velocidade de sensor.
[00463] Uma estrutura do servidor 901 será descrita em seguida. A Figura 30 é um diagrama de blocos que mostra uma estrutura ilustrativa do servidor 901. O servidor 901 transmite a informação sobre sensor do dispositivo de cliente 902 e cria dados tridimensionais baseado na informação sobre sensor recebida. O servidor 901 atualiza o mapa tridimensional gerenciado pelo servidor 901 usando os dados tridimensionais criados. O servidor 901 transmite o mapa tridimensional atualizado para o dispositivo de cliente 902 em resposta a uma solicitação de transmissão para o mapa tridimensional do dispositivo de cliente 902.
[00464] O servidor 901 inclui o receptor de dados 1111, a unidade de comunicação 1112, o controlador de recepção 1113, o conversor de formato 1114, o criador de dados tridimensionais 1116, o merger de dados tridimensionais 1117, o buffer de dados tridimensionais 1118, o conversor de formato 1119, a unidade de comunicação 1120, o controlador de transmissão 1121 e o transmissor de dados 1122.
[00465] O receptor de dados 1111 recebe informação sobre sensor 1037 do dispositivo de cliente 902. A informação sobre sensor 1037 inclui, por exemplo, a informação obtida pelo LiDAR, uma imagem de luminescência obtida por uma câmera de luz visível, uma imagem de infravermelho obtida por uma câmera de infravermelho, uma imagem de profundidade obtida por um sensor de profundidade, uma informação sobre posição de sensor, informação de velocidade de sensor e assim por diante.
[00466] A unidade de comunicação 1112 comunica com o dispositivo de cliente 902 e transmite uma solicitação de transmissão de dados (por exemplo, a solicitação de transmissão da informação sobre sensor) e assim por diante para o dispositivo de cliente 902.
[00467] O controlador de recepção 1113 permuta informação, tal como informação dos formatos suportados, com um parceiro de comunicações através da unidade de comunicação 1112 para estabelecer a comunicação com o parceiro de comunicações.
[00468] O conversor de formato 1114 gera a informação sobre sensor 1132 pela realização de um processo de descompressão ou decodificação quando a informação sobre sensor recebida 1037 é comprimida ou codificada. Observe que o conversor de formato 1114 não realiza o processo de descompressão ou decodificação quando a informação sobre sensor 1037 são dados não comprimidos.
[00469] O criador de dados tridimensionais 1116 gera dados tridimensionais 1134 de uma área circundante do dispositivo de cliente 902 com base na informação sobre sensor 1132. Por exemplo, o criador de dados tridimensionais 1116 gera dados de nuvem de pontos com informação sobre cor da área circundante do dispositivo de cliente 902 usando informação obtida pelo LiDAR e vídeo de luz visível obtida por uma câmera de luz visível.
[00470] O merger de dados tridimensionais 1117 atualiza o mapa tridimensional 1135 pela merge de dados tridimensionais 1134 criados com base na informação sobre sensor 1132 com o mapa tridimensional 1135 gerenciado pelo servidor 901.
[00471] O buffer de dados tridimensionais 1118 armazena o mapa tridimensional 1135 e assim por diante.
[00472] O conversor de formato 1119 gera o mapa tridimensional 1031 pela conversão do mapa tridimensional 1135 em um formato suportado pela extremidade receptora. Observe que o conversor de formato 1119 pode reduzir a quantidade de dados pela compressão ou codificação do mapa tridimensional 1135. O conversor de formato 1119 pode omitir esse processo quando a conversão de formato não é necessária. O conversor de formato 1119 também pode controlar a quantidade de dados a ser transmitida de acordo com uma faixa de transmissão especificada.
[00473] A unidade de comunicação 1120 se comunica com o dispositivo de cliente 902 e recebe uma solicitação de transmissão de dados (solicitação de transmissão de mapa tridimensional). e assim por diante. do dispositivo de cliente 902.
[00474] O controlador de transmissão 1121 permuta informação, tal como informação em formatos suportados, com um parceiro de comunicações através da unidade de comunicação 1120 para estabelecer a comunicação com o parceiro de comunicações.
[00475] O transmissor de dados 1122 transmite o mapa tridimensional 1031 para o dispositivo de cliente 902. O mapa tridimensional 1031 são dados que incluem uma nuvem de pontos, tal como um WLD ou um SWLD. O mapa tridimensional 1031 pode incluir um dentre os dados comprimidos e os dados não comprimidos.
[00476] Um fluxo operacional do dispositivo de cliente 902 será descrito em seguida. A Figura 31 é um fluxograma de uma operação quando o dispositivo de cliente 902 obtém o mapa tridimensional.
[00477] O dispositivo de cliente 902 primeiro solicita que o servidor 901 transmita o mapa tridimensional (nuvem de pontos, etc.) (S1001). Nesse momento, pela transmissão também da informação sobre posição do dispositivo de cliente 902, obtida através do GPS e assim por diante, o dispositivo de cliente 902 também pode solicitar que o servidor 901 transmita um mapa tridimensional referente a essa informação sobre posição.
[00478] O dispositivo de cliente 902, em seguida, recebe o mapa tridimensional do servidor 901 (S1002). Quando o mapa tridimensional recebido são dados comprimidos, o dispositivo de cliente 902 decodifica o mapa tridimensional recebido e gera um mapa tridimensional não comprimido (S1003).
[00479] O dispositivo de cliente 902, em seguida, cria os dados tridimensionais 1034 da área circundante do dispositivo de cliente 902, usando a informação sobre sensor 1033 obtida pelos sensores 1015 (S1004). O dispositivo de cliente 902, em seguida, estima a autolocalização do dispositivo de cliente 902 usando o mapa tridimensional 1032 recebido do servidor 901 e os dados tridimensionais 1034 criados, usando-se a informação sobre sensor 1033 (S1005).
[00480] A Figura 32 é um fluxograma de uma operação quando o dispositivo de cliente 902 transmite a informação sobre sensor. O dispositivo de cliente 902 primeiro recebe uma solicitação de transmissão da informação sobre sensor do servidor 901 (S1011). O dispositivo de cliente 902 que recebeu a solicitação de transmissão transmite a informação sobre sensor 1037 para o servidor 901 (S1012). Observe que o dispositivo de cliente 902 pode gerar a informação sobre sensor 1037 comprimindo cada parte da informação, usando um método de compressão adequado para cada parte da informação, quando a informação sobre sensor 1033 inclui uma pluralidade de partes de informação obtidas pelos sensores 1015.
[00481] Um fluxo operacional do servidor 901 será descrito em seguida. A Figura 33 é um fluxograma de uma operação quando o servidor 901 obtém a informação sobre sensor. O servidor 901 primeiro solicita que o dispositivo de cliente 902 transmita a informação sobre sensor (S1021). O servidor 901, em seguida, recebe a informação sobre sensor 1037 transmitida a partir do dispositivo de cliente 902, de acordo com a solicitação (S1022). O servidor 901, em seguida, cria os dados tridimensionais 1134 usando a informação sobre sensor recebida 1037 (S1023). O servidor 901, em seguida, reflete os dados tridimensionais criados 1134 no mapa tridimensional 1135 (S1024).
[00482] A Figura 34 é um fluxograma de uma operação quando o servidor 901 transmite o mapa tridimensional. O servidor 901 primeiro recebe uma solicitação de transmissão do mapa tridimensional a partir do dispositivo de cliente 902 (S1031). O servidor 901 que recebeu a solicitação de transmissão do mapa tridimensional transmite o mapa tridimensional para o dispositivo de cliente 902 (S1032). Nesse momento, o servidor 901 pode extrair um mapa tridimensional de uma proximidade do dispositivo de cliente 902 juntamente com a informação sobre posição do dispositivo de cliente 902 e transmitir o mapa tridimensional extraído. O servidor 901 pode comprimir o mapa tridimensional formado por uma nuvem de pontos usando, por exemplo, um método de compressão de estrutura tipo "octree" e transmitir o mapa tridimensional comprimido.
[00483] Daqui em diante, variações da presente modalidade serão descritas.
[00484] O servidor 901 cria os dados tridimensionais 1134 de uma proximidade de uma posição do dispositivo de cliente 902 usando a informação sobre sensor 1037 recebida do dispositivo de cliente 902. O servidor 901, em seguida, calcula uma diferença entre os dados tridimensionais 1134 e o mapa tridimensional 1135, pela combinação dos dados tridimensionais criados 1134 com o mapa tridimensional 1135 da mesma área gerenciada pelo servidor 901. O servidor 901 determina que um tipo de anomalia ocorreu na área circundante ao dispositivo de cliente 902, quando a diferença for superior a ou igual a um limite predeterminado. Por exemplo, é concebível que uma grande diferença ocorra entre o mapa tridimensional 1135 gerenciado pelo servidor 901 e os dados tridimensionais 1134 criados com base na informação sobre sensor 1037, quando a subsidência de solo e assim por diante ocorrem, devido a um desastre natural, tal como um terremoto.
[00485] Tal informação 1037 pode incluir informação que inclui indicar pelo menos um dentre um tipo de sensor, um desempenho de sensor e um número de modelo de sensor. A informação sobre sensor 1037 também pode ser anexada a um ID de classe e assim por diante, de acordo com o desempenho de sensor. Por exemplo, quando a informação sobre sensor 1037 é obtida pelo LiDAR, é concebível se designar identificadores para desempenho de sensor. Um sensor capaz de obter informação com precisão em unidades de vários milímetros é de classe 1, um sensor capaz de obter informação com precisão em unidades de vários centímetros é de classe 2 e um sensor capaz de obter informação com precisão em unidades de vários metros é de classe 3. O servidor 901 pode estimar a informação de desempenho de sensor e assim por diante, a partir de um número de modelo de dispositivo de cliente 902. Por exemplo, quando o dispositivo de cliente 902 é equipado em um veículo, um servidor 901 pode determinar a informação de especificação de sensor a partir de um tipo de veículo. Neste caso, o servidor 901 pode obter informação do tipo de veículo antecipadamente e a informação também pode ser incluída na informação sobre sensor. O servidor 901 pode alterar um grau de correção com relação aos dados tridimensionais 1134 criados usando informação sobre sensor 1037, usando a informação sobre sensor obtida 1037. Por exemplo, quando o desempenho de sensor tem alta precisão (classe 1), o servidor 901 não corrige os dados tridimensionais
1134. Quando o desempenho de sensor tem baixa precisão (classe 3), o servidor 901 corrige os dados tridimensionais 1134, de acordo com a precisão do sensor. Por exemplo, o servidor 901 aumenta o grau (intensidade) de correção com uma redução na precisão do sensor.
[00486] O servidor 901 pode, simultaneamente, enviar a solicitação de transmissão da informação sobre sensor para a pluralidade de dispositivos de cliente 902 em um espaço determinado. O servidor 901 não precisa usar toda a informação sobre sensor para criar os dados tridimensionais 1134 e pode, por exemplo, selecionar a informação sobre sensor a ser usada, de acordo com o desempenho de sensor, quando recebe uma pluralidade de partes de informação sobre sensor a partir da pluralidade de dispositivos de cliente 902. Por exemplo, quando da atualização do mapa tridimensional 1135, o servidor 901 pode selecionar a informação sobre sensor de alta precisão (classe 1), dentre a pluralidade recebida de partes da informação sobre sensor e criar os dados tridimensionais 1134 usando a informação sobre sensor selecionada.
[00487] O servidor 901 não está limitado apenas a ser um servidor, tal como um sistema de monitoramento de tráfego com base em nuvem e também pode ser outro dispositivo de cliente (montado em veículo). A Figura 35 é um diagrama de uma estrutura de sistema neste caso.
[00488] Por exemplo, o dispositivo de cliente 902C envia uma solicitação de transmissão de informação sobre sensor para o dispositivo de cliente 902A localizado perto e obtém a informação sobre sensor do dispositivo de cliente 902A. O dispositivo de cliente 902C, então, cria os dados tridimensionais usando a informação sobre sensor obtida a partir do dispositivo de cliente 902A e atualiza um mapa tridimensional do dispositivo de cliente 902C. Isto permite que o dispositivo de cliente 902C gere um mapa tridimensional de um espaço, que pode ser obtido a partir do dispositivo de cliente 902A e use completamente o desempenho do dispositivo de cliente 902C. Por exemplo, tal caso é concebível quando o dispositivo de cliente 902C apresenta um alto desempenho.
[00489] Neste caso, o dispositivo de cliente 902A que forneceu a informação sobre sensor recebe direitos de obtenção do mapa tridimensional de alta precisão gerado pelo dispositivo de cliente 902C. O dispositivo de cliente 902A recebe o mapa tridimensional de alta precisão do dispositivo de cliente 902C, de acordo com esses direitos.
[00490] O servidor 901 pode enviar a solicitação de transmissão da informação sobre sensor para a pluralidade de dispositivos de cliente 902 (o dispositivo de cliente 902A e o dispositivo de cliente 902B) localizados perto do dispositivo de cliente 902C. Quando um sensor do dispositivo de cliente 902A ou do dispositivo de cliente 902B, tem alto desempenho, o dispositivo de cliente 902C é capaz de criar os dados tridimensionais usando a informação sobre sensor obtida por esse sensor de alto desempenho.
[00491] A Figura 36 é um diagrama de blocos que mostra uma estrutura de funcionalidade do servidor 901 e do dispositivo de cliente
902. O servidor 901 inclui, por exemplo, o processador de compressão/decodificação de mapa tridimensional 1201 que comprime e decodifica o mapa tridimensional e o processador de compressão/decodificação de informação sobre sensor 1202 que comprime e decodifica a informação sobre sensor.
[00492] O dispositivo de cliente 902 inclui o processador de decodificação de mapa tridimensional 1211 e o processador de compressão de informação sobre sensor 1212. O processador de decodificação de mapa tridimensional 1211 recebe os dados codificados do mapa tridimensional comprimido, decodifica os dados codificados e obtém o mapa tridimensional. O processador de compressão de informação sobre sensor 1212 comprime a informação sobre sensor propriamente dita, em vez dos dados tridimensionais criados, usando a informação sobre sensor obtida e transmite os dados codificados da informação sobre sensor comprimidos para o servidor
901. Com essa estrutura, o dispositivo de cliente 902 não precisa armazenar internamente um processador que realiza um processo para compressão de dados tridimensionais do mapa tridimensional (nuvem de pontos,, etc.), desde que o dispositivo de cliente 902 armazene internamente um processador que realiza um processo para decodificação do mapa tridimensional (nuvem de pontos,, etc.). Isto possibilita a limitação de custos, consumo de energia e assim por diante, do dispositivo de cliente 902.
[00493] Conforme mencionado acima, o dispositivo de cliente 902, de acordo com a presente modalidade, é equipado no objeto móvel e cria dados tridimensionais 1034 de uma área circundante do objeto móvel, usando a informação sobre sensor 1033, que é obtida através do sensor 1015 equipado no objeto móvel e indica uma condição circundante do objeto móvel. O dispositivo de cliente 902 estima uma autolocalização do objeto móvel usando os dados tridimensionais criados 1034. O dispositivo de cliente 902 transmite a informação sobre sensor obtida 1033 para o servidor 901 ou outro objeto móvel.
[00494] Isto permite que o dispositivo de cliente 902 transmita a informação sobre sensor 1033 para o servidor 901 ou similar. Isto possibilita a redução adicional da quantidade de dados de transmissão comparado com a transmissão dos dados tridimensionais. Visto que não há necessidade de o dispositivo de cliente 902 realizar os processos, tal como compressão ou codificação de dados tridimensionais, é possível se reduzir a quantidade de processamento do dispositivo de cliente 902. Como tal, o dispositivo de cliente 902 pode reduzir a quantidade de dados a ser transmitida ou simplificar a estrutura do dispositivo.
[00495] O dispositivo de cliente 902 transmite, ainda, a solicitação de transmissão do mapa tridimensional para o servidor 901 e recebe o mapa tridimensional 1031 do servidor 901. Na estimativa de autolocalização, o dispositivo de cliente 902 estima a autolocalização usando os dados tridimensionais 1034 e o mapa tridimensional 1032.
[00496] A informação sobre sensor 1034 inclui pelo menos uma dentre a informação obtida por um sensor de laser, uma imagem de luminescência, uma imagem de infravermelho, uma imagem de profundidade, uma informação sobre posição de sensor ou informação de velocidade de sensor.
[00497] A informação sobre sensor 1033 inclui a informação que indica um desempenho do sensor.
[00498] O dispositivo de cliente 902 codifica ou comprime a informação sobre sensor 1033 e na transmissão da informação sobre sensor, transmite a informação sobre sensor 1037, que foi codificada ou comprimida, para o servidor 901 ou outro objeto móvel 902. Isto permite que o dispositivo de cliente 902 reduza a quantidade de dados a ser transmitida.
[00499] Por exemplo, o dispositivo de cliente 902 inclui um processador e uma memória. O processador realiza os processos acima usando a memória.
[00500] O servidor 901, de acordo com a presente modalidade, é capaz de comunicar com o dispositivo de cliente 902 equipado no objeto móvel e recebe informação sobre sensor 1037, que é obtida através do sensor 1015 equipado no objeto móvel e indica uma condição circundante do objeto móvel. O servidor 901 cria os dados tridimensionais 1134 de uma área circundante do objeto móvel usando a informação sobre sensor recebida 1037.
[00501] Com isto, o servidor 901 cria os dados tridimensionais 1134 usando a informação sobre sensor 1037 transmitida a partir do dispositivo de cliente 901. Isto possibilita a redução adicional da quantidade de dados de transmissão comparado com quando o dispositivo de cliente 902 transmite os dados tridimensionais. Visto que não há necessidade de o dispositivo de cliente 902 realizar processos, tal como compressão ou codificação dos dados tridimensionais, é possível se reduzir a quantidade de processamento do dispositivo de cliente 902. Como tal, o servidor 901 é capaz de reduzir a quantidade de dados a ser transmitida ou simplificar a estrutura do dispositivo.
[00502] O servidor 901 transmite, ainda, uma solicitação de transmissão da informação sobre sensor para o dispositivo de cliente
902.
[00503] O servidor 901 atualiza, ainda, o mapa tridimensional 1135 usando os dados tridimensionais criados 1134 e transmite o mapa tridimensional 1135 para o dispositivo de cliente 902, em resposta à solicitação de transmissão de mapa tridimensional 1135 do dispositivo de cliente 902.
[00504] A informação sobre sensor 1037 inclui pelo menos uma dentre a informação obtida por um sensor de laser, uma imagem de luminescência, uma imagem de infravermelho, uma imagem de profundidade, uma informação da posição do sensor ou uma informação da velocidade do sensor.
[00505] A informação do sensor 1037 inclui a informação que indica um desempenho do sensor.
[00506] O servidor 901 corrige, ainda, os dados tridimensionais, de acordo com o desempenho do sensor. Isto permite que o método de criação de dados tridimensionais aperfeiçoe a qualidade dos dados tridimensionais.
[00507] No recebimento da informação sobre sensor, o servidor 901 recebe uma pluralidade de partes de informação sobre sensor 1037 recebidas a partir de uma pluralidade de dispositivos de cliente 902 e seleciona a informação sobre sensor 1037 a ser usada na criação de dados tridimensionais 1134, com base em uma pluralidade de partes de informação que indicam, cada uma, o desempenho do sensor incluído na pluralidade de partes de informação sobre sensor 1037. Isto permite que o servidor 901 aperfeiçoe a qualidade dos dados tridimensionais
1134.
[00508] O servidor 901 decodifica ou descomprime a informação sobre sensor recebida 1037 e cria os dados tridimensionais 1134 usando a informação sobre sensor 1132 que foi decodificada ou descomprimida. Isto permite que o servidor 901 reduza a quantidade de dados a ser transmitida.
[00509] Por exemplo, o servidor 901 inclui um processador e uma memória. O processador realiza os processos acima usando a memória. MODALIDADE 7
[00510] Na presente modalidade, os métodos de codificação e decodificação de dados tridimensionais, usando um processo de interprevisão, serão descritos.
[00511] A Figura 37 é um diagrama de blocos do dispositivo de codificação de dados tridimensionais 1300, de acordo com a presente modalidade. este dispositivo de codificação de dados tridimensionais 1300 gera uma sequência de bits codificada (daqui em diante, também simplesmente referida como uma sequência de bits), que é um sinal codificado pela codificação de dados tridimensionais. Conforme mostrado na Figura 37, o dispositivo de codificação de dados tridimensionais 1300 inclui um divisor 1301, um subtrator 1302, um transformador 1303, um quantizador 1304, um quantizador inverso 1305, um transformador inverso 1306, um somador 1307, uma memória de volume de referência 1308, um intraprevisor 1309, uma memória de espaço de referência 1310, um interprevisor 1311, um controlador de previsão 1312 e um codificador por entropia 1313.
[00512] O divisor 1301 divide uma pluralidade de volumes (VLMs), que são unidades de codificação de cada espaço (SPC) incluídos nos dados tridimensionais. O divisor 1301 realiza uma representação tipo "octree" (transforma em uma "octree") dos "voxels" em cada volume. Observe que o divisor 1301 pode transformar os espaços em uma representação tipo "octree" com os espaços que tem o mesmo tamanho que os volumes. O divisor 1301 também pode anexar a informação (informação de profundidade, etc.), necessária para se criar a representação tipo "octree", a um cabeçalho e assim por diante, de uma sequência de bits.
[00513] O subtrator 1302 calcula uma diferença entre um volume (interprevisor alvo de codificação) enviado pelo divisor 1301 e um volume previsto, gerado através da intraprevisão ou interprevisão, que serão descritos posteriormente e envia a diferença calculada para o transformador 1303 como um residual de previsão. A Figura 38 é um diagrama que mostra um cálculo ilustrativo do residual de previsão. Observe que as sequências de bits do volume-alvo de codificação. e do volume previsto. Imostrados no presente documento são, por exemplo, a informação sobre posição que indica as posições dos pontos tridimensionais incluídos nos volumes.
[00514] Daqui em diante, uma ordem de digitalização de uma representação tipo "octree" e de "voxels", será descrita. Um volume é codificado depois de ser convertido em uma estrutura tipo "octree" (transformado em uma "octree"). A estrutura tipo "octree" inclui nós e folhas. Cada nó tem oito nós ou folhas e cada folha tem informação de"voxel" (VXL). A Figura 39 é um diagrama que mostra uma estrutura ilustrativa de um volume que inclui "voxels". A Figura 40 é um diagrama que mostra um exemplo do volume, mostrado na Figura 39, tendo sido convertido na estrutura tipo "octree". Dentre as folhas mostradas na Figura 40, as folhas 1, 2 e 3, respectivamente, representam VXL 1, VXL 2 e VXL 3 e representam VXLs que inclui um grupo de pontos (daqui em diante, VXLs ativos).
[00515] Uma "octree" é representada, por exemplo, por sequências binárias de 1 e 0. Por exemplo, quando fornecendo aos nós ou VXLs ativos um valor igual a 1 e ao resto todo um valor igual a 0, cada nó e folha recebe a sequência binária mostrada na Figura 40. desta forma, essa sequência binária é digitalizada de acordo com uma ordem de digitalização de largura primeiro ou profundidade primeiro. Por exemplo, quando da digitalização de largura primeiro, a sequência binária, mostrada por A na Figura 41, é obtida. Quando da digitalização da profundidade primeiro, a sequência binária, mostrada por B na Figura 41, é obtida. As sequências binarias obtidas através desta digitalização são codificadas através de codificação por entropia, o que reduz uma quantidade de informação.
[00516] A informação de profundidade da representação tipo "octree" será descrita em seguida. A profundidade na representação tipo "octree" é usada a fim de controlar até que nível de detalhamento uma informação de nuvem de pontos em um volume é armazenada. Depois de conFigurar uma profundidade grande, é possível se reproduzir a informação de nuvem de pontos para um nível mais preciso, mas, uma quantidade de dados para representar os nós e folhas, aumenta. Depois de conFigurar uma profundidade pequena, no entanto, a quantidade de dados diminui, mas parte da informação, que a informação de nuvem de pontos detinha originalmente, é perdida, visto que partes da informação de nuvem de pontos, que inclui posições diferentes e cores diferentes, são, agora, consideradas partes da informação de nuvem de pontos, que inclui a mesma posição e a mesma cor.
[00517] Por exemplo, a Figura 42 é um diagrama que mostra um exemplo no qual a "octree" com uma profundidade igual a 1, mostrada na Figura 40, é representada com uma profundidade igual a 1. A "octree" mostrada na Figura 42 tem uma quantidade inferior de dados à "octree" mostrada na Figura 40. Em outras palavras, a "octree" binarizada, mostrada na Figura 42, tem uma contagem de bit inferior à "octree" mostrada na Figura 40. A folha 1 e a folha 2, mostradas na Figura 40, são representadas pela folha 1 mostrada na Figura 41. Em outras palavras, a informação da folha 1 e da folha 2 que está em posições diferentes, é perdida.
[00518] A Figura 43 é um diagrama que mostra um volume que corresponde à "octree" mostrada na Figura 42. VXL 1 e VXL 2, mostrados na Figura 39, correspondem a VXL 12 mostrado na Figura
43. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 gera informação sobre cor de VXL 12, mostrado na Figura 43, usando a informação sobre cor de VXL 1 e VXL 2, mostrados na Figura
39. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 calcula um valor médio, um mediano, um valor médio ponderado ou similares, da informação sobre cor de VXL 1 e VXL 2, como a informação sobre cor de VXL 12. desta forma, o dispositivo de codificação de dados tridimensionais 1300 pode controlar uma redução da quantidade de dados, pela alteração da profundidade de "octree".
[00519] O dispositivo de codificação de dados tridimensionais 1300 pode conFigurar a informação de profundidade da "octree" para unidades de mundos, unidades de espaços ou unidades de volumes. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 podem anexar a informação de profundidade à informação de cabeçalho do mundo, à informação de cabeçalho do espaço ou à informação de cabeçalho do volume. Em todos os mundos, espaços e volumes associados a tempos diferentes, o mesmo valor pode ser usado como a informação de profundidade. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 pode anexar a informação de profundidade à informação de cabeçalho que gerencia os mundos associados a todos os tempos.
[00520] Quando a informação sobre cor é incluída nos "voxels", o transformador 1303 aplica a transformação de frequência, por exemplo, transformação ortogonal, a um residual de previsão da informação sobre cor dos "voxels" no volume. Por exemplo, o transformador 1303 cria um conjunto unidimensional pela digitalização do residual de previsão em uma ordem de digitalização determinada. Subsequentemente, o transformador 1303 transforma o conjunto unidimensional em um domínio de frequência pela aplicação da transformação ortogonal unidimensional ao conjunto unidimensional criado. Com isto, quando um valor do residual de previsão no volume é similar, um valor de um componente de baixa frequência aumenta e um valor de um componente de baixa frequência diminui. Como tal, é possível se reduzir, de forma mais eficiente, uma quantidade de codificação no quantizador 1304.
[00521] O transformador 1303 não precisa usar a transformação ortogonal em uma dimensão, mas também pode usar a transformação ortogonal em duas ou mais dimensões. Por exemplo, o transformador 1303 mapeia o residual de previsão para um conjunto bidimensional em uma ordem de digitalização determinada e aplica a transformação ortogonal bidimensional ao conjunto bidimensional obtido. O transformador 1303 pode selecionar um método de transformação ortogonal a ser usado a partir de uma pluralidade de métodos de transformação ortogonal. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 anexa, à sequência de bits, a informação que indica qual método de transformação ortogonal é usado. O transformador 1303 pode selecionar um método de transformação ortogonal a ser usado a partir de uma pluralidade de métodos de transformação ortogonal em dimensões diferentes. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 anexa, à sequência de bits, em quantas dimensões o método de transformação ortogonal é usado.
[00522] Por exemplo, o transformador 1303 combina a ordem de digitalização do residual de previsão a uma ordem de digitalização (largura primeiro, profundidade primeiro ou similares) na "octree" no volume. Isto possibilita a redução de “overhead”, visto que a informação que indica a ordem de digitalização do residual de previsão não precisa ser anexada à sequência de bits. O transformador 1303 pode aplicar uma ordem de digitalização diferente da ordem de digitalização da "octree". Neste caso, o dispositivo de codificação de dados tridimensionais 1300 anexa, à sequência de bits, a informação que indica a ordem de digitalização do residual de previsão. Isto permite que o dispositivo de codificação de dados tridimensionais 1300 codifique, de forma eficiente, o residual de previsão. O dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, informação (indicador,, etc.) indicando se aplica a ordem de digitalização da "octree" e também pode anexar, à sequência de bits, a informação que indica a ordem de digitalização do residual de previsão quando a ordem de digitalização da "octree" não é aplicada.
[00523] O transformador 1303 não apenas transforma o residual de previsão da informação sobre cor, mas também pode transformar outra informação de atributo incluída nos "voxels". Por exemplo, o transformador 1303 pode transformar e codificar informação, tal como informação de refletância, obtida quando da obtenção de uma nuvem de pontos através do LiDAR e assim por diante.
[00524] O transformador 1303 pode pular esses processos quando os espaços não incluem a informação de atributo, tal como a informação sobre cor. O dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, a informação (indicador) que indica se pula os processos do transformador 1303.
[00525] O quantizador 1304 gera um coeficiente quantizado pela realização da quantização, usando um parâmetro de controle de quantização em um componente de frequência do residual de previsão gerado pelo transformador 1303. Com isto, a quantidade de informação é ainda reduzida. O coeficiente quantizado gerado é enviado para o codificador por entropia 1313. O quantizador 1304 pode controlar o parâmetro de controle de quantização em unidades de mundos, unidades de espaços ou unidades de volumes. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 anexa o parâmetro de controle de quantização a cada informação de cabeçalho e assim por diante. O quantizador 1304 pode realizar o controle de quantização pela alteração de um peso por componente de frequência do residual de previsão. Por exemplo, o quantizador 1304 pode quantizar com precisão um componente de baixa frequência e quantizar de forma aproximada um componente de alta frequência. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, a um cabeçalho, um parâmetro que expresse um peso de cada componente de frequência.
[00526] O quantizador 1304 pode pular esses processos quando os espaços não incluem informação de atributo, tal como informação sobre cor. O dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, a informação (indicador) que indica se pula o processo do quantizador 1304.
[00527] O quantizador inverso 1305 gera um coeficiente quantizado inverso do residual de previsão pela realização da quantização inversa no coeficiente quantizado gerado pelo quantizador 1304, usando o parâmetro de controle de quantização e envia o coeficiente quantizado inverso gerado para o transformador inverso 1306.
[00528] O transformador inverso 1306 gera um residual de previsão aplicado por transformação inversa, pela aplicação da transformação inversa ao coeficiente quantizado inverso gerado pelo quantizador inverso 1305. Esse residual de previsão aplicado por transformação inversa não precisa coincidir completamente com o residual de previsão enviado pelo transformador 1303, visto que o residual de previsão aplicado por transformação inversa é um residual de previsão que é gerado após a quantização.
[00529] O somador 1307 soma, para gerar um volume reconstruído, (i) o residual de previsão aplicado por transformação inversa gerado pelo transformador inverso 1306 a (ii) um volume previsto que é gerado através da intraprevisão ou da interprevisão, que serão descritas posteriormente e é usado para gerar um residual de previsão pré- quantizado. Esse volume reconstruído é armazenado na memória de volume de referência 1308 ou memória de espaço de referência 1310.
[00530] O intraprevisor 1309 gera um volume previsto de um volume- alvo de codificação usando a informação de atributo de um volume vizinho armazenado na memória de volume de referência 1308. A informação de atributo inclui a informação sobre cor ou uma refletância de "voxels". O intraprevisor 1309 gera um valor previsto de informação sobre cor ou uma refletância do volume-alvo de codificação.
[00531] A Figura 44 é um diagrama para descrever uma operação do intraprevisor 1309. Por exemplo, o intraprevisor 1309 gera o volume previsto do volume-alvo de codificação (idx de volume = 3), mostrado na Figura 44, usando um volume vizinho (idx de volume = 0). O idx de volume no presente documento é a informação de identificador que é anexada a um volume em um espaço e um valor diferente é designado para cada volume. Uma ordem de designação de idx de volume pode ser igual a uma ordem de codificação e também pode ser diferente da ordem de codificação. Por exemplo, o intraprevisor 1309 usa um valor médio de informação sobre cor de "voxels" incluído no idx de volume = 0, que é um volume vizinho, como o valor previsto da informação sobre cor do volume-alvo de codificação mostrado na Figura 44. Neste caso, um residual de previsão é gerado pela dedução do valor previsto da informação sobre cor a partir da informação sobre cor de cada"voxel" incluído no volume-alvo de codificação. Os processos em seguida são realizados pelo transformador 1303 e processadores subsequentes com relação a esse residual de previsão. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 anexa, à sequência de bits, a informação do volume vizinho e a informação do modo de previsão. A informação do volume vizinho, no presente documento, é a informação que indica um volume vizinho usado na previsão e indica, por exemplo, o idx de volume do volume vizinho usado na previsão. A informação do modo de previsão, no presente documento, indica um modo usado para gerar o volume previsto. O modo é, por exemplo, um modo de valor médio no qual o valor previsto é gerado, usando um valor médio de "voxels" no volume vizinho ou um modo mediano no qual o valor previsto é gerado usando o mediano de "voxels" no volume vizinho.
[00532] O intraprevisor 1309 pode gerar o volume previsto usando uma pluralidade de volumes vizinhos. Por exemplo, na estrutura mostrada na Figura 44, o intraprevisor 1309 gera o volume previsto 0 usando um volume com idx de volume = 0 e gera o volume previsto 1 usando um volume com idx de volume = 1. O intraprevisor 1309, então, gera uma média do volume previsto 0 e do volume previsto 1 como um volume previsto final. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, uma pluralidade de idx de volumes dentre uma pluralidade de volumes usados para gerar o volume previsto.
[00533] A Figura 45 é um diagrama que mostra, de forma esquemática, o processo de interprevisão de acordo com a presente modalidade. O interprevisor 1311 codifica (interprevê) um espaço (SPC) associado a um tempo determinado T_Cur usando um espaço codificado associado a um tempo diferente T_LX. Neste caso, o interprevisor 1311 realiza um processo de codificação pela aplicação de um processo de rotação e translação ao espaço codificado associado ao tempo diferente T_LX.
[00534] O dispositivo de codificação de dados tridimensionais 1300 anexa, à sequência de bits, a informação RT referente a um processo de rotação e translação adequadas ao espaço associado ao tempo diferente T_LX. O tempo diferente T_LX é, por exemplo, o tempo T_L0 antes do tempo determinado T_Cur. Nesse ponto, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, a informação RT RT_L0 referente a um processo de rotação e translação adequado a um espaço associado ao tempo T_L0.
[00535] Alternativamente, o tempo diferente T_LX é, por exemplo, o tempo T_L1 depois do tempo determinado T_Cur. Nesse ponto, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, a informação RT, RT_L1, referente a um processo de rotação e translação adequado a um espaço associado ao tempo T_L1.
[00536] Alternativamente, o interprevisor 1311 codifica (previsão bidirecional), com referência aos espaços associados ao tempo T_L0 e ao tempo T_L1, que diferem um do outro. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, ambas a informação RT, RT_L0 e a informação RT, RT_L1, referentes ao processo de rotação e translação adequado aos espaços das mesmas.
[00537] Observe que T_L0 foi descrito como estando antes de T_Cur e T_L1 como estando depois de T_Cur, mas não estão necessariamente limitados a isso. Por exemplo, T_L0 e T_L1 podem, ambos, estar antes de T_Cur. T_L0 e T_L1 também podem estar, ambos, depois de T_Cur.
[00538] O dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, a informação RT referente a um processo de rotação e translação adequado a espaços associados a tempos diferentes, quando da codificação com referência a cada um dos espaços. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 gerencia uma pluralidade de espaços codificados a serem referidos, usando-se duas listas de referência (lista L0 e lista L1). Quando um primeiro espaço de referência na lista L0 é L0R0, um segundo espaço de referência na lista L0 é L0R1, um primeiro espaço de referência na lista L1 é L1R0 e um segundo espaço de referência na lista L1 é L1R1, o dispositivo de codificação de dados tridimensionais 1300 anexa, à sequência de bits, a informação RT, RT_L0R0 de L0R0, a informação RT, RT_L0R1 de L0R1, a informação RT, RT_L1R0, de L1R0 e a informação RT, RT_L1R1, de L1R1. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 anexa essas partes de informação RT a um cabeçalho e assim por diante, da sequência de bits.
[00539] O dispositivo de codificação de dados tridimensionais 1300 determina se aplica a rotação e translação por espaço de referência, quando da codificação com referência aos espaços de referência associados a tempos diferentes. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, à informação de cabeçalho e assim por diante, da sequência de bits, a informação (indicador RT, etc.) que indica se a rotação e translação são aplicadas por espaço de referência. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 calcula a informação RT e um valor de erro de Ponto Mais Próximo Interativo (ICP), usando um algoritmo ICP por espaço de referência, a ser referido a partir do espaço alvo de codificação. O dispositivo de codificação de dados tridimensionais 1300 determina que a rotação e a translação não precisam ser realizadas e define o indicador RT para DESLIGADO, quando o valor de erro ICP é inferior a ou igual a um valor fixo predeterminado. Em contraste, o dispositivo de codificação de dados tridimensionais 1300 define o indicador RT para LIGADO e anexa a informação RT à sequência de bits, quando o valor de erro ICP excede o valor fixado acima.
[00540] A Figura 46 é um diagrama que mostra uma sintaxe ilustrativa a ser anexada a um cabeçalho da informação RT e indicador RT. Observe que uma contagem de bit designada para cada sintaxe pode ser decidida com base em uma faixa desta sintaxe. Por exemplo, quando oito espaços de referência são incluídos na lista de referência L0, 3 bits podem ser designados para MaxRefSpc_10. A contagem de bit a ser designada pode ser variável, de acordo com um valor que cada sintaxe pode ter e também pode ser fixa independentemente do valor que cada sintaxe pode ter. Quando a contagem de bit a ser designada é fixa, o dispositivo de codificação de dados tridimensionais 1300 pode anexar essa contagem de bit fixa a outra informação de cabeçalho.
[00541] MaxRefSpc_10 mostrada na Figura 46 indica um número de espaços de referência incluídos na lista de referência L0. RT_flag_10[i] é um indicador RT do espaço de referência i na lista de referência L0. Quando RT_flag_10[i] é igual a 1, a rotação e a translação são aplicadas ao espaço de referência i. Quando RT_flag_10[i] é igual a 0, a rotação e translação não são aplicadas ao espaço de referência i.
[00542] R_10[i] e T_10[i] são informação RT do espaço de referência i na lista de referência L0. R_10[i] é a informação de rotação do espaço de referência i na lista de referência L0. A informação de rotação indica o conteúdo do processo de rotação aplicado e é, por exemplo, uma matriz de rotação ou um "quaternion". T_10[i] é a informação de translação do espaço de referência i na lista de referência L0. A informação de translação indica o conteúdo do processo de translação aplicado e é, por exemplo, um vetor de translação.
[00543] MaxRefSpc_l1 indica um número de espaços de referência incluídos na lista de referência L1. RT_flag_l1[i] é um indicador RT do espaço de referência i na lista de referência L1. Quando RT_flag_l1[i] é igual a 1, a rotação e a translação são aplicadas ao espaço de referência i. Quando RT_flag_l1[i] é igual a 0, a rotação e translação não são aplicadas ao espaço de referência i.
[00544] R_l1[i] e T_l1[i] são, então, a informação RT do espaço de referência i na lista de referência L1. R_l1[i] é a informação de rotação do espaço de referência i na lista de referência L1. A informação de rotação indica o conteúdo do processo de rotação aplicado e é, por exemplo, uma matriz de rotação ou um "quaternion". T_l1[i] é a informação de translação do espaço de referência i na lista de referência L1. A informação de translação indica o conteúdo do processo de translação aplicado e é, por exemplo, um vetor de translação.
[00545] O interprevisor 1311 gera o volume previsto de volume-alvo de codificação usando a informação em um espaço de referência codificado, armazenado na memória de espaço de referência 1310. Como notado acima, antes da geração do volume previsto do volume- alvo de codificação, o interprevisor 1311 calcula a informação RT em um espaço alvo de codificação e um espaço de referência usando um algoritmo ICP, a fim de abordar uma relação de posição geral entre o espaço alvo de codificação e o espaço de referência. O intraprevisor 1311, então, obtém o espaço de referência B pela aplicação de um processo de rotação e translação ao espaço de referência usando a informação RT calculada. Subsequentemente, o interprevisor 1311 gera o volume previsto de volume-alvo de codificação no espaço alvo de codificação usando a informação no espaço de referência B.
[00546] Dessa forma, o interprevisor 1311 pode aperfeiçoar a precisão do volume previsto pela geração do volume previsto usando a informação do espaço de referência, depois de abordar a relação de posição geral entre o espaço alvo de codificação e o espaço de referência, pela aplicação de um processo de rotação e translação ao espaço de referência. É possível se reduzir a quantidade de codificação, visto que é possível se limitar o residual de previsão. Observe que um exemplo foi descrito no qual o ICP é realizado usando o espaço alvo de codificação e o espaço de referência, mas não está necessariamente limitado a isso. Por exemplo, o interprevisor 1311 pode calcular a informação RT pela realização de ICP, usando pelo menos um dentre (i) um espaço alvo de codificação, no qual uma contagem de"voxel" ou nuvem de pontos é reduzida ou (ii) um espaço de referência, no qual uma contagem de"voxel" ou nuvem de pontos é reduzida, a fim de se reduzir a quantidade de processamento.
[00547] Quando o valor de erro ICP, obtido como resultado do ICP, for menor do que um primeiro limite predeterminado, Isto é, quando, por exemplo, a relação de posição entre o espaço alvo de codificação e o espaço de referência for similar, o interprevisor 1311 determina que um processo de rotação e translação não é necessário e o processo de rotação e translação não precisa ser realizado. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 pode controlar o “overhead”, não anexando a informação RT à sequência de bits.
[00548] Quando o valor de erro ICP for maior do que um segundo limite predeterminado, o interprevisor 1311 determina que uma mudança de formato entre os espaços é grande e a intraprevisão pode ser aplicada a todos os volumes do espaço alvo de codificação. Daqui em diante, espaços aos quais a intraprevisão é aplicada serão referidos como intraespaços. O segundo limite é superior ao primeiro limite acima. A presente modalidade não está limitada a ICP e qualquer tipo de método pode ser usado desde que o método calcule a informação RT usando dois conjuntos de"voxel" e dois conjuntos de nuvens de pontos.
[00549] Quando a informação de atributo, por exemplo, informação de formato ou cor, é incluída nos dados tridimensionais, o interprevisor 1311 busca, por exemplo, por um volume cuja informação de atributo, por exemplo, informação de formato ou cor, seja mais similar ao volume- alvo de codificação no espaço de referência, como o volume previsto do volume-alvo de codificação no espaço alvo de codificação. Esse espaço de referência é, por exemplo, um espaço de referência no qual o processo de rotação e translação acima foi realizado. O interprevisor 1311 gera o volume previsto usando o volume (volume de referência) obtido através da busca. A Figura 47 é um diagrama para descrever uma operação de geração do volume previsto. Quando da codificação do volume-alvo de codificação (idx de volume = 0), mostrado na Figura 47, usando a interprevisão, o interprevisor 1311 busca um volume com um menor residual de previsão, que é a diferença entre o volume-alvo de codificação e o volume de referência, enquanto digitaliza, sequencialmente, o volume de referência no espaço de referência. O interprevisor 1311 seleciona o volume com menor residual de previsão como o volume previsto. Os residuais de previsão do volume-alvo de codificação e do volume previsto são codificados através de processos realizados pelo transformador 1303 e processadores subsequentes. O residual de previsão, no presente documento, é uma diferença entre a informação de atributo do volume-alvo de codificação e a informação de atributo do volume previsto. O dispositivo de codificação de dados tridimensionais 1300 anexa, ao cabeçalho e assim por diante, da sequência de bits, o idx de volume, do volume de referência no espaço de referência, como o volume previsto.
[00550] No exemplo mostrado na Figura 47, o volume de referência com idx de volume = 4 do espaço de referência L0R0 é selecionado como o volume previsto do volume-alvo de codificação. Os residuais de previsão do volume-alvo de codificação e volume de referência e o idx de volume de referência = 4 são, então, codificados e anexados à sequência de bits.
[00551] Observe que um exemplo foi descrito, no qual o volume previsto da informação de atributo é gerado, mas o mesmo processo pode ser aplicado ao volume previsto da informação sobre posição.
[00552] O controlador de previsão 1312 controla se codifica o volume-alvo de codificação usando a intraprevisão ou a interprevisão.
Um modo que inclui a intraprevisão e a interprevisão é referido, no presente documento, como um modo de previsão. Por exemplo, o controlador de previsão 1312 calcula o residual de previsão quando o volume-alvo de codificação é previsto usando-se a intraprevisão e o residual de previsão, quando o volume-alvo de codificação é previsto, usando-se a interprevisão, como valores de avaliação e seleciona o modo de previsão cujo valor de avaliação é menor. Observe que o controlador de previsão 1312 pode calcular uma quantidade de codificação real pela aplicação da transformação ortogonal, quantização e codificação por entropia ao residual de previsão da intraprevisão e o residual de previsão da interprevisão e selecionar um modo de previsão usando a quantidade de codificação calculada como o valor de avaliação. A informação de “overhead” (informação de idx de volume de referência, etc.), além do residual de previsão, pode ser adicionada ao valor de avaliação. O controlador de previsão 1312 pode selecionar, continuamente, a intraprevisão quando ficar decidido, antecipadamente, a codificação do espaço alvo de codificação usando-se o intraespaço.
[00553] O codificador por entropia 1313 gera um sinal codificado (sequência de bits codificados) pela codificação de comprimento variável do coeficiente quantizado, que é um registro realizado a partir do quantizador 1304. Para ser específico, o codificador por entropia 1313, por exemplo, binariza o coeficiente quantizado e codifica aritmeticamente o sinal binário obtido.
[00554] Um dispositivo de decodificação de dados tridimensionais, que decodifica o sinal codificado gerado pelo dispositivo de codificação de dados tridimensionais 1300, será descrito em seguida. A Figura 48 é um diagrama de blocos do dispositivo de decodificação de dados tridimensionais 1400, de acordo com a presente modalidade. este dispositivo de decodificação de dados tridimensionais 1400 inclui o decodificador por entropia 1401, o quantizador inverso 1402, o transformador inverso 1403, o somador 1404, a memória de volume de referência 1405, o intraprevisor 1406, a memória de espaço de referência 1407, o interprevisor 1408 e o controlador de previsão 1409.
[00555] O decodificador por entropia 1401 decodifica por comprimento variável o sinal codificado (sequência de bits codificados). Por exemplo, o decodificador por entropia 1401 gera um sinal binário pela decodificação aritmética do sinal codificado e gera um coeficiente quantizado usando o sinal binário gerado.
[00556] O quantizador inverso 1402 gera um coeficiente quantizado inverso pela quantização inversa do coeficiente quantizado, registrado a partir do decodificador por entropia 1401, usando um parâmetro de quantização anexado à sequência de bits e assim por diante.
[00557] O transformador inverso 1403 gera um residual de previsão pela transformação inversa do coeficiente quantizado inverso, registrado a partir do quantizador inverso 1402. Por exemplo, o transformador inverso 1403 gera o residual de previsão pela transformação ortogonalmente inversa do coeficiente quantizado inverso, com base na informação anexada à sequência de bits.
[00558] O somador 1404 soma, para gerar um volume reconstruído, (i) o residual de previsão gerado pelo transformador inverso 1403 a (ii) um volume previsto gerado através da intraprevisão ou interprevisão. Esse volume reconstruído é enviado como dados tridimensionais decodificados e é armazenado na memória de volume de referência 1405 ou memória de espaço de referência 1407.
[00559] O intraprevisor 1406 gera um volume previsto através da intraprevisão usando um volume de referência na memória de volume de referência 1405 e a informação anexada à sequência de bits. Para ser específico, o intraprevisor 1406 obtém a informação do volume vizinho (por exemplo, idx de volume) anexada à sequência de bits e a informação de modo de previsão e gera o volume previsto através de um modo indicado pela informação de modo de previsão, usando um volume vizinho indicado na informação de volume vizinho Observe que as especificidades desses processos são iguais às dos processos mencionados acima realizados pelo intraprevisor 1309, exceto por qual informação é anexada à sequência de bits.
[00560] O interprevisor 1408 gera um volume previsto através da interprevisão, usando um espaço de referência na memória de espaço de referência 1407 e a informação anexada à sequência de bits. Para ser específico, o interprevisor 1408 aplica um processo de rotação e translação ao espaço de referência, usando a informação RT por espaço de referência anexada à sequência de bits e gera o volume previsto usando o espaço de referência girado e transladado. Observe que quando um indicador RT está presente na sequência de bits por espaço de referência, o interprevisor 1408 aplica um processo de rotação e translação ao espaço de referência, de acordo com o indicador RT. Observe que as especificidades desses processos são iguais às dos processos mencionados acima realizados pelo interprevisor 1311, exceto pela informação anexada à sequência de bits.
[00561] O controlador de previsão 1409 controla se decodifica um volume-alvo de decodificação usando intraprevisão ou interprevisão. Por exemplo, o controlador de previsão 1409 seleciona a intraprevisão ou interprevisão, de acordo com a informação que é anexada à sequência de bits e indica o modo de previsão a ser usado. Observe que o controlador de previsão 1409 pode selecionar, continuamente, a intraprevisão quando ficar decidido, antecipadamente, o espaço alvo de decodificação usando o intraespaço.
[00562] Daqui em diante, variações da presente modalidade serão descritas. Na presente modalidade, um exemplo foi descrito, no qual a rotação e translação são aplicadas a unidades de espaços, mas a rotação e translação podem também ser aplicadas a unidades menores.
Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 pode dividir um espaço em subespaços e aplicar a rotação e translação a unidades de subespaços. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 gera informação RT por subespaço e anexa a informação RT gerada a um cabeçalho e similar, da sequência de bits. O dispositivo de codificação de dados tridimensionais 1300 podem aplicar a rotação e translação a unidades de volumes, que é uma unidade de codificação. Neste caso, o dispositivo de codificação de dados tridimensionais 1300 gera a informação RT em unidades de volumes codificados e anexa a informação RT gerada a um cabeçalho e assim por diante, da sequência de bits. O acima também pode ser combinado. Em outras palavras, o dispositivo de codificação de dados tridimensionais 1300 pode aplicar a rotação e translação em unidades grandes e, subsequentemente, aplicar a rotação e translação a unidades pequenas. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 pode aplicar rotação e translação a unidades de espaços e também pode aplicar rotações e translações diferentes a cada um dentre uma pluralidade de volumes incluídos nos espaços obtidos.
[00563] Na presente modalidade, um exemplo foi descrito no qual a rotação e translação são aplicadas ao espaço de referência, mas não são necessariamente limitadas a isso. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 pode aplicar um processo de escalonamento e um tamanho dos dados tridimensionais. O dispositivo de codificação de dados tridimensionais 1300 também pode aplicar um ou dois dentre rotação, translação e escalonamento. Quando da aplicação de processos a múltiplos estágios e diferentes unidades, conforme mencionado acima, um tipo de processo aplicado a cada unidade pode diferir. Por exemplo, a rotação e translação podem ser aplicadas a unidades de espaços e a translação pode ser aplicada a unidades de volumes.
[00564] Observe que essas variações também são aplicáveis ao dispositivo de decodificação de dados tridimensionais 1400.
[00565] Conforme mencionado acima, o dispositivo de codificação de dados tridimensionais 1300, de acordo com a presente modalidade, realiza os processos em seguida. A Figura 48 é um fluxograma do processo de interprevisão realizado pelo dispositivo de codificação de dados tridimensionais 1300.
[00566] O dispositivo de codificação de dados tridimensionais 1300 gera a informação sobre posição prevista (por exemplo, volume previsto) usando a informação sobre posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais (por exemplo, espaço de referência) associados a um tempo diferente de um tempo associado aos dados tridimensionais atuais (por exemplo, espaço alvo de codificação) (S1301). Para ser mais específico, o dispositivo de codificação de dados tridimensionais 1300 gera a informação sobre posição prevista pela aplicação de um processo de rotação e translação à informação sobre posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais.
[00567] Observe que o dispositivo de codificação de dados tridimensionais 1300 pode realizar um processo de rotação e translação usando uma primeira unidade (por exemplo, espaços) e pode realizar a geração da informação sobre posição prevista usando uma segunda unidade (por exemplo, volumes), que é menor do que a primeira unidade. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 busca por um volume dentre uma pluralidade de volumes incluídos no espaço de referência girado e transladado, cuja informação sobre posição difere menos da informação sobre posição do volume-alvo de codificação incluído no espaço alvo de codificação. Observe que o dispositivo de codificação de dados tridimensionais 1300 pode realizar o processo de rotação e translação e a geração da informação sobre posição prevista na mesma unidade.
[00568] O dispositivo de codificação de dados tridimensionais 1300 pode gerar a informação sobre posição prevista pela aplicação (i) de um primeiro processo de rotação e translação para a informação sobre posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais e (ii) um segundo processo de rotação e translação à informação sobre posição nos pontos tridimensionais obtidos através do primeiro processo de rotação e translação, o primeiro processo de rotação e translação usando uma primeira unidade (por exemplo, espaços) e o segundo processo de rotação e translação usando uma segunda unidade (por exemplo, volumes), que é menor do que a primeira unidade.
[00569] Por exemplo, conforme mostrado na Figura 41, a informação sobre posição dos pontos tridimensionais e a informação sobre posição prevista são representadas usando-se uma estrutura tipo "octree". Por exemplo, a informação sobre posição dos pontos tridimensionais e a informação sobre posição prevista são expressas em uma ordem de digitalização que prioriza uma largura sobre uma profundidade na estrutura tipo "octree". Por exemplo, a informação sobre posição dos pontos tridimensionais e a informação sobre posição prevista são expressas em uma ordem de digitalização que prioriza uma profundidade sobre uma largura na estrutura tipo "octree".
[00570] Conforme mostrado na Figura 46, o dispositivo de codificação de dados tridimensionais 1300 codifica um indicador RT que indica se aplica o processo de rotação e translação à informação sobre posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais. Em outras palavras, o dispositivo de codificação de dados tridimensionais 1300 gera o sinal codificado (sequência de bits codificada) que inclui o indicador RT. O dispositivo de codificação de dados tridimensionais 1300 codifica a informação RT que indica o conteúdo do processo de rotação e translação. Em outras palavras, o dispositivo de codificação de dados tridimensionais 1300 gera o sinal codificado (sequência de bits codificada) que inclui a informação RT. Observe que o dispositivo de codificação de dados tridimensionais 1300 pode codificar a informação RT quando o indicador RT indicar a aplicação do processo de rotação e translação e não precisa codificar a informação RT quando o indicador RT indicar a não aplicação do processo de rotação e translação.
[00571] Os dados tridimensionais incluem, por exemplo, a informação sobre posição dos pontos tridimensionais e a informação de atributo (informação sobre cor, etc.) de cada ponto tridimensional. O dispositivo de codificação de dados tridimensionais 1300 gera a informação do atributo previsto usando a informação de atributo dos pontos tridimensionais incluídos nos dados de referência tridimensional (S1302).
[00572] O dispositivo de codificação de dados tridimensionais 1300, em seguida, codifica a informação sobre posição dos pontos tridimensionais incluídos nos dados tridimensionais atuais, usando a informação da posição prevista. Por exemplo, Conforme mostrado na Figura 38, o dispositivo de codificação de dados tridimensionais 1300 calcula a informação sobre posição diferencial, a informação sobre posição diferencial sendo uma diferença entre a informação sobre posição prevista e a informação sobre posição dos pontos tridimensionais incluídos nos dados tridimensionais atuais (S1303).
[00573] O dispositivo de codificação de dados tridimensionais 1300 codifica a informação de atributo dos pontos tridimensionais incluídos nos dados tridimensionais atuais, usando a informação de atributo prevista. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 calcula a informação do atributo diferencial, a informação do atributo diferencial sendo uma diferença entre a informação de atributo previsto e a informação de atributo nos pontos tridimensionais incluídos nos dados tridimensionais atuais (S1304). O dispositivo de codificação de dados tridimensionais 1300, em seguida, realiza a transformação e quantização da informação de atributo diferencial calculado (S1305).
[00574] Por fim, o dispositivo de codificação de dados tridimensionais 1300 codifica (por exemplo, codifica por entropia) a informação sobre posição diferencial e a informação de atributo diferencial quantizado (S1036). Em outras palavras, o dispositivo de codificação de dados tridimensionais 1300 gera o sinal codificado (sequência de bits codificados), que inclui a informação sobre posição diferencial e a informação de atributo diferencial.
[00575] Observe que quando a informação de atributo não está incluída nos dados tridimensionais, o dispositivo de codificação de dados tridimensionais 1300 não precisa realizar as etapas S1302, S1304 e S1305. O dispositivo de codificação de dados tridimensionais 1300 também pode realizar apenas uma dentre a codificação da informação sobre posição dos pontos tridimensionais e a codificação da informação de atributo dos pontos tridimensionais.
[00576] Uma ordem dos processos, mostrada na Figura 49, é meramente um exemplo e não está limitada a isso. Por exemplo, visto que os processos, com relação à informação sobre posição (S1301 e S1303) e os processos, com relação à informação de atributo (S1302, S1304 e S1305), são separados um do outro, os mesmos podem ser realizados em uma ordem de escolha e uma parte do mesmo também pode ser realizada em paralelo.
[00577] Com o acima, o dispositivo de codificação de dados tridimensionais 1300, de acordo com a presente modalidade, gera a informação sobre posição prevista usando a informação sobre posição dos pontos tridimensionais incluídos nos dados de referência tridimensional com um tempo diferente de um tempo associado aos dados tridimensionais atuais; e codifica a informação sobre posição diferencial, que é uma diferença entre a informação sobre posição prevista e a informação sobre posição dos pontos tridimensionais incluídos nos dados tridimensionais atuais. Isto possibilita o aperfeiçoamento da eficiência de codificação, visto que é possível se reduzir a quantidade de dados do sinal codificado.
[00578] O dispositivo de codificação de dados tridimensionais 1300, de acordo com a presente modalidade, gera a informação de atributo prevista usando informação de atributo dos pontos tridimensionais incluídos nos dados de referência tridimensionais; e codifica a informação de atributo diferencial, que é uma diferença entre a informação de atributo prevista e a informação de atributo dos pontos tridimensionais incluídos nos dados tridimensionais atuais. Isto possibilita o aperfeiçoamento da eficiência de codificação, visto que é possível se reduzir a quantidade de dados do sinal codificado.
[00579] Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 inclui um processador e uma memória. O processador usa a memória para realizar os processos acima.
[00580] A Figura 48 é um fluxograma do processo de interprevisão realizado pelo dispositivo de decodificação de dados tridimensionais
1400.
[00581] O dispositivo de decodificação de dados tridimensionais 1400 decodifica (por exemplo, decodifica por entropia) a informação sobre posição diferencial e a informação de atributo diferencial a partir do sinal codificado (sequência de bits codificados) (S1401).
[00582] O dispositivo de decodificação de dados tridimensionais 1400 decodifica, a partir do sinal codificado, um indicador RT que indica se aplica o processo de rotação e translação à informação sobre posição dos pontos tridimensionais incluídos nos dados de referência tridimensionais. O dispositivo de decodificação de dados tridimensionais 1400 codifica a informação RT que indica o conteúdo do processo de rotação e translação. Observe que o dispositivo de decodificação de dados tridimensionais 1400 pode decodificar a informação RT quando o indicador RT indicar a aplicação do processo de rotação e translação e não precisa decodificar a informação RT quando o indicador RT indicar a não aplicação do processo de rotação e translação.
[00583] O dispositivo de decodificação de dados tridimensionais 1400, em seguida, realiza a transformação inversa e a quantização inversa na informação de atributo diferencial decodificado (S1402).
[00584] O dispositivo de decodificação de dados tridimensionais 1400, em seguida, gera a informação sobre posição prevista (por exemplo, volume previsto) usando a informação sobre posição sobre os pontos tridimensionais incluídos nos dados de referência tridimensionais (por exemplo, espaço de referência), associados a um tempo diferente de um tempo associado aos dados tridimensionais atuais (por exemplo, espaço alvo de decodificação) (S1403). Para ser específico, o dispositivo de decodificação de dados tridimensionais 1400 gera a informação sobre posição prevista pela aplicação de um processo de rotação e translação à informação sobre posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais.
[00585] Mais especificamente, quando o indicador RT indica a aplicação do processo de rotação e translação, o dispositivo de decodificação de dados tridimensionais 1400 aplica o processo de rotação e translação à informação sobre posição, nos pontos tridimensionais incluídos nos dados de referência tridimensionais indicados na informação RT. Em contraste, quando o indicador RT indica a não aplicação do processo de rotação e translação, o dispositivo de decodificação de dados tridimensionais 1400 não aplica o processo de rotação e translação à informação sobre posição, nos pontos tridimensionais incluídos nos dados de referência tridimensionais.
[00586] Observe que o dispositivo de decodificação de dados tridimensionais 1400 pode realizar o processo de rotação e translação usando uma primeira unidade (por exemplo, espaços) e pode realizar a geração da informação sobre posição prevista usando uma segunda unidade (por exemplo, volumes), que é menor do que a primeira unidade. Observe que o dispositivo de decodificação de dados tridimensionais 1400 pode realizar o processo de rotação e translação e a geração da informação sobre posição prevista na mesma unidade.
[00587] O dispositivo de decodificação de dados tridimensionais 1400 pode gerar a informação sobre posição prevista pela aplicação (i) de um primeiro processo de rotação e translação à informação sobre posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais e (ii) um segundo processo de rotação e translação à informação sobre posição, nos pontos tridimensionais obtidos através do primeiro processo de rotação e translação, o primeiro processo de rotação e translação usando uma primeira unidade (por exemplo, espaços) e o segundo processo de rotação e translação usando uma segunda unidade (por exemplo, volumes), que é menor do que a primeira unidade.
[00588] Por exemplo, conforme mostrado na Figura 41, a informação sobre posição sobre os pontos tridimensionais e a informação sobre posição prevista são representadas usando-se uma estrutura tipo "octree". Por exemplo, a informação sobre posição sobre os pontos tridimensionais e a informação sobre posição prevista são expressas em uma ordem de digitalização que prioriza uma largura sobre uma profundidade na estrutura tipo "octree". Por exemplo, a informação sobre posição sobre os pontos tridimensionais e a informação sobre posição prevista são expressas em uma ordem de digitalização que prioriza uma profundidade sobre uma largura na estrutura tipo "octree".
[00589] O dispositivo de decodificação de dados tridimensionais 1400 gera a informação de atributo prevista usando a informação de atributo dos pontos tridimensionais incluídos nos dados de referência tridimensionais (S1404).
[00590] O dispositivo de decodificação de dados tridimensionais 1400, em seguida, restaura a informação sobre posição sobre os pontos tridimensionais incluídos nos dados tridimensionais atuais, pela decodificação da informação sobre posição codificada, incluída em um sinal codificado, usando a informação sobre posição prevista. A informação sobre posição codificada, no presente documento, é a informação sobre posição diferencial. O dispositivo de decodificação de dados tridimensionais 1400 restaura a informação sobre posição sobre os pontos tridimensionais incluídos nos dados tridimensionais atuais, pela adição da informação sobre posição diferencial à informação sobre posição prevista (S1405).
[00591] O dispositivo de decodificação de dados tridimensionais 1400 restaura a informação de atributo dos pontos tridimensionais incluídos nos dados tridimensionais atuais, pela decodificação da informação de atributo codificada, incluída em um sinal codificado, usando a informação de atributo prevista. A informação de atributo codificada, no presente documento, é a informação sobre posição diferencial. O dispositivo de decodificação de dados tridimensionais 1400 restaura a informação de atributo sobre os pontos tridimensionais incluídos nos dados tridimensionais atuais, pela adição da informação de atributo diferencial à informação de atributo prevista (S1406).
[00592] Observe que quando a informação de atributo não está incluída nos dados tridimensionais, o dispositivo de decodificação de dados tridimensionais 1400 não precisa realizar as etapas S1402, S1404 e S1406. O dispositivo de decodificação de dados tridimensionais 1400 também pode realizar apenas uma dentre a decodificação da informação sobre posição nos pontos tridimensionais e a decodificação da informação de atributo dos pontos tridimensionais.
[00593] Uma ordem dos processos mostrados na Figura 50 é meramente um exemplo e não está limitada a isso. Por exemplo, visto que os processos, com relação à informação sobre posição (S1403 e S1405) e os processos, com relação à informação de atributo (S1402, S1404 e S1406), são separados um do outro, os mesmos podem ser realizados em uma ordem de escolha e uma parte dos mesmos também pode ser realizada em paralelo. MODALIDADE 8
[00594] Na presente modalidade, a codificação por entropia adaptativa (codificação aritmética) realizada nos códigos de ocupação de uma "octree" será descrita.
[00595] A Figura 51 é um diagrama que mostra um exemplo de uma estrutura "quadtree". A Figura 52 é um diagrama que mostra os códigos de ocupação da estrutura de árvore mostrada na Figura 51. A Figura 53 é um diagrama que mostra de forma esquemática uma operação realizada por um dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade.
[00596] O dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade, codifica por entropia um código de ocupação de 8 bits em uma "octree". O dispositivo de codificação de dados tridimensionais também atualiza uma tabela de codificação em um processo de codificação por entropia para o código de ocupação. Ainda, o dispositivo de codificação de dados tridimensionais não usa uma única tabela de codificação, mas usa uma tabela de codificação adaptativa a fim de usar a informação sobre similaridade dos pontos tridimensionais. Em outras palavras, o dispositivo de codificação de dados tridimensionais usa as tabelas de codificação.
[00597] A informação sobre similaridade é, por exemplo, informação sobre geometria de um ponto tridimensional, informação de estrutura de uma "octree" ou informação de atributo de um ponto tridimensional.
[00598] Deve ser observado que apesar de a "quadtree" ser mostrada como o exemplo nas Figuras 51 a 53, o mesmo método pode ser aplicado a uma árvore N-ária, tal como uma árvore binária, uma "octree" e uma "hexadecatree". Por exemplo, o dispositivo de codificação de dados tridimensionais codifica por entropia um código de ocupação de 8 bits no caso de uma "octree", um código de ocupação de 4 bits no caso de uma "quadtree" e um código de ocupação de 16 bits no caso de uma "hexadecatree", usando uma tabela adaptativa (também referida como uma tabela de codificação).
[00599] Em seguida é descrito um processo de codificação por entropia adaptativo usando informação sobre geometria de um ponto tridimensional.
[00600] Quando as geometrias locais dos dois nós em uma estrutura de árvore são similares uma à outra, existe uma chance de os estados de ocupação (isso é, estados indicando, cada um, se um ponto tridimensional é incluído) de nós criança serem similares uma o outro. Como resultado disso, o dispositivo de codificação de dados tridimensionais realiza o agrupamento usando uma geometria local de um nó pai. Isto permite que o dispositivo de codificação de dados tridimensionais agrupe os estados de ocupação dos nós criança e use uma tabela de codificação diferente para cada grupo. De acordo, é possível se aperfeiçoar a eficiência de codificação por entropia.
[00601] A Figura 54 é um diagrama que mostra um exemplo da informação sobre geometria. A informação sobre geometria inclui a informação que indica se cada um dos nós vizinhos de um nó atual está ocupado (isso é, inclui um ponto tridimensional). Por exemplo, o dispositivo de codificação de dados tridimensionais calcula uma geometria local do nó atual usando a informação que indica se um nó vizinho inclui um ponto tridimensional (está ocupado ou não ocupado). Um nó vizinho, por exemplo, é um nó localizado espacialmente em torno de um nó atual ou um nó localizado na mesma posição em um momento diferente que o nó atual ou localizado espacialmente em torno da posição.
[00602] Na Figura 54, um cubo tracejado indica um nó atual. Um cubo branco é um nó vizinho e indica um nó que inclui um ponto tridimensional. Na Figura 54, o padrão de geometria indicado em (2) é obtido pela rotação do padrão de geometria indicado em (1). De acordo, o dispositivo de codificação de dados tridimensionais determina que esses padrões de geometria têm uma alta similaridade de geometria e codifica por entropia os padrões de geometria usando a mesma tabela de codificação. Ainda, o dispositivo de codificação de dados tridimensionais determina que os padrões e geometria indicados em (3) e (4) têm uma baixa similaridade de geometria e codifica por entropia os padrões de geometria usando outras tabelas de codificação.
[00603] A Figura 55 é um diagrama que mostra um exemplo de códigos de ocupação e nós atuais nos padrões de geometria de (1) a (4) mostrados na Figura 54 e tabelas de codificação usadas para a codificação por entropia. Conforme mostrado acima, o dispositivo de codificação de dados tridimensionais determina que os padrões de geometria de (1) e (2) são incluídos no mesmo grupo de geometria e usa a mesma tabela de codificação A para os padrões de geometria de (1) e (2). O dispositivo de codificação de dados tridimensionais usa a tabela de codificação B e a tabela de codificação C para os padrões de geometria de (3) e (4), respectivamente.
[00604] Conforme mostrado na Figura 55, existe um caso onde os códigos de ocupação dos nós atuais nos padrões de geometria de (1) e (2) incluídos no mesmo grupo de geometria são idênticos um ao outro.
[00605] Em seguida, é descrito um processo de codificação por entropia adaptativo usando a informação de estrutura de uma estrutura de árvore. Por exemplo, a informação de estrutura inclui a informação que indica uma camada à qual um nó atual pertence.
[00606] A Figura 56 é um diagrama que mostra um exemplo de uma estrutura de árvore. Em termos gerais, um formato local de um objeto depende de um critério de busca. Por exemplo, uma estrutura de árvore tende a ser mais esparsa em uma camada inferior do que em uma camada superior. De acordo, o dispositivo de codificação de dados tridimensionais usa diferentes tabelas de codificação para as camadas superiores e camadas inferiores, conforme mostrado na Figura 56, o que possibilita o aperfeiçoamento da eficiência de codificação por entropia.
[00607] Em outras palavras, quando o dispositivo de codificação de dados tridimensionais codifica um código de ocupação de cada camada, o dispositivo de codificação de dados tridimensionais pode usar uma tabela de codificação diferente para cada camada. Por exemplo, quando o dispositivo de codificação de dados tridimensionais codifica um código de ocupação da camada N (N = 0 a 6), o dispositivo de codificação de dados tridimensionais pode realizar a codificação por entropia na estrutura de árvore mostrada na Figura 56 usando uma tabela de codificação para a camada N. Visto que Isto permite que o dispositivo de codificação de dados tridimensionais selecione uma tabela de codificação de acordo com um padrão de surgimento de um código de ocupação de cada camada, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação.
[00608] Além disso, conforme mostrado na Figura 56, o dispositivo de codificação de dados tridimensionais pode usar a tabela de codificação A para os códigos de ocupação das camadas de 0 a 2 e pode usar a tabela de codificação B para os códigos de ocupação das camadas de 3 a 6. Visto que isso permite que o dispositivo de codificação de dados tridimensionais selecione uma tabela de codificação de acordo com um padrão de surgimento do código de ocupação para cada grupo de camadas, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação. O dispositivo de codificação de dados tridimensionais pode anexar a informação da tabela de codificação usada para cada camada a um cabeçalho de uma sequência de bits. Alternativamente, a tabela de codificação usada para cada camada pode ser predefinida pelos padrões, etc.
[00609] Em seguida, é descrito um processo de codificação por entropia adaptativo usando informação de atributo (informação de propriedade) de um ponto tridimensional. Por exemplo, a informação de atributo inclui a informação sobre um objeto que inclui um nó atual ou informação sobre um vetor normal do nó atual.
[00610] É possível se agrupar os pontos tridimensionais que tem uma geometria similar, usando partes da informação de atributo dos pontos tridimensionais. Por exemplo, um vetor normal, indicando uma direção de cada um dos pontos tridimensionais, pode ser usado como informação de atributo comum dos pontos tridimensionais. É possível se encontrar uma geometria referente a um código de ocupação similar em uma estrutura de árvore pelo uso do vetor normal.
[00611] Além disso, uma cor ou um grau de reflexo (refletância) pode ser usado como informação de atributo. Por exemplo, o dispositivo de codificação de dados tridimensionais agrupa os pontos tridimensionais que tem uma geometria similar, usando cores ou refletâncias dos pontos tridimensionais e realiza um processo, tal como a comutação entre as tabelas de codificação para cada um dos grupos.
[00612] A Figura 57 é um diagrama para descrever a comutação entre as tabelas de codificação com base em um vetor normal. Conforme mostrado na Figura 57, quando os grupos de vetores, aos quais os vetores normais dos nós atuais pertencem, são diferentes, tabelas de codificação diferentes são usadas. Por exemplo, um vetor normal incluído em uma faixa predeterminada é categorizado em um grupo de vetores normais.
[00613] Quando objetos pertencem a categorias diferentes, existe uma possibilidade muito grande de os códigos de ocupação serem diferentes. De acordo, o dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação de acordo com uma categoria de um objeto ao qual um nó atual pertence. A Figura 58 é um diagrama para descrever a comutação entre as tabelas de codificação com base em uma categoria de um objeto. Conforme mostrado na Figura 58, quando os objetos pertencem a categorias diferentes, tabelas de codificação diferentes são usadas.
[00614] Em seguida é descrito um exemplo de uma estrutura de uma sequência de bits de acordo com a presente modalidade. A Figura 59 é um diagrama que mostra um exemplo de uma estrutura de uma sequência de bits gerada pelo dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade. Conforme mostrado na Figura 59, a sequência de bits inclui um grupo de tabelas de codificação, índices de tabela e códigos de ocupação codificados. O grupo de tabelas de codificação inclui tabelas de codificação.
[00615] Um índice de tabela indica uma tabela de codificação usada para a codificação por entropia de um código de ocupação codificado subsequente. Um código de ocupação codificado é um código de ocupação que foi codificado por entropia. Conforme mostrado na Figura 59, a sequência de bits também inclui combinações de um índice de tabela e um código de ocupação codificado.
[00616] Por exemplo, no exemplo mostrado na Figura 59, o código de ocupação codificado 0 são dados que foram codificados por entropia usando um modelo de contexto (também denominado como um contexto) indicado pelo índice de tabela 0. O código de ocupação codificado 1 são dados que foram codificados por entropia usando um contexto indicado pelo índice de tabela 1. Um contexto para a codificação do código de ocupação codificado 0 pode ser predefinido por padrões, etc. e um dispositivo de decodificação de dados tridimensionais pode usar esse contexto quando da decodificação do código de ocupação codificado 0. Visto que isso elimina a necessidade de se anexar o índice de tabela à sequência de bits, é possível se reduzir o “overhead”.
[00617] Além disso, o dispositivo de codificação de dados tridimensionais pode anexar, ao cabeçalho, a informação para reconfigurar cada contexto.
[00618] O dispositivo de codificação de dados tridimensionais determina uma tabela de codificação usando informação sobre geometria, informação de estrutura ou informação de atributo de um nó atual e codifica um código de ocupação usando a tabela de codificação determinada. O dispositivo de codificação de dados tridimensionais anexa um resultado da codificação e informação (por exemplo, um índice de tabela) da tabela de codificação usada para a codificação a uma sequência de bits e transmite a sequência de bits para o dispositivo de decodificação de dados tridimensionais. Isto permite que o dispositivo de decodificação de dados tridimensionais decodifique o código de ocupação usando a informação da tabela de codificação anexada ao cabeçalho.
[00619] Além disso, o dispositivo de codificação de dados tridimensionais não precisa anexar a informação de uma tabela de codificação usada par codificação a uma sequência de bits e o dispositivo de decodificação de dados tridimensionais pode determinar uma tabela de codificação usando a informação sobre geometria, a informação de estrutura ou informação de atributo de um nó atual que foi decodificado, usando o mesmo método que o dispositivo de codificação de dados tridimensionais e decodificar um código de ocupação usando a tabela de codificação determinada. Visto que isso elimina a necessidade de se anexar a informação da tabela de codificação à sequência de bits, é possível se reduzir o “overhead”.
[00620] As Figuras 60 e 61 são, cada uma, um diagrama que mostra um exemplo de uma tabela de codificação. Conforme mostrado nas Figuras 60 e 61, uma tabela de codificação ilustra, para cada valor de um código de ocupação de 8 bits, um modelo de contexto e um tipo de modelo de contexto associado ao valor.
[00621] Como com a tabela de codificação mostrada na Figura 60, o mesmo modelo de contexto (contexto) pode ser aplicado aos códigos de ocupação. Ainda, um modelo de contexto diferente pode ser designado para cada código de ocupação. Visto que isso permite a designação de um modelo de contexto de acordo com uma probabilidade de surgimento de um código de ocupação, é possível se aperfeiçoar a eficiência de codificação.
[00622] Um tipo de modelo de contexto indica, por exemplo, se um modelo de contexto é um modelo de contexto que atualiza uma tabela de probabilidade de acordo com uma frequência de surgimento de um código de ocupação ou é um modelo de contexto que tem uma tabela de probabilidades fixa.
[00623] Em seguida, é fornecido outro exemplo de uma sequência de bits e uma tabela de codificação. A Figura 62 é um diagrama que mostra uma variação de uma estrutura de uma sequência de bits. Conforme mostrado na Figura 62, a sequência de bits inclui um grupo de tabelas de codificação e um código de ocupação codificado. O grupo de tabelas de codificação inclui as tabelas de codificação.
[00624] As Figuras 63 e 64 são, cada uma, um diagrama que mostra um exemplo de uma tabela de codificação. Conforme mostrado nas Figuras 63 e 64, uma tabela de codificação ilustra, para cada 1 bit incluído em um código de ocupação, um modelo de contexto e um tipo de modelo de contexto associado ao 1 bit.
[00625] A Figura 65 é um diagrama que mostra um exemplo de uma relação entre um código de ocupação e números de bit do código de ocupação
[00626] Conforme mencionado acima, o dispositivo de codificação de dados tridimensionais pode lidar com um código de ocupação como dados binários, designar um modelo de contexto diferente para cada bit e codificar por entropia o código de ocupação. Visto que isso permite a designação de um modelo de contexto de acordo com a probabilidade de surgimento de cada bit do código de ocupação, é possível se aperfeiçoar a eficiência de codificação.
[00627] Especificamente, cada bit do código de ocupação corresponde a um sub-bloco obtido pela divisão de um bloco espacial correspondente a um nó atual. De acordo, quando sub-blocos na mesma posição espacial em um bloco têm a mesma tendência e possível se aperfeiçoar a eficiência de codificação. Por exemplo, quando uma superfície do solo ou uma superfície da estrada cruza um bloco, em uma "octree", quatro blocos inferiores incluem pontos tridimensionais e quatro blocos superiores não incluem qualquer ponto tridimensional. Ainda, o mesmo padrão aparece nos blocos dispostos horizontalmente. De acordo, é possível se aperfeiçoar a eficiência de codificação pela comutação entre contextos para cada bit, conforme descrito acima.
[00628] Um modelo de contexto que atualiza uma tabela de probabilidade de acordo com uma frequência de surgimento de cada bit de um código de ocupação, também pode ser usado. Ainda, um modelo de contexto que tem uma tabela de probabilidade fixa pode ser usado.
[00629] Em seguida, são descritos os procedimentos para um processo de codificação de dados tridimensionais e um processo de decodificação de dados tridimensionais de acordo com a presente modalidade.
[00630] A Figura 66 é um fluxograma de um processo de codificação de dados tridimensionais que inclui um processo de codificação por entropia adaptativo usando a informação sobre geometria.
[00631] Em um processo de decomposição, uma "octree" é gerada a partir de uma caixa delimitadora inicial dos pontos tridimensionais. Uma caixa delimitadora é dividida de acordo com a posição de um ponto tridimensional na caixa delimitadora. Especificamente, um subespaço não vazio é ainda dividido. Em seguida, a informação, que indica se um subespaço inclui um ponto tridimensional, é codificada em um código de ocupação. Deve ser observado que o mesmo processo é realizado nos processos mostrados nas Figuras 68 e 70.
[00632] Primeiro, o dispositivo de codificação de dados tridimensionais obtém os pontos tridimensionais registrados (S1901). Em seguida, o dispositivo de codificação de dados tridimensionais determina se um processo de decomposição por comprimento unitário foi completado (S1902).
[00633] Quando o processo de decomposição por comprimento unitário não tiver sido completado (NÃO em S1902), o dispositivo de codificação de dados tridimensionais gera uma "octree" pela realização do processo de decomposição em um nó atual (S1903).
[00634] Então, o dispositivo de codificação de dados tridimensionais obtém a informação sobre geometria (S1904) e seleciona uma tabela de codificação com base na informação sobre geometria obtida (S1905). No presente documento, conforme mencionado acima, a informação sobre geometria é a informação que indica, por exemplo, uma geometria dos estados de ocupação dos blocos vizinhos de um nó atual.
[00635] Depois disso, o dispositivo de codificação de dados tridimensionais codifica por entropia um código de ocupação do nó atual usando a tabela de codificação selecionada (S1906).
[00636] As etapas de S1903 a S1906 são repetidas até que o processo de decomposição por comprimento unitário seja completado. Quando o processo de decomposição por comprimento unitário está completado (SIM em S1902), o dispositivo de codificação de dados tridimensionais envia uma sequência de bits que inclui a informação gerada (S1907).
[00637] O dispositivo de codificação de dados tridimensionais determina uma tabela de codificação usando a informação sobre geometria, a informação de estrutura ou a informação de atributo de um nó atual e codifica uma sequência de bits de um código de ocupação usando a tabela de codificação determinada. O dispositivo de codificação de dados tridimensionais anexa um resultado da codificação e informação (por exemplo, um índice de tabela) da tabela de codificação usada para a codificação a uma sequência de bits e transmite a sequência de bits para o dispositivo de decodificação de dados tridimensionais. Isto permite que o dispositivo de decodificação de dados tridimensionais decodifique o código de ocupação usando a informação da tabela de codificação anexada ao cabeçalho.
[00638] Além disso, o dispositivo de codificação de dados tridimensionais não precisa anexar a informação de uma tabela de codificação, usada para codificação, a uma sequência de bits e o dispositivo de decodificação de dados tridimensionais pode determinar uma tabela de codificação usando informação sobre geometria, informação de estrutura ou informação de atributo de um nó atual que foi decodificado, usando o mesmo método que o dispositivo de codificação de dados tridimensionais e decodificar um código de ocupação usando a tabela de codificação determinada. Visto que isso elimina a necessidade de se anexar a informação da tabela de codificação à sequência de bits, é possível se reduzir o “overhead”.
[00639] A Figura 67 é um fluxograma de um processo de decodificação de dados tridimensionais que inclui um processo de decodificação por entropia adaptativo usando a informação sobre geometria.
[00640] Um processo de decomposição incluído no processo de decodificação é similar ao processo de decomposição incluído no processo de codificação descrito acima. Diferindo no ponto em seguida. O dispositivo de decodificação de dados tridimensionais divide uma caixa delimitadora inicial usando um código de ocupação decodificado. Quando o dispositivo de decodificação de dados tridimensionais completa um processo por comprimento unitário, o dispositivo de decodificação de dados tridimensionais armazena a posição de uma caixa delimitadora como a posição de um ponto tridimensional. Deve ser observado que o mesmo processo é realizado nos processos mostrados nas Figuras 69 e 71.
[00641] Primeiro, o dispositivo de decodificação de dados tridimensionais obtém uma sequência de bits registrada (S1911). Em seguida, o dispositivo de decodificação de dados tridimensionais determina se um processo de decomposição por comprimento unitário está completado (S1912).
[00642] Quando o processo de decomposição por comprimento unitário não está completado (NÃO em S1912), o dispositivo de decodificação de dados tridimensionais gera uma "octree" pela realização do processo de decomposição em um nó atual (S1913).
[00643] Então, o dispositivo de decodificação de dados tridimensionais obtém a informação sobre geometria (S1914) e seleciona uma tabela de codificação com base na informação sobre geometria obtida (S1915). No presente documento, conforme mencionado acima, a informação sobre geometria é a informação que indica, por exemplo, uma geometria dos estados de ocupação dos blocos vizinhos de um nó atual.
[00644] Depois disso, o dispositivo de decodificação de dados tridimensionais decodifica por entropia um código de ocupação do nó atual usando a tabela de codificação selecionada (S1916).
[00645] As etapas S1913 a S1916 são repetidas até que o processo de decomposição por comprimento unitário esteja completado. Quando o processo de decomposição por comprimento unitário é completado (SIM em S1912), o dispositivo de decodificação de dados tridimensionais envia os pontos tridimensionais (S1917).
[00646] A Figura 68 é um fluxograma de um processo de codificação de dados tridimensionais que inclui um processo de codificação por entropia adaptativo usando a informação de estrutura.
[00647] Primeiro, o dispositivo de codificação de dados tridimensionais obtém os pontos tridimensionais registrados (S1921). Em seguida, o dispositivo de codificação de dados tridimensionais determina se um processo de decomposição por comprimento unitário foi completado (S1922).
[00648] Quando o processo de decomposição por comprimento unitário não tiver sido completado (NÃO em S1922), o dispositivo de codificação de dados tridimensionais gera uma "octree" pela realização do processo de decomposição em um nó atual (S1923).
[00649] Então, o dispositivo de codificação de dados tridimensionais obtém a informação de estrutura (S1924) e seleciona uma tabela de codificação com base na informação de estrutura obtida (S1925). No presente documento, conforme mencionado acima, a informação de estrutura é a informação que indica, por exemplo, uma camada à qual um nó atual pertence.
[00650] Depois disso, o dispositivo de codificação de dados tridimensionais codifica por entropia um código de ocupação do nó atual usando a tabela de codificação selecionada (S1926).
[00651] As etapas S1923 a S1926 são repetidas até que o processo de decomposição por comprimento unitário seja completado. Quando o processo de decomposição por comprimento unitário é completado (SIM em S1922), o dispositivo de codificação de dados tridimensionais envia uma sequência de bits que inclui a informação gerada (S1927).
[00652] A Figura 69 é um fluxograma de um processo de decodificação de dados tridimensionais que inclui um processo de decodificação por entropia adaptativa usando a informação de estrutura.
[00653] Primeiro, o dispositivo de decodificação de dados tridimensionais obtém uma sequência de bits registrada (S1931). Em seguida, o dispositivo de decodificação de dados tridimensionais determina se um processo de decomposição por comprimento unitário foi completado (S1932).
[00654] Quando o processo de decomposição por comprimento unitário não tiver sido completado (NÃO em S1932), o dispositivo de decodificação de dados tridimensionais gera uma "octree" pela realização do processo de decomposição em um nó atual (S1933).
[00655] Então, o dispositivo de decodificação de dados tridimensionais obtém a informação de estrutura (S1934) e seleciona uma tabela de codificação com base na informação de estrutura obtida (S1935). No presente documento, conforme mencionado acima, a informação de estrutura é a informação que indica, por exemplo, uma camada à qual um nó atual pertence.
[00656] Depois disso, o dispositivo de decodificação de dados tridimensionais decodifica por entropia um código de ocupação do nó atual usando a tabela de codificação selecionada (S1936).
[00657] As etapas S1933 a S1936 são repetidas até que o processo de decomposição por comprimento unitário seja completado. Quando o processo de decomposição por comprimento unitário é completado (SIM em S1932), o dispositivo de decodificação de dados tridimensionais envia os pontos tridimensionais (S1937).
[00658] A Figura 70 é um fluxograma de um processo de codificação de dados tridimensionais que inclui um processo de codificação por entropia adaptativo usando a informação de atributo.
[00659] Primeiro, o dispositivo de codificação de dados tridimensionais obtém os pontos tridimensionais registrados (S1941). Em seguida, o dispositivo de codificação de dados tridimensionais determina se um processo de decomposição por comprimento unitário está completado (S1942).
[00660] Quando o processo de decomposição por comprimento unitário não está completado (NÃO em S1942), o dispositivo de codificação de dados tridimensionais gera uma "octree" pela realização do processo de decomposição em um nó atual (S1943).
[00661] Então, o dispositivo de codificação de dados tridimensionais obtém a informação de atributo (S1944) e seleciona uma tabela de codificação com base na informação de atributo obtida (S1945). No presente documento, conforme mencionado acima, a informação de atributo é a informação que indica, por exemplo, um vetor normal de um nó atual.
[00662] Depois disso, o dispositivo de codificação de dados tridimensionais codifica por entropia um código de ocupação do nó atual usando a tabela de codificação selecionada (S1946).
[00663] As etapas S1943 a S1946 são repetidas até que o processo de decomposição por comprimento unitário seja completado. Quando o processo de decomposição por comprimento unitário é completado (SIM em S1942), o dispositivo de codificação de dados tridimensionais envia uma sequência de bits que inclui a informação gerada (S1947).
[00664] A Figura 71 é um fluxograma de um processo de decodificação de dados tridimensionais que inclui um processo de decodificação por entropia adaptativo usando a informação de atributo.
[00665] Primeiro, o dispositivo de decodificação de dados tridimensionais obtém uma sequência de bits registrada (S1951). Em seguida, o dispositivo de decodificação de dados tridimensionais determinar se um processo de decomposição por comprimento unitário foi completado (S1952).
[00666] Quando o processo de decomposição por comprimento unitário não tiver sido completado (NÃO em S1952), o dispositivo de decodificação de dados tridimensionais gera uma "octree" pela realização do processo de decomposição em um nó atual (S1953).
[00667] Então, o dispositivo de codificação de dados tridimensionais obtém a informação de atributo (S1954) e seleciona uma tabela de codificação com base na informação de atributo obtida (S1955). No presente documento, conforme mencionado acima, a informação de atributo é a informação que indica, por exemplo, um vetor normal de um nó atual.
[00668] Depois disso, o dispositivo de decodificação de dados tridimensionais decodifica por entropia um código de ocupação do nó atual usando a tabela de codificação selecionada (S1956).
[00669] As etapas S1953 a S1956 são repetidas até que o processo de decomposição por comprimento unitário seja completado. Quando o processo de decomposição por comprimento unitário é completado (SIM em S1952), o dispositivo de decodificação de dados tridimensionais envia os pontos tridimensionais (S1957).
[00670] A Figura 72 é um fluxograma do processo de seleção de uma tabela de codificação usando a informação sobre geometria (S1905).
[00671] O dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação a ser usada para codificação por entropia de um código de ocupação, usando, como a informação sobre geometria, a informação de um grupo de geometria de uma estrutura de árvore, por exemplo. No presente documento, a informação de um grupo de geometria é a informação que indica um grupo de geometria que inclui um padrão de geometria de um nó atual.
[00672] Conforme mostrado na Figura 72, quando um grupo de geometria, indicado pela informação sobre geometria, é o grupo de geometria 0 (Sim em S1961), o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação 0 (S1962). Quando o grupo de geometria ,indicado pela informação sobre geometria, é o grupo de geometria 1 (SIM em S1963), o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação 1 (S1964). Em qualquer outro caso (NÃO em S1963), o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação 2 (S1965).
[00673] Deve ser observado que um método de seleção de uma tabela de codificação não está limitada ao acima. Por exemplo, quando um grupo de geometria, indicado pela informação sobre geometria, é o grupo de geometria 2, o dispositivo de codificação de dados tridimensionais pode selecionar ainda uma tabela de codificação de acordo com um valor do grupo de geometria, tal como usando a tabela de codificação 2.
[00674] Por exemplo, um grupo de geometria é determinado usando- se a informação de ocupação que indica se um nó vizinho de um nó atual inclui uma nuvem de pontos. Os padrões de geometria que se tornam o mesmo formato pela transformação, tal como pela rotação aplicada, podem ser incluídos no mesmo grupo de geometria. O dispositivo de codificação de dados tridimensionais pode selecionar um grupo de geometria usando a informação de ocupação de um nó que é vizinho de um nó atual ou está localizado em torno do nó atual e pertence à mesma camada que o nó atual. Ainda, o dispositivo de codificação de dados tridimensionais pode selecionar um grupo de geometria usando a informação de ocupação de um nó que pertence a uma camada diferente da de um nó atual. Por exemplo, o dispositivo de codificação de dados tridimensionais pode selecionar um grupo de geometria usando a informação de ocupação de um nó pai, um nó vizinho ao nó pai ou um nó localizado em torno do nó paipai.
[00675] Deve ser observado que o mesmo se aplica ao processo de seleção de uma tabela de codificação usando a informação sobre geometria (S1915) no dispositivo de decodificação de dados tridimensionais.
[00676] A Figura 73 é um fluxograma do processo de seleção de uma tabela de codificação usando a informação de estrutura (S1925).
[00677] O dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação a ser usada para a codificação por entropia de um código de ocupação, usando como informação de estrutura, a informação de camada de uma estrutura de árvore, por exemplo. No presente documento, a informação de camada indica, por exemplo, uma camada à qual um nó atual pertence.
[00678] Conforme mostrado na Figura 73, quando um nó atual pertence à camada 0 (SIM em S1971), o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação 0 (S1972). Quando o nó atual pertence à camada 1 (SIM em S1973), o dispositivo de codificação de dados tridimensionais selecione a tabela de codificação 1 (S1974). Em qualquer outro caso (NÃO em S1973), o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação 2 (S1975).
[00679] Deve ser observado que um método de seleção de uma tabela de codificação não está limitado ao acima. Por exemplo, quando um nó atual pertence à camada 2, o dispositivo de codificação de dados tridimensionais pode, ainda, selecionar uma tabela de codificação de acordo com a camada à qual o nó atual pertence, tal como usando a tabela de codificação 2.
[00680] O mesmo se aplica ao processo de seleção de uma tabela de codificação usando a informação de estrutura (S1935) no dispositivo de decodificação de dados tridimensionais.
[00681] A Figura 74 é um fluxograma do processo de seleção de uma tabela de codificação usando a informação de atributo (S1945).
[00682] O dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação a ser usada para a codificação por entropia de um código de ocupação, como informação de atributo, informação sobre um objeto ao qual um nó atual pertence ou informação sobre um vetor normal do nó atual.
[00683] Conforme mostrado na Figura 74, quando um vetor normal de um nó atual pertence ao grupo de vetores normais 0 (Sim em S1981), o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação 0 (S1982). Quando o vetor normal do nó atual pertence ao grupo de vetores normais 1 (SIM em S1983), o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação 1 (S1984). Em qualquer outro caso (NÃO em S1983), o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação 2 (S1985).
[00684] Deve ser observado que um método de seleção de uma tabela de codificação não está limitado ao acima. Por exemplo, quando um vetor normal de um nó atual pertence ao grupo de vetores normais 2, o dispositivo de codificação de dados tridimensionais pode selecionar, ainda, uma tabela de codificação de acordo com um grupo de vetores normais, ao qual o vetor normal pertence, tal como usando a tabela de codificação 2.
[00685] Por exemplo, o dispositivo de codificação de dados tridimensionais seleciona um grupo de vetores normais usando a informação sobre um vetor normal de um nó atual. Por exemplo, o dispositivo de codificação de dados tridimensionais determina, como o mesmo grupo de vetores normais, os vetores normais que tem uma distância entre os vetores normais, que são inferiores a ou iguais a um valor limite predeterminado.
[00686] A informação sobre o objeto, ao qual o nó atual pertence, pode ser informação sobre, por exemplo, uma pessoa, um veículo ou um edifício.
[00687] Em seguida são descritas as configurações do dispositivo de codificação de dados tridimensionais 1900 e o dispositivo de decodificação de dados tridimensionais 1910 de acordo com a presente modalidade. A Figura 75 é um diagrama de blocos do dispositivo de codificação de dados tridimensionais 1900 de acordo com a presente modalidade. O dispositivo de codificação de dados tridimensionais 1900 mostrado na Figura 75 inclui o gerador de "octree" 1901, a calculadora de informação sobre similaridade 1902, o seletor de tabela de codificação 1903 e o codificador por entropia 1904.
[00688] O gerador de "octree" 1901 gera, por exemplo, uma "octree" a partir dos pontos tridimensionais registrados e gera um código de ocupação para cada nó incluído na "octree". A calculadora de informação sobre similaridade 1902 obtém, por exemplo, a informação sobre similaridade que é a informação sobre geometria, a informação de estrutura ou a informação de atributo de um nó atual. O seletor de tabela de codificação 1903 seleciona um contexto a ser usado para a codificação por entropia de um código de ocupação de acordo com a informação sobre similaridade do nó atual. O codificador por entropia 1904 gera uma sequência de bits pela codificação por entropia do código de ocupação usando o contexto selecionado. Deve ser observado que o codificador por entropia 1904 pode anexar, à sequência de bits, a informação que indica o contexto selecionado.
[00689] A Figura 76 é um diagrama de blocos do dispositivo de decodificação de dados tridimensionais 1910 de acordo com a presente modalidade. O dispositivo de decodificação de dados tridimensionais 1910, mostrado na Figura 76, inclui o gerador de "octree" 1911, a calculadora de informação sobre similaridade 1912, o seletor de tabela de codificação 1913 e o decodificador por entropia 1914.
[00690] O gerador de "octree" 1911 gera uma "octree" em ordem, por exemplo, de uma camada inferior para uma camada superior, usando a informação obtida a partir do decodificador por entropia 1914. A calculadora de informação sobre similaridade 1912 obtém a informação sobre similaridade que é a informação sobre geometria, a informação de estrutura ou a informação de atributo de um nó atual. O seletor de tabela de codificação 1913 seleciona um contexto a ser usado para a codificação por entropia de um código de ocupação de acordo com a informação sobre similaridade do nó atual. O decodificador por entropia 1914 gera os pontos tridimensionais pela decodificação por entropia do código de ocupação usando o contexto selecionado. Deve ser observado que o decodificador por entropia 1914 pode obter, pela realização da decodificação, a informação do contexto selecionado anexado a uma sequência de bits e usar o contexto indicado pela informação.
[00691] Conforme mostrado nas Figuras de 63 a 65 acima, os contextos dao fornecidos para os bits respectivos do código de ocupação. Em outras palavras, o dispositivo de codificação de dados tridimensionais codifica por entropia uma sequência de bits que representa uma estrutura de árvore N-ária (N é um inteiro superior a ou igual a 2) dos pontos tridimensionais incluídos nos dados tridimensionais, usando uma tabela de codificação selecionada a partir das tabelas de codificação. A sequência de bits inclui a informação de
N bits para cada nó na estrutura de árvore N-ária. A informação de N bits inclui N partes de informação de um bit, cada uma indicando que um ponto tridimensional está presente em um nó correspondente dentre os N nós criança de um nó correspondente. Em cada uma das tabelas de codificação, um contexto é fornecido para cada bit da informação de N bits. O dispositivo de codificação de dados tridimensionais codifica por entropia cada bit a informação de N bits usando o contexto fornecido para o bit na tabela de codificação selecionada.
[00692] Isto permite que o dispositivo de codificação de dados tridimensionais aperfeiçoe a eficiência de codificação pela seleção de um contexto para cada bit.
[00693] Por exemplo, na codificação por entropia, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser usada a partir das tabelas de codificação, com base no fato de se um ponto tridimensional está presente em cada um dos nós vizinhos de um nó atual. Isto permite que o dispositivo de codificação de dados tridimensionais aperfeiçoe a eficiência de codificação pela seleção de uma tabela de codificação com base no fato de se o ponto tridimensional está presente no nó vizinho.
[00694] Por exemplo, na codificação por entropia, o dispositivo de codificação de dados tridimensionais (i) seleciona uma tabela de codificação com base em um padrão de disposição que indica uma posição disposta de um nó vizinho, onde um ponto tridimensional está presente, dentre os nós vizinhos e (ii) seleciona a mesma tabela de codificação para padrões de disposição que se tornam idênticos por rotação, entre os padrões de disposição. Isto permite que o dispositivo de codificação de dados tridimensionais reduza um aumento no número de tabelas de codificação.
[00695] Por exemplo, na codificação por entropia, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser usada a partir das tabelas de codificação, com base em uma camada à qual um nó atual pertence. Isto permite que o dispositivo de codificação de dados tridimensionais aperfeiçoe a eficiência de codificação pela seleção de uma tabela de codificação com base na camada à qual o nó atual pertence.
[00696] Por exemplo, na codificação por entropia, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser usada a partir das tabelas de codificação, com base em um vetor normal de um nó atual. Isto permite que o dispositivo de codificação de dados tridimensionais aperfeiçoe a eficiência de codificação pela seleção de uma tabela de codificação com base no vetor normal.
[00697] Por exemplo, o dispositivo de codificação de dados tridimensionais inclui um processador e uma memória e o processador realiza o processo acima usando a memória.
[00698] O dispositivo de decodificação de dados tridimensionais decodifica uma sequência de bits que representa uma estrutura de árvore N-ária (N é um inteiro superior a ou igual a 2) dos pontos tridimensionais incluídos nos dados tridimensionais, usando uma tabela de codificação selecionada a partir das tabelas de codificação. A sequência de bits inclui informação de N bits para cada nó na estrutura de árvore N-ária. A informação de N bits inclui N partes de informação de 1 bit, cada uma indicando se um ponto tridimensional está presente em um nó correspondente dentre os N nós criança de um nó correspondente. Em cada uma das tabelas de codificação, um contexto é fornecido para cada bit da informação de N bits. O dispositivo de decodificação de dados tridimensionais decodifica por entropia cada bit da informação de N bits usando o contexto fornecido para o bit na tabela de codificação selecionada.
[00699] Isto permite que o dispositivo de decodificação de dados tridimensionais aperfeiçoe a eficiência de codificação pela seleção de um contexto para cada bit.
[00700] Por exemplo, na decodificação por entropia, o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a ser usada a partir das tabelas de codificação, com base no fato de se um ponto tridimensional está presente em cada um dos nós vizinhos de um nó atual. Isto permite que o dispositivo de decodificação de dados tridimensionais aperfeiçoe a eficiência de codificação pela seleção de uma tabela de codificação com base no fato de se o ponto tridimensional está presente no nó vizinho.
[00701] Por exemplo, na decodificação por entropia, o dispositivo de decodificação de dados tridimensionais (i) seleciona uma tabela de codificação em um padrão de disposição indicando uma posição disposta de um nó vizinho onde um ponto tridimensional está presente, dentre os nós vizinhos e (ii) seleciona a mesma tabela de codificação para padrões de disposição que se tornam idênticos por rotação, entre os padrões de disposição. Isto permite que o dispositivo de decodificação de dados tridimensionais reduza um aumento no número de tabelas de codificação.
[00702] Por exemplo, na decodificação por entropia, o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a ser usada a partir das tabelas de codificação, com base em uma camada à qual um nó atual pertence. Isto permite que o dispositivo de decodificação de dados tridimensionais aperfeiçoe a eficiência de codificação pela seleção de uma tabela de codificação com base na camada à qual o nó atual pertence.
[00703] Por exemplo, na decodificação por entropia, o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a ser usada a partir das tabelas de codificação, com base em um vetor normal de um nó atual. Isto permite que o dispositivo de decodificação de dados tridimensionais aperfeiçoe a eficiência de codificação pela seleção de uma tabela de codificação com base no vetor normal.
[00704] Por exemplo, o dispositivo de decodificação de dados tridimensionais inclui um processador e uma memória e o processador realiza o processo acima usando a memória. MODALIDADE 9
[00705] Na presente modalidade, um método de controle de referência, quando um código de ocupação é codificado, será descrito. Deve ser observado que apesar de o apresentado em seguida descrever basicamente uma operação e um dispositivo de codificação de dados tridimensionais, um dispositivo de decodificação de dados tridimensionais pode realizar o mesmo processo.
[00706] As Figuras 77 e 78 são, cada uma, um diagrama que mostra uma relação de referência de acordo com a presente modalidade. Especificamente, a Figura 77 é um diagrama que mostra uma relação de referência em uma estrutura "octree" e a Figura 78 é um diagrama que mostra uma relação de referência em uma região espacial.
[00707] Na presente modalidade, quando o dispositivo de codificação de dados tridimensionais codifica a informação de codificação de um nó atual a ser codificado (daqui em diante referido como um nó atual), o dispositivo de codificação de dados tridimensionais se refere à informação de codificação de cada nó em um nó pai ao qual o nó atual pertence. A esse respeito, no entanto, o dispositivo de codificação de dados tridimensionais não se refere à informação de codificação de cada nó em outro nó (daqui em diante referido com um nó vizinho ao nó pai) que está na mesma camada que o nó pai. Em outras palavras, o dispositivo de codificação de dados tridimensionais desativa ou proíbe a referência a um nó vizinho ao nó pai.
[00708] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode permitir referência à informação de codificação de um nó pai (daqui em diante também denominado como um nó avô) do nó pai. Em outras palavras, o dispositivo de codificação de dados tridimensionais pode codificar a informação de codificação do nó atual por meio de referência à informação de codificação de cada um dentre o nó avô e o nó pai ao qual o nó atual pertence.
[00709] No presente documento, a informação de codificação, por exemplo, é um código de ocupação. Quando o dispositivo de codificação de dados tridimensionais codifica o código de ocupação do nó atual, o dispositivo de codificação de dados tridimensionais se refere à informação (daqui em diante referida com informação de ocupação) indicando se uma nuvem de pontos está incluída em cada nó no nó pai ao qual o nó atual pertence. De outra forma, quando o dispositivo de codificação de dados tridimensionais codifica o código de ocupação do nó atual, o dispositivo de codificação de dados tridimensionais se refere a um código de ocupação do nó pai. Por outro lado, o dispositivo de codificação de dados tridimensionais não se refere à informação de ocupação de cada nó em um nó vizinho ao nó pai. Em outras palavras, o dispositivo de codificação de dados tridimensionais não se refere a um código de ocupação do nó vizinho ao nó pai. Além disso, o dispositivo de codificação de dados tridimensionais pode se referir à informação de ocupação de cada nó no nó avô. Em outras palavras, o dispositivo de codificação de dados tridimensionais pode se referir à informação de ocupação de cada nó pai e do nó vizinho ao nó pai.
[00710] Por exemplo, quando o dispositivo de codificação de dados tridimensionais codifica o código de ocupação do nó atual, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para a codificação por entropia do código de ocupação do nó atual, usando o código de ocupação do nó avô ou do nó pai ao qual o nó atual pertence. Deve ser observado que os detalhes serão descritos em seguida. Ao mesmo tempo, o dispositivo de codificação de dados tridimensionais não precisa se referir ao código de ocupação do nó vizinho ao nó pai. Visto que Isto permite que o dispositivo de codificação de dados tridimensionais, quando da codificação do código de ocupação do nó atual, selecione adequadamente uma tabela de codificação de acordo com a informação do código de ocupação do nó pai ou do nó avô, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação. Além disso, por não fazer referência ao nó vizinho ao pai, o dispositivo de codificação de dados tridimensionais pode suprimir um processo de verificação da informação do nó vizinho ao nó pai e reduzir uma capacidade de memória para armazenar a informação. Ainda, a digitalização do código de ocupação de cada nó da "octree" em uma ordem de profundidade primeiro torna a codificação fácil.
[00711] Em seguida é descrito um exemplo de seleção de uma tabela de codificação usando um código de ocupação de um nó pai. A Figura 79 é um diagrama que mostra um exemplo de um nó atual e nós de referência vizinhos. A Figura 80 é um diagrama que mostra uma relação entre um nó pai e nós. A Figura 81 é um diagrama que mostra um exemplo de um código de ocupação do nó pai. No presente documento, um nó de referência vizinho é um nó referido quando um nó atual é codificado, dentre os nós espacialmente vizinhos do nó atual. No exemplo mostrado na Figura 79, os nós vizinhos pertencem à mesma camada que o nó atual. Além disso, o nó X vizinho do nó atual na direção x, o nó Y vizinho ao bloco atual na direção y e o nó Z vizinho ao bloco atual na direção z são usados como nós vizinhos de referência. Em outras palavras, um nó vizinho é configurado como um nó vizinho de referência em cada uma das direções, x, y e z.
[00712] Deve ser observado que os números de nós mostrados na
Figura 80 são um exemplo e uma relação entre os números e nós e as posições de nó não estão limitadas à relação mostrada na Figura 80. Apesar de o nó 0 ser designado para o bit de ordem mais inferior e o nó 7 ser designado para o bit de ordem mais alta na Figura 81, as designações podem ser feitas em ordem reversa. Ainda, cada nó pode ser designado para qualquer bit.
[00713] O dispositivo de codificação de dados tridimensionais determina uma tabela de codificação a ser usada quando o dispositivo de codificação de dados tridimensionais codifica por entropia um código de ocupação de um nó atual, usando a seguinte equação, por exemplo.
[00714] CodingTable = (FlagX << 2) + (FlagY << 1) + (FlagZ)
[00715] No presente documento, CodingTable indica uma tabela de codificação para um código de ocupação de um nó atual e indica um dos valores que variam de 0 a 7. FlagX é a informação de ocupação do nó vizinho X. FlagX indica 1 quando o nó vizinho X inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagY é a informação de ocupação do nó vizinho Y. FlagY indica 1 quando o nó vizinho Y inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagZ é a informação de ocupação do nó vizinho Z. FlagZ indica 1 quando o nó vizinho Z inclui uma nuvem de pontos (está ocupado) e indica 0 quando não.
[00716] Deve ser observado que visto que a informação que indica se um nó vizinho está ocupado é incluída em um código de ocupação de um nó pai, o dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação usando um valor indicado pelo código de ocupação do nó pai.
[00717] A partir do acima exposto, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação pela seleção de uma tabela de codificação usando a informação que indica se o nó vizinho do nó atual inclui uma nuvem de pontos.
[00718] Além disso, conforme mostrado na Figura 79, o dispositivo de codificação de dados tridimensionais pode selecionar um nó de referência vizinho de acordo com uma posição espacial do nó atual no nó pai. Em outras palavras, o dispositivo de codificação de dados tridimensionais pode selecionar um nó vizinho a ser referido a partir dos nós vizinhos de acordo com a posição espacial do nó atual no nó pai.
[00719] Em seguida, são descritos exemplos de configurações do dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais. A Figura 82 é um diagrama de blocos do dispositivo de codificação de dados tridimensionais 2100 de acordo com a presente modalidade. O dispositivo de codificação de dados tridimensionais 2100, mostrado na Figura 82, inclui o gerador de "octree" 2101, a calculadora de informação sobre geometria 2102, o seletor de tabela de codificação 2103 e o codificador por entropia 2104.
[00720] O gerador de "octree" 2101 gera, por exemplo, uma "octree" a partir dos pontos tridimensionais registrados (uma nuvem de pontos) e gera um código de ocupação para cada nó incluído na "octree". A calculadora de informação sobre geometria 2102 obtém a informação de ocupação que indica se um nó de referência vizinho de um nó atual está ocupado. Por exemplo, a calculadora de informação sobre geometria 2012 obtém a informação de ocupação do nó de referência vizinho a partir de um código de ocupação de um nó pai ao qual o nó atual pertence. Deve ser observado que, Conforme mostrado na Figura 79, a calculadora de informação sobre geometria 2102 pode selecionar um nó de referência vizinho de acordo com uma posição do nó atual no nó pai. Ainda, a calculadora de informação sobre geometria 2102 não se refere à informação de ocupação de cada nó em um nó vizinho ao nó pai.
[00721] O seletor de tabela de codificação 2103 seleciona uma tabela de codificação a ser usada para a codificação por entropia de um código de ocupação do nó atual, usando a informação de ocupação do nó de referência vizinho calculado pela calculadora de informação sobre geometria 2102. O codificador por entropia 2104 gera uma sequência de bits pela codificação por entropia do código de ocupação usando a tabela de codificação selecionada. Deve ser observado que o codificador por entropia 2104 pode anexar, à sequência de bits, a informação que indica a tabela de codificação selecionada.
[00722] A Figura 83 é um diagrama de blocos do dispositivo de decodificação de dados tridimensionais 2110 de acordo com a presente modalidade. O dispositivo de decodificação de dados tridimensionais 2110 mostrado na Figura 83 inclui o gerador de "octree" 2111, a calculadora de informação sobre geometria 2112, o seletor de tabela de codificação 2113 e o decodificador por entropia 2114.
[00723] O gerador de "octree" 2111 gera uma "octree" de um espaço (nós) usando a informação de cabeçalho de uma sequência de bits, etc. O gerador de "octree" 2111 gera uma "octree", por exemplo, pela geração de um espaço grande (um nó raiz) usando o tamanho de um espaço ao longo das direções do eixo geométrico x, eixo geométrico y e eixo geométrico z anexados à informação de cabeçalho e gerando oito espaços pequenos A (nós A0 a A7) pela divisão do espaço em dois ao longo de cada uma das direções de eixo geométrico x, eixo geométrico y e eixo geométrico z. Os nós A0 a A7 são configurados como um nó atual na sequência.
[00724] A calculadora de informação sobre geometria 2112 obtém a informação de ocupação que indica se um nó de referência vizinho a um nó atual está ocupado. Por exemplo, a calculadora de informação sobre geometria 2112 obtém a informação de ocupação do nó de referência vizinho a partir de um código de ocupação de um nó pai ao qual o nó atual pertence. Deve ser observado que, conforme mostrado na Figura 79, a calculadora de informação sobre geometria 2112 pode selecionar um nó de referência vizinho de acordo com uma posição do nó atual no nó pai. Ainda, a calculadora de informação sobre geometria 2112 não se refere à informação de ocupação de cada nó em um nó vizinho ao nó pai.
[00725] O seletor de tabela de codificação 2113 seleciona uma tabela de codificação (uma tabela de decodificação) a ser usada para a decodificação por entropia do código de ocupação do nó atual, usando a informação de ocupação do nó de referência vizinho calculado pela calculadora de informação sobre geometria 2112. O decodificador por entropia 2114 gera os pontos tridimensionais pela decodificação por entropia do código de ocupação usando a tabela de codificação selecionada. Deve ser observado que o seletor de tabela de codificação 2113 pode obter, pela realização da decodificação, informação sobre a tabela de codificação selecionada anexada à sequência de bits e o decodificador por entropia 2114 pode usar uma tabela de codificação indicada pela informação obtida.
[00726] Cada bit do código de ocupação (8 bits) incluído na sequência de bits indica se um espaço correspondente dentre oito espaços pequenos A (nós A0 a A7) inclui uma nuvem de pontos. Ainda, o dispositivo de decodificação de dados tridimensionais gera uma "octree" pela divisão do nó de espaço pequeno A0 em oito espaços pequenos B (nós B0 a B7) e obtém informação que indica se cada nó do espaço pequeno B inclui uma nuvem de pontos, pela decodificação do código de ocupação. desta forma, o dispositivo de decodificação de dados tridimensionais decodifica o código de ocupação de cada nó enquanto gera uma "octree" pela divisão de um espaço grande em espaços pequenos.
[00727] Em seguida são descritos procedimentos para os processos realizados pelo dispositivo de codificação de dados tridimensionais e o dispositivo de decodificação de dados tridimensionais. A Figura 84 é um fluxograma de um processo de codificação de dados tridimensionais no dispositivo de codificação de dados tridimensionais. Primeiro, o dispositivo de codificação de dados tridimensionais determina (define) um espaço (um nó atual) que inclui parte ou toda uma nuvem de pontos tridimensional registrada (S2101). Em seguida, o dispositivo de codificação de dados tridimensionais geral oito espaços pequenos (nós) pela divisão do nó atual em oito (S2102). Então, o dispositivo de codificação de dados tridimensionais gera um código de ocupação para o nó atual de acordo com o fato de se cada nó inclui uma nuvem de pontos (S2103).
[00728] Depois disso, o dispositivo de codificação de dados tridimensionais calcula (obtém) a informação de ocupação de um nó de referência vizinho do nó atual a partir de um código de ocupação de um nó pai do nó atual (S2104). Em seguida, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para a codificação por entropia, com base na informação de ocupação calculada do nó de referência vizinho do nó atual (S2105). Então, o dispositivo de codificação de dados tridimensionais codifica por entropia o código de ocupação do nó atual usando a tabela de codificação selecionada (S2106).
[00729] Finalmente, o dispositivo de codificação de dados tridimensionais repete um processo de divisão de cada nó em oito e codificação de um código de ocupação do nó, até que o nó não possa mais ser dividido (S2107). Em outras palavras, as etapas S2102 a S2106 são repetidas de forma recursiva.
[00730] A Figura 85 é um fluxograma de um processo de decodificação de dados tridimensionais no dispositivo de decodificação de dados tridimensionais. Primeiro, o dispositivo de decodificação de dados tridimensionais determina (define) um espaço (um nó atual) a ser decodificado, usando informação de cabeçalho de uma sequência de bits (S2111). Em seguida, o dispositivo de decodificação de dados tridimensionais gera oito espaços pequenos (nós) pela divisão do nó atual em oito (S2112). Então, o dispositivo de decodificação de dados tridimensionais calcula (obtém) a informação de ocupação de um nó de referência vizinho do nó atual a partir de um código de ocupação de um nó pai do nó atual (S2113).
[00731] Depois disso, o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para a decodificação por entropia, com base na informação de ocupação do nó de referência vizinho (S2114). Em seguida, o dispositivo de decodificação de dados tridimensionais decodifica por entropia o código de ocupação do nó atual usando a tabela de codificação selecionada (S2115).
[00732] Finalmente, o dispositivo de decodificação de dados tridimensionais repete um processo de divisão de cada nó em oito e decodificação de um código de ocupação do nó, até que o nó não possa ser dividido (S2116). Em outras palavras, as etapas S2112 a S2115 são repetidas de forma recursiva.
[00733] Em seguida, é descrito um exemplo de seleção de uma tabela de codificação. A Figura 86 é um diagrama que mostra um exemplo de seleção de uma tabela de codificação. Por exemplo, como na tabela de codificação 0 mostrada na Figura 86, o mesmo modo de contexto pode ser aplicado aos códigos de ocupação. Além disso, um modelo de contexto diferente pode ser designado para cada código de ocupação. Visto que isso permite a designação de um modelo de contexto de acordo com uma probabilidade de surgimento de um código de ocupação, é possível se aperfeiçoar a eficiência de codificação. Ainda, um modo de contexto que atualiza uma tabela de probabilidade de acordo com uma frequência de surgimento de um código de ocupação pode ser usado. Alternativamente, um modelo de contexto,
que tem uma tabela de probabilidade fixa, pode ser usado.
[00734] Deve ser observado que apesar de as tabelas de codificação mostradas na Figura 60 e na Figura 61 serem usadas no exemplo mostrado na Figura 86, as tabelas de codificação mostradas na Figura 63 e na Figura 64 podem ser usadas alternativamente.
[00735] Daqui em diante, a Variação 1 da presente modalidade será descrita. A Figura 87 é um diagrama que mostra uma relação de referência na presente variação. Apesar de o dispositivo de codificação de dados tridimensionais não se referir ao código de ocupação do nó vizinho ao pai na modalidade descrita acima, o dispositivo de codificação de dados tridimensionais pode comutar para referir a um código de ocupação de um nó vizinho ao nó pai de acordo com uma condição específica.
[00736] Por exemplo, quando o dispositivo de codificação de dados tridimensionais codifica uma "octree" enquanto digitaliza a "octree" largura primeiro, o dispositivo de codificação de dados tridimensionais codifica um código de ocupação de um nó atual por meio de referência à informação de ocupação de um nó em um nó vizinho ao pai. Em contraste, quando o dispositivo de codificação de dados tridimensionais codifica a "octree" enquanto digitaliza a "octree" profundidade primeiro, o dispositivo de codificação de dados tridimensionais proíbe a referência à informação de ocupação do nó no nó vizinho ao nó pai. Pela seleção adequada de um nó referível de acordo com a ordem de digitalização (ordem de codificação) dos nós da "octree" da forma acima, é possível se aperfeiçoar a eficiência de codificação e reduzir a carga de processamento.
[00737] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode anexar, a um cabeçalho de uma sequência de bits, a informação que indica, por exemplo, se uma "octree" é codificada largura primeiro ou profundidade primeiro. A Figura 88 é um diagrama que mostra um exemplo de uma sintaxe da informação de cabeçalho neste caso. "octree"_scan_order é igual a 0, largura primeiro é indicada e quando "octree"_scan_order é igual a 1, a profundidade primeiro é indicada. Visto que Isto permite que o dispositivo de decodificação de dados tridimensionais determine se uma sequência de bits foi codificada largura primeiro ou profundidade primeiro, por meio de referência a "octree"_scan_order, o dispositivo de decodificação de dados tridimensionais pode decodificar de forma adequada a sequência de bits.
[00738] Além disso, o dispositivo de codificação de dados tridimensionais pode anexar, à informação de cabeçalho de uma sequência de bits, a informação que indica se proíbe a referência a um nó vizinho pai. A Figura 89 é um diagrama que mostra um exemplo de uma sintaxe da informação de cabeçalho neste caso. limit_refer_flag é a informação sobre comutação de proibição (um indicador de comutação de proibição) indicando se proíbe a referência a um nó vizinho ao nó pai. A Figura 89 é um diagrama que mostra um exemplo de uma sintaxe da informação de cabeçalho neste caso. limit_refer_flag é a informação sobre comutação de proibição (um indicador de comutação de proibição) indicando se proíbe a referência a um nó vizinho pai. Por exemplo, quando limit_refer_flag é igual a 1, a proibição da referência ao nó vizinho do nó pai é indicada e quando limit_refer_flag é igual a 0, nenhuma limitação de referência (permissão de referência ao nó vizinho do nó pai) é indicada.
[00739] Em outras palavras, o dispositivo de codificação de dados tridimensionais determina se proíbe a referência ao nó vizinho pai e seleciona se proíbe ou permite a referência ao nó vizinho do nó pai, com base em um resultado da determinação acima. Ainda, o dispositivo de codificação de dados tridimensionais gera uma sequência de bits que inclui a informação sobre comutação de proibição que indica o resultado da determinação e indica se proíbe a referência ao nó vizinho do nó pai.
[00740] O dispositivo de decodificação de dados tridimensionais obtém, a partir de uma sequência de bits, a informação sobre comutação de proibição para proibir a referência a um nó vizinho do nó pai e seleciona se proíbe ou permite a referência ao nó vizinho do nó pai, com base na informação sobre comutação de proibição.
[00741] Isto permite que o dispositivo de codificação de dados tridimensionais controle a referência ao nó vizinho do nó pai e gere a sequência de bits. Isto também permite que o dispositivo de decodificação de dados tridimensionais obtenha, a partir do cabeçalho da sequência de bits, a informação que indica se proíbe a referência ao nó vizinho do nó pai.
[00742] Apesar de o processo de codificação de um código de ocupação ter sido descrito como um exemplo de um processo de codificação, no qual referência a um nó vizinho do nó pai é proibida na presente modalidade, a presente invenção não está limitada necessariamente a isso. Por exemplo, o mesmo método pode ser aplicado quando outra informação de um nó de uma "octree" é codificada. Por exemplo, o método da presente modalidade pode ser aplicado quando outra informação de atributo, tal como uma cor, um vetor normal ou um grau de reflexo, adicionada a um nó, é codificada. Ainda, o mesmo método pode ser aplicado quando uma tabela de codificação ou um valor previsto é codificado.
[00743] Daqui em diante, a Variação 2 da presente modalidade será descrita. Na descrição acima, conforme mostrado na Figura 79, o exemplo no qual os três nós vizinhos de referência são usados, é fornecido, mas quatro ou mais nós vizinhos de referência podem ser usados. A Figura 90 é um diagrama que mostra um exemplo de um nó atual e nós de referência vizinhos.
[00744] Por exemplo, o dispositivo de codificação de dados tridimensionais calcula uma tabela de codificação a ser usada quando o dispositivo de codificação de dados tridimensionais codifica por entropia um código de ocupação do nó atual mostrado na Figura 90, usando a seguinte equação.
[00745] CodingTable= (FlagX0 << 3) + (FlagX1 << 2) + (FlagY << 1) + (FlagZ)
[00746] No presente documento, CodingTable indica uma tabela de codificação para um código de ocupação de um nó atual e indica um dos valores que variam de 0 a 15. FlagXN é a informação de ocupação do nó vizinho XN (N = 0..1). FlagXN indica 1 quando o nó vizinho XN inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagY é a informação de ocupação do nó vizinho Y. FlagY indica 1 quando o nó vizinho Y inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagZ é a informação de ocupação do nó vizinho Z. FlagZ indica 1 quando o nó vizinho Z inclui uma nuvem de pontos (está ocupado) e indica 0 quando não.
[00747] Neste ponto, quando um nó vizinho, por exemplo, o nó vizinho X0 na Figura 90 não é referível (proibido de ser referido), o dispositivo de codificação de dados tridimensionais pode usar, como um valor substituto, um valor fixo tal como 1 (ocupado) ou 0 (não ocupado).
[00748] A Figura 91 é um diagrama que mostra um exemplo de um nó atual e nós de referência vizinhos. Conforme mostrado na Figura 91, quando um nó vizinho não é referível (proibido de ser referido), a informação de ocupação do nó vizinho pode ser calculada por meio de referência a um código de ocupação de um nó avô do nó atual. Por exemplo, o dispositivo de codificação de dados tridimensionais pode calcular FlagX0 na equação acima usando a informação de ocupação do nó vizinho G0 em vez do nó vizinho X0 mostrado na Figura 91 e pode determinar um valor de uma tabela de codificação usando FlagX0 calculado. Deve ser observado que o nó vizinho G0 mostrado na Figura
91 é uma ocupação ou não ocupação do nó vizinho que pode ser determinada usando-se o código de ocupação do nó avô. O nó vizinho X1 é uma ocupação ou não ocupação do nó vizinho que pode ser determinada usando-se um código de ocupação de um nó pai.
[00749] Daqui em diante, a Variação 3 da presente modalidade será descrita. As Figuras 92 e 93 são, cada uma, um diagrama que mostra uma relação de referência de acordo com a presente variação. Especificamente, a Figura 92 é um diagrama que mostra uma relação de referência em uma estrutura "octree" e a Figura 93 é um diagrama que mostra uma relação de referência em uma região espacial.
[00750] Na presente variação, quando o dispositivo de codificação de dados tridimensionais codifica a informação de codificação de um nó atual a ser codificado (daqui em diante referido como nó vizinho 2), o dispositivo de codificação de dados tridimensionais se refere à informação de codificação de cada nó em um nó pai ao qual o nó atual 2 pertence. Em outras palavras, o dispositivo de codificação de dados tridimensionais permite a referência à informação (por exemplo, informação de ocupação) de um nó criança de um primeiro nó, dentre os nós vizinhos, que têm o mesmo nó pai que um nó atual. Por exemplo, quando o dispositivo de codificação de dados tridimensionais codifica um código de ocupação do nó atual 2 mostrado na Figura 92, o dispositivo de codificação de dados tridimensionais se refere a um código de ocupação de um nó no nó pai ao qual o nó atual 2 pertence, por exemplo, o nó atual mostrado na Figura 92. Conforme mostrado na Figura 93, o código de ocupação do nó atual, mostrado na Figura 92 indica, por exemplo, se cada nó no nó atual vizinho ao nó atual 2 está ocupado. De acordo, visto que o dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação para o código de ocupação do nó atual 2 de acordo com um formato mais particular do nó atual, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação.
[00751] O dispositivo de codificação de dados tridimensionais pode calcular uma tabela de codificação a ser usada quando o dispositivo de codificação de dados tridimensionais codificar por entropia o código de ocupação do nó atual 2, usando a seguinte equação, por exemplo.
[00752] CodingTable = (FlagX1 << 5) + (FlagX2 << 4) + (FlagX3 << 3) + (FlagX4 << 2) + (FlagY << 1) + (FlagZ)
[00753] No presente documento, CodingTable indica uma tabela de codificação para um código de ocupação do nó atual 2 e indica um dentre os valores que variam de 0 a 63. FlagXN é a informação de ocupação do nó vizinho XN (N = 1.4). FlagXN indica 1 quando o nó vizinho XN inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagY é a informação de ocupação do nó vizinho Y. FlagY indica 1 quando o nó vizinho Y inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagZ é a informação de ocupação do nó vizinho Z. FlagZ indica 1 quando o nó vizinho Z inclui uma nuvem de pontos (está ocupado) e indica 0 quando não.
[00754] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode mudar um método de cálculo de uma tabela de codificação de acordo com uma posição de nó do nó atual 2 no nó pai.
[00755] Quando referência a um nó vizinho do nó pai não é proibida, o dispositivo de codificação de dados tridimensionais pode fazer referência à informação de codificação de cada nó no nó vizinho do nó pai. Por exemplo, quando a referência ao nó vizinho do nó pai não é proibida, a referência à informação (por exemplo, informação de ocupação) de um nó criança de um terceiro nó, que tem um nó pai diferente do de um nó atual. No exemplo mostrado na Figura 91, por exemplo, o dispositivo de codificação de dados tridimensionais obtém a informação de ocupação de um nó criança do nó vizinho X0 por meio de referência a um código de ocupação do nó vizinho X0 que tem um nó pai diferente do nó pai do nó atual. O dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para a codificação por entropia de um código de ocupação do nó atual, com base na informação de ocupação obtida do nó criança do nó vizinho X0.
[00756] Conforme mencionado acima, o dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade codifica a informação (por exemplo, um código de ocupação) de um nó atual incluído em uma estrutura de árvore N-ária dos pontos tridimensionais incluídos nos dados tridimensionais, onde N é um inteiro superior a ou igual a 2. Conforme mostrado na Figura 77 e 78, na codificação, o dispositivo de codificação de dados tridimensionais permite referência à informação (por exemplo, informação de ocupação) de um primeiro nó incluído em nós vizinhos, espacialmente vizinhos do nó atual e proíbe a referência à informação de um segundo nó incluído nos nós vizinhos, o primeiro nó que tem um mesmo nó pai que o nó atual, o segundo nó que tem um nó pai diferente do nó pai do nó atual. De outra forma, na codificação, o dispositivo de codificação de dados tridimensionais permite referência à informação (por exemplo, um código de ocupação) do nó pai e proíbe referência à informação (por exemplo, um código de ocupação) de outro nó (um nó vizinho do nó pai) na mesma camada que o nó pai.
[00757] Com isto, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação por meio de referência à informação do primeiro nó incluída nos nós vizinhos, espacialmente vizinhos do nó atual, o primeiro nó que tem o mesmo nó pai que o nó atual. Além disso, o dispositivo de codificação de dados tridimensionais pode reduzir uma quantidade de processamento não ao fazer referência à informação do segundo nó incluído nos nós vizinhos,
o segundo nó que tem um nó pai diferente do nó pai do nó atual. desta forma, o dispositivo de codificação de dados tridimensionais pode não apenas aperfeiçoar a eficiência de codificação, mas também reduzir a quantidade de processamento.
[00758] Por exemplo, o dispositivo de codificação de dados tridimensionais determina, ainda, se proíbe a referência à informação do segundo nó. Na codificação, o dispositivo de codificação C de dados tridimensionais seleciona se proíbe ou permite a referência à informação do segundo nó com base em um resultado da determinação. Além disso, o dispositivo de codificação de dados tridimensionais gera uma sequência de bits que inclui a informação sobre comutação de proibição (por exemplo, limit_refer_flag mostrado na Figura 89) que indica o resultado da determinação e indica se proíbe a referência à informação do segundo nó.
[00759] Com isto, o dispositivo de codificação de dados tridimensionais pode selecionar se proíbe a referência à informação do segundo nó. Ainda, um dispositivo de decodificação de dados tridimensionais pode realizar, de forma adequada, um processo de decodificação usando a informação sobre comutação de proibição.
[00760] Por exemplo, a informação do nó atual é a informação (por exemplo, um código de ocupação) que indica se um ponto tridimensional está presente em cada um dos nós criança que pertencem ao nó atual. A informação sobre o primeiro nó é a informação (a informação de ocupação do primeiro nó) que indica se um ponto tridimensional está presente no primeiro nó. A informação do segundo nó é a informação (a informação de ocupação do segundo nó) que indica se um ponto tridimensional está presente no segundo nó.
[00761] Por exemplo, na codificação, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação com base no fato de se o ponto tridimensional está presente no primeiro nó e codifica por entropia a informação (por exemplo, o código de ocupação) do nó atual usando a tabela de codificação selecionada.
[00762] Por exemplo, conforme mostrado na Figura 92 e na Figura 93, na codificação, o dispositivo de codificação de dados tridimensionais permite a referência à informação (por exemplo, informação de ocupação) de um nó criança do primeiro nó, o nó criança sendo incluído nos nós vizinhos.
[00763] Com isto, visto que o dispositivo de codificação de dados tridimensionais permite a referência à informação mais detalhada de um nó vizinho, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação.
[00764] Por exemplo, conforme mostrado na Figura 79, na codificação, o dispositivo de codificação de dados tridimensionais seleciona o nó a ser referido a partir dos nós vizinhos de acordo com uma posição espacial do nó atual no nó pai.
[00765] Com isto, o dispositivo de codificação de dados tridimensionais pode fazer referência a um nó vizinho adequado de acordo com a posição espacial do nó atual no nó pai.
[00766] Por exemplo, o dispositivo de codificação de dados tridimensionais inclui um processador e uma memória e o processador realiza o processo acima usando a memória.
[00767] O dispositivo de decodificação de dados tridimensionais de acordo com a presente modalidade, decodifica informação (por exemplo, um código de ocupação) de um nó atual incluído em uma estrutura de árvore N-ária dos pontos tridimensionais incluídos nos dados tridimensionais, onde N é um inteiro superior a ou igual a 2. Conforme mostrado na Figura 77 e na Figura 78, na decodificação, o dispositivo de decodificação de dados tridimensionais permite a referência à informação (por exemplo, informação de ocupação) de um primeiro nó incluído nos nós vizinhos, espacialmente vizinhos do nó atual e proíbe a referência à informação de um segundo nó incluído nos nós vizinhos, o primeiro nó que tem um mesmo nó pai que o nó atual, o segundo nó que tem um nó pai diferente do nó pai do nó atual. De outra forma, na decodificação, o dispositivo de decodificação de dados tridimensionais permite a referência à informação (por exemplo, um código de ocupação) do nó pai e proíbe a referência à informação (por exemplo, um código de ocupação) de outro nó (um nó vizinho ao nó pai) na mesma camada que o nó pai.
[00768] Com isto, o dispositivo de decodificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação por meio de referência à informação do primeiro nó incluída nos nós vizinhos, espacialmente vizinhos do nó atual, o primeiro nó que tem o mesmo nó pai que o nó atual. Além disso, o dispositivo de decodificação de dados tridimensionais pode reduzir uma quantidade de processamento não ao fazer referência à informação do segundo nó incluído nos nós vizinhos, o segundo nó que tem um nó pai diferente do nó pai do nó atual. Dessa forma, o dispositivo de decodificação de dados tridimensionais pode não apenas aperfeiçoar a eficiência de codificação, mas também reduzir a quantidade de processamento.
[00769] Por exemplo, o dispositivo de decodificação de dados tridimensionais obtém ainda, de uma sequência de bits, a informação sobre comutação de proibição (por exemplo, limit_refer_flag mostrado na Figura 89), indicando se proíbe a referência à informação do segundo nó. Na decodificação, o dispositivo de decodificação de dados tridimensionais seleciona se proíbe ou permite a referência à informação do segundo nó, com base na informação sobre comutação de proibição.
[00770] Com isto, o dispositivo de decodificação de dados tridimensionais pode realizar adequadamente um processo de decodificação usando a informação sobre comutação de proibição.
[00771] Por exemplo, a informação do nó atual é a informação (por exemplo, um código de ocupação) que indica se um ponto tridimensional está presente em cada um dos nós criança que pertencem ao nó atual. Essa informação sobre o primeiro nó é a informação (a informação de ocupação do primeiro nó) que indica se um ponto tridimensional está presente no primeiro nó. A informação do segundo nó é a informação (a informação de ocupação do segundo nó) que indica se um ponto tridimensional está presente no segundo nó.
[00772] Por exemplo, na decodificação, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação com base no fato de se o ponto tridimensional está presente no primeiro nó e decodifica por entropia a informação (por exemplo, o código de ocupação) do nó atual usando a tabela decodificação selecionada.
[00773] Por exemplo, conforme mostrado na Figura 92 e na Figura 93, na decodificação, o dispositivo de decodificação de dados tridimensionais permite a referência à informação (por exemplo, informação de ocupação) de um nó criança do primeiro nó, o nó criança sendo incluído nos nós vizinhos.
[00774] Com isto, visto que o dispositivo de decodificação de dados tridimensionais permite a referência à informação mais detalhada de um nó vizinho, o dispositivo de decodificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação.
[00775] Por exemplo, conforme mostrado na Figura 79, na decodificação, o dispositivo de decodificação de dados tridimensionais seleciona um nó vizinho a ser referido a partir dos nós vizinhos de acordo com uma posição espacial do nó atual no nó pai.
[00776] Com isto, o dispositivo de decodificação de dados tridimensionais pode fazer referência a um nó vizinho adequado de acordo com a posição espacial do nó atual no nó pai.
[00777] Por exemplo, o dispositivo de decodificação de dados tridimensionais inclui um processador e uma memória e o processador realiza o processo acima usando a memória. MODALIDADE 10
[00778] Um método para reduzir o número de tabelas de codificação será descrito na presente modalidade.
[00779] Quando uma tabela de codificação é fornecida para cada uma das combinações de posições (oito padrões) de um nó atual em um nó pai e padrões de estado de ocupação (oito padrões) de três nós vizinhos do nó atual, 8 × 8 = 64 tabelas de codificação são necessárias. Deve ser observado que a combinação também é, daqui em diante, denominada como um padrão de ocupação de vizinhos. Além disso, um nó em um estado de ocupação também é conhecido como nó ocupado. Além disso, um nó vizinho em um estado de ocupação também é denominado como um nó vizinho ocupado.
[00780] Na presente modalidade, um número total de tabelas de codificação é reduzido ao atribuir a mesma tabela de codificação a padrões de ocupação de vizinhos similares. Especificamente, os padrões de ocupação de vizinhos são agrupados ao executar um processo de conversão nos padrões de ocupação de vizinhos. Mais especificamente, os padrões de ocupação de vizinhos que se tornam os mesmos em virtude de um processo de conversão são agrupados no mesmo grupo. Além disso, uma tabela de codificação é atribuída a cada grupo.
[00781] Por exemplo, conforme mostrado na Figura 94, a translação ao longo de um eixo x, eixo y ou eixo z é usada como um processo de conversão. Alternativamente, conforme mostrado na Figura 95, a rotação ao longo do eixo x, eixo y ou eixo z (em torno do eixo x, eixo y ou eixo z) é usada.
[00782] Além disso, os padrões de ocupação de vizinhos agrupados podem ser classificados usando a seguinte regra. Por exemplo, conforme mostrado na Figura 96, uma regra pode ser que uma superfície na qual nós ocupados e um nó atual estão presentes seja horizontal ou vertical a um plano de coordenadas (um plano x-y, plano y-z ou plano x-z). Alternativamente, conforme mostrado na Figura 97, uma regra pode ser que uma superfície adjacente é definida por direções nas quais nós vizinhos ocupados estão presentes em relação a um nó atual.
[00783] A Figura 98 é um diagrama que ilustra um exemplo de translação ao longo de cada um dos eixos x, y e z. A Figura 99 é um diagrama que ilustra exemplos de rotação ao longo do eixo x. A Figura 100 é um diagrama que ilustra exemplos de rotação ao longo do eixo y. A Figura 101 é um diagrama que ilustra exemplos de rotação ao longo do eixo z. A Figura 102 é um diagrama que ilustra exemplos de horizontalidade e verticalidade para um plano de coordenadas. A Figura 103 é um diagrama que ilustra exemplos de um padrão de superfície adjacente.
[00784] A Figura 104 é um diagrama que ilustra um exemplo de divisão 64 de padrões de ocupação de vizinhos em 6 grupos. Em outras palavras, seis tabelas de codificação são usadas neste exemplo. Além disso, o número de tabelas de codificação é reduzido pela rotação ao longo do eixo z no exemplo.
[00785] Especificamente, conforme mostrado na Figura 104, um padrão de ocupação de vizinhos que inclui um nó vizinho ocupado zero entre três nós vizinhos (ou seja, o número de ocupação é zero) é classificado no grupo 0. Um padrão de ocupação de vizinhos que inclui um nó vizinho ocupado entre três nós vizinhos (ou seja, o número de ocupação é um) e é horizontal ao plano x-y é classificado no grupo 1. Um padrão de ocupação de vizinhos que inclui um nó vizinho ocupado entre três nós vizinhos (ou seja, o número de ocupação é um) e é vertical ao plano x-y é classificado no grupo 2. Um padrão de ocupação de vizinhos que inclui dois nós ocupados vizinhos entre três nós vizinhos
(ou seja, o número de ocupação é dois) e é vertical ao plano x-y é classificado no grupo 3. Um padrão de ocupação de vizinhos que inclui dois nós ocupados vizinhos entre três nós vizinhos (ou seja, o número de ocupação é dois) e é horizontal ao plano x-y é classificado no grupo
4. Um padrão de ocupação de vizinhos que inclui três nós vizinhos ocupados entre três nós vizinhos (isto é, o número de ocupação é três) é classificado no grupo 5.
[00786] Além disso, uma tabela de codificação é usada para cada um dos grupos. Além disso, cada grupo inclui padrões de ocupação de vizinhos que se tornam os mesmos em virtude de rotação ao longo do eixo z. Deve ser observado que, em relação ao grupo 4, translação ao longo do eixo z também é considerada.
[00787] Por exemplo, no caso de um mapa tridimensional que tem um plano x-y como superfície do solo, edifícios de formato similar estão frequentemente presentes no plano x-y. Neste caso, por exemplo, quando o edifício A é girado na direção do eixo z, o edifício A provavelmente se sobrepõe ao edifício B. Neste caso, há a possibilidade de melhorar a eficiência da codificação quando o edifício B é codificado usando, quando um código de ocupação do edifício B é codificado, uma tabela de codificação para um código de ocupação atualizada pela codificação do edifício A. Uma vez que, em relação às tabelas de codificação obtidas ao girar as formas na direção do eixo z como pertencentes ao mesmo grupo, é possível atualizar as tabelas de codificação sem um efeito sobre a rotação na direção do eixo z, é possível melhorar a eficiência da codificação. Além disso, por exemplo, quando o edifício C sofre translação no plano x-y, o edifício C provavelmente se sobrepõe ao edifício D. Neste caso, há a possibilidade de melhorar a eficiência da codificação quando o edifício D é codificado usando, quando um código de ocupação do edifício D é codificado, uma tabela de codificação para um código de ocupação atualizada pela codificação do edifício C. Uma vez que, em relação às tabelas de codificação relacionadas à translação no plano x-y como pertencentes ao mesmo grupo, é possível atualizar as tabelas de codificação sem efeito sobre a translação no plano x-y, é possível melhorar a eficiência da codificação.
[00788] A Figura 105 é um diagrama que ilustra um exemplo de divisão 64 de padrões de ocupação de vizinhos em 8 grupos. Em outras palavras, oito tabelas de codificação são usadas neste exemplo. Além disso, o número de tabelas de codificação é reduzido pela rotação ao longo do eixo z e usando superfícies adjacentes no exemplo.
[00789] Especificamente, conforme mostrado na Figura 105, um padrão de ocupação de vizinhos que inclui um nó vizinho ocupado zero entre três nós vizinhos (ou seja, o número de ocupação é zero) é classificado no grupo 0. Um padrão de ocupação de vizinhos que inclui um nó vizinho ocupado entre três nós vizinhos (ou seja, o número de ocupação é um) e é horizontal ao plano x-y é classificado no grupo 1. Um padrão de ocupação de vizinhos que inclui um nó vizinho ocupado entre três nós vizinhos (ou seja, o número de ocupação é um) e é vertical ao plano x-y é classificado no grupo 2. Um padrão de ocupação de vizinhos que inclui dois nós vizinhos ocupados entre três nós vizinhos (ou seja, o número de ocupação é dois), é vertical ao plano x-y e inclui uma superfície adjacente na direção z (ou seja, os nós vizinhos ocupados do nó atual estão presentes na direção z) é classificado no grupo 3. Um padrão de ocupação de vizinhos que inclui dois nós vizinhos ocupados entre três nós vizinhos (ou seja, o número de ocupação é dois), é vertical ao plano x-y e inclui uma superfície adjacente na direção -z (ou seja, os nós vizinhos ocupados do nó atual estão presentes na direção -z) é classificado no grupo 4.
[00790] Um padrão de ocupação de vizinhos que inclui dois nós vizinhos ocupados entre três nós vizinhos (ou seja, o número de ocupação é dois) e é horizontal ao plano x-y é classificado no grupo 5. Um padrão de ocupação de vizinhos que inclui três nós vizinhos ocupados entre três nós vizinhos (ou seja, o número de ocupação é três) e inclui uma superfície adjacente na direção z é classificado no grupo 6. Um padrão de ocupação de vizinhos que inclui três nós vizinhos ocupados entre três nós vizinhos (ou seja, o número de ocupação é três) e inclui uma superfície adjacente na direção z é classificado no grupo 7.
[00791] Além disso, uma tabela de codificação é usada para cada um dos grupos. Além disso, cada grupo inclui padrões de ocupação de vizinhos que se tornam os mesmos em virtude de rotação ao longo do eixo z. Deve ser observado que, em relação ao grupo 5, translação ao longo do eixo z também é considerada.
[00792] Uma regra de mapeamento pode ser criada usando cada um dos exemplos mostrados na Figura 104 e Figura 105. A Figura 106 é um diagrama que ilustra um exemplo de uma regra de mapeamento (uma tabela de conversão) quando 3 tabelas de codificação são usadas para 64 padrões de ocupação de vizinhos. No exemplo mostrado na Figura 106, um dos índices (tabela 0 à tabela 2) das 3 tabelas de codificação é atribuído a cada um dos 64 padrões de ocupação de vizinhos (padrão 0 a padrão 63). Esta regra é representada, por exemplo, por uma tabela de consultas (Look-Up Table, LUT).
[00793] Além disso, uma regra de mapeamento pode ser criada ao adicionar uma nova regra a uma determinada regra de mapeamento ou excluir parte de uma regra. Em outras palavras, os padrões de ocupação de vizinhos agrupados de acordo com uma primeira regra podem ser posteriormente agrupados de acordo com uma segunda regra. Em outras palavras, os padrões de ocupação de vizinhos podem ser atribuídos às primeiras tabelas de codificação usando uma primeira tabela de conversão, as primeiras tabelas de codificação podem ser atribuídas às segundas tabelas de codificação usando uma segunda tabela de conversão e a codificação aritmética ou decodificação aritmética pode ser realizada usando as segundas tabelas de codificação. Por exemplo, a classificação mostrada na Figura 104 pode ser realizada ao combinar ainda alguns dos grupos classificados após a classificação mostrada na Figura 105 ser executada.
[00794] A Figura 107 é um diagrama que ilustra um exemplo de uma tabela de conversão para realizar tal classificação. O índice de tabela de codificação 1 mostrado na Figura 107 indica um índice de uma tabela de codificação derivada de acordo com uma determinada regra de mapeamento e o índice 2 da tabela de codificação mostrado na Figura 107 indica um índice de uma tabela de codificação que representa uma nova regra de mapeamento.
[00795] Por exemplo, o índice 1 da tabela de codificação indica um dos índices (tabela 0 à tabela 7) de oito tabelas de codificação que são índices das tabelas de codificação obtidas pela classificação mostrada na Figura 105. Além disso, o índice 2 da tabela de codificação indica um dos índices (tabela 0 a tabela 5) de seis tabelas de codificação que correspondem à classificação mostrada na Figura 104.
[00796] Especificamente, uma vez que o grupo 4 e o grupo 5 mostrados na Figura 105 correspondem ao grupo 4 mostrado na Figura 104, conforme mostrado na Figura 107, a tabela 4 e a tabela 5 indicadas pelo índice da tabela de codificação 1 são atribuídas à tabela 4 indicada pelo índice de tabela de codificação 2. Da mesma forma, a tabela 6 e a tabela 7 indicadas pelo índice de tabela de codificação 1 são atribuídas à tabela 5 indicada pelo índice de tabela de codificação 2.
[00797] O seguinte descreve um esboço de um processo de mapeamento. Uma regra de mapeamento é usada para identificar um índice exclusivo de uma tabela de codificação.
[00798] A Figura 108 é um diagrama que ilustra um esboço de um processo de mapeamento para determinar um índice de uma tabela de codificação de 64 padrões de ocupação de vizinhos. Conforme mostrado na Figura 108, um padrão de ocupação de vizinhos que inclui uma posição de um nó atual é inserido em uma regra de mapeamento e um índice de tabela (um índice de uma tabela de codificação) é enviado. O número de padrões é reduzido pela regra de mapeamento. Por exemplo, a regra de mapeamento mostrada na Figura 106 é usada como regra de mapeamento. Conforme mostrado na Figura 106, o mesmo índice de tabela é atribuído a diferentes padrões de ocupação de vizinhos.
[00799] Em seguida, a codificação por entropia é realizada usando a tabela de codificação à qual o índice de tabela obtido é atribuído.
[00800] A Figura 109 é um diagrama que ilustra um esboço de um processo de mapeamento quando um índice de tabela é fornecido. Conforme mostrado na Figura 109, o índice 1 da tabela é inserido em uma regra de mapeamento e o índice 2 da tabela é enviado. O número de padrões é reduzido pela regra de mapeamento. Por exemplo, a regra de mapeamento mostrada na Figura 107 é usada como regra de mapeamento. Conforme mostrado na Figura 107, o mesmo índice de tabela 2 é atribuído a diferentes índices de tabela 1.
[00801] Em seguida, a codificação por entropia é realizada usando a tabela de codificação à qual o índice 2 da tabela obtido é atribuído.
[00802] O seguinte descreve as configurações de um dispositivo de codificação de dados tridimensional e um dispositivo de decodificação de dados tridimensional de acordo com a presente modalidade. A Figura 110 é um diagrama de blocos do dispositivo de codificação de dados tridimensional 3600 de acordo com a presente modalidade. O dispositivo de codificação de dados tridimensional 3600 mostrado na Figura 110 inclui um gerador de "octree" 3601, uma calculadora de informação sobre geometria 3602, um gerador de índices 3603, um seletor de tabela de codificação 3604 e um codificador por entropia
3605.
[00803] O gerador de "octree" 3601 gera, por exemplo, uma "octree" a partir de pontos tridimensionais inseridos (uma nuvem de pontos) e gera um código de ocupação de cada nó incluído na "octree". A calculadora de informação sobre geometria 3602 obtém informação sobre ocupação que indica se um nó de referência vizinho de um nó atual está ocupado. Por exemplo, a calculadora de informação sobre geometria 3602 calcula a informação sobre ocupação de um nó de referência vizinho a partir de um código de ocupação de um nó pai ao qual pertence um nó atual. Deve ser observado que a calculadora de informação sobre geometria 3602 pode alterar um nó de referência vizinho de acordo com uma posição do nó atual no nó pai. Além disso, a calculadora de informação sobre geometria 3602 não precisa se referir à informação sobre ocupação de cada nó em um nó pai vizinho.
[00804] O gerador de índices 3603 gera um índice de uma tabela de codificação usando informação sobre vizinhos (por exemplo, um padrão de ocupação de vizinhos).
[00805] O seletor de tabela de codificação 3604 seleciona uma tabela de codificação a ser usada para codificação por entropia de um código de ocupação do nó atual usando o índice da tabela de codificação gerado pelo gerador de índices 3603.
[00806] Um código de ocupação é codificado como um número decimal ou binário. Por exemplo, quando codificação binária é usada, o índice da tabela de codificação gerado pelo gerador de índices 3603 é usado na seleção do contexto binário a ser usado para a codificação por entropia pelo codificador por entropia 3605. Além disso, quando um número decimal ou codificação M-ário é usado, o contexto M-ário é selecionado usando um índice de uma tabela de codificação.
[00807] O codificador por entropia 3605 gera uma sequência de bits por entropia que codifica o código de ocupação usando a tabela de codificação selecionada. Além disso, o codificador por entropia 3605 pode anexar informações que indicam a tabela de codificação selecionada à sequência de bits.
[00808] A Figura 111 é um diagrama de blocos do dispositivo de decodificação de dados tridimensional 3610 de acordo com a presente modalidade. O dispositivo de decodificação de dados tridimensionais 3610 mostrado na Figura 111 inclui um gerador de "octree" 3611, uma calculadora de informação sobre geometria 3612, um gerador de índices 3613, um seletor de tabela de codificação 3614 e um decodificador por entropia 3615.
[00809] O gerador de "octree" 3611 gera uma "octree" de um espaço (nós) usando, por exemplo, a informação de cabeçalho de uma sequência de bits. Por exemplo, o gerador de "octree" 3611 gera um grande espaço (um nó raiz) usando o tamanho de um espaço ao longo das direções do eixo x, eixo y e eixo z relacionadas à informação de cabeçalho e gera uma "octree" ao gerar oito pequenas espaços A (nós A0 a A7), dividir o espaço em dois ao longo de cada uma das direções do eixo x, eixo y e eixo z. Além disso, os nós A0 a A7 são definidos como um nó atual na sequência.
[00810] A calculadora de informação sobre geometria 3612 obtém informação sobre ocupação que indica se um nó de referência vizinho de um nó atual está ocupado. Por exemplo, a calculadora de informação sobre geometria 3612 calcula a informação sobre ocupação de um nó de referência vizinho a partir de um código de ocupação de um nó pai ao qual pertence um nó atual. Deve ser observado que a calculadora de informação sobre geometria 3612 pode alterar um nó de referência vizinho de acordo com uma posição do nó atual no nó pai. Além disso, a calculadora de informação sobre geometria 3612 não precisa se referir à informação sobre ocupação de cada nó em um nó pai vizinho.
[00811] O gerador de índices 3613 gera um índice de uma tabela de codificação usando informação sobre vizinhos (por exemplo, um padrão de ocupação de vizinhos).
[00812] O seletor de tabela de codificação 3614 seleciona uma tabela de codificação a ser usada para a decodificação por entropia de um código de ocupação do nó atual usando o índice da tabela de codificação gerado pelo gerador de índices 3613.
[00813] Um código de ocupação é decodificado como um número decimal ou binário. Por exemplo, quando codificação binária é usada, um índice de uma tabela de codificação mapeada em um bloco anterior é usado na seleção do contexto binário a ser usado para a decodificação por entropia do próximo bloco. Além disso, quando um número decimal ou codificação M-ário é usado, o contexto M-ário é selecionado usando um índice de uma tabela de codificação.
[00814] O decodificador por entropia 3615 gera pontos tridimensionais (uma nuvem de pontos) pela decodificação por entropia do código de ocupação usando a tabela de codificação selecionada. Deve ser observado que o decodificador por entropia 3615 pode obter informações da tabela de codificação selecionada relacionada à sequência de bits, executar a decodificação e usar a tabela de codificação indicada pela informação obtida.
[00815] Cada bit de um código de ocupação (8 bits) incluído em uma sequência de bits indica se um correspondente de oito pequenos espaços A (nó A0 a nó A7) inclui uma nuvem de pontos. O dispositivo de decodificação de dados tridimensionais gera ainda uma "octree" ao dividir o nó de pequeno espaço A0 em oito pequenos espaços B (nó B0 a nó B7) e obtém informações que indicam se cada nó de pequenos espaços B inclui uma nuvem de pontos que decodifica o código de ocupação. Conforme afirmado acima, o dispositivo de decodificação de dados tridimensionais decodifica um código de ocupação de cada nó enquanto gera uma "octree" ao dividir um grande espaço em pequenos espaços.
[00816] O seguinte descreve um fluxo de processamento realizado por cada um do dispositivo de codificação de dados tridimensionais e do dispositivo de decodificação de dados tridimensionais. A Figura 112 é um fluxograma de um processo de codificação de dados tridimensionais no dispositivo de codificação de dados tridimensionais. Primeiramente, o dispositivo de codificação de dados tridimensionais define um espaço (um nó atual) que inclui parte ou a totalidade de uma nuvem de pontos tridimensionais inserida (S3601). Em seguida, o dispositivo de codificação de dados tridimensionais gera oito pequenos espaços (nós) ao dividir o nó atual em oito (S3602). Então, o dispositivo de codificação de dados tridimensionais gera um código de ocupação do nó atual de acordo com se cada nó inclui uma nuvem de pontos (S3603).
[00817] Depois, o dispositivo de codificação de dados tridimensionais calcula (obtém) a informação sobre ocupação (um padrão de ocupação de vizinhos) de um nó de referência vizinho do nó atual a partir de um código de ocupação de um nó pai do nó atual (S3604).
[00818] Em seguida, o dispositivo de codificação de dados tridimensional converte o padrão de ocupação de vizinhos em um índice de uma tabela de codificação (S3605). Em seguida, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para codificação por entropia com base no índice (S3606).
[00819] Depois, a entropia do dispositivo de codificação de dados tridimensionais codifica o código de ocupação do nó atual usando a tabela de codificação selecionada (S3607).
[00820] Finalmente, o dispositivo de codificação de dados tridimensionais repete o processo de dividir cada nó em oito e codificar um código de ocupação de cada nó até que cada nó não possa ser dividido (S3608). Em outras palavras, as etapas S3602 a S3607 são repetidas recursivamente.
[00821] A Figura 113 é um fluxograma de um processo de decodificação de dados tridimensionais no dispositivo de decodificação de dados tridimensionais. Primeiro, o dispositivo de decodificação de dados tridimensionais define um espaço (um nó atual) a ser decodificado usando a informação de cabeçalho de uma sequência de bits (S3611). Em seguida, o dispositivo de decodificação de dados tridimensionais gera oito pequenos espaços (nós) ao dividir o nó atual em oito (S3612). Em seguida, o dispositivo de decodificação de dados tridimensionais calcula (obtém) a informação sobre ocupação (um padrão de ocupação de vizinhos) de um nó de referência vizinho do nó atual a partir de um código de ocupação de um nó pai do nó atual (S3613).
[00822] Depois disso, o dispositivo de decodificação de dados tridimensionais converte o padrão de ocupação de vizinhos em um índice de uma tabela de codificação (S3614). Em seguida, o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para decodificação por entropia com base no índice (S3615). Em seguida, a entropia do dispositivo de decodificação de dados tridimensionais decodifica um código de ocupação do nó atual usando a tabela de codificação selecionada (S3616).
[00823] Finalmente, o dispositivo de decodificação de dados tridimensionais repete um processo de dividir cada nó em oito e decodificar um código de ocupação de cada nó até que cada nó não possa ser dividido (S3617). Em outras palavras, as etapas S3612 a S3616 são repetidas recursivamente.
[00824] O seguinte descreve os modos de codificação. No modo 1, um código de ocupação de um nó pai é referido, nós vizinhos do nó pai são pesquisados e o padrão de ocupação de vizinhos n é obtido. O índice i1 = f(n) de uma tabela de codificação é obtido usando a regra de mapeamento f.
[00825] No modo 2, o código de ocupação c de um nó pai é referido. O índice i2 = g(c) de uma tabela de codificação é obtido usando a regra de mapeamento g.
[00826] No modo 3, o código de ocupação c de um nó pai é referido. O índice i3 = h(c) de uma tabela de codificação é obtido usando a regra de mapeamento h.
[00827] No modo 1, duas informações provenientes de duas fontes são usadas como informação sobre ocupação de vizinhos. A primeira informação é a informação sobre ocupação de um nó vizinho em um nó pai obtida a partir de um código de ocupação do nó pai. A segunda informação é a informação sobre ocupação de um nó vizinho fora do nó pai, e é obtida ao pesquisar nós vizinhos do nó pai. Em outras palavras, esta informação é a informação sobre ocupação, dentre nós vizinhos de um nó atual, de um nó vizinho pertencente a um nó pai diferente de um nó pai do nó atual. Daqui em diante, este processo de pesquisa de nós vizinhos de um nó pai também é denominado como pesquisa de vizinhos do nó pai.
[00828] No modo 2 e no modo 3, a informação sobre ocupação de um nó vizinho em um nó pai obtida a partir de um código de ocupação do nó pai é usada, e a informação sobre ocupação de um nó vizinho fora do nó pai não é usada. Além disso, o modo 2 e o modo 3 diferem quanto à regra de mapeamento para obter um índice de uma tabela de codificação.
[00829] Além disso, a fim de desenvolver métodos para reduzir os padrões de ocupação dos vizinhos, podem ser adicionados modos que diferem mutuamente quanto à regra de mapeamento. Por exemplo, uma regra de mapeamento é obtida ao combinar as regras mostradas na Figura 94 à Figura 103, etc.
[00830] O seguinte descreve exemplos de um modo de codificação. No modo de codificação 1 (CodingMode = 1), 64 padrões de ocupação de vizinhos são obtidos ao se referir a um código de ocupação de um nó pai e realizar a pesquisa de vizinhos do nó pai. Aqui, os 64 padrões de ocupação de vizinhos são uma combinação (26 = 64) de informação sobre ocupação de 6 nós vizinhos, e a posição de um nó atual não é considerada. Além disso, é usada uma tabela de consulta que converte os 64 padrões de ocupação de vizinhos em índices de dez tabelas de codificação.
[00831] No modo de codificação 2 (CodingMode = 2), 64 padrões de ocupação de vizinhos para os quais uma posição de um nó atual é considerada são obtidos por meio de referência a um código de ocupação de um nó pai. Aqui, os 64 padrões de ocupação de vizinhos são uma combinação (8 × 8 = 64) de posições (8 padrões) do nó atual no nó pai e partes de informação sobre ocupação de três nós vizinhos (23 = 8). Além disso, é usada uma tabela de consulta que converte os 64 padrões de ocupação dos vizinhos em índices de 6 tabelas de codificação.
[00832] No modo de codificação 3 (CodingMode = 3), 64 padrões de ocupação de vizinhos para os quais uma posição de um nó atual é considerada são obtidos por meio de referência a um código de ocupação de um nó pai. Além disso, é usada uma tabela de consulta que converte os 64 padrões de ocupação de vizinhos em índices de 8 tabelas de codificação.
[00833] Além disso, como outro exemplo de um modo de codificação (CodingMode), por exemplo, o dispositivo de codificação de dados tridimensionais anexa, a uma sequência de bits, um flag de pesquisa (search_flag) que indica se deve realizar a pesquisa de vizinhos do nó pai. Quando search_flag = 1, o dispositivo de codificação de dados tridimensionais pode calcular um padrão de ocupação de vizinhos ao realizar a pesquisa de vizinhos do nó pai, gerar um índice de uma das tabelas de codificação N a partir de um valor do padrão de ocupação de vizinhos e realizar a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice.
[00834] Quando search_flag = 0, o dispositivo de codificação de dados tridimensionais pode calcular um padrão de ocupação de vizinhos sem realizar a pesquisa de vizinhos do nó pai, gerar um índice de uma de M tabelas de codificação a partir de um valor do padrão de ocupação de vizinhos e realizar a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice, M sendo um número inteiro menor do que ou igual a N. É possível controlar um equilíbrio entre a eficiência de codificação e a quantidade de processamento ao selecionar a pesquisa de vizinhos do nó pai e uma tabela de codificação a ser usada de acordo com um valor de search_flag da maneira acima.
[00835] O seguinte descreve um fluxo de processamento realizado por cada um do dispositivo de codificação de dados tridimensionais e o dispositivo de decodificação de dados tridimensionais quando um modo de codificação é selecionado.
[00836] A Figura 114 é um fluxograma de um processo de codificação de dados tridimensionais no dispositivo de codificação de dados tridimensionais. Primeiramente, o dispositivo de codificação de dados tridimensionais define um espaço (um nó atual) que inclui parte ou a totalidade de uma nuvem de pontos tridimensionais inserida (S3621). Em seguida, o dispositivo de codificação de dados tridimensionais gera oito pequenos espaços (nós) ao dividir o nó atual em oito (S3622). Então, o dispositivo de codificação de dados tridimensionais gera um código de ocupação do nó atual de acordo com se cada nó inclui uma nuvem de pontos (S3623).
[00837] Depois disso, o dispositivo de codificação de dados tridimensionais calcula (obtém) informação sobre ocupação (um padrão de ocupação de vizinhos) de um nó de referência vizinho do nó atual a partir de um código de ocupação de um nó pai do nó atual (S3624).
[00838] Em seguida, o dispositivo de codificação de dados tridimensionais determina se um modo de codificação é um modo predeterminado (S3625). Por exemplo, quando CodingMode = 1, o dispositivo de codificação de dados tridimensionais determina que o modo de codificação é um modo predeterminado; e, em outros casos, o dispositivo de codificação de dados tridimensionais determina que o modo de codificação não é um modo predeterminado.
[00839] Deve ser observado que, por exemplo, um flag de pesquisa (search_flag) que indica se deve ser realizada a pesquisa de vizinhos do nó pai pode ser usado em vez de CodingMode. Neste caso, quando, por exemplo, search_flag = 1, o dispositivo de codificação de dados tridimensionais determina que o modo de codificação é um modo predeterminado; e, em outros casos, o dispositivo de codificação de dados tridimensionais determina que o modo de codificação não é um modo predeterminado.
[00840] Quando o modo de codificação é o modo predeterminado (SIM em S3625), o dispositivo de codificação de dados tridimensionais obtém informação sobre ocupação (padrões de ocupação de vizinhos restantes) de nós vizinhos restantes ao realizar pesquisa de vizinhos do nó pai para pesquisar todos os nós filhos codificados (S3626). Então, o dispositivo de codificação de dados tridimensionais combina o padrão de ocupação de vizinhos calculado a partir do código de ocupação do nó pai na etapa S3624 e os padrões de ocupação de vizinhos restantes calculados pela pesquisa de vizinhos do nó pai na etapa S3626 (S3627).
[00841] Depois disso, o dispositivo de codificação de dados tridimensionais converte um padrão de ocupação de vizinhos obtido pela combinação em um índice usando uma tabela de consulta que converte 64 padrões de ocupação de vizinhos em índices de 10 tabelas de codificação (S3628).
[00842] Por outro lado, quando o modo de codificação não é o modo predeterminado (NÃO em S3625), o dispositivo de codificação de dados tridimensionais converte o padrão de ocupação de vizinhos calculado a partir do código de ocupação do nó pai na etapa S3624 em um índice usando uma tabela de consulta que converte 64 padrões de ocupação de vizinhos em índices de 6 tabelas de codificação (S3629).
[00843] Deve ser observado que, embora um exemplo no qual o número de tabelas de codificação é alterado entre 10 e 6 tenha sido fornecido aqui, o número de tabelas de codificação nem sempre está limitado ao mesmo. Por exemplo, o dispositivo de codificação de dados tridimensionais pode alterar o número de tabelas de codificação entre N e M, M sendo um número inteiro menor do que ou igual a N.
[00844] Em seguida, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para codificação por entropia com base no índice obtido na etapa S3628 ou S3629 (S3630). Depois disso, a entropia do dispositivo de codificação de dados tridimensionais codifica o código de ocupação do nó atual usando a tabela de codificação selecionada (S3631).
[00845] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode codificar, como informação de cabeçalho, informações (CodingMode) que indicam um modo de codificação. Além disso, o dispositivo de codificação de dados tridimensionais pode anexar, a uma sequência de bits, um flag de pesquisa (search_flag) que indica se deve realizar a pesquisa de vizinhos do nó pai, em vez de CodingMode.
[00846] Finalmente, o dispositivo de codificação de dados tridimensionais repete o processo de dividir cada nó em oito e codificar um código de ocupação de cada nó até que cada nó não possa ser dividido (S3632). Em outras palavras, as etapas S3622 a S3631 são repetidas recursivamente.
[00847] A Figura 115 é um fluxograma de um processo de decodificação de dados tridimensionais no dispositivo de decodificação de dados tridimensionais. Primeiro, o dispositivo de decodificação de dados tridimensionais define um espaço (um nó atual) a ser decodificado usando a informação de cabeçalho de uma sequência de bits (S3641).
[00848] Deve ser observado que o dispositivo de decodificação de dados tridimensionais pode decodificar informações (CodingMode) que indicam um modo de codificação incluído na informação de cabeçalho. Além disso, o dispositivo de decodificação de dados tridimensionais pode decodificar um flag de pesquisa (search_flag) que indica se deve realizar a pesquisa no vizinhos do nó pai, em vez de CodingMode.
[00849] Em seguida, o dispositivo de decodificação de dados tridimensionais gera oito pequenos espaços (nós) ao dividir o nó atual em oito (S3642). Em seguida, o dispositivo de decodificação de dados tridimensionais calcula (obtém) a informação sobre ocupação (um padrão de ocupação de vizinhos) de um nó de referência vizinho do nó atual a partir de um código de ocupação de um nó pai do nó atual (S3643).
[00850] Depois disso, o dispositivo de decodificação de dados tridimensionais determina se o modo de codificação é um modo predeterminado (S3644). Por exemplo, quando CodingMode = 1, o dispositivo de decodificação de dados tridimensionais determina que o modo de codificação é um modo predeterminado; e, em outros casos, o dispositivo de decodificação de dados tridimensionais determina que o modo de codificação não é um modo predeterminado.
[00851] Deve ser observado que, por exemplo, um flag de pesquisa (search_flag) que indica se deve ser realizada a pesquisa de vizinhos do nó pai pode ser usado em vez de CodingMode. Neste caso, quando, por exemplo, search_flag = 1, o dispositivo de decodificação de dados tridimensionais determina que o modo de codificação é um modo predeterminado; e, em outros casos, o dispositivo de decodificação de dados tridimensionais determina que o modo de codificação não é um modo predeterminado.
[00852] Quando o modo de codificação é o modo predeterminado (SIM em S3644), o dispositivo de decodificação de dados tridimensionais obtém informação sobre ocupação (padrões de ocupação de vizinhos restantes) de nós vizinhos restantes ao realizar pesquisa de vizinhos do nó pai para pesquisar todos os nós filhos codificados (S3645). Em seguida, o dispositivo de decodificação de dados tridimensionais combina o padrão de ocupação de vizinhos calculado a partir do código de ocupação do nó pai na etapa S3643 e os padrões de ocupação de vizinhos restantes calculados pela pesquisa de vizinhos do nó pai na etapa S3645 (S3646).
[00853] Em seguida, o dispositivo de decodificação de dados tridimensionais converte um padrão de ocupação de vizinhos obtido pela combinação em um índice usando uma tabela de consulta que converte 64 padrões de ocupação de vizinhos em índices de 10 tabelas de codificação (S3647).
[00854] Por outro lado, quando o modo de codificação não é o modo predeterminado (NÃO em S3644), o dispositivo de decodificação de dados tridimensionais converte o padrão de ocupação de vizinhos calculado a partir do código de ocupação do nó pai na etapa S3643 em um índice usando uma tabela de consulta que converte 64 padrões de ocupação de vizinhos em índices de 6 tabelas de codificação (S3648).
[00855] Deve ser observado que, embora um exemplo no qual o número de tabelas de codificação é alterado entre 10 e 6 tenha sido fornecido aqui, o número de tabelas de codificação nem sempre está limitado ao mesmo. Por exemplo, o dispositivo de decodificação de dados tridimensionais pode alterar o número de tabelas de codificação entre N e M, M sendo um número inteiro menor do que ou igual a N.
[00856] Depois disso, o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para decodificação por entropia com base no índice obtido na etapa S3647 ou S3648 (S3649). Em seguida, a entropia do dispositivo de decodificação de dados tridimensionais decodifica um código de ocupação do nó atual usando a tabela de codificação selecionada (S3650).
[00857] Finalmente, o dispositivo de decodificação de dados tridimensionais repete o processo de dividir cada nó em oito e decodificar um código de ocupação de cada nó até que cada nó não possa ser dividido (S3651). Em outras palavras, as etapas S3642 a S3650 são repetidas recursivamente.
[00858] Conforme afirmado acima, o dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade realiza o processo mostrado na Figura 116. Primeiramente, o dispositivo de codificação de dados tridimensionais codifica um primeiro flag (por exemplo, search_flag) que indica se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido na codificação do nó atual incluído em uma estrutura de árvore N-ária de pontos tridimensionais incluídos em dados tridimensionais, N sendo um número inteiro maior do que ou igual a 2 (S3661). Em outras palavras, o dispositivo de codificação de dados tridimensionais gera uma sequência de bits que inclui o primeiro flag.
[00859] O dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação de nós vizinhos do nó atual e realiza a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada (S3663) quando o primeiro flag indica que o nó deve ser referido (SIM em S3662).
[00860] O dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realiza a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada (S3664) quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N (NÃO em S3662).
[00861] Com isso, uma vez que é possível reduzir o número de tabelas de codificação, é possível diminuir a quantidade de processamento. Além disso, uma vez que é possível definir uma tabela de codificação de forma adequada ao alterar o número de tabelas de codificação de acordo com se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido, é possível reduzir a quantidade de processamento, ao mesmo tempo em que suprime a redução da eficiência de codificação.
[00862] Por exemplo, N é maior do que M.
[00863] Por exemplo, quando o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a partir de M tabelas de codificação, o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação a partir de M tabelas de codificação por meio de referência a uma tabela de correspondência (por exemplo, a tabela mostrada na Figura 106) de acordo com os estados de ocupação dos nós vizinhos, a tabela de correspondência indicando uma relação de correspondência entre L padrões de ocupação que indicam os estados de ocupação dos nós vizinhos e as M tabelas de codificação, L sendo um número inteiro maior do que M.
[00864] Por exemplo, quando o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a partir de M tabelas de codificação, o dispositivo de codificação de dados tridimensionais seleciona a tabela de codificação a partir de M tabelas de codificação por meio de referência a uma primeira tabela de correspondência (por exemplo, a tabela mostrada na Figura 106) e uma segunda tabela de correspondência (por exemplo, a tabela mostrada na Figura 107), de acordo com os estados de ocupação dos nós vizinhos, a primeira tabela de correspondência indicando uma relação de correspondência entre os padrões de ocupação L que indica os estados de ocupação dos nós vizinhos e I tabelas de codificação, a segunda tabela de correspondência indicando uma relação de correspondência entre as I tabelas de codificação e as M tabelas de codificação, L sendo um número inteiro maior do que I, I sendo um número inteiro maior do que M.
[00865] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai. Uma tabela de codificação idêntica (por exemplo, grupo 1 mostrado na Figura 104) entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e é vizinho do nó atual em uma direção horizontal a um plano x-y.
[00866] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai. Uma tabela de codificação idêntica (por exemplo, grupo 2 mostrado na Figura 104) entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e é vizinho do nó atual em uma direção vertical a um plano x-y.
[00867] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai. Uma tabela de codificação idêntica (por exemplo, grupo 3 mostrado na Figura 104) entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido pelos dois dos três nós vizinhos ocupados e o nó atual é horizontal a um plano x-y.
[00868] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai. Uma tabela de codificação idêntica (por exemplo, grupo 4 mostrado na Figura 104) dentre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido pelos dois dos três nós vizinhos ocupados e o nó atual é vertical a um plano x-y.
[00869] Por exemplo, o dispositivo de codificação de dados tridimensionais inclui um processador e uma memória, e o processador executa o processo acima usando a memória.
[00870] Além disso, o dispositivo de decodificação de dados tridimensionais de acordo com a presente modalidade realiza o processo mostrado na Figura 117. O dispositivo de decodificação de dados tridimensionais decodifica um primeiro flag (por exemplo, search_flag) que indica se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido na decodificação do nó atual incluído em uma árvore N-ária de pontos tridimensionais incluídos em dados tridimensionais, N sendo um número inteiro maior do que ou igual a 2
(S3671). Em outras palavras, o dispositivo de decodificação de dados tridimensionais obtém o primeiro flag a partir de uma sequência de bits.
[00871] O dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realiza a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada (S3673) quando o primeiro flag indica que o nó deve ser referido (SIM em S3672).
[00872] O dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realiza a decodificação aritmética de informações do nó atual usando a tabela de codificação selecionada (S3674) quando o primeiro flag indica que o nó não deve ser referido (NÃO em S3672), M sendo um número inteiro diferente de N.
[00873] Com isso, uma vez que é possível reduzir o número de tabelas de codificação, é possível diminuir a quantidade de processamento. Além disso, uma vez que é possível definir uma tabela de codificação de forma adequada ao alterar o número de tabelas de codificação de acordo com se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido, é possível reduzir a quantidade de processamento, ao mesmo tempo em que suprime a redução da eficiência de codificação.
[00874] Por exemplo, N é maior do que M.
[00875] Por exemplo, quando o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a partir de M tabelas de codificação, o dispositivo de decodificação de dados tridimensionais seleciona a tabela de codificação a partir de M tabelas de codificação por meio de referência a uma tabela de correspondência (por exemplo, a tabela mostrada em Figura 106) de acordo com os estados de ocupação dos nós vizinhos, a tabela de correspondência que indica uma relação de correspondência entre L padrões de ocupação que indicam os estados de ocupação dos nós vizinhos e as M tabelas de codificação, L sendo um número inteiro maior do que M.
[00876] Por exemplo, quando o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a partir de M tabelas de codificação, o dispositivo de decodificação de dados tridimensionais seleciona a tabela de codificação a partir de M tabelas de codificação por meio de referência a uma primeira tabela de correspondência (por exemplo, a tabela mostrada na Figura 106) e uma segunda tabela de correspondência (por exemplo, a tabela mostrada na Figura 107), de acordo com os estados de ocupação dos nós vizinhos, a primeira tabela de correspondência que indica uma relação de correspondência entre os padrões de ocupação L que indica os estados de ocupação do nós vizinhos e I tabelas de codificação, a segunda tabela de correspondência que indica uma relação de correspondência entre as I tabelas de codificação e as M tabelas de codificação, L sendo um número inteiro maior do que I, I sendo um número inteiro maior do que M.
[00877] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai. Uma tabela de codificação idêntica (por exemplo, grupo 1 mostrado na Figura 104) dentre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e é vizinho do nó atual em uma direção horizontal a um plano x-y.
[00878] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai. Uma tabela de codificação idêntica (por exemplo, grupo 2 mostrado na Figura 104) dentre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e é vizinho do nó atual em uma direção vertical a um plano x-y.
[00879] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai. Uma tabela de codificação idêntica (por exemplo, grupo 3 mostrado na Figura 104) dentre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido pelos dois dos três nós vizinhos ocupados e o nó atual é horizontal a um plano x-y.
[00880] Por exemplo, os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai. Uma tabela de codificação idêntica (por exemplo, grupo 4 mostrado na Figura 104) dentre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido pelos dois dos três nós vizinhos ocupados e o nó atual é vertical a um plano x-y.
[00881] Por exemplo, o dispositivo de decodificação de dados tridimensionais inclui um processador e uma memória, e o processador executa o processo acima usando a memória. MODALIDADE 11
[00882] Outro método para reduzir o número de tabelas de codificação será descrito na presente modalidade. Na presente modalidade, os padrões de ocupação de vizinhos são agrupados com base no número de ocupação que é o número de nós vizinhos ocupados. Em outras palavras, uma das quatro tabelas de codificação é usada de acordo com o número de nós vizinhos ocupados, independentemente da posição de um nó atual e das posições dos nós vizinhos ocupados.
[00883] A Figura 118 é um diagrama que ilustra um exemplo de divisão de 64 padrões de ocupação de vizinhos em 4 grupos. Um padrão de ocupação de vizinhos com o número de ocupação zero é classificado no grupo 0. Um padrão de ocupação de vizinhos com o número de ocupação um é classificado no grupo 1. Um padrão de ocupação de vizinhos com o número de ocupação de dois é classificado no grupo 2. Um padrão de ocupação de vizinhos com o número de ocupação de três é classificado no grupo 3.
[00884] Conforme afirmado acima, o dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação de acordo com quantos nós vizinhos entre os nós vizinhos de um nó atual estão ocupados. Segue que a mesma tabela de codificação é atribuída a formas similares, independentemente da translação e rotação. Consequentemente, é possível melhorar a eficiência da codificação, ao mesmo tempo em que reduz o número de tabelas de codificação.
[00885] Por exemplo, quando o modo acima é usado, o modo de codificação 4 é adicionado como um modo de codificação. No modo de codificação 4 (CodingMode = 4), 64 padrões de ocupação de vizinhos são obtidos ao referir se a um código de ocupação de um nó pai e ao realizar a pesquisa de vizinhos do nó pai. Além disso, uma tabela de consulta que converte os 64 padrões de ocupação de vizinhos em índices de 4 tabelas de codificação é usada.
[00886] Além disso, como outro exemplo de um modo de codificação
(CodingMode), por exemplo, o dispositivo de codificação de dados tridimensionais anexa, a uma sequência de bits, um flag de pesquisa (search_flag) que indica se deve realizar a pesquisa de vizinhos do nó pai. Quando search_flag = 1, o dispositivo de codificação de dados tridimensionais pode calcular um padrão de ocupação de vizinhos ao realizar a pesquisa de vizinhos do nó pai, gerar um índice de uma das dez tabelas de codificação de um valor do padrão de ocupação de vizinhos e realizar a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice.
[00887] Quando search_flag = 0, o dispositivo de codificação de dados tridimensionais pode calcular um padrão de ocupação de vizinhos sem realizar a pesquisa de vizinhos do nó pai, gerar um índice de uma das quatro tabelas de codificação de um valor do padrão de ocupação de vizinhos e realizar a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice. É possível controlar o equilíbrio entre a eficiência da codificação e a quantidade de processamento ao selecionar a pesquisa de vizinhos do nó pai e uma tabela de codificação a ser usada de acordo com um valor de search_flag da maneira acima.
[00888] A Figura 119 é um fluxograma deste processo. Primeiro, o dispositivo de codificação de dados tridimensionais determina se search_flag é 1 (S3701). Deve ser observado que o dispositivo de codificação de dados tridimensionais pode codificar, por exemplo, um flag (search_skip_flag) que indica se a pesquisa deve ser ignorada no vizinhos do nó pai, em vez de search_flag. Por exemplo, o dispositivo de codificação de dados tridimensionais anexa search_skip_flag a uma sequência de bits. Quando search_skip_flag = 1, o dispositivo de codificação de dados tridimensionais calcula um padrão de ocupação de vizinhos sem realizar a pesquisa de vizinhos do nó pai, gera um índice de uma das quatro tabelas de codificação de um valor do padrão de ocupação de vizinhos e executa a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice. Quando search_skip_flag = 0, o dispositivo de codificação de dados tridimensionais calcula um padrão de ocupação de vizinhos ao realizar a pesquisa de vizinhos do nó pai, gera um índice de uma das dez tabelas de codificação de um valor do padrão de ocupação de vizinhos e realiza a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice.
[00889] Quando search_flag é 1 (SIM em S3701), o dispositivo de codificação de dados tridimensionais gera um índice de uma tabela de codificação usando a tabela de conversão A que converte valores de 64 padrões de ocupação de vizinhos em índices de 10 tabelas de codificação (S3702).
[00890] Quando search_flag não é 1 (NÃO em S3701), o dispositivo de codificação de dados tridimensionais gera um índice de uma tabela de codificação usando a tabela de conversão B que converte valores de 64 padrões de ocupação de vizinhos em índices de 4 tabelas de codificação (S3703).
[00891] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode usar o mesmo método de inicialização de valor de probabilidade nas tabelas de codificação atribuídas ao mesmo padrão de ocupação de vizinhos na tabela de conversão A e na tabela de conversão B. Por exemplo, o dispositivo de codificação de dados tridimensionais pode inicializar, para a tabela 5 da tabela de conversão A e a tabela 2 da tabela de conversão B atribuída ao padrão 4, valores de probabilidade das tabelas de codificação através do mesmo método. Uma vez que isto elimina a necessidade de fornecer um método de inicialização para cada tabela de conversão, é possível reduzir a quantidade de processamento.
[00892] O seguinte descreve um fluxo de processamento realizado por cada um do dispositivo de codificação de dados tridimensionais e o dispositivo de decodificação de dados tridimensionais de acordo com a presente modalidade.
[00893] A Figura 120 é um fluxograma de um processo de codificação de dados tridimensionais no dispositivo de codificação de dados tridimensionais. Primeiramente, o dispositivo de codificação de dados tridimensionais define um espaço (um nó atual) que inclui parte ou a totalidade de uma nuvem de pontos tridimensionais inserida (S3711). Em seguida, o dispositivo de decodificação de dados tridimensionais gera oito pequenos espaços (nós) ao dividir o nó atual em oito (S3712). Então, o dispositivo de codificação de dados tridimensionais gera um código de ocupação do nó atual de acordo com se cada nó inclui uma nuvem de pontos (S3713).
[00894] Depois disso, o dispositivo de codificação de dados tridimensionais calcula (obtém) informação sobre ocupação (um padrão de ocupação de vizinhos) de um nó de referência vizinho do nó atual a partir de um código de ocupação de um nó pai do nó atual (S3714).
[00895] Em seguida, o dispositivo de codificação de dados tridimensionais determina se um modo de codificação é um modo predeterminado (S3715). Por exemplo, quando CodingMode = 1, o dispositivo de codificação de dados tridimensionais determina que o modo de codificação é um modo predeterminado; e, em outros casos, o dispositivo de codificação de dados tridimensionais determina que o modo de codificação não é um modo predeterminado.
[00896] Deve ser observado que, por exemplo, um flag de pesquisa (search_flag) que indica se deve ser realizada a pesquisa de vizinhos do nó pai pode ser usado em vez de CodingMode. Neste caso, quando, por exemplo, search_flag = 1, o dispositivo de codificação de dados tridimensionais determina que o modo de codificação é um modo predeterminado; e, em outros casos, o dispositivo de codificação de dados tridimensionais determina que o modo de codificação não é um modo predeterminado.
[00897] Quando o modo de codificação é o modo predeterminado (SIM em S3715), o dispositivo de codificação de dados tridimensionais obtém informação sobre ocupação (padrões de ocupação de vizinhos restantes) de nós vizinhos restantes ao realizar pesquisa de vizinhos do nó pai para pesquisar todos os nós filhos codificados (S3716). Então, o dispositivo de codificação de dados tridimensionais combina o padrão de ocupação de vizinhos calculado a partir do código de ocupação do nó pai na etapa S3714 e os padrões de ocupação de vizinhos restantes calculados pela pesquisa de vizinhos do nó pai na etapa S3716 (S3717).
[00898] Depois disso, o dispositivo de codificação de dados tridimensionais converte um padrão de ocupação de vizinhos obtido pela combinação em um índice usando uma tabela de consulta que converte 64 padrões de ocupação de vizinhos em índices de 10 tabelas de codificação (S3718).
[00899] Por outro lado, quando o modo de codificação não é o modo predeterminado (NÃO em S3715), o dispositivo de codificação de dados tridimensionais converte o padrão de ocupação de vizinhos calculado a partir do código de ocupação do nó pai na etapa S3714 em um índice usando uma tabela de consulta que converte 64 padrões de ocupação de vizinhos em índices de 4 tabelas de codificação (S3719).
[00900] Deve ser observado que, embora um exemplo no qual o número de tabelas de codificação é alterado entre 10 e 4 tenha sido fornecido aqui, o número de tabelas de codificação nem sempre está limitado ao mesmo. Por exemplo, o dispositivo de codificação de dados tridimensionais pode alterar o número de tabelas de codificação entre N e M, M sendo um número inteiro menor do que ou igual a N.
[00901] Em seguida, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para codificação por entropia, com base no índice obtido na etapa S3718 ou S3719 (S3720). Então, a entropia do dispositivo de codificação de dados tridimensionais codifica o código de ocupação do nó atual usando a tabela de codificação selecionada (S3721).
[00902] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode codificar, como informação de cabeçalho, informações (CodingMode) que indicam um modo de codificação. Além disso, o dispositivo de codificação de dados tridimensionais pode anexar, a uma sequência de bits, um flag de pesquisa (search_flag) que indica se deve realizar a pesquisa de vizinhos do nó pai, em vez de CodingMode.
[00903] Finalmente, o dispositivo de codificação de dados tridimensionais repete o processo de dividir cada nó em oito e codificar um código de ocupação de cada nó até que cada nó não possa ser dividido (S3722). Em outras palavras, as etapas S3712 a S3721 são repetidas recursivamente.
[00904] A Figura 121 é um fluxograma de um processo de decodificação de dados tridimensionais no dispositivo de decodificação de dados tridimensionais. Primeiro, o dispositivo de decodificação de dados tridimensionais define um espaço (um nó atual) a ser decodificado usando a informação de cabeçalho de uma sequência de bits (S3731).
[00905] Deve ser observado que o dispositivo de decodificação de dados tridimensionais pode decodificar informações (CodingMode) que indicam um modo de codificação incluído na informação de cabeçalho. Além disso, o dispositivo de decodificação de dados tridimensionais pode decodificar um flag de pesquisa (search_flag) que indica se deve realizar a pesquisa nos vizinhos do nó pai, em vez de CodingMode.
[00906] Em seguida, o dispositivo de decodificação de dados tridimensionais gera oito pequenos espaços (nós) ao dividir o nó atual em oito (S3732). Em seguida, o dispositivo de decodificação de dados tridimensionais calcula (obtém) informação sobre ocupação (um padrão de ocupação de vizinhos) de um nó de referência vizinho do nó atual a partir de um código de ocupação de um nó pai do nó atual (S3733).
[00907] Depois disso, o dispositivo de decodificação de dados tridimensionais determina se um modo de codificação é um modo predeterminado (S3734). Por exemplo, quando CodingMode = 1, o dispositivo de decodificação de dados tridimensionais determina que o modo de codificação é um modo predeterminado; e, em outros casos, o dispositivo de decodificação de dados tridimensionais determina que o modo de codificação não é um modo predeterminado.
[00908] Deve ser observado que, por exemplo, um flag de pesquisa (search_flag) que indica se deve ser realizada a pesquisa de vizinhos do nó pai pode ser usado em vez de CodingMode. Neste caso, quando, por exemplo, search_flag = 1, o dispositivo de decodificação de dados tridimensionais determina que o modo de codificação é um modo predeterminado; e, em outros casos, o dispositivo de decodificação de dados tridimensionais determina que o modo de codificação não é um modo predeterminado.
[00909] Quando o modo de codificação é o modo predeterminado (SIM em S3734), o dispositivo de decodificação de dados tridimensionais obtém informação sobre ocupação (padrões de ocupação de vizinhos restantes) de nós vizinhos restantes ao realizar pesquisa de vizinhos do nó pai para pesquisar todos os nós filhos codificados (S3735). Em seguida, o dispositivo de decodificação de dados tridimensionais combina o padrão de ocupação de vizinhos calculado a partir do código de ocupação do nó pai na etapa S3733 e os padrões de ocupação de vizinhos restantes calculados pela pesquisa de vizinhos do nó pai na etapa S3735 (S3736).
[00910] Em seguida, o dispositivo de decodificação de dados tridimensionais converte um padrão de ocupação de vizinhos obtido pela combinação em um índice usando uma tabela de consulta que converte 64 padrões de ocupação de vizinhos em índices de 10 tabelas de codificação (S3737).
[00911] Por outro lado, quando o modo de codificação não é o modo predeterminado (NÃO em S3734), o dispositivo de decodificação de dados tridimensionais converte o padrão de ocupação de vizinhos calculado a partir do código de ocupação do nó pai na etapa S3733 em um índice usando uma tabela de consulta que converte 64 padrões de ocupação de vizinhos em índices de 4 tabelas de codificação (S3738).
[00912] Deve ser observado que, embora um exemplo no qual o número de tabelas de codificação é alterado entre 10 e 4 tenha sido fornecido aqui, o número de tabelas de codificação nem sempre está limitado ao mesmo. Por exemplo, o dispositivo de decodificação de dados tridimensionais pode alterar o número de tabelas de codificação entre N e M, M sendo um número inteiro menor do que ou igual a N.
[00913] Depois disso, o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a ser usada para decodificação por entropia, com base no índice obtido na etapa S3737 ou S3738 (S3739). Em seguida, a entropia do dispositivo de decodificação de dados tridimensionais decodifica um código de ocupação do nó atual usando a tabela de codificação selecionada (S3740).
[00914] Finalmente, o dispositivo de decodificação de dados tridimensionais repete o processo de dividir cada nó em oito e decodificar um código de ocupação de cada nó até que cada nó não possa ser dividido (S3741). Em outras palavras, as etapas S3732 a S3740 são repetidas recursivamente.
[00915] Deve ser observado que, embora a operação do dispositivo de codificação de dados tridimensionais tenha sido principalmente descrita acima, o dispositivo de decodificação de dados tridimensionais pode executar a mesma operação. Além disso, informações tais como vários tipos de flages gerados pelo dispositivo de codificação de dados tridimensionais são incluídas em uma sequência de bits. O dispositivo de decodificação de dados tridimensionais obtém informações, tais como vários tipos de flages incluídos em uma sequência de bits, e executa um processo ao referir-se às informações. MODALIDADE 12
[00916] Um método de remoção de uma tabela de codificação redundante será descrito na presente modalidade. A Figura 122 é um diagrama para ilustrar tabelas de codificação redundantes. Quando os índices de tabela que provavelmente serão usados em métodos de seleção de tabela não são contínuos, são criadas tabelas de codificação redundantes.
[00917] Em resposta a isto, é possível remover tabelas redundantes ao criar tabelas de codificação dinamicamente. Como um resultado, é possível economizar recursos de hardware. Por exemplo, é possível evitar que tabelas redundantes sejam criadas ao calcular o número de tabelas realmente necessárias em tempo de compilação ou tempo de execução (run-time).
[00918] O seguinte descreve exemplos de tabelas de codificação redundantes. No primeiro exemplo, as tabelas redundantes são criadas quando um método de seleção é fornecido. A Figura 123 é um diagrama para ilustrar este exemplo.
[00919] Uma tabela de codificação criada estaticamente inclui tabelas redundantes. É difícil determinar com precisão o número de tabelas em um estágio de design do algoritmo. Portanto, é necessário preparar mais tabelas do que o necessário.
[00920] Por outro lado, quando uma tabela de codificação é criada dinamicamente, o número de tabelas é inserido no algoritmo em tempo de compilação ou tempo de execução. Consequentemente, é possível remover tabelas redundantes.
[00921] No segundo exemplo, as tabelas redundantes são criadas em codificação binária na qual um relacionamento de dependência com nós vizinhos é usado. Para melhorar a eficiência da codificação, a informação sobre vizinhos é usada na codificação binária. A Figura 124 é um diagrama que ilustra um exemplo de um nó atual. Um método de usar informação sobre vizinhos pode diferir entre quando um nó atual não inclui nenhum nó vizinho em um nó pai e quando um nó atual inclui um ou mais nós vizinhos em um nó pai.
[00922] O seguinte descreve o caso 1. A Figura 125 é um diagrama que ilustra uma operação no caso 1. No caso 1, um índice de uma tabela de codificação se baseia em um valor de cada bit codificado em um nó pai.
[00923] No caso 1, o dispositivo de codificação de dados tridimensionais altera uma tabela de codificação de acordo com um valor (ENC) de cada bit de um código de ocupação de um nó atual. Por exemplo, quando o bit 0 é 1 e o bit 1 é 0, o dispositivo de codificação de dados tridimensionais pode usar o índice = 1 (= 1 + 0) como uma tabela de codificação para realizar a codificação aritmética no bit 2. Em outras palavras, ao alterar uma tabela de codificação de acordo com um valor de cada bit de um código de ocupação codificado, por exemplo, o dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação com uma alta probabilidade de 1 quando uma frequência de ocorrência de 1 é alta em cada bit e selecionar uma tabela de codificação com uma alta probabilidade de 0 quando uma frequência de ocorrência de 0 for alta em cada bit. Por este motivo, é possível melhorar a eficiência da codificação.
[00924] Além disso, quando NC = 0, ou seja, nós vizinhos do nó atual não são nós ocupados, o dispositivo de codificação de dados tridimensionais pode usar o método de seleção de uma tabela de codificação descrita no caso 1. Por este motivo, quando uma associação com nós vizinhos é fraca, o dispositivo de codificação de dados tridimensional pode selecionar uma tabela de codificação de acordo com as frequências de ocorrência de 0 e 1 em um código de ocupação. Consequentemente, o caso 1 torna mais possível melhorar a eficiência da codificação, ao mesmo tempo em que reduz o número de tabelas de codificação do que o caso 2 a ser descrito.
[00925] Quando um código de ocupação é de 8 bits no exemplo mostrado na Figura 125, um número total de tabelas de codificação é 1 + 2 + 3 +… + 8 = 36.
[00926] A seguir, o seguinte descreve o caso 2. A Figura 126 é um diagrama que ilustra uma operação no caso 2. No caso 2, um índice de uma tabela de codificação é determinado com base em um índice de uma configuração vizinha (NC) e um bit codificado (ENC). Por exemplo, NCs correspondem aos padrões de ocupação de vizinhos mencionados acima.
[00927] Além disso, um conjunto de diferentes NCs é usado. No exemplo 1, o número de nós vizinhos ocupados em um nó pai é usado. Em outras palavras, o número de NCs é quatro (NC = {0, 1, 2, 3}).
[00928] No exemplo 2, as posições dos nós vizinhos ocupados são usadas. Quando 6 nós vizinhos são usados, o número de NCs é 64 (NC = {0, 1, 2,…, 63}).
[00929] No exemplo 3, alguns NCs são combinados. Como um resultado, o número de NCs é opcional. Por exemplo, 64 NCs são combinados em 10 NCs com base na informação sobre geometria.
[00930] No caso 2, o dispositivo de codificação de dados tridimensionais também pode alterar uma tabela de codificação de acordo com a informação sobre ocupação (NC) de um nó vizinho de um nó atual e um valor (ENC) de cada bit de um código de ocupação.
[00931] A Figura 127 é um diagrama que ilustra um exemplo de configuração de seis nós vizinhos. Por exemplo, quando um dos seis nós vizinhos mostrados na Figura 127 está ocupado, NC = 1 (um caso em que um valor de NC = 0 a 9 é considerado) e o bit 0 é 1, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação para realizar a codificação aritmética no bit 1 usando a informação de NC = 1 e bit 0 = 1. Em outras palavras, o dispositivo de codificação de dados tridimensional muda uma tabela de codificação de acordo com a informação sobre ocupação de um nó vizinho e um valor de cada bit de um código de ocupação codificado. Por esta razão, uma vez que o dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação apropriada em conformidade quando, por exemplo, um dos nós vizinhos está ocupado e uma frequência de ocorrência de 1 é alta em cada bit, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência da codificação. Além disso, quando NC > 0, ou seja, pelo menos um nó vizinho de um nó atual é um nó ocupado, o dispositivo de codificação de dados tridimensionais pode usar o método de seleção de uma tabela de codificação descrita no caso 2. Por este motivo, uma vez que o dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação de acordo com uma associação com os nós vizinhos e frequências de ocorrência de 0 e 1 em um código de ocupação, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação.
[00932] O seguinte descreve o terceiro exemplo. No terceiro exemplo, por exemplo, NC = 10 (um caso em que um valor de NC = 0 a 9 é considerado). As tabelas redundantes são criadas por codificação binária na qual as informações sobre vizinhos são usadas. A Figura 128 é um diagrama para ilustrar o terceiro exemplo.
[00933] No terceiro exemplo, quando NC = 0, uma tabela de codificação é selecionada com base no número de bits (ENC) que indica um estado de ocupação e incluída nos bits codificados. Quando NC > 0, uma tabela de codificação é selecionada com base em um ENC e um NC (1 a 9).
[00934] A Figura 128 mostra o número de tabelas de codificação para cada bit quando um método de seleção de uma tabela de codificação é definido para o caso 2, independentemente de um valor de um NC (caso 2 para todos); o número de tabelas de codificação para cada bit quando o caso 1 é usado como um método de seleção de uma tabela de codificação no caso de NC = 0 e o caso 2 é usado como o mesmo no caso de NC > 0; e o número de tabelas que não devem ser usadas (o número de tabelas redundantes) que é uma diferença entre estes números.
[00935] Quando estes dois casos são usados, as equações para calcular um número total de tabelas são complexas e não é fácil gerar índices. Consequentemente, é difícil criar um número fixo de tabelas de codificação. Isto ocorre porque o número de tabelas aumenta linearmente quando NC = 0, porém, o número de tabelas aumenta exponencialmente quando NC > 0. Consequentemente, o número de tabelas redundantes (tabelas que não devem ser usadas) aumenta, e é impossível usar índices das tabelas redundantes para ambos os casos.
[00936] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode remover tabelas de codificação criadas, mas não para serem usadas. Uma vez que isto permite reduzir o tempo de inicialização das tabelas de codificação, é possível obter uma maior velocidade e redução de uso da memória.
[00937] O seguinte descreve o quarto exemplo. No quarto exemplo, por exemplo, NC = 4 (um caso em que um valor de NC = 0 a 3 é considerado). As tabelas redundantes são criadas por meio de codificação binária na qual a informação sobre vizinhos é usada. A
Figura 129 é um diagrama para ilustrar o quarto exemplo. Deve ser observado que o quarto exemplo difere do terceiro quanto ao número total de números NC. Conforme mostrado na Figura 129, tabelas redundantes (tabelas que não devem ser usadas) são criadas no quarto exemplo, conforme no caso com o terceiro exemplo.
[00938] O seguinte descreve exemplos de tabelas de codificação redundantes. A Figura 130 é um diagrama que ilustra um exemplo de tabelas de codificação quando as tabelas de codificação são criadas estaticamente para cada bit no terceiro exemplo acima (NC = 10).
[00939] Conforme mostrado na Figura 130, para NC0, o número de tabelas aumenta linearmente com um aumento no número de bits. Para NC1 a NC9, o número de tabelas aumenta exponencialmente com um aumento no número de bits.
[00940] Aqui, uma codificação diferente é usada entre NC0 e NC >
0. Como um resultado, o número total de tabelas aumenta linearmente para NC0 e aumenta exponencialmente para NC > 0.
[00941] A Figura 131 é um diagrama que ilustra um exemplo de tabelas de codificação quando as tabelas de codificação são criadas estaticamente para cada bit no quarto exemplo acima (NC = 4). Deve ser observado que o dispositivo de codificação de dados tridimensionais não precisa criar tabelas redundantes ao separar uma tabela para NC0 e uma tabela para NC > 0, conforme mostrado na Figura 132.
[00942] No quinto exemplo, o dispositivo de codificação de dados tridimensional remove tabelas redundantes criando tabelas para NC0 e tabelas para NC > 0 separadamente. A Figura 133 é um diagrama para ilustrar o quinto exemplo. A Figura 134 é um diagrama que ilustra o número total de tabelas de codificação após as tabelas redundantes serem removidas.
[00943] A seguir, o seguinte descreve um processo de criação de uma tabela de codificação com um tamanho dinâmico. A Figura 135 é um diagrama para ilustrar este processo. A fim de criar um número necessário e preciso de tabelas de codificação, uma configuração (uma entrada de configuração) para o tamanho da tabela de codificação é inserida no dispositivo de codificação de dados tridimensional.
[00944] A Figura 136 é um diagrama que ilustra o tamanho de cada tabela ao definir a entrada = 10. Conforme mostrado na Figura 136, o tamanho da tabela 0 é definido como Tamanho = 2 bits × (x - 1) + bit + 1 no código-fonte. O tamanho de cada tabela é determinado após obter um número indefinido x. Aqui, 2bit × (x - 1) corresponde a um tamanho quando NC > 0 no segundo exemplo e bit + 1 corresponde a um tamanho quando NC = 0.
[00945] Usando tal configuração, é possível criar tabelas de codificação dinamicamente em tempo de compilação ou tempo de execução.
[00946] A Figura 137 é um fluxograma de um processo de criação de uma tabela de codificação dinâmica. Primeiro, o dispositivo de codificação de dados tridimensionais determina se um flag de tamanho de tabela dinâmica (dynamicTableSize) é 1 (S3801). dynamicTableSize é um flag que indica se deve usar um tamanho de tabela dinâmica. O dispositivo de codificação de dados tridimensionais gera o flag e uma sequência de bits que inclui o flag. Além disso, o dispositivo de decodificação de dados tridimensionais obtém o flag incluído na sequência de bits.
[00947] Quando dynamicTableSize é 1 (SIM em S3801), o dispositivo de codificação de dados tridimensional carrega uma configuração de tamanho dinâmico (S3802). Em seguida, o dispositivo de codificação de dados tridimensionais cria uma tabela de codificação com base na configuração carregada (S3803). Esta tabela de codificação não inclui tabelas redundantes.
[00948] Quando dynamicTableSize não é 1 (NÃO em S3801), o dispositivo de codificação de dados tridimensional cria uma tabela de codificação estática (S3804). Esta tabela de codificação pode incluir tabelas redundantes.
[00949] Deve ser observado que, embora um exemplo no qual o código de ocupação de 8 bits é usado tenha sido fornecido acima, a presente invenção não está necessariamente limitada ao mesmo. Por exemplo, o presente procedimento pode ser aplicado a um código com outro número de bits, tal como dez bits. Além disso, o código a ser usado não se limita a um código de ocupação.
[00950] A Figura 138 é um diagrama que ilustra o tamanho de cada tabela ao definir entrada = 4. Deve ser observado que um método de cálculo do tamanho de uma tabela é o mesmo que definir entrada = 10.
[00951] O dispositivo de codificação de dados tridimensionais pode alterar um processo de criação de uma tabela com base em um flag de pesquisa (search_flag). Por exemplo, o dispositivo de codificação de dados tridimensionais anexa, a uma sequência de bits, um flag de pesquisa (search_flag) que indica se deve ser realizada a pesquisa no vizinhos do nó pai. Quando search_flag = 1, o dispositivo de codificação de dados tridimensionais pode preparar tabelas de codificação quando NC = {0, 1,…, 9}; calcular um padrão de ocupação de vizinhos (NC) ao realizar a pesquisa de vizinhos do nó pai; gerar um índice de uma das tabelas de codificação usando um valor do padrão de ocupação de vizinhos e um valor de cada bit de um código de ocupação codificado; e realizar a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice.
[00952] Além disso, quando search_flag = 0, o dispositivo de codificação de dados tridimensionais pode preparar tabelas de codificação quando NC = {0, 1,…, 3}; calcular um padrão de ocupação de vizinhos (NC) sem realizar a pesquisa de vizinhos do nó pai; gerar um índice de uma das tabelas de codificação usando um valor do padrão de ocupação de vizinhos e um valor de cada bit de um código de ocupação codificado; e realizar a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice.
[00953] É possível controlar o equilíbrio entre a eficiência de codificação, a quantidade de processamento e a quantidade de memória (i) ao controlar o número de tabelas de codificação a serem criadas, ao alterar um valor de search_flag e (ii) ao selecionar o vizinho do nó pai de pesquisa e uma tabela de codificação a ser usada da maneira acima.
[00954] A Figura 139 é um fluxograma deste processo. Primeiro, o dispositivo de codificação de dados tridimensionais determina se search_flag é 1 (S3811). Deve ser observado que o dispositivo de codificação de dados tridimensionais pode codificar, por exemplo, um flag (search_skip_flag) que indica se a pesquisa deve ser ignorada no vizinhos do nó pai, em vez de search_flag. Por exemplo, o dispositivo de codificação de dados tridimensionais anexa search_skip_flag a uma sequência de bits. Quando search_skip_flag = 1, o dispositivo de codificação de dados tridimensionais prepara tabelas de codificação quando NC = {0, 1,…, 3}; calcula um padrão de ocupação de vizinhos (NC) sem realizar a pesquisa de vizinhos do nó pai; gera um índice de uma das tabelas de codificação usando um valor do padrão de ocupação de vizinhos e um valor de cada bit de um código de ocupação codificado; e executa a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice. Além disso, quando search_skip_flag = 0, o dispositivo de codificação de dados tridimensionais prepara tabelas de codificação quando NC = {0, 1,…, 9}; calcula um NC ao realizar a pesquisa de vizinhos do nó pai; gera um índice de uma das tabelas de codificação usando um valor do NC e um valor de cada bit de um código de ocupação codificado; e executa a codificação aritmética em um código de ocupação usando a tabela de codificação com o índice.
[00955] Quando search_flag é 1 (SIM em S3811), o dispositivo de codificação de dados tridimensionais prepara tabelas de codificação quando NC = {0, 1,…, 9} (S3812). Neste momento, o dispositivo de codificação de dados tridimensionais pode remover tabelas redundantes.
[00956] Quando search_flag não é 1 (NÃO em S3811), o dispositivo de codificação de dados tridimensionais prepara tabelas de codificação quando NC = {0, 1, ..., 3} (S3813). Neste ponto, o dispositivo de codificação de dados tridimensionais pode remover tabelas redundantes.
[00957] Deve ser observado que, embora a operação do dispositivo de codificação de dados tridimensionais tenha sido principalmente descrita acima, o dispositivo de decodificação de dados tridimensionais pode executar a mesma operação. Além disso, informações tais como vários tipos de flages gerados pelo dispositivo de codificação de dados tridimensionais são incluídas em uma sequência de bits. O dispositivo de decodificação de dados tridimensionais obtém informações, tais como vários tipos de flages incluídos em uma sequência de bits, e executa um processo ao referir-se às informações.
[00958] Um dispositivo de codificação de dados tridimensionais, um dispositivo de decodificação de dados tridimensionais e assim por diante, de acordo com as modalidades da presente invenção, foram descritos acima, porém, a presente invenção não está limitada a tais modalidades.
[00959] Observe que cada um dos processadores incluídos no dispositivo de codificação de dados tridimensionais, no dispositivo de decodificação de dados tridimensionais e assim por diante, de acordo com as modalidades acima, é tipicamente implementado como um circuito integrado de grande escala (Large Scale Integrated, LSI), o qual é um circuito integrado (IC). Os mesmos assumem a forma de chips individuais ou podem ser parcial ou totalmente incorporados em um único chip.
[00960] Tal IC não está limitado a um LSI, e, desta forma, pode ser implementado como um circuito dedicado ou um processador de finalidade geral. Alternativamente, um conjunto de porta programável em campo (FPGA) que permite a programação depois da fabricação de um LSI ou um processador reconfigurável que permite a reconfiguração da conexão e a configuração das células de circuito dentro de um LSI, podem ser empregados.
[00961] Além disso, nas modalidades acima, os componentes estruturais podem ser implementados como hardware dedicado ou podem ser realizados ao executar um programa de software adequado para tais componentes estruturais. Alternativamente, os componentes estruturais podem ser implementados por um executor de programa, tal como uma CPU ou um processador que leia e execute o programa de software gravado em um meio de gravação, tal como um disco rígido ou uma memória semicondutora.
[00962] A presente invenção também pode ser implementada como um método de codificação de dados tridimensionais, um método de decodificação de dados tridimensionais ou similar, executados pelo dispositivo de codificação de dados tridimensionais, dispositivo de decodificação de dados tridimensionais e assim por diante.
[00963] Além disso, as divisões dos blocos funcionais mostradas nos diagramas de blocos são meros exemplos, e, desta forma, uma pluralidade de blocos funcionais pode ser implementada com um único bloco funcional ou um único bloco funcional pode ser dividido em uma pluralidade de blocos funcionais ou uma ou mais funções podem ser movidas para outro bloco funcional. Além disso, as funções de uma pluralidade de blocos funcionais que têm funções similares podem ser processadas por hardware ou software individual de forma paralelizada ou dividida no tempo.
[00964] Além disso, a ordem de processamento da execução das etapas mostradas nos fluxogramas é uma mera ilustração para descrever especificamente a presente invenção, e, desta forma, pode ser uma ordem além da ordem mostrada. Além disso, uma ou mais dentre as etapas podem ser executadas simultaneamente (em paralelo) com outra etapa.
[00965] Um dispositivo de codificação de dados tridimensionais, um dispositivo de decodificação de dados tridimensionais e assim por diante, de acordo com um ou mais aspectos, foram descritos com base nas modalidades, mas a presente invenção não está limitada a tais modalidades. Os um ou mais aspectos podem, desta forma, incluir formas alcançadas ao realizar várias modificações às modalidades acima, as quais podem ser concebidas por aqueles versados na técnica, além das formas alcançadas pela combinação de componentes estruturais em modalidades diferentes, sem se distanciar materialmente do espírito da presente invenção.
APLICABILIDADE INDUSTRIAL
[00966] A presente invenção é aplicável a um dispositivo de codificação de dados tridimensionais e a um dispositivo de decodificação de dados tridimensionais.
MARCAS DE REFERÊNCIA NOS DESENHOS 100, 400 dispositivo de codificação de dados tridimensionais 101, 201, 401, 501 elemento de obtenção 102, 402 determinador de região de codificação 103 divisor 104, 644 codificador 111 dados tridimensionais
112, 211, 413, 414,511, 634 dados tridimensionais codificados 200, 500 dispositivo de decodificação de dados tridimensionais 202 determinador de decodificação de GOS inicial 203 determinador de decodificação de SPC 204, 625 decodificador 212, 512, 513 dados tridimensionais decodificados 403 extrator de SWLD 404 codificador de WLD 405 codificador de SWLD 411 dados tridimensionais registrados 412 dados tridimensionais extraídos 502 analisador de cabeçalho 503 decodificador de WLD 504 decodificador de SWLD 620, 620A dispositivo de criação de dados tridimensionais 621, 641 criador de dados tridimensionais 622 determinador de faixa de solicitação 623 buscador 624, 642 receptor 626 merger 631, 651 informação sobre sensor 632 primeiros dados tridimensionais 633 informação de faixa de solicitação 635 segundos dados tridimensionais 636 terceiros dados tridimensionais 640 dispositivo de transmissão de dados tridimensionais
643 extrator 645 transmissor 652 quintos dados tridimensionais 654 sextos dados tridimensionais 700 dispositivo de processamento de informação tridimensional 701 elemento de obtenção de mapa tridimensional 702 elemento de obtenção de dados auto detectados 703 unidade de julgamento de caso anormal 704 determinador de operação de enfrentamento 705 controlador de operação 711 mapa tridimensional 712 dados tridimensionais auto detectados 810 dispositivo de criação de dados tridimensionais 811 receptor de dados 812, 819 unidade de comunicação 813 controlador de recepção 814, 821 conversor de formato 815 sensor 816 criador de dados tridimensionais 817 sintetizador de dados tridimensionais 818 buffer de dados tridimensionais 820 controlador de transmissão 822 transmissor de dados 831, 832, 834, 835, 836, 837 dados tridimensionais 833 informação sobre sensor 901 servidor
902, 902A, 902B, 902C dispositivo de cliente 1011, 1111 receptor de dados 1012, 1020, 1112, 1120 unidade de comunicação 1013, 1113 controlador de recepção 1014, 1019, 1114, 1119 conversor de formato 1015 sensor 1016, 1116 criador de dados tridimensionais 1017 processador de imagem tridimensional 1018, 1118 @p.226 buffer de dados tridimensionais 1021, 1121 controlador de transmissão 1022, 1122 transmissor de dados 1031, 1032, 1135 mapa tridimensional 1033, 1037, 1132 informação sobre sensor 1034, 1035, 1134 dados tridimensionais 1117 merger de dados tridimensionais 1201 processador de compressão / decodificação de mapa tridimensional 1202 processador de compressão /decodificação de informação sobre sensor 1211 processador de decodificação de mapa tridimensional 1212 processador de compressão de informação sobre sensor 1300 dispositivo de codificação de dados tridimensionais 1301 divisor 1302 subtrator 1303 transformador 1304 quantizador 1305, 1402 quantizador inverso
1306, 1403 transformador inverso 1307, 1404 somador 1308, 1405 memória de volume de referência 1309, 1406 intraprevisor 1310, 1407 memória de espaço de referência 1311, 1408 interprevisor 1312, 1409 controlador de previsão 1313 codificador por entropia 1400 dispositivo de decodificação de dados tridimensionais 1401 decodificador por entropia 1900 dispositivo de codificação de dados tridimensionais 1901, 1911 gerador de "octree" 1902, 1912 calculadora de informação sobre similaridade 1903, 1913 seletor de tabela de codificação 1904 codificador por entropia 1910 dispositivo de decodificação de dados tridimensionais 1914 decodificador por entropia 2100 dispositivo de codificação de dados tridimensionais 2101, 2111 gerador de "octree" 2102, 2112 calculadora de informação sobre geometria 2103, 2113 seletor de tabela de codificação 2104 codificador por entropia 2110 dispositivo de decodificação de dados tridimensionais 2114 decodificador por entropia
3600 dispositivo de codificação de dados tridimensional 3601, 3611 gerador de "octree" 3602, 3612 calculadora de informação sobre geometria 3603, 3613 gerador de índices 3604, 3614 seletor de tabela de codificação 3605 codificador por entropia 3610 dispositivo de decodificação de dados tridimensional 3615 decodificador por entropia

Claims (18)

REIVINDICAÇÕES
1. Método de codificação de dados tridimensionais caracterizado pelo fato de que compreende: codificar um primeiro flag que indica se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido na codificação do nó atual incluído em uma estrutura de árvore n-ária de pontos tridimensionais incluídos em tridimensional dados, n sendo um número inteiro maior do que ou igual a 2; selecionar uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação de nós vizinhos do nó atual e realizar a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e selecionar uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
2. Método de codificação de dados tridimensionais, de acordo com a reivindicação 1, caracterizado pelo fato de que N é maior do que M.
3. Método de codificação de dados tridimensionais, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que, quando uma tabela de codificação é selecionada a partir de M tabelas de codificação, a tabela de codificação é selecionada a partir de M tabelas de codificação por meio de referência a uma tabela de correspondência de acordo com os estados de ocupação dos nós vizinhos, a tabela de correspondência indicando uma relação de correspondência entre os padrões de ocupação L que indica os estados de ocupação dos nós vizinhos e as M tabelas de codificação, L sendo um número inteiro maior do que M.
4. Método de codificação de dados tridimensionais, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que, quando uma tabela de codificação é selecionada a partir de M tabelas de codificação, a tabela de codificação é selecionada a partir de M tabelas de codificação por meio de referência a uma primeira tabela de correspondência e uma segunda tabela de correspondência de acordo com os estados de ocupação dos nós vizinhos, a primeira tabela de correspondência indicando uma relação de correspondência entre os padrões de ocupação L que indica os estados de ocupação dos nós vizinhos e I tabelas de codificação, a segunda tabela de correspondência indicando uma relação de correspondência entre as I tabelas de codificação e as M tabelas de codificação, L sendo um número inteiro maior do que I, I sendo um número inteiro maior do que M.
5. Método de codificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai, e uma tabela de codificação idêntica entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e é vizinho do nó atual em uma direção horizontal a um plano x-y.
6. Método de codificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai, e uma tabela de codificação idêntica entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e é vizinho do nó atual em uma direção vertical a um plano x-y.
7. Método de codificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai, e uma tabela de codificação idêntica entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido por dois dos três nós vizinhos ocupados e o nó atual é horizontal a um plano x-y.
8. Método de codificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai, e uma tabela de codificação idêntica entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido pelos dois dos três nós vizinhos ocupados e o nó atual é vertical a um plano x-y.
9. Método de decodificação de dados tridimensionais, caracterizado pelo fato de que compreende:
decodificar um primeiro flag que indica se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido na decodificação do nó atual incluído em uma estrutura de árvore n-ária de pontos tridimensionais incluídos em tridimensional dados, n sendo um número inteiro maior do que ou igual a 2; selecionar uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e selecionar uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realizar a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
10. Método de decodificação de dados tridimensionais, de acordo com a reivindicação 9, caracterizado pelo fato de que N é maior do que M.
11. Método de decodificação de dados tridimensionais, de acordo com a reivindicação 9 ou 10, caracterizado pelo fato de que, quando uma tabela de codificação é selecionada a partir de M tabelas de codificação, a tabela de codificação é selecionada a partir de M tabelas de codificação por meio de referência a uma tabela de correspondência, de acordo com os estados de ocupação dos nós vizinhos, a tabela de correspondência indicando uma relação de correspondência entre a ocupação L padrões que indicam os estados de ocupação dos nós vizinhos e as M tabelas de codificação, sendo L um número inteiro maior do que M.
12. Método de decodificação de dados tridimensionais, de acordo com a reivindicação 9 ou 10, caracterizado pelo fato de que, quando uma tabela de codificação é selecionada a partir de M tabelas de codificação, a tabela de codificação é selecionada a partir de M tabelas de codificação por meio de referência a uma primeira tabela de correspondência e uma segunda tabela de correspondência, de acordo com os estados de ocupação dos nós vizinhos, a primeira tabela de correspondência indicando uma relação de correspondência entre os padrões de ocupação L que indica os estados de ocupação dos nós vizinhos e I tabelas de codificação, a segunda tabela de correspondência indicando uma relação de correspondência entre as I tabelas de codificação e as M tabelas de codificação, L sendo um número inteiro maior do que I, I sendo um número inteiro maior do que M.
13. Método de decodificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 9 a 12, caracterizado pelo fato de que os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai, e uma tabela de codificação idêntica entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e é vizinho do nó atual em uma direção horizontal a um plano x-y.
14. Método de decodificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 9 a 12, caracterizado pelo fato de que os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai, e uma tabela de codificação idêntica entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais um dos três nós vizinhos está ocupado e é vizinho ao nó atual em uma direção vertical a um plano x-y.
15. Método de decodificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 9 a 12, caracterizado pelo fato de que os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai, e uma tabela de codificação idêntica entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido por dois dos três nós vizinhos ocupados e o nó atual é horizontal a um plano x-y.
16. Método de decodificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 9 a 12, caracterizado pelo fato de que os estados de ocupação dos nós vizinhos quando o primeiro flag indica que o nó não deve ser referido são padrões de ocupação representados por combinações de uma posição do nó atual em um nó pai e estados de ocupação de três nós vizinhos no nó pai, e uma tabela de codificação idêntica entre as M tabelas de codificação é atribuída, dentre os padrões de ocupação, a padrões de ocupação nos quais dois dos três nós vizinhos estão ocupados e um plano definido pelos dois dos três nós vizinhos ocupados e o nó atual é vertical a um plano x-y.
17. Dispositivo de codificação de dados tridimensionais que codifica pontos tridimensionais, cada um incluindo informação sobre atributo, caracterizado pelo fato de que compreende: um processador; e uma memória,
em que, usando a memória, o processador: codifica um primeiro flag que indica se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido na codificação do nó atual incluído em uma estrutura de árvore n-ária de pontos tridimensionais incluídos em tridimensional dados, n sendo um número inteiro maior do que ou igual a 2; seleciona uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação de nós vizinhos do nó atual e realiza a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e seleciona uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realiza a codificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
18. Dispositivo de decodificação de dados tridimensionais que decodifica pontos tridimensionais, cada um incluindo informação sobre atributo, caracterizado pelo fato de que compreende: um processador; e uma memória, em que, usando a memória, o processador: decodifica um primeiro flag que indica se um nó com um nó pai diferente de um nó pai de um nó atual deve ser referido na decodificação do nó atual incluído em uma estrutura de árvore n-ária de pontos tridimensionais incluídos em tridimensional dados, n sendo um número inteiro maior do que ou igual a 2; seleciona uma tabela de codificação a partir de N tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realiza a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó deve ser referido; e seleciona uma tabela de codificação a partir de M tabelas de codificação de acordo com os estados de ocupação dos nós vizinhos do nó atual e realiza a decodificação aritmética na informação sobre o nó atual usando a tabela de codificação selecionada quando o primeiro flag indica que o nó não deve ser referido, M sendo um número inteiro diferente de N.
BR112020025049-0A 2018-06-15 2019-06-14 método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais BR112020025049A2 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862685552P 2018-06-15 2018-06-15
US62/685,552 2018-06-15
US201862689469P 2018-06-25 2018-06-25
US62/689,469 2018-06-25
US201862695399P 2018-07-09 2018-07-09
US62/695,399 2018-07-09
PCT/JP2019/023775 WO2019240285A1 (ja) 2018-06-15 2019-06-14 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Publications (1)

Publication Number Publication Date
BR112020025049A2 true BR112020025049A2 (pt) 2021-03-23

Family

ID=68842152

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020025049-0A BR112020025049A2 (pt) 2018-06-15 2019-06-14 método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais

Country Status (11)

Country Link
US (2) US11606551B2 (pt)
EP (1) EP3816939A4 (pt)
JP (1) JPWO2019240285A1 (pt)
KR (1) KR20210019433A (pt)
CN (1) CN112352263A (pt)
AU (1) AU2019285351A1 (pt)
BR (1) BR112020025049A2 (pt)
CA (1) CA3103454A1 (pt)
MX (1) MX2020013424A (pt)
SG (1) SG11202012326TA (pt)
WO (1) WO2019240285A1 (pt)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4213096A1 (en) * 2018-01-18 2023-07-19 BlackBerry Limited Methods and devices for entropy coding point clouds
AU2019285351A1 (en) * 2018-06-15 2021-01-07 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
KR20210020924A (ko) 2018-06-27 2021-02-24 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치, 및 삼차원 데이터 복호 장치
KR20220123258A (ko) 2020-01-06 2022-09-06 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 인트라 예측 방법, 장치, 인코더, 디코더 및 저장 매체
CN111325766B (zh) * 2020-02-20 2023-08-25 腾讯科技(深圳)有限公司 三维边缘检测方法、装置、存储介质和计算机设备
JP2023525207A (ja) * 2020-03-24 2023-06-15 オッポ広東移動通信有限公司 イントラ予測方法、装置、エンコーダ、デコーダ、及び記憶媒体
WO2021210513A1 (ja) * 2020-04-13 2021-10-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11438628B2 (en) * 2020-06-03 2022-09-06 Tencent America LLC Hash-based accessing of geometry occupancy information for point cloud coding
WO2021258373A1 (en) * 2020-06-24 2021-12-30 Beijing Xiaomi Mobile Software Co., Ltd. Method of encoding and decoding, encoder, decoder and software
US11941856B2 (en) * 2020-08-18 2024-03-26 Tencent America LLC Predictive tree-based geometry coding for a point cloud
CN113676738B (zh) * 2021-08-19 2024-03-29 上海交通大学 一种三维点云的几何编解码方法及装置
WO2024074123A1 (en) * 2022-10-04 2024-04-11 Douyin Vision Co., Ltd. Method, apparatus, and medium for point cloud coding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置
WO2015119477A1 (ko) 2014-02-10 2015-08-13 엘지전자 주식회사 3d (3-dimentional) 방송 서비스를 위한 방송 신호 송수신 방법 및 장치
US10694210B2 (en) 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US10897269B2 (en) * 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
EP3553745B1 (en) * 2018-04-09 2021-09-01 BlackBerry Limited Methods and devices for binary entropy coding of point clouds
AU2019285351A1 (en) * 2018-06-15 2021-01-07 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device

Also Published As

Publication number Publication date
MX2020013424A (es) 2021-03-02
US20210099697A1 (en) 2021-04-01
AU2019285351A1 (en) 2021-01-07
EP3816939A4 (en) 2021-06-30
SG11202012326TA (en) 2021-01-28
US11936846B2 (en) 2024-03-19
US11606551B2 (en) 2023-03-14
CN112352263A (zh) 2021-02-09
US20230188705A1 (en) 2023-06-15
CA3103454A1 (en) 2019-12-19
JPWO2019240285A1 (ja) 2021-07-26
KR20210019433A (ko) 2021-02-22
WO2019240285A1 (ja) 2019-12-19
EP3816939A1 (en) 2021-05-05

Similar Documents

Publication Publication Date Title
BR112020025049A2 (pt) método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais
US11882317B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US11936910B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
BR112020024802A2 (pt) método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais
WO2019146691A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CA3082460A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
EP3699861B1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
BR112020024052A2 (pt) método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais
BR112021013402A2 (pt) Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais, e dispositivo de decodificação de dados tridimensionais
BR112020024480A2 (pt) método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais
BR112020023939A2 (pt) método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais
BR112020024566A2 (pt) Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais
US11443459B2 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
JPWO2019142834A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20200374566A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
BR112021010550A2 (pt) Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais
BR112021010602A2 (pt) Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais, e dispositivo de decodificação de dados tridimensionais
BR112021010082A2 (pt) Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais
RU2798751C2 (ru) Способ кодирования трехмерных данных, способ декодирования трехмерных данных, устройство кодирования трехмерных данных и устройство декодирования трехмерных данных
US20240244179A1 (en) Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device