BR112021010602A2 - 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
BR112021010602A2
BR112021010602A2 BR112021010602-2A BR112021010602A BR112021010602A2 BR 112021010602 A2 BR112021010602 A2 BR 112021010602A2 BR 112021010602 A BR112021010602 A BR 112021010602A BR 112021010602 A2 BR112021010602 A2 BR 112021010602A2
Authority
BR
Brazil
Prior art keywords
information
dimensional data
dimensional
encoding
coefficient values
Prior art date
Application number
BR112021010602-2A
Other languages
English (en)
Inventor
Toshiyasu Sugio
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 BR112021010602A2 publication Critical patent/BR112021010602A2/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • 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/124Quantisation
    • 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/18Methods 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 a set of transform coefficients
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

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)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

"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. A presente invenção refere-se a um método de codificação de dados tridimensionais que inclui: calcular valores de coeficiente a partir de peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos (S6691); gerar uma segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que os valores de coeficiente são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0 (S6692); e gerar um fluxo de bits incluindo a segunda sequência de codificação (S6693). Por exemplo, cada uma das peças de informação de atributo pode incluir componentes, cada um dos valores de coeficiente pode incluir componentes de coeficiente correspondentes aos componentes, a primeira informação pode indicar o número total de os valores de coeficiente consecutivos incluindo os componentes de coeficiente todos sendo 0, e a segunda informação pode indicar se cada um dos componentes de coeficiente é 0.

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 invenção refere-se a 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, e um dispositivo de decodificação de dados tridimensionais. Antecedentes
[002] Dispositivos ou serviços que utilizam dados tridimensionais são esperados ter seu uso difundido em uma ampla gama de campos, tal como visão de computador que permite operações autônomas de carros ou 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] Métodos de representação de 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 é esperada 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 acúmulo e transmissão, 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] Adicionalmente, uma técnica de busca e exibição de uma instalação localizada nas proximidades do veículo é conhecida (por exemplo, vide Literatura de Patente (LPT) 1). Lista de citação Literatura de patente
[006] LPT 1: Publicação Internacional WO 2014/020663 Sumário da invenção Problema técnico
[007] Tem havido uma demanda pela melhoria de eficiência de codificação em um processo de codificação de dados tridimensionais.
[008] A presente descrição tem um objeto para prover 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 é capaz de melhorar a eficiência de codificação. Soluções ao problema
[009] Um método de codificação de dados tridimensionais de acordo com um aspecto da presente descrição inclui: calcular valores de coeficiente a partir de peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos; gerar uma segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que os valores de coeficiente são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é
0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; e gerar um fluxo de bits incluindo a segunda sequência de codificação.
[0010] Um método de codificação de dados tridimensionais de acordo com um aspecto da presente descrição inclui: calcular valores de coeficiente a partir de peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos; gerar uma segunda sequência e codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que os valores de coeficiente são dispostos, a segunda informação indicando se cada um dos valores de coeficiente for 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; e gerar um fluxo de bits incluindo a segunda sequência de codificação. Efeito vantajoso da invenção
[0011] A presente descrição provê 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 é capaz de melhorar a eficiência de codificação. Breve descrição dos desenhos
[0012] A figura 1 é um diagrama ilustrando a estrutura dos dados tridimensionais codificados de acordo com a Modalidade 1.
[0013] A figura 2 é um diagrama ilustrando um exemplo de estruturas de predição dentre os SPCs que pertencem à camada mais inferior em um GOS de acordo com a Modalidade 1.
[0014] A figura 3 é um diagrama ilustrando um exemplo de estruturas de predição dentre as camadas de acordo com a Modalidade
1.
[0015] A figura 4 é um diagrama ilustrando uma ordem ilustrativa de codificação de GOSs de acordo com a Modalidade 1.
[0016] A figura 5 é um diagrama ilustrando 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 ilustrando um exemplo de metainformação de acordo com a Modalidade 1.
[0022] A figura 11 é um diagrama mostrando uma estrutura ilustrativa de um SWLD de acordo com a Modalidade 2.
[0023] A figura 12 é um diagrama ilustrando operações ilustrativas realizadas por um servidor e por um cliente de acordo com a Modalidade
2.
[0024] A figura 13 é um diagrama ilustrando operações ilustrativas realizadas pelo servidor e por um cliente de acordo com a Modalidade
2.
[0025] A figura 14 é um diagrama ilustrando operações ilustrativas realizadas pelo servidor e pelos clientes de acordo com a Modalidade
2.
[0026] A figura 15 é um diagrama ilustrando 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 de 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 de processos de decodificação de acordo com a Modalidade 2.
[0031] A figura 20 é um diagrama mostrando uma estrutura ilustrativa de um WLD de acordo com a Modalidade 2.
[0032] A figura 21 é um diagrama ilustrando uma estrutura de “octree” ilustrativa de WLD de acordo com a Modalidade 2.
[0033] A figura 22 é um diagrama mostrando uma estrutura ilustrativa de um SWLD de acordo com a Modalidade 2.
[0034] A figura 23 é um diagrama ilustrando 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 ilustrando 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 de 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 ilustrando uma estrutura de uma variação do sistema de acordo com a Modalidade 6.
[0047] A figura 36 é um diagrama ilustrando 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 reivindicação 7.
[0049] A figura 38 é um diagrama ilustrando um exemplo de um residual de predição de acordo com a Modalidade 7.
[0050] A figura 39 é um diagrama ilustrando um exemplo de um volume de acordo com a Modalidade 7.
[0051] A figura 40 é um diagrama ilustrando um exemplo de uma representação de “octree” do volume de acordo com a Modalidade 7.
[0052] A figura 41 é um diagrama ilustrando um exemplo de sequências de bits de volume de acordo com a Modalidade 7.
[0053] A figura 42 é um diagrama ilustrando um exemplo de uma representação de “octree” de um volume de acordo com a Modalidade
7.
[0054] A figura 43 é um diagrama ilustrando um exemplo do volume de acordo com a Modalidade 7.
[0055] A figura 44 é um diagrama para descrever um processo de intraprediçã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 ilustrando uma sintaxe ilustrativa de um indicador de RT e informação de RT de acordo com a Modalidade
7.
[0058] A figura 47 é um diagrama para descrever um processo de interprediçã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 ilustrando uma relação de referência em uma estrutura de “octree” de acordo com a Modalidade 8.
[0063] A figura 52 é um diagrama ilustrando uma relação de referência em uma região espacial de acordo com a Modalidade 8.
[0064] A figura 53 é um diagrama ilustrando um exemplo de nós de referência vizinhos de acordo com a Modalidade 8.
[0065] A Figura 54 é um diagrama ilustrando uma relação entre um nó parental e nós de acordo com a Modalidade 8.
[0066] A Figura 55 é um diagrama ilustrando um exemplo de um código de ocupação do nó parental de acordo com a Modalidade 8.
[0067] A Figura 56 é um diagrama de blocos de um dispositivo de codificação de dados tridimensionais de acordo com a Modalidade 8.
[0068] A Figura 57 é diagrama de blocos de um dispositivo de decodificação de dados tridimensionais de acordo com a Modalidade 8.
[0069] A Figura 58 é um fluxograma de um processo de codificação de dados tridimensionais de acordo com a Modalidade 8.
[0070] A Figura 59 é um fluxograma de um processo de decodificação de dados tridimensionais de acordo com a Modalidade 8.
[0071] A Figura 60 é um diagrama ilustrando um exemplo de seleção de uma tabela de codificação de acordo com a Modalidade 8.
[0072] A Figura 61 é um diagrama ilustrando uma relação de referência em uma região espacial de acordo com a Variação 1 da Modalidade 8.
[0073] A Figura 62 é um diagrama ilustrando uma sintaxe ilustrativa de informação de cabeçalho de acordo com a Variação 1 da Modalidade
8.
[0074] A Figura 63 é um diagrama ilustrando uma sintaxe ilustrativa de informação de cabeçalho de acordo com a Variação 1 da Modalidade
8.
[0075] A Figura 64 é um diagrama ilustrando um exemplo de nós de referência vizinhos de acordo com a Variação 2 da Modalidade 8.
[0076] A Figura 65 é um diagrama ilustrando um exemplo de um nó atual e nós vizinhos de acordo com a Variação 2 da Modalidade 8.
[0077] A Figura 66 é um diagrama ilustrando uma relação de referência em uma estrutura de “octree” de acordo com a Variação 3 da Modalidade 8.
[0078] A Figura 67 é um diagrama ilustrando uma relação de referência em uma região espacial de acordo com a Variação 3 da Modalidade 8.
[0079] A Figura 68 é um diagrama ilustrando um exemplo de pontos tridimensionais de acordo com a Modalidade 9.
[0080] A Figura 69 é um diagrama ilustrando um exemplo de definição de LoDs de acordo com a Modalidade 9.
[0081] A Figura 70 é diagrama ilustrando um exemplo de definição de LoDs de acordo com a Modalidade 9.
[0082] A Figura 71 é um diagrama ilustrando um exemplo de informação de atributo a ser usada para valores preditos de acordo com a Modalidade 9.
[0083] A Figura 72 é um diagrama ilustrando exemplos de códigos de Exponencial-Golomb de acordo com a Modalidade 9.
[0084] A Figura 73 é um diagrama indicando um processo em códigos de Exponencial-Golomb de acordo com a Modalidade 9.
[0085] A Figura 74 é um diagrama indicando um exemplo de uma sintaxe em cabeçalho de atributo de acordo com a Modalidade 9.
[0086] A Figura 75 é um diagrama indicando um exemplo de uma sintaxe em dados de atributo de acordo com a Modalidade 9.
[0087] A Figura 76 é um fluxograma de um processo de codificação de dados tridimensionais de acordo com a Modalidade 9.
[0088] A Figura 77 é um fluxograma de um processo de codificação de informação de atributo de acordo com a Modalidade 9.
[0089] A Figura 78 é um diagrama indicando processamento em códigos de Exponencial-Golomb de acordo com a Modalidade 9.
[0090] A Figura 79 é um diagrama indicando um exemplo de uma tabela de pesquisa reversa indicando relações entre códigos restantes e os seus valores de acordo com a Modalidade 9.
[0091] A Figura 80 é um fluxograma de um processo de decodificação de dados tridimensionais de acordo com a Modalidade 9.
[0092] A Figura 81 é um fluxograma de um processo de decodificação de informação de atributo 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 ilustrando um primeiro exemplo de uma tabela representando valores preditos calculados em modos de predição de acordo com a Modalidade 10.
[0098] A Figura 87 é um diagrama ilustrando exemplos de itens de informação de atributo (partes de informação de atributo) usados como os valores preditos de acordo com a Modalidade 10.
[0099] A Figura 88 é um diagrama ilustrando um segundo exemplo de uma tabela representando valores preditos calculados nos modos de predição de acordo com a Modalidade 10.
[00100] A Figura 89 é um diagrama ilustrando um terceiro exemplo de uma tabela representando valores preditos calculados nos modos de predição de acordo com a Modalidade 10.
[00101] A Figura 90 é um diagrama ilustrando um quarto exemplo de uma tabela representando valores preditos calculados nos modos de predição de acordo com a Modalidade 10.
[00102] A Figura 91 é um diagrama ilustrando um exemplo da relação de referência de acordo com a Modalidade 11.
[00103] A Figura 92 é um diagrama mostrando um exemplo de cálculo de um QW de acordo com a Modalidade 11.
[00104] A Figura 93 é um diagrama mostrando um exemplo de cálculo de um residual predito de acordo com a Modalidade 11.
[00105] A Figura 94 é um diagrama mostrando um exemplo do processamento de codificação de acordo com a Modalidade 11.
[00106] A Figura 95 é um diagrama mostrando um exemplo do código unário truncado de acordo com a Modalidade 11.
[00107] A Figura 96 é um diagrama mostrando um exemplo de sintaxe da informação de atributo de acordo com a Modalidade 11.
[00108] A Figura 97 é um diagrama mostrando um exemplo do residual predito e ZeroCnt de acordo com a Modalidade 11.
[00109] A Figura 98 é um diagrama mostrando um exemplo de sintaxe da informação de atributo de acordo com a Modalidade 11.
[00110] A Figura 99 é um fluxograma do processamento de codificação de dados tridimensionais de acordo com a Modalidade 11.
[00111] A Figura 100 é um fluxograma do processamento de codificação de informação de atributo de acordo com a Modalidade 11.
[00112] A Figura 101 é um fluxograma do processamento de codificação de residual predito de acordo com a Modalidade 11.
[00113] A Figura 102 é um fluxograma do processamento de decodificação de dados tridimensionais de acordo com a Modalidade
11.
[00114] A Figura 103 é um fluxograma do processamento de decodificação de informação de atributo de acordo com a Modalidade
11.
[00115] A Figura 104 é um fluxograma do processamento de decodificação de residual predito de acordo com a Modalidade 11.
[00116] A Figura 105 é um diagrama de blocos de um codificador de informação de atributo de acordo com a Modalidade 11.
[00117] A Figura 106 é um diagrama de blocos de um decodificador de informação de atributo de acordo com a Modalidade 11.
[00118] A figura 107 é um diagrama mostrando um exemplo do processamento de codificação de acordo com uma modalidade da Modalidade 11.
[00119] A Figura 108 é um diagrama mostrando um exemplo de sintaxe da informação de atributo de acordo com uma modificação da Modalidade 11.
[00120] A Figura 109 é um diagrama mostrando um exemplo do residual predito, ZeroCnt e TotalZeroCnt de acordo com uma modificação da Modalidade 11.
[00121] A Figura 110 é um fluxograma do processamento de codificação de residual predito de acordo com uma modificação da Modalidade 11.
[00122] A Figura 111 é um fluxograma do processo de decodificação de residual predito de acordo com uma modificação da Modalidade 11.
[00123] A Figura 112 é um fluxograma do processamento de codificação de dados tridimensionais de acordo com a Modalidade 11.
[00124] A Figura 113 é um fluxograma do processamento de decodificação de dados tridimensionais de acordo com a Modalidade
11.
[00125] A Figura 114 é um diagrama para descrever a codificação da informação de atributo utilizando um RAHT de acordo com a Modalidade
12.
[00126] A Figura 115 é um diagrama mostrando um exemplo para definir uma escala de quantização para cada hierarquia de acordo com a Modalidade 12.
[00127] A Figura 116 é um diagrama mostrando um exemplo de uma primeira sequência de codificação e uma segunda sequência de codificação de acordo com a Modalidade 12.
[00128] A Figura 117 é um diagrama mostrando um exemplo de um código unário truncado de acordo com a Modalidade 12.
[00129] A Figura 118 é um diagrama para descrever a conversão inversa de Haar de acordo com a Modalidade 12.
[00130] A Figura 119 é um diagrama mostrando um exemplo de sintaxe da informação de atributo de acordo com a Modalidade 12.
[00131] A Figura 120 é um diagrama mostrando um exemplo de um coeficiente de codificação e ZeroCnt de acordo com a Modalidade 12.
[00132] A Figura 121 é um fluxograma do processo de codificação de dados tridimensionais de acordo com a Modalidade 12.
[00133] A Figura 122 é um fluxograma do processamento de codificação de informação de atributo de acordo com a Modalidade 12.
[00134] A Figura 123 é um fluxograma do processamento de codificação do coeficiente de codificação de acordo com a Modalidade
12.
[00135] A Figura 124 é um fluxograma do processamento de decodificação de dados tridimensionais de acordo com a Modalidade
12.
[00136] A Figura 125 é um fluxograma do processamento de decodificação de informação de atributo de acordo com a Modalidade
12.
[00137] A Figura 126 é um fluxograma do processamento de decodificação do coeficiente de codificação de acordo com a Modalidade 12.
[00138] A Figura 127 é um diagrama em blocos de um codificador de informação de atributo de acordo com a Modalidade 12.
[00139] A Figura 128 é um diagrama em blocos de um decodificador de informação de atributo de acordo com a Modalidade 12.
[00140] A Figura 129 é um diagrama mostrando um exemplo de uma primeira sequência de codificação e uma segunda sequência de codificação de acordo com uma modificação da Modalidade 12.
[00141] A Figura 130 é um diagrama mostrando um exemplo de sintaxe da informação de atributo de acordo com a modificação da Modalidade 12.
[00142] A Figura 131 é um diagrama mostrando um exemplo de um coeficiente de codificação, ZeroCnt, e TotalZeroCnt de acordo com a modificação da Modalidade 12.
[00143] A Figura 132 é um fluxograma do processamento de codificação do coeficiente de codificação de acordo com a modificação da Modalidade 12.
[00144] A Figura 133 é um fluxograma do processamento de decodificação do coeficiente de codificação de acordo com a modificação da Modalidade 12.
[00145] A Figura 134 é um diagrama mostrando um exemplo de sintaxe da informação de atributo de acordo com a modificação da Modalidade 12.
[00146] A Figura 135 é um fluxograma do processo de codificação de dados tridimensionais de acordo com a Modalidade 12.
[00147] A Figura 136 é um fluxograma do processamento de decodificação de dados tridimensionais de acordo com a Modalidade
12. Descrição das modalidades exemplares
[00148] Um método de decodificação de dados tridimensionais de acordo com um aspecto da presente descrição inclui: obtenção de uma segunda sequência de codificação a partir de um fluxo de bits, a segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que valores de coeficiente gerados a partir de peças da informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; obtenção dos valores de coeficiente recuperando a primeira sequência de codificação a partir da segunda sequência de codificação; e calcular as peças de informação de atributo a partir dos valores de coeficiente.
[00149] De acordo com isso, uma vez que o método de codificação de dados tridimensionais pode reduzir a quantidade de código no caso de valores de coeficiente consecutivos tendo um valor de zero utilizando a primeira informação, a eficiência de codificação pode ser melhorada. Ainda, o método de codificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ocorrerm utilizando a segunda informação.
[00150] Por exemplo, cada uma das peças de informação de atributo pode incluir componentes, cada um dos valores de coeficiente pode incluir componentes de coeficiente correspondentes aos componentes, a primeira informação pode indicar o número total dos valores de coeficiente consecutivos incluindo os componentes de coeficiente todos sendo 0, e a segunda informação pode indicar se cada um dos componentes de coeficiente é 0.
[00151] De acordo com isso, uma vez que o método de codificação de dados tridimensionais pode reduzir a quantidade de código em comparação com o caso onde a primeira informação é fornecida para cadum componente, a eficiência de codificação pode ser melhorada.
[00152] Por exemplo, a segunda sequência de codificação pode ainda incluir terceira informação e quarta informação, a terceira informação indicando se cada um dos componentes de coeficiente é 1, a quarta informação indicando um valor obtido subtraindo 2 de cada um dos componentes de coeficiente.
[00153] De acordo com isso, o método de codificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ou um valor de 1 ocorrem, utilizando a segunda informação, a terceira informação, e a quarta informação.
[00154] Por exemplo, os valores de coeficiente podem ser gerados separando, por hierarquização, cada uma das peças de informação de atributo em um componente de alta frequência e um componente de baixa frequência.
[00155] Por exemplo, o método de codificação de dados tridimensionais pode ainda incluir quantização de cada um dos valores de coeficiente, e os valores de coeficiente quantizados podem ser dispostos na primeira sequência de codificação.
[00156] Um método de decodificação de dados tridimensionais de acordo com um aspecto da presente descrição inclui: obtenção de uma segunda sequência de codificação a partir de um fluxo de bits, a segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que valores de coeficiente gerados a partir de peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; obtenção dos valores de coeficiente recuperando a primeira sequência de codificação a partir de a segunda sequência de codificação; e calcular as peças de informação de atributo a partir de os valores de coeficiente.
[00157] De acordo com isso, uma vez que o método de decodificação de dados tridimensionais pode reduzir a quantidade de código no caso de valores de coeficiente consecutivos tendo um valor de zero utilizando a primeira informação, a eficiência de codificação pode ser melhorada. Ainda, o método de decodificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ocorrem utilizando a segunda informação.
[00158] Por exemplo, cada uma das peças de informação de atributo pode incluir componentes, cada um dos valores de coeficiente pode incluir componentes de coeficiente correspondentes aos componentes,
a primeira informação pode indicar o número total dos valores de coeficiente consecutivos incluindo os componentes de coeficiente todos sendo 0, e a segunda informação pode indicar se cada um dos componentes de coeficiente é 0.
[00159] De acordo com isso, uma vez que o método de decodificação de dados tridimensionais pode reduzir a quantidade de código em comparação com o caso onde a primeira informação é fornecida para cadum componente, a eficiência de codificação pode ser melhorada.
[00160] Por exemplo, a segunda sequência de codificação pode ainda incluir terceira informação e quarta informação, a terceira informação indicando se cada um dos componentes de coeficiente é 1, a quarta informação indicando um valor obtido subtraindo 2 de cada um dos componentes de coeficiente.
[00161] De acordo com isso, o método de decodificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ou um valor de 1 ocorrem, utilizando a segunda informação, a terceira informação, e a quarta informação.
[00162] Por exemplo, os valores de coeficiente podem ser gerados separando, por hierarquização, cada uma das peças de informação de atributo em um componente de alta frequência e um componente de baixa frequência.
[00163] Por exemplo, valores de coeficiente quantizados podem ser dispostos na primeira sequência de codificação, os valores de coeficiente quantizados podem ser obtidos recuperando a primeira sequência de codificação, e os valores de coeficiente podem ser, cada um, obtidos por quantização inversa de um dos valores de coeficiente quantizados correspondentes.
[00164] Um dispositivo de codificação de dados tridimensionais de acordo com um aspecto da presente descrição inclui um processador e memória. Usando a memória, o processador: calcula valores de coeficiente a partir de peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos; gera uma segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que os valores de coeficiente são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; e gera um fluxo de bits incluindo a segunda sequência de codificação.
[00165] De acordo com isso, uma vez que o dispositivo de codificação de dados tridimensionais pode reduzir a quantidade de código no caso de valores de coeficiente consecutivos tendo um valor de zero utilizando a primeira informação, a eficiência de codificação pode ser melhorada. Ainda, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ocorrem utilizando a segunda informação.
[00166] Um dispositivo de decodificação de dados tridimensionais de acordo com um aspecto da presente descrição inclui um processador e memória. Usando a memória, o processador: obtém uma segunda sequência de codificação a partir de um fluxo de bits, a segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que valores de coeficiente gerados a partir de peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; obtém os valores de coeficiente recuperando a primeira sequência de codificação a partir da segunda sequência de codificação; e calcula as peças de informação de atributo a partir de os valores de coeficiente.
[00167] De acordo com isso, uma vez que o dispositivo de decodificação de dados tridimensionais pode reduzir a quantidade de código no caso de valores de coeficiente consecutivos tendo um valor de zero utilizando a primeira informação, a eficiência de codificação pode ser melhorada. Ainda, o dispositivo de decodificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ocorrem utilizando a segunda informação.
[00168] Deve ser observado que esses 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 por 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.
[00169] A seguir são descritas modalidades com referência aos desenhos. Deve ser observado que as modalidades a seguir ilustram modalidades ilustrativas da presente descrição. Valores numéricos, formatos, materiais, componentes estruturais, a disposição e conexão dos componentes estruturais, etapas, ordem de processamento das etapas etc., ilustrados nas modalidades a seguir, são meros exemplos e, dessa forma, não pretendem limitar a presente invenção. Dos componentes estruturais descritos nas modalidades a seguir, os componentes estruturais não mencionados em qualquer uma das reivindicações independentes, que indicam os conceitos mais amplos, serão descritos como componentes estruturais opcionais.
MODALIDADE 1
[00170] Primeiro, a estrutura de dados dos dados tridimensionais codificados (daqui em diante também referidos como dados codificados), de acordo com a presente modalidade, será descrita. A figura 1 é um diagrama ilustrando a estrutura dos dados tridimensionais codificados, de acordo com a presente modalidade.
[00171] Na presente modalidade, um espaço tridimensional é dividido em espaços (SPCs), que correspondem às imagens em codificação de imagem em movimento, e os dados tridimensionais são codificados em uma base SPC por SPC. Cada SPC é adicionalmente dividido em volumes (VLMs), que correspondem a macroblocos etc. na codificação de imagem em movimento, e prediçõ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 as coordenadas de posição são associadas. Observar que a predição é um processo de geração de dados tridimensionais de predição análogos a uma unidade de processamento atual por referência a outra unidade de processamento, e a codificação de um diferencial entre os dados tridimensionais de predição e a unidade de processamento atual, como no caso de predições realizadas em imagens bidimensionais. Tal predição inclui não apenas a predição espacial na qual outra unidade de predição que corresponde ao mesmo tempo é referida, mas também a predição temporal na qual uma unidade de predição que corresponde a um tempo diferente é referida.
[00172] Quando da 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 referido 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 o tamanho de um voxel. “Voxels” mais finos permitem uma representação altamente precisa do formato tridimensional de um grupo de pontos, enquanto “voxels” maiores permitem uma representação aproximada do formato tridimensional de um grupo de pontos.
[00173] Observar que o que segue descreve o caso onde dados tridimensionais são uma nuvem de pontos, mas os dados tridimensionais não são limitados a uma nuvem de pontos, e, dessa forma, os dados tridimensionais de qualquer formato podem ser empregados.
[00174] Observar também que “voxels” com uma estrutura hierárquica podem ser utilizados. Em tal caso, o fato da hierarquia incluir níveis n, se um ponto de amostragem está incluído no nível n-1ésimo ou níveis inferiores (níveis inferiores ao nível n-ésimo), pode ser sequencialmente indicado. Por exemplo, quando apenas o nível n- ésimo é decodificado, e o nível n-1ésimo ou seus níveis inferiores incluem um ponto de amostragem, o nível n-ésimo pode ser decodificado considerando que um ponto de amostragem esteja incluído no centro de um “voxel” no nível n-ésimo.
[00175] Além disso, o dispositivo de codificação obtém dados de grupo de pontos utilizando, por exemplo, um sensor de distância, uma câmera estéreo, uma câmera monocular, um sensor giroscópico ou um sensor inercial.
[00176] Como no caso de codificação de imagem em movimento, cada SPC é classificado em uma das pelo menos três estruturas de predição que incluem: intra SPC (I-SPC), que é individualmente decodificável; SPC de predição (P-SPC) capaz de uma referência apenas unidirecional; e SPC bidirecional (B-SPC) capaz de referências bidirecionais. Cada SPC inclui dois tipos de informação de tempo: tempo de decodificação e tempo de exibição.
[00177] Adicionalmente, como ilustrado na figura 1, uma unidade de processamento que inclui uma pluralidade de SPCs é um grupo de espaços (GOS), que é uma unidade de acesso randômico. Além disso, uma unidade de processamento que inclui uma pluralidade de GOSs é um mundo (WLD).
[00178] A região espacial ocupada por cada mundo é associada a uma posição absoluta na terra, por meio de uso, por exemplo, de GPS, ou informação de latitude e longitude. Tal informação de posição é armazenada como metainformação. Observar que metainformação pode ser incluída em dados codificados ou pode ser transmitida separadamente a partir dos dados codificados.
[00179] Além disso, dentro de um GOS, todos os SPCs podem ser tridimensionalmente adjacentes um ao outro ou pode haver um SPC que não é tridimensionalmente adjacente a outro SPC.
[00180] Observar que a seguir também são descritos processos, tais como codificação, decodificação e referência, a serem realizados em dados tridimensionais incluídos em unidades de processamento tais 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. Observar também que dados tridimensionais incluídos em uma unidade de processamento incluem, por exemplo, pelo menos um par de uma posição espacial tais como coordenadas tridimensionais e um valor de atributo tal como informação de cor.
[00181] A seguir, as estruturas de prediçã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, enquanto tendo a mesma informação de tempo (o tempo de decodificação e o tempo de exibição).
[00182] Um SPC em um GOS que vem primeiro na ordem de decodificação é um I-SPC. GOS vem em 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 antecedendo o primeiro I-SPC no GOS no tempo de exibição, e, dessa forma, não pode ser decodificado isoladamente.
[00183] Observar que no caso de dados codificados de informação de mapa, por exemplo, um WLD é algumas vezes decodificado na direção de retrocesso, que é oposta à ordem de codificação, e, dessa forma, reprodução retroativa é difícil quando os GOSs são interdependentes. Em tal caso, um GOS fechado é basicamente utilizado.
[00184] Cada GOS possui uma estrutura de camada em direção de altura, e SPCs são sequencialmente codificados ou decodificados a partir dos SPCs na camada inferior.
[00185] A figura 2 é um diagrama ilustrando um exemplo de estruturas de predição dentre os SPCs que pertencem à camada mais inferior de um GOS. A figura 3 é um diagrama ilustrando um exemplo de estruturas de predição dentre as camadas.
[00186] 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 servindo 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 velocidade alta, por exemplo, o dispositivo de decodificação de dados tridimensionais (daqui em diante também referido como dispositivo de decodificação) decodifica apenas I-SPC(s) no GOS.
[00187] 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.
[00188] Na estrutura ilustrada na figura 3, o dispositivo de codificação ou o dispositivo de decodificação codifica ou decodifica uma pluralidade de camadas sequencialmente a partir da camada inferior (camada 1). Isso aumenta a prioridade de dados no solo e em suas proximidades, que envolve uma quantidade maior de informação, quando, por exemplo, um carro de direção automática, é considerado.
[00189] Com referência aos dados codificados utilizados para um drone, por exemplo, codificação ou decodificação pode ser realizada sequencialmente a partir de SPCs na camada superior em um GOS na direção da altura.
[00190] 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 primeiramente 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.
[00191] A seguir, o manuseio de objetos estáticos e objetos dinâmicos será descrito.
[00192] Um espaço tridimensional inclui cenas ou objetos inanimados, tal como um edifício ou uma estrada (daqui em diante coletivamente chamados de objetos estáticos), e objetos com movimento, tal como um carro e uma pessoa (daqui em diante coletivamente referidos como objetos dinâmicos). A detecção do objeto é realizada separadamente, por exemplo, pela extração de pontos- chave dos dados de nuvem de pontos, ou de vídeo de uma câmera, tal como uma câmera estéreo. Na presente invenção, um método ilustrativo de codificação de um objeto dinâmico será descrito.
[00193] 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 de identificação.
[00194] Por exemplo, um GOS é utilizado 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 de identificação armazenada nos dados codificados ou armazenada separadamente dos dados codificados.
[00195] Alternativamente, um SPC pode ser utilizado 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 de identificação descrita dessa forma.
[00196] Alternativamente, um VLM ou um VXL pode ser utilizado 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 de identificação descrita dessa forma.
[00197] 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 incluindo um objeto estático e um SPC incluindo 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 metainformação.
[00198] 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 é associado a pelo menos um SPC que constitui o objeto estático no qual cada SPC deve ser sobreposto. Observar que um objeto dinâmico pode ser representado não pelos SPC(s), mas por pelo menos um VLM ou VXL.
[00199] O dispositivo de codificação também pode codificar um objeto estático e um objeto dinâmico com sequências mutuamente diferentes.
[00200] O dispositivo de codificação também pode gerar um GOS que inclui pelo menos um SPC constituindo um objeto dinâmico. O dispositivo de codificação pode, adicionalmente, configurar o tamanho de um GOS incluindo um objeto dinâmico (GOS_M) e o tamanho de um GOS incluindo um objeto estático que corresponde à região espacial de GOS_M no mesmo tamanho (tal como a mesma região espacial sendo ocupada). Isso permite que a sobreposição seja realizada em uma base GOS por GOS.
[00201] SPC(s) incluídos em um outro GOS codificado podem ser referidos em um P-SPC ou um B-SPC que constituem um objeto dinâmico. No caso no qual a posição de um objeto dinâmico muda temporalmente, e mesmo objeto dinâmico é codificado como um objeto em um GOS correspondendo a um tempo diferente, a referência a SPC(s)_ através dos GOSs é eficiente em termos de taxa de compressão.
[00202] 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 utilizados como um mapa, por exemplo, um objeto dinâmico é desejado ser separado, e, dessa forma, o dispositivo de codificação utiliza o segundo método. Entretanto, o dispositivo de codificação utiliza 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.
[00203] O tempo de decodificação e o tempo de exibição de um GOS ou um SPC podem ser armazenados nos dados codificados ou como metainformação. Todos os objetos estáticos podem ter a mesma informação de 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 assinado para cada GOS ou SPC como o tempo de decodificação, e o mesmo valor pode ser assinado como o tempo de exibição. Adicionalmente, como no caso do modelo de decodificador na codificação de imagem em movimento, tal como o Decodificador de Referência Hipotética (HRD) em conformidade com HEVC, pode ser empregado um modelo que garanta que um decodificador possa realizar a decodificação sem falhas ao ter um armazenador temporário de um tamanho predeterminado e pela leitura de uma sequência de bits em uma taxa de bits predeterminada de acordo com os tempos de decodificação.
[00204] A seguir, a topologia de GOSs em um mundo será descrita. 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), que são ortogonais um ao outro. Uma regra predeterminada configurada para a ordem de codificação de GOSs permite que codificação seja realizada, de modo que GOSs espacialmente adjacentes sejam contíguos nos dados codificados. Em um exemplo ilustrado na figura 4, por exemplo, GOSs nos planos x e z são codificados sucessivamente. Depois da finalizaçã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 de GOS são determinados de acordo com a ordem de codificação.
[00205] Na presente invenção, os espaços tridimensionais nos respectivos mundos são previamente associados um-para-um às coordenadas geográficas absolutas, tais como coordenadas de 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 juntos com os dados codificados como metainformação.
[00206] GOSs possuem um tamanho fixo, e o dispositivo de codificação armazena tal tamanho como metainformação. O tamanho do GOS pode ser alterado dependendo, por exemplo, de se é uma área urbana ou não ou se está dentro ou fora de um cômodo. De outra forma, o tamanho do 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 d GOS ou intervalo entre I-SPCs nos GOSs de acordo com a densidade do objeto, etc. Por exemplo, o dispositivo de codificação configura o tamanho do GOS para que seja menor, e o intervalo entre I-SPCs nos GOSs para ser mais curto, à medida que a densidade do objeto aumenta.
[00207] Em um exemplo ilustrado na figura 5, para permitir o acesso randômico com um maior detalhamento, um GOS com uma densidade de objeto alta é dividido em regiões do terceiro ao décimo GOS. Observe que os sétimo a décimo GOSs estão localizados atrás dos terceiro a sexto GOSs.
[00208] A seguir, a estrutura e o fluxo operacional do dispositivo de codificação de dados tridimensionais, de acordo com a presente modalidade, serão descritos. 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.
[00209] O dispositivo de codificação de dados tridimensionais 100, ilustrado na figura 6, codifica os dados tridimensionais 111, gerando, assim, dados tridimensionais codificados 112. Tal dispositivo de codificação de dados tridimensionais 100 inclui o obtentor 101, o determinador de região de codificação 102, o divisor 103 e o codificador
104.
[00210] Como ilustrado na figura 7, primeiro, o obtentor 101 obtém os dados tridimensionais 111, que são os dados de grupo de pontos (S101).
[00211] A seguir, 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.
[00212] A seguir, 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, como 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, adicionalmente, a posição inicial do SPC que vem primeiro na ordem de codificação em cada GOS.
[00213] A seguir, o codificador 104 codifica sequencialmente uma pluralidade de SPCs em cada GOS gerando, assim, os dados tridimensionais codificados 112 (S104).
[00214] Observar que apesar de um exemplo ser descrito no presente documento, no qual a região atual é dividida em GOSs e SPCs, depois da qual cada GOS é codificado, as etapas de processamento não estão limitadas a essa ordem. Por exemplo, as etapas podem ser empregadas, nas quais a estrutura de um único GOS é determinada, que é seguido pela codificação de tal GOS e, então, a estrutura do GOS subsequente é determinada.
[00215] Como descrito, o dispositivo de codificação de dados tridimensionais 100 codifica os dados tridimensionais 111 gerando, assim, 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 sendo associada às 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), que é a unidade mínima na qual a informação de posição é associada.
[00216] A seguir, o dispositivo de codificação de dados tridimensionais 100 codifica cada uma das primeiras unidades de processamento (GOSs) gerando, assim, 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, adicionalmente, cada uma das terceiras unidades de processamento (VLMs) em cada uma das segundas unidades de processamento (SPCs).
[00217] 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), fazendo referência a outra segunda unidade de processamento (SPC), incluída na primeira unidade de processamento atual (GOS). De outra forma, o dispositivo de codificação de dados tridimensional 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).
[00218] 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), fazendo referência a 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).
[00219] 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 singular (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.
[00220] A seguir, a estrutura e o fluxo operacional do dispositivo de decodificação de dados tridimensionais, de acordo com a presente modalidade, serão descritos. 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.
[00221] O dispositivo de decodificação de dados tridimensionais 200 ilustrado na figura 8 decodifica os dados tridimensionais codificados 211 gerando, assim, 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 obtentor 201, o determinador de GOS inicial de decodificação 202, o determinador SPC de decodificação 203 e o decodificador 204.
[00222] Primeiro, o obtentor 201 obtém os dados tridimensionais codificados 211 (S201). A seguir, o determinador de GOS inicial de decodificação 202 determina um GOS atual para decodificação (S202). Mais especificamente, o determinador de GOS inicial de decodificação 202 se refere à metainformação armazenada nos dados tridimensionais codificados 211, ou armazenados separadamente, dos dados tridimensionais codificados para determinar, como o GOS atual, um GOS que inclui um SPC correspondente à posição espacial, ao objeto, ou ao tempo a partir do qual a decodificação deve ser iniciada.
[00223] A seguir, o determinador de SPC de decodificação 203 determina o(s) tipo(s) (I, P e/ou B) de SPCs a ser(em) decodificado(s)
no GOS (S203). Por exemplo, o determinador de SPC de decodificação 203 determina se (1) decodifica apenas I-SPC(s), (2) decodifica I- SPC(s) e P-SPCs ou (3) decodifica SPCs de todos os tipos. Observar que a presente etapa pode não ser realizada quando os tipos de SPCs a serem decodificados forem previamente determinados, tal como quando todos os SPCs são previamente determinados para serem decodificados.
[00224] A seguir, o decodificador 204 obtém uma localização de endereço dentro dos dados tridimensionais codificados 211, de onde um SPC, que vem primeiro no GOS na ordem de decodificação (o mesmo 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). Observar que a localização de endereço é armazenada na metainformação, etc.
[00225] O dispositivo de decodificação de dados tridimensionais 200 decodifica os dados tridimensionais decodificados 212 como aqui descrito. 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 uma sendo uma unidade de acesso randômico e sendo associada às coordenadas tridimensionais gerando, dessa forma, 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, adicionalmente, cada uma das terceiras unidades de processamento (VLMs) em cada uma das segundas unidades de processamento (SPCs).
[00226] A seguir é descrita a metainformação para acesso randômico. Tal metainformação é gerada pelo dispositivo de codificação de dados tridimensionais 100 e incluída nos dados tridimensionais codificados 112 (211).
[00227] 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, em adição aos tempos, o acesso randômico para espaços (coordenadas, objetos etc.) é presumido ser realizado em um mundo.
[00228] Para permitir acesso randômico a pelo menos três elementos de coordenadas, objetos e tempos, tabelas são preparadas associando os respectivos elementos aos números de índice de GOS. Adicionalmente, os números de índice de GOS são associados aos endereços dos respectivos primeiros I-SPCs nos GOSs. A figura 10 é um diagrama ilustrando tabelas ilustrativas incluídas na metainformação. Observar que nem todas as tabelas ilustradas na figura 10 precisam ser utilizadas, e, dessa forma, pelo menos uma das tabelas é utilizada.
[00229] A seguir é descrito um exemplo no qual acesso randômico é realizado a partir das coordenadas como um ponto de partida. Para se acessar as coordenadas (x2, y2 e z2), a tabela de coordenadas-GOS é primeiramente referida, indicando que o ponto que corresponde às coordenadas (x2, y2, z2) está incluído no segundo GOS. A seguir, a tabela de endereço de GOS é referida, o que indica que o endereço do primeiro I-SPC no segundo GOS é adicionarr(2). Deste modo, o decodificador 204 obtém dados desse endereço para iniciar a decodificação.
[00230] Observar 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 utilizada no lugar dos endereços. Segmentos de arquivo são, por exemplo, unidades obtidas pela segmentação de pelo menos um GOS etc.
[00231] Quando um objeto abrange uma pluralidade de GOSs, a tabela de objeto 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 é composta de GOSs abertos, uma eficiência de compressão mais alta é alcançada pela pluralidade de GOSs fazendo referência um ao outro.
[00232] Objetos ilustrativos incluem uma pessoa, um animal, um carro, uma bicicleta, um sinal e um edifício servindo 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 pontoschave para determinar o objeto detectado como um ponto de acesso randômico.
[00233] Como então descrito, o dispositivo de codificação de dados tridimensional 100 gera a primeira informação indicando uma pluralidade de primeiras unidades de processamento (GOSs) e as coordenadas tridimensionais associadas às primeiras respectivas unidades de processamento (GOSs). Os dados tridimensionais codificados 112 (211) incluem tal primeira informação. A primeira informação indica, adicionalmente, pelo menos um dos objetos, tempos e localizações de armazenamento de dados que são associados com as primeiras respectivas unidades de processamento (GOSs).
[00234] O dispositivo de decodificação de dados tridimensionais 200 obtém a primeira informação a partir dos dados tridimensionais codificados 211. Utilizando 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.
[00235] A seguir é descrito um exemplo de outra metainformação. Em adição à metainformação para acesso randômico, o dispositivo de codificação de dados tridimensionais 100 também pode gerar e armazenar metainformação, como descrito abaixo, e o dispositivo de decodificação de dados tridimensionais 200 pode utilizar tal metainformação no momento da decodificação.
[00236] Quando os dados tridimensionais são utilizados como informação de mapa, por exemplo, um perfil é definido de acordo com o uso pretendido, e a informação que indica tal perfil pode ser incluída na metainformaçã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, dessa forma, o tamanho mínimo de VLM é configurado para pequeno.
[00237] A metainformação pode incluir valores de indicador 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 configurado para cada tipo de objeto de uma forma, por exemplo, que 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 do indicador pode ser utilizado para indicar o tamanho ou atributo indicando, por exemplo, se um objeto é um objeto dinâmico ou um objeto estático.
[00238] A metainformação também pode incluir informação que indica uma faixa da região espacial ocupada por um mundo.
[00239] A metainformação também pode armazenar o tamanho de SPC ou VXL como informação de cabeçalho comum a toda a sequência dos dados codificados ou a uma pluralidade de SPCs, tais como SPCs em um GOS.
[00240] A metainformação também pode incluir a informação de identificação em um sensor de distância ou uma câmera que foi utilizado para gerar uma nuvem de pontos, ou informação que indica a precisão de posição de um grupo de pontos na nuvem de pontos.
[00241] A metainformação também pode incluir informação que indica se um mundo é feito apenas de objetos estáticos ou inclui um objeto dinâmico.
[00242] A seguir são descritas variações da presente modalidade.
[00243] 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 metainformação, etc., indicando as posições espaciais dos GOSs.
[00244] Quando dados tridimensionais são utilizados como um mapa espacial para uso por um carro ou um objeto voador, etc., em viagem, 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 de GPS, na informação de rota, na ampliação com zoom, etc.
[00245] 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 de um espaço próximo para codificar ou decodificar tal local distante. "Fornecer uma prioridade mais baixa" significa, no presente documento, por exemplo, baixar a prioridade na sequência de processamento, reduzir a resolução (para aplicar decimação no processamento) ou diminuir a qualidade de imagem (para aumentar a eficiência de codificação, por exemplo, através da configuração da etapa de quantização para que seja maior).
[00246] Quando da decodificação dos dados codificados que são codificados de forma hierárquica em um espaço, o dispositivo de decodificação pode decodificar apenas a camada inferior na hierarquia.
[00247] O dispositivo de decodificação também pode iniciar a decodificação preferivelmente a partir da camada inferior da hierarquia de acordo com a ampliação por zoom ou uso pretendido do mapa.
[00248] 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 por uma região que é inferior a ou está em uma altura específica do chão (a região a ser reconhecida).
[00249] 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 e 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 da utilização de dados codificados.
[00250] O dispositivo de codificação também pode codificar um GOS interno e um GOS externo possuindo coordenadas próximas, de modo que tais GOSs se tornem adjacentes um ao outro em uma sequência codificada. Por exemplo, o dispositivo de codificação associa os identificadores de tais GOS um ao outro, e armazena informação indicando os identificadores associados na metainformação que é armazenada na sequência codificada ou armazenada separadamente. Isso permite que o dispositivo de decodificação faça referência à informação na metainformação para identificar um GOS interno e um GOS externo possuindo coordenadas próximas.
[00251] O dispositivo de codificação também muda o tamanho do GOS ou o tamanho de SPC dependendo de se um GOS é um GOS interno ou um GOS externo. Por exemplo, o dispositivo de codificação configura 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 modificar a precisão de extração de pontos-chave a partir de uma nuvem de pontos, ou a precisão da detecção de objetos, por exemplo, dependendo de se um GOS é um GOS interno ou um GOS externo.
[00252] 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. Isso permite que o dispositivo de decodificação exiba um objeto dinâmico juntamente com, por exemplo, uma caixa ou letras em vermelho para explicação. Observar 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 utilizada para um carro e uma caixa em amarelo pode ser utilizada para uma pessoa.
[00253] 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 razão entre os objetos estáticos e os objetos dinâmicos. Por exemplo, quando a frequência de surgimento ou a razão de objetos dinâmicos excede um limite, um SPC ou um GOS, incluindo uma mistura de um objeto dinâmico e um objeto estático, é aceito, enquanto que quando a frequência de surgimento ou a razão de objetos dinâmicos está abaixo de um limite, um SPC ou GOS, incluindo uma mistura de um objeto dinâmico e um objeto estático, não é aceito.
[00254] Quando da detecção de um objeto dinâmico não de uma nuvem de pontos, mas de uma informação de imagem bidimensional 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 esses 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) indicando o objeto dinâmico em um resultante da decodificação de um objeto estático para exibição do mesmo.
[00255] 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 configura 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, adicionalmente, uma etapa de quantização etc., para quantizar as posições espaciais ou informação de cor, de acordo com a escassez e densidade de VXLs ou VLMs. Por exemplo, o dispositivo de codificação determina a etapa de quantização para que seja menor à medida que a densidade de VXLs ou VLMs é maior.
[00256] Como 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 em uma base de SPC por SPC,
incluindo a informação de coordenadas.
[00257] Adicionalmente, o dispositivo de codificação e o dispositivo de decodificação realizam a codificação ou a decodificação, em uma base volume- por-volume, em um SPC. Cada volume inclui um voxel, que é a unidade mínima na qual a informação de posição está associada.
[00258] Além disso, utilizando uma tabela que associa os respectivos elementos de informação espacial incluindo coordenadas, objetos e tempos com GOSs ou utilizando uma tabela que associa esses elementos uns aos outros, o dispositivo de codificação e o dispositivo de decodificação associa qualquer um dos elementos uns aos outros para realizar a codificação ou decodificação. O dispositivo de decodificação utiliza 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 incluindo tal volume ou “voxel”, ou o SPC identificado.
[00259] Adicionalmente, 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.
[00260] SPCs são classificados em três tipos: I-SPC que é codificável ou decodificável de forma singular; P-SPC que é codificado ou decodificado por referência a qualquer um dos SPCs processados; e B-SPC que é codificado ou decodificado por referência a quaisquer dois dos SPCs processados.
[00261] Pelo menos um volume corresponde a um objeto estático ou a um objeto dinâmico. Um SPC, incluindo um objeto estático, e um SPC, incluindo um objeto dinâmico, são codificados ou decodificados como GOSs mutuamente diferentes. De outra forma, um SPC incluindo um objeto estático e um SPC incluindo um objeto dinâmico são assinados a GOSs diferentes.
[00262] Objetos dinâmicos são codificados ou decodificados em uma base objeto-por-objeto, e são associados a pelo menos um SPC incluindo 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 incluindo um objeto estático.
[00263] O dispositivo de codificação e o dispositivo de decodificação fornecem uma prioridade aumentada a I-SPC em um GOS para realizar codificação ou decodificação. Por exemplo, o dispositivo de codificação realiza a codificação de uma forma que impede a degradação de 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 os I- SPCs.
[00264] O dispositivo de codificação pode alterar a frequência de utilização de I-SPCs dependendo da escassez e densidade ou do número (quantidade) dos 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 utiliza I-SPCs em uma frequência mais alta quando a densidade dos objetos em um mundo é mais alta.
[00265] O dispositivo de codificação também configura os pontos de acesso randômico em uma base GOS-por-GOS e armazena a informação indicando as regiões espaciais correspondentes aos GOSs na informação de cabeçalho.
[00266] O dispositivo de codificação utiliza, 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 configura 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.
[00267] Além disso, cada SPC ou volume inclui um grupo de pontos- chave que é derivado pelo uso da 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 configuradas nas posições centrais dos respectivos “voxels”. Adicionalmente, os “voxels” mais finos permitem uma informação de posição altamente precisa.
[00268] O grupo de pontos-chave é derivado pela utilização de uma pluralidade de imagens. Uma pluralidade de imagens inclui pelo menos dois tipos de informação de tempo: a informação de tempo real e a mesma informação de tempo comum a uma pluralidade de imagens que são associadas aos SPCs (por exemplo, o tempo de codificação utilizado para o controle de taxa etc.).
[00269] Além disso, a codificação ou decodificação é realizada em uma base GOS-por-GOS, incluindo pelo menos um SPC.
[00270] O dispositivo de codificação e o dispositivo de decodificação preveem P-SPCs ou B-SPCs em um GOS atual por referência aos SPCs em um GOS processado.
[00271] Alternativamente, o dispositivo de codificação e o dispositivo de decodificação preveem P-SPCs ou B-SPCs em um GOS atual, utilizando os SPCs processados no GOS atual, sem referência a um GOS diferente.
[00272] Adicionalmente, o dispositivo de codificação e o dispositivo de decodificação transmitem ou recebem uma sequência codificada em uma base mundo-por-mundo, incluindo pelo menos um GOS.
[00273] Além disso, um GOS possui uma estrutura de camada 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 possuir 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 referência a um SPC incluído na mesma camada que cada SPC ou um SPC incluído em uma camada inferior àquela de cada SPC.
[00274] 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 incluindo tais GOSs. Ao fazer isso, o dispositivo de codificação e o dispositivo de decodificação escrevem ou leem informação indicando 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.
[00275] 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.
[00276] Adicionalmente, 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.
[00277] 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 da autolocalização e/ou tamanho de região, tal como a informação de GPS, informação de rota, ou ampliação.
[00278] 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 de um espaço próximo para realizar a codificação ou decodificação.
[00279] O dispositivo de codificação configura 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 possuindo uma estrutura de camada em tal direção. Além disso, o dispositivo de decodificação decodifica um GOS possuindo uma estrutura de camada em uma das direções em um mundo que foi configurada de acordo com a amplificação ou o uso pretendido, preferivelmente a partir da camada inferior.
[00280] O dispositivo de codificação muda a precisão de extração de pontos-chave, a precisão do reconhecimento de objetos ou o tamanho das regiões espaciais, etc., incluídos em um SPC, dependendo de 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 possuindo coordenadas próximas de uma forma que esses GOSs se tornem adjacentes uns aos outros em um mundo e associem seus identificadores uns com os outros para codificação e decodificação. MODALIDADE 2
[00281] Quando da utilização 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 para reduzir a largura de banda de rede. No entanto, não tem havido tal funcionalidade na estrutura de codificação de dados tridimensionais, nem um método de codificação para a mesma.
[00282] 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.
[00283] 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 ilustrando estruturas ilustrativas de um mundo esparso e de 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 predição de um FGOS, um FSPC e um FVLM podem ser iguais às de um GOS, um SPC e um VLM.
[00284] Uma característica representa a informação de posição tridimensional em um VXL ou a informação de 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 como descrito abaixo, mas pode ser qualquer característica que represente a informação de posição, luminescência ou cor, etc., em um VXL.
[00285] Utilizadas como características tridimensionais são 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).
[00286] As características SHOT são obtidas pela divisão da periferia de um VXL e pelo cálculo de 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.
[00287] Características PFH são obtidas pela seleção de um grande número de dois pares de pontos nas proximidades de um VXL e pelo cálculo do 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, dessa 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.
[00288] As características PPF são obtidas pela utilização de um vetor normal, etc., para cada dois pontos de VXLs. As características PPF, para as quais todos os VXLs são utilizados, apresentam robustez contra oclusão.
[00289] Utilizadas como características de luz visível são 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., que utilizam a informação de uma imagem tal como uma informação de gradiente de luminescência.
[00290] Um SWLD é gerado pelo cálculo das características descritas acima dos respectivos VXLs em um WLD para extração de FVXLs. Na presente invenção, SWLD pode ser atualizado cada vez que o WLD for atualizado, ou pode ser atualizado com regularidade depois de ter passado um determinado período de tempo, independentemente do momento que o WLD é atualizado.
[00291] Um SWLD pode ser gerado para cada tipo de características. Por exemplo, SWLDs diferentes 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 SWLDs sejam utilizados 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 de característica.
[00292] A seguir, a utilização de um mundo esparso (SWLD) será descrita. Um SWLD inclui apenas os “voxels” de característica (FVXLs) e, dessa forma, seu tamanho de dados é menor em geral do que aquele de um WLD que inclui todos os VXLs.
[00293] Em uma aplicação que utiliza características para uma determinada finalidade, o uso de 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ário para a transferência de dados em uma rede. Por exemplo, um WLD e um SWLD são mantidos em um servidor como informação de mapa, de modo que a informação de mapa a ser enviada é selecionada entre WLD e SWLD, de acordo com uma solicitação de um cliente. Isso reduz a largura de banda de rede e o tempo necessário para a transferência de dados. Exemplos mais específicos serão descritos abaixo.
[00294] A figura 12 e a figura 13 são diagramas ilustrando exemplos de utilização de um SWLD e um WLD. Como a figura 12 ilustra, quando o cliente 1, que é um dispositivo montado em veículo, solicita informação de mapa para utilizar o mesmo para 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 utiliza o SWLD recebido para determinar a autolocalização (S303). Ao fazer isso, o cliente1 obtém informação VXL da 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 de autolocalização a partir da informação de VXL obtida e SWLD. Na presente invenção, a informação de autolocalização inclui informação de posição tridimensional, orientação, etc., do cliente1.
[00295] Como ilustra a figura 13, quando o cliente 2, que é um dispositivo montado em veículo, solicita informação de mapa para utilizar a mesma 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 a 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 utiliza o WLD recebido para criar um mapa (S313). Ao fazer isso, o cliente 2 utiliza, por exemplo, uma imagem que o cliente 2 capturou por 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.
[00296] Como 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 informação de VXL detalhada é solicitada tal como no caso de criação de mapa. Isso permite um envio/recepção eficiente de dados de mapa.
[00297] Observe que um cliente pode ele mesmo 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.
[00298] A seguir, um método será descrito para comutar o envio/recepção entre um mundo esparso (SWLD) e um mundo (WLD).
[00299] A decisão de se recebe um WLD ou um SWLD pode ser comutada de acordo com a largura de banda de rede. A figura 14 é um diagrama ilustrando uma operação ilustrativa em tal caso. Por exemplo, quando uma rede de baixa velocidade é utilizada, a qual limita a largura de banda de rede utilizável, tal como em um ambiente de Evolução de Longo Termo (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 de mapa (S322). Entretanto, quando uma rede de alta velocidade é utilizada e possui 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). Isso permite que o cliente obtenha informação de mapa adequada de acordo com a largura de banda de rede que tal cliente está utilizando.
[00300] Mais especificamente, um cliente recebe o SWLD através de uma rede LTE quando externo e obtém o WLD através de uma rede WiFi quando interno, tal como em uma instalação. Isso permite que o cliente obtenha informação de mapa mais detalhada do ambiente interno.
[00301] Como 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á utilizando. Alternativamente, o cliente pode enviar para o servidor a informação indicando a largura de banda de uma rede que tal cliente está utilizando, e o servidor pode enviar para o cliente dados (o WLD ou o SWLD) adequados para tal cliente, de acordo com a informação. Alternativamente, o servidor pode identificar a largura de banda de rede que o cliente está utilizando e enviar para o cliente dados (o WLD ou o SWLD) adequados para tal cliente.
[00302] Além disso, o recebimento de WLD ou SWLD pode ser permutado de acordo com a velocidade de percurso. A figura 15 é um diagrama ilustrando uma operação ilustrativa em tal caso. Por exemplo,
quando viajando em uma alta velocidade (S331), um cliente recebe SWLD do servidor (S332). Entretanto, quando viajando em uma baixa velocidade (S333), o cliente recebe WLD do servidor (S334). Isso permite que o cliente obtenha informação de mapa adequada para a velocidade, enquanto reduz a largura de banda da rede. Mais especificamente, quando viajando em uma via expressa, o cliente recebe SWLD com uma quantidade pequena de dados, o que permite a atualização da informação de mapa bruta em uma velocidade adequada. Entretanto, quando viajando em uma estrada geral, o cliente recebe WLD, o que permite a obtenção de informação de mapa mais detalhada.
[00303] Como descrito acima, o cliente pode solicitar ao servidor um WLD ou um SWLD de acordo com a velocidade de percurso de tal cliente. Alternativamente, o cliente pode enviar para o servidor a informação que indica a velocidade de percurso de tal cliente, e o servidor pode enviar para o cliente os dados (o WLD ou o SWLD) adequados para tal cliente de acordo com a informação. Alternativamente, o servidor pode identificar a velocidade de percurso do cliente para enviar dados (o WLD ou o SWLD) adequados para tal cliente.
[00304] Além disso, o cliente pode obter, a partir do servidor, um SWLD primeiro, de onde o cliente pode obter um WLD de uma região importante. Por exemplo, quando da obtenção de informação de mapa, o cliente primeiro obtém um SWLD para a informação de mapa aproximada, de onde o cliente estreita para uma região na qual as características tais 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. Isso permite que o cliente obtenha a informação detalhada de uma região necessária, enquanto reduzindo a quantidade de dados recebidos do servidor.
[00305] O servidor também pode criar a partir de um WLD SWLDs diferentes para os respectivos objetos, e o cliente pode receber SWLDs de acordo com o uso pretendido. Isso reduz a largura de banda de 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 desejando obter informação sobre as pessoas em torno do cliente, recebe o SWLD de pessoas, e quando deseja obter informação sobre carros, recebe SWLD de carros. Tais tipos de SWLDs podem ser distinguidos pela informação (indicador ou tipo etc.) adicionada ao cabeçalho, etc.
[00306] A seguir, a estrutura e o fluxo operacional do dispositivo de codificação de dados tridimensionais (por exemplo, um servidor), de acordo com a presente modalidade, serão descritos. 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 de processos de codificação de dados tridimensionais realizados pelo dispositivo de codificação de dados tridimensionais 400.
[00307] O dispositivo de codificação de dados tridimensionais 400, ilustrado na figura 16, codifica os dados tridimensionais inseridos 411 gerando assim dados tridimensionais codificados 413 e os dados tridimensionais codificados 414, cada um sendo uma sequência codificada. Na presente invenção, 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 obtentor 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.
[00308] Primeiro, como ilustra a figura 17, o obtentor 401 obtém os dados tridimensionais inseridos 411, que são dados de grupo de pontos em um espaço tridimensional (S401).
[00309] A seguir, 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)
[00310] A seguir, 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 possuindo 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, dessa maneira gerando dados tridimensionais extraídos 412 (S403). De outra forma, os dados tridimensionais extraídos 412 possuindo uma quantidade de características superior a ou igual ao limite são extraídos dos dados tridimensionais inseridos 411.
[00311] A seguir, o codificador de WLD 404 codifica os dados tridimensionais inseridos 411 correspondendo ao WLD, dessa maneira gerando os dados tridimensionais codificados 413 que correspondem ao WLD (S404). Ao fazer isso, o codificador de WLD 404 adiciona ao cabeçalho de dados tridimensionais codificados 413 informação que distingue que tais dados tridimensionais codificados 413 são uma sequência incluindo um WLD.
[00312] O codificador de SWLD 405 codifica os dados tridimensionais extraídos 412 correspondendo ao SWLD, desse modo gerando dados tridimensionais codificados 414 que correspondem ao SWLD (S405). Ao fazer isso, o codificador de SWLD 405 adiciona ao cabeçalho de dados tridimensionais codificados 414 informação que distingue que tais dados tridimensionais codificados 414 são uma sequência incluindo um SWLD.
[00313] 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, observar que uma parte ou todos esses processos podem ser realizados em paralelo.
[00314] 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 assinado adicionalmente 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 indicador especificado. Por exemplo, os dados tridimensionais codificados 414 podem receber um indicador 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 indicador.
[00315] Além disso, um método de codificação utilizado pelo codificador de WLD 404 para codificar um WLD pode ser diferente de um método de codificação utilizado pelo codificador de SWLD 405 para codificar um SWLD.
[00316] Por exemplo, os dados de um SWLD são decimados e, dessa forma, podem ter uma correlação mais baixa com os dados vizinhos do que aquela de um WLD. Por essa razão, de intrapredição e interpredição, a interpredição pode ser realizada de forma mais preferível em um método de codificação utilizado para um SWLD do que em um método de codificação utilizado para um WLD.
[00317] Além disso, um método de codificação utilizado para um SWLD e um método de codificação utilizado para um WLD podem apresentar posições tridimensionais de formas diferentes. Por exemplo, as coordenadas tridimensionais podem ser utilizadas para representar as posições tridimensionais de FVXLs em um SWLD e uma “octree” descrita abaixo pode ser utilizada para representar as posições tridimensionais em um WLD, e vice-versa.
[00318] Além disso, o codificador de SWLD 405 realiza a codificação de uma forma na qual os dados tridimensionais codificados 414 de um SWLD apresentem um tamanho de dados menor do que o tamanho de dados dos dados tridimensionais codificados 413 de um WLD. Um SWLD pode ter uma correlação interdados inferior, por exemplo, àquela de um WLD como descrito acima. Isso pode resultar em uma eficiência de codificação reduzida e, dessa forma, em dados tridimensionais codificados 414 apresentando 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 resultantes 414 é 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 possuindo um tamanho de dados reduzido.
[00319] Por exemplo, o extrator de SWLD 403 regenera os dados tridimensionais extraídos 412 possuindo um número reduzido de pontos-chave a serem extraídos, e o codificador de 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, pelo arredondamento dos dados no nível mais inferior em uma estrutura tipo “octree” descrita abaixo.
[00320] Quando da falha em reduzir o tamanho de dados de dados tridimensionais codificados 414 do SWLD para menores do que o tamanho de dados dos dados tridimensionais codificados 413 do WLD, o codificador de SWLD 405 pode não 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 utilizados como são como dados tridimensionais codificados 414 do SWLD.
[00321] A seguir, a estrutura e o fluxo operacional do dispositivo de decodificação de dados tridimensionais (por exemplo, um cliente), de acordo com a presente modalidade, serão descritos. A figura 18 é um diagrama de blocos de 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.
[00322] O dispositivo de decodificação de dados tridimensionais 500 ilustrado na figura 18 decodifica os dados tridimensionais codificados 511, dessa maneira 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.
[00323] Tal dispositivo de decodificação de dados tridimensionais 500 inclui um obtentor 501, um analisador de cabeçalho 502, um decodificador de WLD 503 e um decodificador de SWLD 504.
[00324] Primeiro, como ilustra a figura 19, o obtentor 501 obtém os dados tridimensionais codificados 511 (S501). A seguir, o analisador de cabeçalho 502 analisa o cabeçalho de 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.
[00325] Quando os dados tridimensionais codificados 511 são uma sequência incluindo um WLD (Sim em S503), o decodificador de WLD 503 decodifica os dados tridimensionais codificados 511, dessa maneira gerando os dados tridimensionais decodificados 512 do WLD (S504). Entretanto, quando os dados tridimensionais codificados 511 são uma sequência incluindo um SWLD (Não em S503), o decodificador de SWLD 504 decodifica os dados tridimensionais codificados 511, desse modo gerando os dados tridimensionais decodificados 513 do SWLD (S505).
[00326] Além disso, como no caso do dispositivo de codificação, um método de decodificação utilizado pelo decodificador de WLD 503 para decodificar um WLD pode ser diferente de um método de decodificação utilizado pelo decodificador de SWLD 504 para decodificar um SWLD. Por exemplo, dentre a intrapredição e interpredição, interpredição pode ser realizada com maior preferência em um método de decodificação utilizado para um SWLD do que em um método de decodificação utilizado para um WLD.
[00327] Além disso, um método de decodificação utilizado para um SWLD e um método de decodificação utilizado para um WLD podem representar posições tridimensionais diferentemente. Por exemplo, coordenadas tridimensionais podem ser utilizadas para representar as posições tridimensionais de FVXLs em um SWLD e uma “octree” descrita abaixo pode ser utilizada para representar posições tridimensionais em um WLD, e vice-versa.
[00328] A seguir, uma representação de “octree” será descrita, a qual é um método de representação de posições tridimensionais. Dados de VXL incluídos em dados tridimensionais são convertidos em uma estrutura de “octree” antes de ser codificados. A figura 20 é um diagrama ilustrando VXLs ilustrativos em um WLD. A figura 21 é um diagrama ilustrando uma estrutura de “octree” do WLD ilustrado na figura 20. Um exemplo ilustrado na figura 20 ilustra três VXLs de 1 a 3 que incluem grupos de pontos (daqui em diante referidos como VXLs efetivos). Como a figura 21 ilustra, a estrutura de “octree” é feita de nós e folhas. Cada nó possui um máximo de oito nós ou folhas. Cada folha possui informação de VXL. Na presente invenção, das folhas ilustradas na figura 21, a folha 1, a folha 2 e a folha 3 representam VXL1, VXL2 e VXL3 ilustrados na figura 20, respectivamente.
[00329] Mais especificamente, cada nó e cada folha correspondem a uma posição tridimensional. O nó 1 corresponde a todo o bloco ilustrado na figura 20. O bloco que corresponde ao nó 1 é dividido em oito blocos. Desses oito blocos, os blocos que incluem VXLs eficientes são determinados como nós, enquanto os outros blocos são configurados como folhas. Cada bloco que corresponde a um nó é dividido mais em oitos nós ou folhas. Esses processos são repetidos pelo número de itens que é igual ao número de níveis na estrutura de “octree”. Todos os blocos no nível mais inferior são configurados como folhas.
[00330] A figura 22 é um diagrama ilustrando um SWLD ilustrativo gerado a partir de WLD ilustrado na figura 20. VXL1 e VXL2 ilustrados na figura 20 são julgados como FVXL1 e FVXL2 como resultado da extração de característica e, dessa forma, são adicionados ao SWLD. Entretanto, VXL3 não é julgado como FVXL e, dessa forma, não é adicionado ao SWLD. A figura 23 é um diagrama ilustrando uma estrutura de “octree” de SWLD ilustrado na figura 22. Na estrutura de “octree” ilustrada na figura 23, a folha 3, que corresponde a VXL3 ilustrado na figura 21, é eliminada. Consequentemente, o nó 3 ilustrado na figura 21 perdeu um VXL efetivo, e mudou para uma folha. Como descrito acima, um SWLD possui um número menor de folhas em geral do que um WLD e, dessa forma, os dados tridimensionais codificados doe SWLD são menores do que os dados tridimensionais codificados do WLD.
[00331] A seguir são descritas variações da presente modalidade.
[00332] Para estimativa de autolocalização, por exemplo, um cliente, sendo um dispositivo montado em um veículo, etc., pode receber um SWLD do servidor para utilizar tal SWLD na estimativa da autolocalização. Entretanto, para detecção de obstáculos, o cliente pode detectar os obstáculos pelo uso de informação tridimensional na periferia obtida por tal cliente através de vários meios que incluem 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.
[00333] Em geral, um SWLD tem menos chances de incluir dados VXL em uma região plana. Deste modo, o servidor pode deter 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. Isso permite que o cliente realize estimativa de autolocalização e detecção de obstáculo na parte do cliente, enquanto reduzindo a largura de banda da rede.
[00334] Quando o cliente cria dados de mapa tridimensionais em uma velocidade alta, a informação de mapa possuindo uma estrutura de malha é mais útil em alguns casos. Deste modo, o servidor pode gerar uma malha de um WLD para conter o mesmo antecipadamente, como um mundo de malha (MWLD). Por exemplo, quando desejado realizar uma criação tridimensional aproximada, o cliente recebe um MWLD, e quando desejando realizar uma criação tridimensional detalhada, o cliente recebe um WLD. Isso reduz a largura de banda da rede.
[00335] Na descrição acima, o servidor configura, como FVXLs, VXLs que possuem uma quantidade de características superior a ou igual ao limite, mas o servidor pode calcular FVXLs por um método diferente. Por exemplo, o servidor pode julgar um VXL, um VLM, um SPC ou um GOS que constituem um sinal ou uma interseção, etc., conforme necessário 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 configurados com base em uma quantidade de características podem ser adicionados a FVXLs, etc., obtidos pelo método acima. De outra forma, o extrator de SWLD 403 pode extrair mais, a partir de dados tridimensionais de entrada 411, dados correspondentes a um objeto que possui um atributo predeterminado como dados tridimensionais extraídos 412.
[00336] Além disso, o fato de um VXL, um VLM, um SPC ou um GOS ser necessário para tal utilização pretendida pode ser rotulado separadamente das características. O servidor pode deter 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.
[00337] 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 indicando 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 de faixa (arquivos de dados geográficos (GDF), etc.).
[00338] Um método, como descrito abaixo, pode ser utilizado para atualizar um WLD ou um SWLD.
[00339] A informação de 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 pelo uso do WLD atualizado.
[00340] O cliente, quando detectando 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 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 pelo uso do WLD. Quando o SWLD não precisa ser atualizado, o servidor julga que o WLD propriamente dito está ultrapassado.
[00341] 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 de malha e um mundo de faixa, a informação que distingue esses 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.
[00342] Na descrição acima, um SWLD é constituído por FVXLs, mas um SWLD pode incluir VXLs que não foram julgados como FVXLs. Por exemplo, um SWLD pode incluir um VXL adjacente utilizado para calcular a característica de um FVXL. Isso permite que o cliente calcule a característica de um FVXL quando recebe um SWLD, mesmo no caso no qual a informação de 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.
[00343] Como descrito acima, o dispositivo de codificação de dados tridimensionais 400 extrai, dos dados tridimensionais de entrada 411 (primeiros dados tridimensionais), os dados tridimensionais extraídos 412 (segundos dados tridimensionais) que possuem uma quantidade de uma característica que excede ou se iguala a um limite, e codifica os dados tridimensionais extraídos 412 para gerar os dados tridimensionais codificados 414 (primeiros dados tridimensionais codificados).
[00344] Esse dispositivo de codificação de dados tridimensionais 400 gera dados tridimensionais codificados 414 que são obtidos pela codificação de dados que possuem uma quantidade de uma característica superior a ou igual ao limite. Isso reduz a quantidade de dados em comparação com o caso no qual os dados tridimensionais inseridos 411 são codificados como se apresentam. O dispositivo de codificação de dados tridimensionais 400 é, dessa forma, capaz de reduzir a quantidade de dados a serem transmitidos.
[00345] O dispositivo de codificação de dados tridimensionais 400 codifica adicionalmente os dados tridimensionais inseridos 411 para gerar os dados tridimensionais codificados 413 (segundos dados tridimensionais codificados).
[00346] Esse 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.
[00347] Além disso, os dados tridimensionais extraídos 412 são codificados por um primeiro método de codificação, e os dados tridimensionais inseridos 411 são codificados por um segundo método de codificação diferente do primeiro método de codificação.
[00348] Esse 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 inseridos 411 e os dados tridimensionais extraídos 412.
[00349] Além disso, dentre a intrapredição e a interpredição, a interpredição é mais preferivelmente realizada no primeiro método de codificação do que no segundo método de codificação.
[00350] Esse dispositivo de codificação de dados tridimensionais 400 permite que a interprediçã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.
[00351] 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.
[00352] Esse 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.
[00353] Além disso, pelo menos um dentre os dados tridimensionais codificados 413 e os 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 inseridos 411 ou dados tridimensionais codificados obtidos pela codificação de parte dos dados tridimensionais inseridos
411. De outra forma, tal identificador indica se os dados tridimensionais codificados são dados tridimensionais codificados 413 de um WLD ou dados tridimensionais codificados 414 de um SWLD.
[00354] Isso 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.
[00355] 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.
[00356] Esse 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 de dados tridimensionais codificados 413.
[00357] Além disso, o dispositivo de codificação de dados tridimensionais 400 extrai ainda dados que correspondem a um objeto que possui um atributo predeterminado dos dados tridimensionais inseridos 411 como dados tridimensionais extraídos 412. O objeto possuindo 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.
[00358] Esse dispositivo de codificação de dados tridimensionais 400 pode gerar dados tridimensionais codificados 414 que incluem dados solicitados pelo dispositivo de decodificação.
[00359] 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.
[00360] Esse dispositivo de codificação de dados tridimensionais 400 pode enviar dados adequados, de acordo com a situação do cliente.
[00361] 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.
[00362] 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.
[00363] Esse dispositivo de codificação de dados tridimensionais 400 pode enviar dados adequados de acordo com uma solicitação do cliente.
[00364] 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.
[00365] De outra forma, o dispositivo de decodificação de dados tridimensionais 500 decodifica, por um primeiro método de decodificação, os dados tridimensionais codificados 414 obtidos pela codificação de dados tridimensionais extraídos 412, que possuem 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 inseridos 411. O dispositivo de decodificação de dados tridimensionais 500 também decodifica, por um segundo método de decodificação, os dados tridimensionais codificados 413 obtidos pela codificação dos dados tridimensionais inseridos 411, o segundo método de decodificação sendo diferente do primeiro método de decodificação.
[00366] Esse dispositivo de decodificação de dados tridimensionais 500 permite a recepção seletiva dos dados tridimensionais codificados 414 obtidos pela codificação de dados possuindo uma quantidade de uma característica superior 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 é, dessa forma, capaz de reduzir a quantidade de dados a ser transmitida. Tal dispositivo de decodificação de dados tridimensional 500 permite ainda o uso de um método de decodificação adequado para cada um dentre os dados tridimensionais inseridos 411 e dados tridimensionais extraídos 412.
[00367] Além disso, dentre intrapredição e interpredição, a interpredição é mais preferivelmente realizada no primeiro método de decodificação do que no segundo método de decodificação.
[00368] Esse dispositivo de decodificação de dados tridimensionais 500 permite que interpredição seja realizada mais preferivelmente nos dados tridimensionais extraídos em que itens de dados adjacentes têm mais chances de apresentar correlação baixa.
[00369] 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.
[00370] Esse 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.
[00371] 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 inseridos 411 ou dados tridimensionais codificados obtidos pela codificação de parte dos dados tridimensionais inseridos
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.
[00372] Esse 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.
[00373] 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.
[00374] Esse dispositivo de decodificação de dados tridimensionais 500 pode receber dados adequados de acordo com a situação do cliente.
[00375] 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.
[00376] O dispositivo de decodificação de dados tridimensionais 500 realiza ainda uma solicitação do servidor por um de dados tridimensionais codificados 413 e dados tridimensionais codificados 414, e recebe um de dados tridimensionais codificados 413 e dados tridimensionais codificados 414 do servidor, de acordo com a solicitação.
[00377] Esse dispositivo de decodificação de dados tridimensionais 500 pode receber dados adequados de acordo com o uso pretendido. MODALIDADE 3
[00378] 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.
[00379] 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, mistura os primeiros dados tridimensionais 632 criados pelo dispositivo de criação de dados tridimensionais 620 com os segundos dados tridimensionais recebidos 635, dessa maneira criando terceiros dados tridimensionais 636 que possuem uma densidade maior.
[00380] Tal dispositivo de criação de dados tridimensionais 620 inclui criador de dados tridimensionais 621, determinador de faixa de solicitação 622, buscador 623, receptor 624, decodificador 625 e misturador 626.
[00381] Primeiro, o criador de dados tridimensionais 621 cria os primeiros dados tridimensionais 632 através do uso de informação de sensor 631 detectada pelo sensor incluído no próprio veículo. A seguir, 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.
[00382] Em seguida, o buscador 623 busca pelo veículo próximo possuindo os dados tridimensionais da faixa de solicitação e envia informação de faixa de solicitação 633 indicando a faixa de solicitação para o veículo próximo 601 que foi buscado (S632). Em seguida, o receptor 624 recebe dados tridimensionais codificados 634, que é uma sequência codificada da faixa de solicitação, a partir do veículo próximo 601 (S624). Observar 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 uma indicação, e receber dados tridimensionais codificados 634 a partir do objeto.
[00383] Em seguida, o decodificador 625 decodifica os dados tridimensionais codificados recebidos 634, dessa maneira obtendo os segundos dados tridimensionais 635. Em seguida, o misturador 626 mistura os primeiros dados tridimensionais 632 com os segundos dados tridimensionais 635, dessa maneira criando dados tridimensionais 636 que possuem uma densidade maior.
[00384] 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.
[00385] 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 quintos dados tridimensionais 652 criados pelo veículo próximo em sextos dados tridimensionais 654 solicitados pelo próprio veículo, codifica sextos dados tridimensionais 654 para gerar dados tridimensionais codificados 634 e envia dados tridimensionais codificados 634 para o próximo veículo.
[00386] O dispositivo de transmissão de dados tridimensionais 640 inclui criador de dados tridimensionais 641, receptor 642, extrator 643, codificador 644 e transmissor 645.
[00387] Primeiro, o criador de dados tridimensionais 641 cria quintos dados tridimensionais 652 através do uso de informação de sensor 651 detectada pelo sensor incluído no veículo próximo. Em seguida, o receptor 642 recebe informação de faixa de solicitação 633 do próprio veículo.
[00388] 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, dessa maneira processando quintos dados tridimensionais 652 em sextos dados tridimensionais 654. Em seguida, o codificador 644 codifica sextos dados tridimensionais 654 para gerar 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.
[00389] Observar 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 inclui o dispositivo de transmissão de dados tridimensionais 640, cada um dos veículos pode incluir a funcionalidade de ambos dispositivo de criação de dados tridimensionais 620 e dispositivo de transmissão de dados tridimensional 640. MODALIDADE 4
[00390] A presente modalidade descreve operações realizadas em casos anormais quando estimativa de autolocalização é realizada com base em um mapa tridimensional.
[00391] 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 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).
[00392] A estimativa de autolocalização é permitida pela combinação de um mapa tridimensional com informação tridimensional nas cercanias do próprio veículo (daqui em diante referida como dados tridimensionais autodetectados) 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.
[00393] Como no caso de um mapa de HD sugerido pela 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 e um acidente. Um mapa tridimensional inclui uma pluralidade de camadas, tais 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 a dados necessários.
[00394] Os dados de nuvem de pontos podem ser um SWLD, como 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.
[00395] Um método descrito abaixo é utilizado como um método de combinação de um mapa tridimensional com dados tridimensionais autodetectados. Por exemplo, o dispositivo compara os formatos dos grupos de pontos nas nuvens de pontos uns dos outros, e determina quais partes possuindo 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-chave que formam o SWLD com pontos- chave tridimensionais extraídos dos dados tridimensionais autodetectados.
[00396] Na presente invenção, para permitir a estimativa de autolocalização altamente precisa, o seguinte precisa ser satisfeito: (A)
o mapa tridimensional e os dados tridimensionais autodetectados 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, tais 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 autodetectados gerados é inadequada devido ao mau tempo.
[00397] O apresentado a seguir descreve as operações para lidar com tais casos anormais. A descrição a seguir 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.
[00398] A seguir é descrita 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 dados tridimensionais autodetectados. 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.
[00399] O dispositivo de processamento de informação tridimensional 700 é equipado, por exemplo, em um objeto móvel, tal como um carro. Como ilustrado na figura 26, o dispositivo de processamento de informação tridimensional 700 inclui obtentor de mapa tridimensional 701, obtentor de dados autodetectados 702, unidade de julgamento de caso anormal 703, determinador de operação de enfrentamento 704 e controlador de operação 705.
[00400] Observar que o dispositivo de processamento de informação tridimensional 700 pode incluir um sensor bidimensional ou unidimensional, não ilustrado, 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 dados unidimensionais utilizando ultrassom ou laser. O dispositivo de processamento de informação tridimensional 700 também pode incluir uma unidade de comunicação não ilustrada que obtém um mapa tridimensional através de uma rede de comunicação móvel, tais como 4G e 5G, ou através da comunicação interveicular ou da comunicação estrada-para- veículo.
[00401] O obtentor de mapa tridimensional 701 obtém mapa tridimensional 711 das cercanias da rota de percurso. Por exemplo, o obtentor de mapa tridimensional 701 obtém o mapa tridimensional 711 em uma rede de comunicação móvel ou através da comunicação interveicular ou comunicação estrada-para-veículo.
[00402] Em seguida, o obtentor de dados autodetectados 702 obtém os dados tridimensionais autodetectados 712 com base na informação de sensor. Por exemplo, o obtentor de dados autodetectados 702 gera os dados tridimensionais autodetectados 712 com base na informação de sensor obtida por um sensor equipado no próprio veículo.
[00403] 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 autodetectados 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 autodetectados 712 é anormal.
[00404] Quando o caso anormal é detectado, o determinador 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 realizar a operação de enfrentamento.
[00405] Entretanto, quando nenhum caso anormal é detectado, o dispositivo de processamento de informação tridimensional 700 encerra o processo.
[00406] 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, utilizando o mapa tridimensional 711 e os dados tridimensionais autodetectados 712. A seguir, o dispositivo de processamento de informação tridimensional 700 realiza a operação automática do veículo através do uso da localização estimada do veículo.
[00407] Como 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 primeira informação de posição tridimensional. A primeira informação de 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 possuindo informação de coordenadas tridimensionais e servindo como uma unidade em que cada uma dentre a pluralidade de unidades de acesso randômico é codificada. A primeira informação de posição tridimensional é, por exemplo, dados (SWLD) obtidos pela codificação de pontos-chave, cada um dos quais possui uma quantidade de uma característica tridimensional superior a ou igual a um limite predeterminado.
[00408] O dispositivo de processamento de informação tridimensional 700 também gera segunda informação de posição tridimensional (dados tridimensionais autodetectados 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 de posição tridimensional e a segunda informação de posição tridimensional é anormal pela realização, em uma dentre a primeira informação de posição tridimensional e a segunda informação de posição tridimensional, de um processo de julgamento de se uma anormalidade está presente.
[00409] O dispositivo de processamento de informação tridimensional 700 determina uma operação de enfrentamento para enfrentar a anormalidade quando uma dentre a primeira informação de posição tridimensional e a segunda informação de posição tridimensional é julgada como sendo anormal. O dispositivo de processamento de informação tridimensional 700 então executa um controle que é necessário para realizar a operação de enfrentamento.
[00410] Essa estrutura permite que o dispositivo de processamento de informação tridimensional 700 detecte uma anormalidade referente à primeira informação de posição tridimensional e à segunda informação de posição tridimensional e realize uma operação de enfrentamento para a mesma. MODALIDADE 5
[00411] A presente modalidade descreve um método, etc., de transmissão de dados tridimensionais para um veículo seguinte.
[00412] 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.
[00413] O dispositivo de criação de dados tridimensionais 810 inclui receptor de dados 811, unidade de comunicação 812, controlador de recepção 813, conversor de formato 814, pluralidade de sensores 815, criador de dados tridimensionais 816, sintetizador de dados tridimensionais 817, armazenador de dados tridimensionais 818, unidade de comunicação 819, controlador de transmissão 820, conversor de formato 821 e transmissor de dados 822.
[00414] 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 de posição de sensor e informação de velocidade.
[00415] 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.
[00416] O controlador de recepção 813 troca 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 comunicação com o parceiro de comunicações.
[00417] 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.
[00418] Uma pluralidade de sensores 815 são um grupo de sensores, tais como câmeras de luz visível, e câmeras de infravermelho, que obtêm informação do exterior do veículo e geram informação de sensor 833. A informação de sensor 833 são, por exemplo, dados tridimensionais, tal como uma nuvem de pontos (dados de grupo de pontos), quando os sensores 815 são sensores de laser, tais como LiDARs. Observar que um sensor único pode servir como uma pluralidade de sensores 815.
[00419] O criador de dados tridimensionais 816 gera dados tridimensionais 834 a partir da informação de 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 de posição de sensor e informação de velocidade.
[00420] O sintetizador de dados tridimensionais 817 sintetiza os dados tridimensionais 834 criados com base na informação de 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., dessa maneira formando 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.
[00421] O armazenador de dados tridimensionais 818 armazena os dados tridimensionais gerados 835, etc.
[00422] 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 a seguir 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 a seguir.
[00423] O controlador de transmissão 820 troca informação, tal como informação de formatos suportados, com um parceiro de comunicações através da unidade de comunicação 819 para estabelecer 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.
[00424] 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 o 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, correspondendo 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.
[00425] Dos três dados tridimensionais 835 armazenados no armazenador de dados tridimensionais 818, o conversor de formato 821 converte os dados tridimensionais 836 da região de transmissão para o formato suportado pela extremidade do receptor para gerar dados tridimensionais 837. Observar que o conversor de formato 821 pode comprimir ou codificar os dados tridimensionais 837 para reduzir a quantidade de dados.
[00426] 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 de posição de sensor.
[00427] Observar que foi descrito um exemplo no qual o conversor de formato 814 e o conversor de formato 821 realizam conversão de formato, etc., mas conversão de formato pode não ser realizada.
[00428] 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 de sensor 833 detectada pelos sensores 815 do próprio veículo, dessa maneira os dados tridimensionais 835. O dispositivo de criação de dados tridimensionais 810 é, dessa forma, capaz de gerar dados tridimensionais de uma faixa não detectável pelos sensores 815 do próprio veículo.
[00429] 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 a seguir, etc., 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 a seguir, em resposta à solicitação de transmissão de dados a partir do sistema de monitoramento de tráfego com base em nuvem ou do veículo a seguir. MODALIDADE 6
[00430] Na modalidade 5, é descrito um exemplo no qual um dispositivo de cliente de um veículo ou similar transmite os dados tridimensionais para um 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 de sensor obtida através de um sensor para um servidor ou um dispositivo de cliente.
[00431] Uma estrutura de um sistema, de acordo com a presente modalidade, será descrita primeiro. A figura 28 é um diagrama ilustrando a estrutura de um sistema de transmissão/recepção de um mapa tridimensional e informação de sensor, de acordo com a presente modalidade. Esse sistema inclui o servidor 901 e dispositivos de cliente 902A e 902B. Observar 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.
[00432] 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.
[00433] O servidor 901 transmite o mapa tridimensional formado por uma nuvem de pontos para o dispositivo de cliente 902. Observar 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 de malha.
[00434] O dispositivo de cliente 902 transmite a informação de sensor obtida pelo dispositivo de cliente 902 para o servidor 901. A informação de 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, informação de posição de sensor ou informação de velocidade de sensor.
[00435] 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 utilizar um método de compressão tridimensional na nuvem de pontos com base, por exemplo, em uma estrutura de “octree”. É possível utilizar 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.
[00436] 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. Observar 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 for atualizado.
[00437] 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.
[00438] Observas que nos casos a seguir, 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.
[00439] 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 ilustrado 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 ilustrado 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 ilustrado no mapa tridimensional armazenado pelo dispositivo de cliente 902 pode ser predito com base no percurso de movimento e na velocidade de movimento do dispositivo de cliente 902.
[00440] 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 de sensor pelo dispositivo de cliente 902 está pelo menos em um nível fixo.
[00441] O dispositivo de cliente 902 transmite a informação de sensor para o servidor 901 em resposta a uma solicitação de transmissão da informação de sensor do servidor 901. Observe que o dispositivo de cliente 902 pode transmitir a informação de sensor para o servidor 901 sem esperar pela solicitação de transmissão da informação de sensor proveniente do servidor 901. Por exemplo, o dispositivo de cliente 902 pode transmitir, periodicamente, a informação de sensor durante um período fixo, quando o dispositivo de cliente 902 recebeu a solicitação de transmissão da informação de 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 de 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 de sensor, e no mapa tridimensional obtido a partir do servidor 901, está pelo menos no nível fixo.
[00442] O servidor 901 envia uma solicitação de transmissão para a informação de sensor para o dispositivo de cliente 902. Por exemplo, o servidor 901 recebe a informação de 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 de 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 de posição do dispositivo de cliente 902. O servidor 901 também pode enviar a solicitação de transmissão da informação de 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 similar.
[00443] O dispositivo de cliente 902 pode configurar uma quantidade de dados da informação de 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 de sensor a ser recebida do servidor 901. Configurar a quantidade de dados de informação de 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.
[00444] A figura 29 é um diagrama de blocos mostrando uma estrutura ilustrativa do dispositivo de cliente 902. O dispositivo de cliente 902 recebe o mapa tridimensional formado por uma nuvem de pontos e similar a partir do servidor 901, e estima uma autolocalização do dispositivo de cliente 902 utilizando o mapa tridimensional criado com base na informação de sensor do dispositivo de cliente 902. O dispositivo de cliente 902 transmite a informação de sensor obtida para o servidor 901.
[00445] O dispositivo de cliente 902 inclui receptor de dados 1011, unidade de comunicação 1012, controlador de recepção 1013, conversor de formato 1014, sensores 1015, criador de dados tridimensionais 1016, processador de imagem tridimensional 1017, armazenador de dados tridimensional 1018, conversor de formato 1019, unidade de comunicação 10120, controlador de transmissão 1021 e transmissor de dados 1022.
[00446] 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.
[00447] A unidade de comunicação 1012 se 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.
[00448] O controlador de recepção 1013 troca 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 comunicação com o parceiro de comunicações.
[00449] O conversor de formato 1014 realiza uma conversão de formato e similar 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 está comprimido ou codificado. Observar 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.
[00450] Os sensores 815 são um grupo de sensores, tais 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 de sensor 1033. A informação de sensor 1033 são, por exemplo, dados tridimensionais, tal como uma nuvem de pontos (dados de grupo de pontos), quando sensores 1015 são sensores de laser, tais como LiDARs. Observe que um único sensor pode servir como sensores
1015.
[00451] 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 de 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 utilizando a informação obtida pelo LiDAR e vídeo de luz visível obtido por uma câmera de luz visível.
[00452] O processador de imagem tridimensional 1017 realiza um processo de estimativa de autolocalização e similar do próprio veículo utilizando (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 utilizando a informação de sensor 1033. Observar que o processador de imagem tridimensional 1017 pode gerar os dados tridimensionais 1035 sobre as cercanias do próprio veículo misturando o mapa tridimensional 1032 e os dados tridimensionais 1034, e pode realizar o processo de estimativa de autolocalização utilizando os dados tridimensionais criados 1035.
[00453] O armazenador de dados tridimensionais 1018 armazena o mapa tridimensional 1032, dados tridimensionais 1034, dados tridimensionais 1035 e similar.
[00454] O conversor de formato 1019 gera a informação de sensor 1037 pela conversão da informação de sensor 1033 em um formato suportado por uma extremidade receptora. Observar que o conversor de formato 1019 pode reduzir a quantidade de dados pela compressão ou codificação da informação de 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.
[00455] 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 de sensor) e similar a partir do servidor 901.
[00456] O controlador de transmissão 1021 troca 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.
[00457] O transmissor de dados 1022 transmite a informação de sensor 1037 para o servidor 901. A informação de 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 de posição de sensor e a informação de velocidade de sensor.
[00458] Uma estrutura do servidor 901 será descrita a seguir. A figura 30 é um diagrama de blocos mostrando uma estrutura ilustrativa do servidor 901. O servidor 901 transmite a informação de sensor do dispositivo de cliente 902 e cria dados tridimensionais baseado na informação de sensor recebida. O servidor 901 atualiza o mapa tridimensional gerenciado pelo servidor 901 utilizando 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 do mapa tridimensional a partir do dispositivo de cliente 902.
[00459] O servidor 901 inclui receptor de dados 1111, unidade de comunicação 1112, controlador de recepção 1113, conversor de formato 1114, criador de dados tridimensionais 1116, misturador de dados tridimensionais 1117, armazenador de dados tridimensionais 1118, conversor de formato 1119, unidade de comunicação 1120, controlador de transmissão 1121 e transmissor de dados 1122.
[00460] O receptor de dados 1111 recebe informação de sensor 1037 do dispositivo de cliente 902. A informação de 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 de posição de sensor, informação de velocidade de sensor e similar.
[00461] A unidade de comunicação 1112 se comunica com o dispositivo de cliente 902 e transmite uma solicitação de transmissão de dados (por exemplo, solicitação de transmissão da informação de sensor) e similar para o dispositivo de cliente 902.
[00462] O controlador de recepção 1113 troca 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.
[00463] O conversor de formato 1114 gera a informação de sensor 1132 pela realização de um processo de descompressão ou decodificação quando a informação de sensor recebida 1037 está comprimida ou codificada. Observar que o conversor de formato 1114 não realiza o processo de descompressão ou decodificação quando a informação de sensor 1037 são dados não comprimidos.
[00464] O criador de dados tridimensionais 1116 gera dados tridimensionais 1134 de uma área circundante do dispositivo de cliente 902 com base na informação de sensor 1132. Por exemplo, o criador de dados tridimensionais 1116 gera dados de nuvem de pontos com informação de cor da área circundante do dispositivo de cliente 902 utilizando informação obtida pelo LiDAR e vídeo de luz visível obtida por uma câmera de luz visível.
[00465] O misturador de dados tridimensionais 1117 atualiza o mapa tridimensional 1135 misturando os dados tridimensionais 1134 criados com base na informação de sensor 1132 com o mapa tridimensional 1135 gerenciado pelo servidor 901.
[00466] O armazenador de dados tridimensionais 1118 armazena o mapa tridimensional 1135 e similar.
[00467] O conversor de formato 1119 gera o mapa tridimensional 1031 pela conversão do mapa tridimensional 1135 em um formato suportado pela extremidade receptora. Observar 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.
[00468] 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 similar a partir do dispositivo de cliente 902.
[00469] O controlador de transmissão 1121 troca informação, tal como informação de 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.
[00470] 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.
[00471] Um fluxo operacional do dispositivo de cliente 902 será descrito a seguir. A figura 31 é um fluxograma de uma operação quando o dispositivo de cliente 902 obtém o mapa tridimensional.
[00472] 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 de posição do dispositivo de cliente 902, obtida através de GPS e similares, o dispositivo de cliente 902 também pode solicitar que o servidor 901 transmita um mapa tridimensional referente a essa informação de posição.
[00473] 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).
[00474] O dispositivo de cliente 902 em seguida cria os dados tridimensionais 1034 da área circundante do dispositivo de cliente 902 utilizando a informação de sensor 1033 obtida pelos sensores 1015 (S1004). O dispositivo de cliente 902 em seguida estima a autolocalização do dispositivo de cliente 902 utilizando o mapa tridimensional 1032 recebido do servidor 901 e os dados tridimensionais 1034 criados utilizando a informação de sensor 1033 (S1005).
[00475] A figura 32 é um fluxograma de uma operação quando o dispositivo de cliente 902 transmite a informação de sensor. O dispositivo de cliente 902 primeiro recebe uma solicitação de transmissão da informação de sensor do servidor 901 (S1011). O dispositivo de cliente 902 que recebeu a solicitação de transmissão transmite a informação de sensor 1037 para o servidor 901 (S1012). Observar que o dispositivo de cliente 902 pode gerar a informação de sensor 1037 comprimindo cada parte da informação, utilizando um método de compressão adequado para cada parte da informação, quando a informação de sensor 1033 inclui uma pluralidade de partes de informação obtidas pelos sensores 1015.
[00476] Um fluxo operacional do servidor 901 será descrito a seguir. A figura 33 é um fluxograma de uma operação quando o servidor 901 obtém a informação de sensor. O servidor 901 primeiro solicita que o dispositivo de cliente 902 transmita a informação de sensor (S1021). O servidor 901 em seguida recebe a informação de 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 utilizando a informação de sensor recebida 1037 (S1023). O servidor 901, em seguida reflete os dados tridimensionais criados 1134 no mapa tridimensional 1135 (S1024).
[00477] 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 de 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 utilizando, por exemplo, um método de compressão de estrutura tipo “octree” e transmitir o mapa tridimensional comprimido.
[00478] Daqui em diante, variações da presente modalidade serão descritas.
[00479] O servidor 901 cria os dados tridimensionais 1134 de uma proximidade de uma posição do dispositivo de cliente 902 utilizando a informação de 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 anormalidade 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 de sensor 1037, quando um afundamento de solo e similar ocorre devido a um desastre natural tal como um terremoto.
[00480] Tal informação de sensor 1037 pode incluir informação indicando pelo menos um dentre um tipo de sensor, um desempenho de sensor e um número de modelo de sensor. A informação de sensor 1037 também pode ser anexada a um ID de classe e similar, de acordo com o desempenho de sensor. Por exemplo, quando a informação de sensor 1037 é obtida pelo LiDAR, é concebível 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 similar 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. Nesse 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 de sensor. O servidor 901 pode alterar um grau de correção com relação aos dados tridimensionais 1134 criados utilizando informação de sensor 1037, utilizando a informação de 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.
[00481] O servidor 901 pode enviar simultaneamente a solicitação de transmissão da informação de sensor para a pluralidade de dispositivos de cliente 902 em um espaço determinado. O servidor 901 não precisa utilizar toda a informação de sensor para criar os dados tridimensionais 1134 e pode, por exemplo, selecionar a informação de sensor a ser utilizada, de acordo com o desempenho de sensor, quando recebe uma pluralidade de partes de informação de 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 de sensor de alta precisão (classe 1), dentre a pluralidade recebida de partes da informação de sensor, e criar os dados tridimensionais 1134 utilizando a informação de sensor selecionada.
[00482] 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 nesse caso.
[00483] Por exemplo, o dispositivo de cliente 902C envia uma solicitação de transmissão de informação de sensor para o dispositivo de cliente 902A localizado perto, e obtém a informação de sensor do dispositivo de cliente 902A. O dispositivo de cliente 902C então cria os dados tridimensionais utilizando a informação de sensor obtida a partir do dispositivo de cliente 902A e atualiza um mapa tridimensional do dispositivo de cliente 902C. Isso 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 utilize completamente o desempenho do dispositivo de cliente 902C. Por exemplo, tal caso é concebível quando o dispositivo de cliente 902C apresenta um alto desempenho.
[00484] Nesse caso, o dispositivo de cliente 902A que forneceu a informação de 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.
[00485] O servidor 901 pode enviar a solicitação de transmissão da informação de 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 utilizando a informação de sensor obtida por esse sensor de alto desempenho.
[00486] A figura 36 é um diagrama de blocos ilustrando 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 de sensor 1202 que comprime e decodifica a informação de sensor.
[00487] O dispositivo de cliente 902 inclui o processador de decodificação de mapa tridimensional 1211 e o processador de compressão de informação de 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 de sensor 1212 comprime a informação de sensor propriamente dita, em vez dos dados tridimensionais criados, utilizando a informação de sensor obtida, e transmite os dados codificados da informação de sensor comprimida 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.). Isso possibilita a limitação de custos, consumo de energia e similar do dispositivo de cliente 902.
[00488] Como 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 utilizando a informação de 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 utilizando os dados tridimensionais criados 1034. O dispositivo de cliente 902 transmite a informação de sensor obtida 1033 para o servidor 901 ou outro objeto móvel.
[00489] Isso permite que o dispositivo de cliente 902 transmita a informação de sensor 1033 para o servidor 901 ou similar. Isso possibilita a redução adicional da quantidade de dados de transmissão em comparação com a transmissão dos dados tridimensionais. Visto que não há necessidade do dispositivo de cliente 902 realizar os processos, tal como compressão ou codificação de dados tridimensionais, é possível reduzir a quantidade de processamento do dispositivo de cliente 902. Deste modo, o dispositivo de cliente 902 pode reduzir a quantidade de dados a ser transmitida ou simplificar a estrutura do dispositivo.
[00490] 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 utilizando os dados tridimensionais 1034 e o mapa tridimensional 1032.
[00491] A informação de 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, informação de posição de sensor ou informação de velocidade de sensor.
[00492] A informação de sensor 1033 inclui a informação que indica um desempenho do sensor.
[00493] O dispositivo de cliente 902 codifica ou comprime a informação de sensor 1033, e na transmissão da informação de sensor, transmite a informação de sensor 1037 que foi codificada ou comprimida para o servidor 901 ou outro objeto móvel 902. Isso permite que o dispositivo de cliente 902 reduza a quantidade de dados a ser transmitida.
[00494] Por exemplo, o dispositivo de cliente 902 inclui um processador e memória. O processador realiza os processos acima utilizando a memória.
[00495] O servidor 901, de acordo com a presente modalidade, é capaz de se comunicar com o dispositivo de cliente 902 equipado no objeto móvel, e recebe informação de 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 dados tridimensionais 1134 de uma área circundante do objeto móvel utilizando a informação de sensor recebida 1037.
[00496] Com isso, o servidor 901 cria os dados tridimensionais 1134 utilizando a informação de sensor 1037 transmitida a partir do dispositivo de cliente 901. Isso possibilita a redução adicional da quantidade de dados de transmissão em comparação com quando o dispositivo de cliente 902 transmite os dados tridimensionais. Visto que não há necessidade do dispositivo de cliente 902 realizar processos tal como compressão ou codificação dos dados tridimensionais, é possível reduzir a quantidade de processamento do dispositivo de cliente 902. Desta maneira, o servidor 901 é capaz de reduzir a quantidade de dados a ser transmitida ou simplificar a estrutura do dispositivo.
[00497] O servidor 901 transmite ainda uma solicitação de transmissão da informação de sensor para o dispositivo de cliente 902.
[00498] O servidor 901 atualiza ainda o mapa tridimensional 1135 utilizando 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 a partir do dispositivo de cliente 902.
[00499] A informação de 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, informação da posição do sensor ou informação da velocidade do sensor.
[00500] A informação do sensor 1037 inclui a informação que indica um desempenho do sensor.
[00501] O servidor 901 corrige ainda os dados tridimensionais de acordo com o desempenho do sensor. Isso permite que o método de criação de dados tridimensionais melhore a qualidade dos dados tridimensionais.
[00502] No recebimento da informação de sensor, o servidor 901 recebe uma pluralidade de partes de informação de sensor 1037 recebidas a partir de uma pluralidade de dispositivos de cliente 902, e seleciona a informação de sensor 1037 a ser utilizada 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 de sensor 1037. Isso permite que o servidor 901 melhore a qualidade dos dados tridimensionais 1134.
[00503] O servidor 901 decodifica ou descomprime a informação de sensor recebida 1037 e cria os dados tridimensionais 1134 utilizando a informação de sensor 1132 que foi decodificada ou descomprimida. Isso permite que o servidor 901 reduza a quantidade de dados a ser transmitida.
[00504] Por exemplo, o servidor 901 inclui um processador e memória. O processador realiza os processos acima utilizando a memória. MODALIDADE 7
[00505] Na presente modalidade, métodos de codificação e decodificação de dados tridimensionais utilizando um processo de interpredição serão descritos.
[00506] A figura 37 é um diagrama de blocos do dispositivo de codificação de dados tridimensionais 1300 de acordo com a presente modalidade. Esse 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. Como ilustrado na figura 37, o dispositivo de codificação de dados tridimensionais 1300 inclui divisor 1301, subtrator 1302, transformador 1303, quantizador 1304, quantizador inverso 1305, transformador inverso 1306, somador 1307, memória de volume de referência 1308, intrapreditor 1309, memória de espaço de referência 1310, interpreditor 1311, controlador de predição 1312 e codificador por entropia 1313.
[00507] 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”) de “voxels” em cada volume. Observar que o divisor 1301 pode transformar os espaços em uma representação tipo “octree” com os espaços possuindo o mesmo tamanho que os volumes. O divisor 1301 também pode anexar a informação (informação de profundidade etc.) necessária para criar a representação tipo “octree” a um cabeçalho e similar de uma sequência de bits.
[00508] O subtrator 1302 calcula uma diferença entre um volume (volume-alvo de codificação) enviado pelo divisor 1301 e um volume predito gerado através de intrapredição ou interpredição, que será descrita posteriormente, e envia a diferença calculada para o transformador 1303 como um residual de predição. A figura 38 é um diagrama ilustrando um cálculo ilustrativo do residual de predição. Observar que as sequências de bits do volume-alvo de codificação e do volume predito mostradas aqui são, por exemplo, informação de posição indicando posições dos pontos tridimensionais incluídos nos volumes.
[00509] 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ó possui oito nós ou folhas, e cada folha possui informação de “voxel” (VXL). A figura 39 é um diagrama mostrando uma estrutura ilustrativa de um volume incluindo “voxels”. A figura 40 é um diagrama ilustrando um exemplo do volume, ilustrado na figura 39, tendo sido convertido na estrutura tipo “octree”. Dentre as folhas ilustradas na figura 40, as folhas 1, 2 e 3, respectivamente, representam VXL 1, VXL 2 e VXL 3 e representam VXLs incluindo um grupo de pontos (daqui em diante, VXLs ativos).
[00510] Uma “octree” é representada, por exemplo, por sequências binárias de 1s e 0s. Por exemplo, quando dando aos nós ou VXLs ativos um valor igual a 1 e ao resto um valor igual a 0, cada nó e folha recebe a sequência binária ilustrada na figura 40. Dessa 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 ilustrada por A na figura 41, é obtida. Quando da digitalização da profundidade primeiro, a sequência binária ilustrada por B na figura 41 é obtida. As sequências binarias obtidas através dessa digitalização são codificadas através de codificação por entropia, o que reduz uma quantidade de informação.
[00511] Informação de profundidade na representação tipo “octree” será descrita a seguir. Profundidade na representação tipo “octree” é utilizada a fim de controlar até que nível de detalhamento uma informação de nuvem de pontos de granularidade incluída em um volume é armazenada. Depois de configurar uma profundidade grande, é possível 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, uma vez que partes da informação de nuvem de pontos incluindo posições diferentes e cores diferentes são agora consideradas partes da informação de nuvem de pontos incluindo a mesma posição e a mesma cor.
[00512] Por exemplo, a figura 42 é um diagrama ilustrando um exemplo no qual a “octree” com uma profundidade igual a 2, ilustrada na figura 40 é representada com uma profundidade igual a 1. A “octree” ilustrada na figura 42 possui uma quantidade menor de dados do que a “octree” ilustrada na figura 40. Em outras palavras, a “octree” binarizada, ilustrada na figura 42 possui uma contagem de bits menor do que a “octree” ilustrada na figura 40. A folha 1 e a folha 2 ilustradas na figura 40 são representadas pela folha 1 ilustrada na figura 41. Em outras palavras, a informação da folha 1 e da folha 2 que está em posições diferentes é perdida.
[00513] A figura 43 é um diagrama ilustrando um volume que corresponde à “octree” ilustrada na figura 42. VXL 1 e VXL 2, ilustrados na figura 39, correspondem a VXL 12 ilustrado na figura 43. Nesse caso, o dispositivo de codificação de dados tridimensionais 1300 gera informação de cor de VXL 12, ilustrado na figura 43, utilizando a informação de cor de VXL 1 e VXL 2, ilustrados 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 similar da informação de cor de VXL 1 e VXL 2 como a informação de cor de VXL 12. Dessa forma, o dispositivo de codificação de dados tridimensionais 1300 pode controlar uma redução da quantidade de dados através da alteração da profundidade da “octree”.
[00514] 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. Nesse caso, o dispositivo de codificação de dados tridimensionais 1300 pode 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 utilizado como a informação de profundidade. Nesse 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.
[00515] Quando a informação de cor é incluída nos “voxels”, o transformador 1303 aplica transformação de frequência, por exemplo, transformação ortogonal, a um residual de predição da informação de cor dos “voxels” no volume. Por exemplo, o transformador 1303 cria um conjunto unidimensional pela digitalização do residual de prediçã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 isso, quando um valor do residual de prediçã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. Desta maneira, é possível reduzir de forma mais eficiente uma quantidade de codificação no quantizador 1304.
[00516] O transformador 1303 não precisa utilizar transformação ortogonal em uma dimensão, mas também pode utilizar a transformação ortogonal em duas ou mais dimensões. Por exemplo, o transformador 1303 mapeia o residual de predição para um conjunto bidimensional em uma ordem de digitalização determinada, e aplica transformação ortogonal bidimensional ao conjunto bidimensional obtido. O transformador 1303 pode selecionar um método de transformação ortogonal a ser utilizado a partir de uma pluralidade de métodos de transformação ortogonal. Nesse caso, o dispositivo de codificação de dados tridimensional 1300 anexa, à sequência de bits, informação que indica qual método de transformação ortogonal é utilizado. O transformador 1303 pode selecionar um método de transformação ortogonal a ser utilizado de uma pluralidade de métodos de transformação ortogonal em dimensões diferentes. Nesse 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 é utilizado.
[00517] Por exemplo, o transformador 1303 combina a ordem de digitalização do residual de predição com uma ordem de digitalização (largura primeiro, profundidade primeiro ou similar) na “octree” no volume. Isso possibilita a redução de sobrecarga, uma vez que a informação que indica a ordem de digitalização do residual de prediçã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”. Nesse 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 predição. Isso permite que o dispositivo de codificação de dados tridimensionais 1300 codifique, de forma eficiente, o residual de prediçã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 predição quando a ordem de digitalização da “octree” não é aplicada.
[00518] O transformador 1303 não apenas transforma o residual de predição da informação de 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 similares.
[00519] O transformador 1303 pode pular esses processos quando os espaços não incluem a informação de atributo, tal como a informação de 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.
[00520] O quantizador 1304 gera um coeficiente quantizado pela realização da quantização utilizando um parâmetro de controle de quantização em um componente de frequência do residual de predição gerado pelo transformador 1303. Com isso, a quantidade de informação é adicionalmente 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. Nesse 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 similar. O quantizador 1304 pode realizar o controle de quantização pela alteração de um peso por componente de frequência do residual de prediçã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. Nesse caso, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, a um cabeçalho, um parâmetro que expresse um peso de cadum componente de frequência.
[00521] O quantizador 1304 pode pular esses processos quando os espaços não incluem informação de atributo, tal como informação de 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.
[00522] O quantizador inverso 1305 gera um coeficiente quantizado inverso do residual de predição pela realização da quantização inversa no coeficiente quantizado gerado pelo quantizador 1304 utilizando o parâmetro de controle de quantização, e envia o coeficiente quantizado inverso gerado para o transformador inverso 1306.
[00523] O transformador inverso 1306 gera um residual de prediçã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 predição aplicado por transformação inversa não precisa coincidir completamente com o residual de predição enviado pelo transformador 1303, uma vez que o residual de predição aplicado por transformação inversa é um residual de predição que é gerado após a quantização.
[00524] O somador 1307 soma, para gerar um volume reconstruído, (i) o residual de predição aplicado por transformação inversa gerado pelo transformador inverso 1306 a (ii) um volume predito que é gerado através da intrapredição ou da interpredição, que será descritas posteriormente, e é utilizado para gerar um residual de prediçã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.
[00525] O intrapreditor 1309 gera um volume predito de um volume- alvo de codificação utilizando 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 de cor ou uma refletância de “voxels”. O intrapreditor 1309 gera um valor predito de informação de cor ou uma refletância do volume-alvo de codificação.
[00526] A figura 44 é um diagrama para descrever uma operação do intrapreditor 1309. Por exemplo, o intrapreditor 1309 gera o volume predito do volume-alvo de codificação (idx de volume = 3), ilustrado na figura 44, utilizando 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 é assinado 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 intrapreditor 1309 utiliza um valor médio de informação de cor de “voxels” incluído no idx de volume = 0, que é um volume vizinho, como o valor predito da informação de cor do volume-alvo de codificação ilustrado na figura 44. Nesse caso, um residual de predição é gerado pela dedução do valor predito da informação de cor a partir da informação de cor de cada “voxel” incluído no volume-alvo de codificação. Os processos a seguir são realizados pelo transformador 1303 e processadores subsequentes com relação a esse residual de predição. Nesse 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 predição. A informação do volume vizinho, no presente documento, é a informação que indica um volume vizinho utilizado na predição e indica, por exemplo, o idx de volume do volume vizinho utilizado na predição. A informação do modo de predição, no presente documento, indica um modo utilizado para gerar o volume predito. O modo é, por exemplo, um modo de valor médio no qual o valor predito é gerado utilizando um valor médio de “voxels” no volume vizinho ou um modo mediano no qual o valor predito é gerado utilizando o mediano de “voxels” no volume vizinho.
[00527] O intrapreditor 1309 pode gerar o volume predito utilizando uma pluralidade de volumes vizinhos. Por exemplo, na estrutura ilustrada na figura 44, o intrapreditor 1309 gera o volume predito 0 utilizando um volume com idx de volume = 0 e gera o volume predito 1 utilizando um volume com idx de volume = 1. O intrapreditor 1309 então gera uma média do volume predito 0 e do volume predito 1 como um volume predito final. Nesse 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 utilizados para gerar o volume predito.
[00528] A figura 45 é um diagrama que ilustra, de forma esquemática, o processo de interpredição de acordo com a presente modalidade. O interpreditor 1311 codifica (interprediz) um espaço (SPC) associado a um tempo determinado T_Cur utilizando um espaço codificado associado com tempo diferente T_LX. Nesse caso, o interpreditor 1311 realiza um processo de codificação pela aplicação de um processo de rotação e translação ao espaço codificado associado com tempo diferente T_LX.
[00529] 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 adequado ao espaço associado com 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 para um espaço associado ao tempo T_L0.
[00530] 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 com tempo T_L1.
[00531] Alternativamente, o interpreditor 1311 codifica (predição bidirecional) com referência aos espaços associados com tempo T_L0 e tempo T_L1 que diferem um do outro. Nesse 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.
[00532] Observar 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.
[00533] 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, utilizando 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 similar da sequência de bits.
[00534] 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. Nesse caso, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, à informação de cabeçalho e similar 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), utilizando 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 configura 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 configura 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.
[00535] A figura 46 é um diagrama ilustrando uma sintaxe ilustrativa a ser anexada a um cabeçalho da informação RT e indicador RT. Observe que uma contagem de bits designada para cada sintaxe pode ser decidida com base em uma faixa dessa sintaxe. Por exemplo, quando oito espaços de referência são incluídos na lista de referência L0, 3 bits podem ser assinados para MaxRefSpc_10. A contagem de bits 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 bits a ser designada é fixa, o dispositivo de codificação de dados tridimensionais 1300 pode anexar essa contagem de bits fixa a uma outra informação de cabeçalho.
[00536] MaxRefSpc_10 ilustrada 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.
[00537] 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.
[00538] 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 de 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.
[00539] R_l1[i] e T_l1[i] são informação RT de 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.
[00540] O interpreditor 1311 gera o volume predito do volume-alvo de codificação utilizando 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 predito do volume- alvo de codificação, o interpreditor 1311 calcula a informação RT em um espaço-alvo de codificação e um espaço de referência utilizando 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 intrapreditor 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 utilizando a informação RT calculada. Subsequentemente, o interpreditor 1311 gera o volume predito de volume-alvo de codificação no espaço-alvo de codificação utilizando a informação no espaço de referência B.
[00541] Dessa forma, o interpreditor 1311 pode aperfeiçoar a precisão do volume predito pela geração do volume predito utilizando 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 reduzir a quantidade de codificação uma vez que é possível limitar o residual de predição. Observar que um exemplo foi descrito no qual o ICP é realizado utilizando o espaço-alvo de codificação e o espaço de referência, mas não é necessariamente limitado a isso. Por exemplo, o interpreditor 1311 pode calcular a informação RT pela realização de ICP utilizando 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 reduzir a quantidade de processamento.
[00542] Quando o valor de erro de 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 interpreditor 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. Nesse caso, o dispositivo de codificação de dados tridimensionais 1300 pode controlar a sobrecarga não anexando a informação RT à sequência de bits.
[00543] Quando o valor de erro de ICP for maior do que um segundo limite predeterminado, o interpreditor 1311 determina que uma mudança de formato entre os espaços é grande, e a intrapredição pode ser aplicada a todos os volumes do espaço-alvo de codificação. Daqui em diante, espaços aos quais a intraprediçã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 utilizado desde que o método calcule a informação RT utilizando dois conjuntos de “voxel” e dois conjuntos de nuvens de pontos.
[00544] Quando a informação de atributo, por exemplo, informação de formato ou cor, é incluída nos dados tridimensionais, o interpreditor 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 predito 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 interpreditor 1311 gera o volume predito utilizando 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 predito. Quando da codificação do volume-alvo de codificação (idx de volume = 0), ilustrado na figura 47, utilizando a interpredição, o interpreditor 1311 busca um volume com um menor residual de prediçã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 interpreditor 1311 seleciona o volume com menor residual de predição como o volume predito. Os residuais de predição do volume-alvo de codificação e do volume predito são codificados através de processos realizados pelo transformador 1303 e processadores subsequentes. O residual de prediçã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 predito. O dispositivo de codificação de dados tridimensional 1300 anexa, ao cabeçalho e similar da sequência de bits, o idx de volume do volume de referência no espaço de referência, como o volume predito.
[00545] No exemplo ilustrado na figura 47, o volume de referência com idx de volume = 4 do espaço de referência L0R0 é selecionado como o volume predito do volume-alvo de codificação. Os residuais de prediçã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.
[00546] Observar que um exemplo foi descrito no qual o volume predito da informação de atributo é gerado, mas o mesmo processo pode ser aplicado ao volume predito da informação de posição.
[00547] O controlador de predição 1312 controla se codifica o volume-alvo de codificação utilizando a intrapredição ou a interpredição. Um modo que inclui a intrapredição e a interpredição é referido, no presente documento, como um modo de predição. Por exemplo, o controlador de predição 1312 calcula o residual de predição quando o volume-alvo de codificação é predito utilizando a intrapredição e o residual de predição quando o volume-alvo de codificação é predito utilizando a interpredição como valores de avaliação, e seleciona o modo de predição cujo valor de avaliação é menor. Observar que o controlador de prediçã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 predição da intrapredição e o residual de predição da interpredição, e selecionar um modo de predição utilizando a quantidade de codificação calculada como o valor de avaliação. A informação de sobrecarga (informação de idx de volume de referência etc.), além do residual de predição, pode ser adicionada ao valor de avaliação. O controlador de predição 1312 pode selecionar continuamente a intrapredição quando ficar decidido, antecipadamente, a codificação do espaço-alvo de codificação utilizando o intraespaço.
[00548] 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.
[00549] 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 a seguir. A figura 48 é um diagrama de blocos do dispositivo de decodificação de dados tridimensionais 1400 de acordo com a presente modalidade. Esse dispositivo de decodificação de dados tridimensionais 1400 inclui o decodificador por entropia 1401, quantizador inverso 1402, transformador inverso 1403, somador 1404, memória de volume de referência 1405, intrapreditor 1406, memória de espaço de referência 1407, interpreditor 1408 e controlador de predição 1409.
[00550] 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 utilizando o sinal binário gerado.
[00551] O quantizador inverso 1402 gera um coeficiente quantizado inverso pela quantização inversa do coeficiente quantizado inserido a partir do decodificador por entropia 1401, utilizando um parâmetro de quantização anexado à sequência de bits e similares.
[00552] O transformador inverso 1403 gera um residual de predição pela transformação inversa do coeficiente quantizado inverso inserido a partir do quantizador inverso 1402. Por exemplo, o transformador inverso 1403 gera o residual de predição pela transformação ortogonalmente inversa do coeficiente quantizado inverso, com base na informação anexada à sequência de bits.
[00553] O somador 1404 soma, para gerar um volume reconstruído, (i) o residual de predição gerado pelo transformador inverso 1403 a (ii) um volume predito gerado através da intrapredição ou interprediçã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.
[00554] O intrapreditor 1406 gera um volume predito através da intrapredição utilizando 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 intrapreditor 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 predição, e gera o volume predito através de um modo indicado pela informação de modo de predição, utilizando um volume vizinho indicado na informação de volume vizinho. Observar que as especificidades desses processos são iguais às dos processos mencionados acima realizados pelo intrapreditor 1309, exceto por qual informação é anexada à sequência de bits.
[00555] O interpreditor 1408 gera um volume predito através da interpredição utilizando 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 interpreditor 1408 aplica um processo de rotação e translação ao espaço de referência utilizando a informação RT por espaço de referência anexada à sequência de bits, e gera o volume predito utilizando 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 interpreditor 1408 aplica um processo de rotação e translação ao espaço de referência de acordo com o indicador RT. Observar que as especificidades desses processos são iguais às dos processos mencionados acima realizados pelo interpreditor 1311, exceto que informação anexada à sequência de bits é usada.
[00556] O controlador de predição 1409 controla se decodifica um volume-alvo de decodificação utilizando intrapredição ou interpredição. Por exemplo, o controlador de predição 1409 seleciona a intrapredição ou interpredição de acordo com a informação que é anexada à sequência de bits e indica o modo de predição a ser utilizado. Observe que o controlador de predição 1409 pode selecionar continuamente intrapredição quando ficar decidido antecipadamente decodificar o espaço-alvo de decodificação utilizando intraespaço.
[00557] 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. Nesse 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 pode aplicar a rotação e translação a unidades de volumes, que é uma unidade de codificação. Nesse 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 similar 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 rotação e translação em unidades grandes e, subsequentemente, aplicar 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.
[00558] 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 mudar 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, como mencionado acima, um tipo de processo aplicado a cada unidade pode diferir. Por exemplo, rotação e translação podem ser aplicadas a unidades de espaços, e a translação pode ser aplicada a unidades de volumes.
[00559] Observar que essas variações também são aplicáveis ao dispositivo de decodificação de dados tridimensionais 1400.
[00560] Como mencionado acima, o dispositivo de codificação de dados tridimensionais 1300, de acordo com a presente modalidade, realiza os processos a seguir. A figura 48 é um fluxograma do processo de interpredição realizado pelo dispositivo de codificação de dados tridimensionais 1300.
[00561] O dispositivo de codificação de dados tridimensionais 1300 gera informação de posição predita (por exemplo, volume predito) utilizando a informação de 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 de posição predita pela aplicação de um processo de rotação e translação à informação de posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais.
[00562] Observar que o dispositivo de codificação de dados tridimensionais 1300 pode realizar um processo de rotação e translação utilizando uma primeira unidade (por exemplo, espaços), e pode realizar a geração da informação de posição predita utilizando 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 de posição difere menos da informação de posição do volume-alvo de codificação incluído no espaço-alvo de codificação. Observar 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 de posição predita na mesma unidade.
[00563] O dispositivo de codificação de dados tridimensionais 1300 pode gerar a informação de posição predita pela aplicação (i) de um primeiro processo de rotação e translação para a informação de 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 de 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 utilizando uma primeira unidade (por exemplo, espaços) e o segundo processo de rotação e translação utilizando uma segunda unidade (por exemplo, volumes), que é menor do que a primeira unidade.
[00564] Por exemplo, como ilustrado na figura 41, a informação de posição dos pontos tridimensionais e a informação de posição predita são representadas utilizando uma estrutura tipo “octree”. Por exemplo, a informação de posição dos pontos tridimensionais e a informação de posição predita 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 de posição dos pontos tridimensionais e a informação de posição predita são expressas em uma ordem de digitalização que prioriza uma profundidade sobre uma largura na estrutura tipo “octree”.
[00565] Como ilustrado 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 de 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) incluindo o indicador de RT. O dispositivo de codificação de dados tridimensionais 1300 codifica a informação de 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) incluindo a informação de RT. Observar que o dispositivo de codificação de dados tridimensionais 1300 pode codificar a informação de RT quando o indicador de RT indicar a aplicação do processo de rotação e translação, e não precisa codificar a informação de RT quando o indicador de RT indicar a não aplicação do processo de rotação e translação.
[00566] Os dados tridimensionais incluem, por exemplo, a informação de posição dos pontos tridimensionais e a informação de atributo (informação de cor, etc.) de cada ponto tridimensional. O dispositivo de codificação de dados tridimensionais 1300 gera a informação de atributo predito utilizando a informação de atributo dos pontos tridimensionais incluídos nos dados de referência tridimensional (S1302).
[00567] O dispositivo de codificação de dados tridimensionais 1300 em seguida codifica a informação de posição dos pontos tridimensionais incluídos nos dados tridimensionais atuais, utilizando a informação da posição predita. Por exemplo, como ilustrado na figura 38, o dispositivo de codificação de dados tridimensionais 1300 calcula a informação de posição diferencial, a informação de posição diferencial sendo uma diferença entre a informação de posição predita e a informação de posição dos pontos tridimensionais incluídos nos dados tridimensionais atuais (S1303).
[00568] O dispositivo de codificação de dados tridimensionais 1300 codifica a informação de atributo dos pontos tridimensionais incluídos nos dados tridimensionais atuais utilizando a informação de atributo predita. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 calcula a informação de atributo diferencial, a informação de atributo diferencial sendo uma diferença entre a informação de atributo predito 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).
[00569] Por fim, o dispositivo de codificação de dados tridimensionais
1300 codifica (por exemplo, codifica por entropia) a informação de posição diferencial e a informação de atributo diferencial quantizada (S1036). Em outras palavras, o dispositivo de codificação de dados tridimensionais 1300 gera o sinal codificado (sequência de bits codificados) incluindo a informação de posição diferencial e a informação de atributo diferencial.
[00570] Observar 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 de posição dos pontos tridimensionais e a codificação da informação de atributo dos pontos tridimensionais.
[00571] Uma ordem dos processos ilustrada na figura 49 é meramente um exemplo e não está limitada a isso. Por exemplo, uma vez que os processos com relação à informação de 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.
[00572] Com o acima, o dispositivo de codificação de dados tridimensionais 1300, de acordo com a presente modalidade, gera a informação de posição predita utilizando a informação de 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 de posição diferencial, que é uma diferença entre a informação de posição predita e a informação de posição dos pontos tridimensionais incluídos nos dados tridimensionais atuais. Isso possibilita o aperfeiçoamento da eficiência de codificação, uma vez que é possível reduzir a quantidade de dados do sinal codificado.
[00573] O dispositivo de codificação de dados tridimensionais 1300, de acordo com a presente modalidade, gera a informação de atributo predita utilizando 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 predita e a informação de atributo dos pontos tridimensionais incluídos nos dados tridimensionais atuais. Isso possibilita o aperfeiçoamento da eficiência de codificação, uma vez que é possível reduzir a quantidade de dados do sinal codificado.
[00574] Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 inclui um processador e uma memória. O processador utiliza a memória para realizar os processos acima.
[00575] A figura 48 é um fluxograma do processo de interpredição realizado pelo dispositivo de decodificação de dados tridimensionais
1400.
[00576] O dispositivo de decodificação de dados tridimensionais 1400 decodifica (por exemplo, decodifica por entropia) a informação de posição diferencial e a informação de atributo diferencial a partir do sinal codificado (sequência de bits codificados) (S1401).
[00577] O dispositivo de decodificação de dados tridimensionais 1400 decodifica, a partir do sinal codificado, um indicador de RT que indica se aplica o processo de rotação e translação à informação de 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 de RT que indica o conteúdo do processo de rotação e translação. Observar que o dispositivo de decodificação de dados tridimensionais 1400 pode decodificar a informação de RT quando o indicador de RT indicar a aplicação do processo de rotação e translação, e não precisa decodificar a informação de RT quando o indicador de RT indicar a não aplicação do processo de rotação e translação.
[00578] 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 decodificada (S1402).
[00579] O dispositivo de decodificação de dados tridimensionais 1400 em seguida gera a informação de posição predita (por exemplo, volume predito) utilizando a informação de 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 de posição predita pela aplicação de um processo de rotação e translação à informação de posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais.
[00580] 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 de posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais indicados na informação de RT. Em contraste, quando o indicador de 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 de posição nos pontos tridimensionais incluídos nos dados de referência tridimensionais.
[00581] Observar que o dispositivo de decodificação de dados tridimensionais 1400 pode realizar o processo de rotação e translação utilizando uma primeira unidade (por exemplo, espaços), e pode realizar a geração da informação de posição predita utilizando uma segunda unidade (por exemplo, volumes), que é menor do que a primeira unidade. Observar 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 de posição predita na mesma unidade.
[00582] O dispositivo de decodificação de dados tridimensionais 1400 pode gerar a informação de posição predita pela aplicação (i) de um primeiro processo de rotação e translação à informação de 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 de 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 utilizando uma primeira unidade (por exemplo, espaços) e o segundo processo de rotação e translação utilizando uma segunda unidade (por exemplo, volumes) que é menor do que a primeira unidade.
[00583] Por exemplo, como ilustrado na figura 41, a informação de posição sobre os pontos tridimensionais e a informação de posição predita são representadas utilizando uma estrutura tipo “octree”. Por exemplo, a informação de posição sobre os pontos tridimensionais e a informação de posição predita 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 de posição sobre os pontos tridimensionais e a informação de posição predita são expressas em uma ordem de digitalização que prioriza uma profundidade sobre uma largura na estrutura tipo “octree”.
[00584] O dispositivo de decodificação de dados tridimensionais 1400 gera a informação de atributo predita utilizando a informação de atributo dos pontos tridimensionais incluídos nos dados de referência tridimensionais (S1404).
[00585] O dispositivo de decodificação de dados tridimensionais
1400 em seguida restaura a informação de posição sobre os pontos tridimensionais incluídos nos dados tridimensionais atuais, pela decodificação da informação de posição codificada incluída em um sinal codificado utilizando a informação de posição predita. A informação de posição codificada, no presente documento, é a informação de posição diferencial. O dispositivo de decodificação de dados tridimensionais 1400 restaura a informação de posição sobre os pontos tridimensionais incluídos nos dados tridimensionais atuais, pela adição da informação de posição diferencial à informação de posição predita (S1405).
[00586] 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, utilizando a informação de atributo predita. A informação de atributo codificada, no presente documento, é a informação de 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 predita (S1406).
[00587] Observar 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 de posição nos pontos tridimensionais e a decodificação da informação de atributo dos pontos tridimensionais.
[00588] Uma ordem dos processos ilustrados na figura 50 é meramente um exemplo e não está limitada a isso. Por exemplo, uma vez que os processos com relação à informação de 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
[00589] 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 embora o que segue descreva principalmente uma operação de um dispositivo de codificação de dados tridimensionais, um dispositivo de decodificação de dados tridimensionais pode realizar o mesmo processo.
[00590] A figura 51 e a figura 52 são, cada uma, um diagrama ilustrando uma relação de referência, de acordo com a presente modalidade. Especificamente, a figura 51 é um diagrama ilustrando uma relação de referência em uma estrutura de “octree” e a figura 52 é um diagrama ilustrando uma relação de referência em uma região espacial.
[00591] 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ó parental 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ó parental) que está na mesma camada que o nó parental. Em outras palavras, o dispositivo de codificação de dados tridimensionais desativa ou proíbe a referência a um nó vizinho ao nó parental.
[00592] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode permitir referência à informação de codificação de um nó parental (daqui em diante também referido como um nó avô) do nó parental. Em outras palavras, o dispositivo de codificação de dados tridimensionais pode codificar a informação de codificação do nó atual por referência à informação de codificação de cada um dentre o nó avô e o nó parental ao qual o nó atual pertence.
[00593] Na presente invenção, 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ó parental 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ó parental. 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ó parental. 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ó parental. 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ó parental e do nó vizinho ao nó parental.
[00594] 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 utilizada para a codificação por entropia do código de ocupação do nó atual, utilizando o código de ocupação do nó avô ou do nó parental ao qual o nó atual pertence. Deve ser observado que os detalhes serão descritos a seguir. Nesse momento, o dispositivo de codificação de dados tridimensionais não precisa se referir ao código de ocupação do nó vizinho ao nó parental. Visto que isso 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ó parental 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 parental, o dispositivo de codificação de dados tridimensionais pode suprimir um processo de verificação da informação do nó vizinho ao nó parental e reduzir uma capacidade de memória para armazenar a informação. Adicionalmente, 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.
[00595] A seguir é descrito um exemplo de seleção de uma tabela de codificação utilizando um código de ocupação de um nó parental. A figura 53 é um diagrama ilustrando um exemplo de um nó atual e nós de referência vizinhos. A figura 54 é um diagrama ilustrando uma relação entre um nó parental e nós. A figura 55 é um diagrama ilustrando um exemplo de um código de ocupação do nó parental. Na presente invenção, 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 ilustrado na figura 53, 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 utilizados 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.
[00596] Deve ser observado que os números de nós ilustrados na figura 54 são um exemplo, e uma relação entre os números e nós e as posições de nó não está limitada à relação ilustrada na figura 54. Apesar do nó 0 ser assinado para o bit de ordem mais baixa e o nó 7 ser assinado para o bit de ordem mais alta na figura 55, as designações podem ser feitas em ordem reversa. Adicionalmente, cada nó pode ser assinado para qualquer bit.
[00597] O dispositivo de codificação de dados tridimensionais determina uma tabela de codificação a ser utilizada quando o dispositivo de codificação de dados tridimensionais codifica por entropia um código de ocupação de um nó atual, utilizando a equação que segue, por exemplo.
CodingTable = (FlagX << 2) + (FlagY << 1) + (FlagZ)
[00598] Na presente invenção, 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.
[00599] Deve ser observado que uma vez que a informação que indica se um nó vizinho está ocupado é incluída em um código de ocupação de um nó parental, o dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação utilizando um valor indicado pelo código de ocupação do nó parental.
[00600] 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 utilizando a informação que indica se o nó vizinho do nó atual inclui uma nuvem de pontos.
[00601] Além disso, como ilustrado na figura 53, 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ó parental. 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ó parental.
[00602] 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 56 é 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 ilustrado na figura 56 inclui gerador de “octree” 2101, calculadora de informação de geometria 2102, seletor de tabela de codificação 2103 e codificador por entropia 2104.
[00603] O gerador de “octree” 2101 gera, por exemplo, uma “octree” a partir dos pontos tridimensionais inseridos (uma nuvem de pontos) e gera um código de ocupação para cada nó incluído na “octree”. A calculadora de informação de 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 de 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ó parental ao qual o nó atual pertence. Deve ser observado que, como ilustrado na figura 138, a calculadora de informação de geometria 2102 pode selecionar um nó de referência vizinho de acordo com uma posição do nó atual no nó parental. Ainda, a calculadora de informação de geometria 2102 não se refere à informação de ocupação de cada nó em um nó vizinho ao nó parental.
[00604] O seletor de tabela de codificação 2103 seleciona uma tabela de codificação a ser utilizada para a codificação por entropia de um código de ocupação do nó atual, utilizando a informação de ocupação do nó de referência vizinho calculado pela calculadora de informação de geometria 2102. O codificador por entropia 2104 gera uma sequência de bits pela codificação por entropia do código de ocupação utilizando 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.
[00605] A figura 57 é 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 ilustrado na figura 142 inclui gerador de “octree” 2111, calculadora de informação de geometria 2112, seletor de tabela de codificação 2113 e decodificador por entropia 2114.
[00606] O gerador de “octree” 2111 gera uma “octree” de um espaço (nós) utilizando 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) utilizando 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.
[00607] A calculadora de informação de 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 de 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ó parental ao qual o nó atual pertence. Deve ser observado que, como ilustrado na figura 138, a calculadora de informação de geometria 2112 pode selecionar um nó de referência vizinho de acordo com uma posição do nó atual no nó parental. Adicionalmente, a calculadora de informação de geometria 2112 não se refere à informação de ocupação de cada nó em um nó vizinho ao nó parental.
[00608] O seletor de tabela de codificação 2113 seleciona uma tabela de codificação (uma tabela de decodificação) a ser utilizada para a decodificação por entropia do código de ocupação do nó atual, utilizando a informação de ocupação do nó de referência vizinho calculado pela calculadora de informação de geometria 2112. O decodificador por entropia 2114 gera os pontos tridimensionais pela decodificação por entropia do código de ocupação utilizando 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 utilizar uma tabela de codificação indicada pela informação obtida.
[00609] 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. Adicionalmente, 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. Dessa 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.
[00610] A seguir 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 143 é 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) incluindo parte ou toda uma nuvem de pontos tridimensional registrada (S2101). A seguir, 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).
[00611] 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ó parental do nó atual (S2104). A seguir, o dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser utilizada 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 utilizando a tabela de codificação selecionada (S2106).
[00612] 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.
[00613] A figura 59 é 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, utilizando informação de cabeçalho de uma sequência de bits (S2111). A seguir, 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ó parental do nó atual (S2113).
[00614] Depois disso, o dispositivo de decodificação de dados tridimensionais seleciona uma tabela de codificação a ser utilizada para a decodificação por entropia, com base na informação de ocupação do nó de referência vizinho (S2114). A seguir, o dispositivo de decodificação de dados tridimensionais decodifica por entropia o código de ocupação do nó atual utilizando a tabela de codificação selecionada (S2115).
[00615] 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.
[00616] Em seguida, é descrito um exemplo de seleção de uma tabela de codificação. A figura 145 é um diagrama ilustrando um exemplo de seleção de uma tabela de codificação. Por exemplo, como na tabela de codificação 0 ilustrada na figura 145, o mesmo modo de contexto pode ser aplicado aos códigos de ocupação. Além disso, um modelo de contexto diferente pode ser assinado 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 aperfeiçoar a eficiência de codificação. Adicionalmente, 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 utilizado. Alternativamente, um modelo de contexto possuindo uma tabela de probabilidade fixa pode ser utilizado.
[00617] Daqui em diante, a Variação 1 da presente modalidade será descrita. A figura 61 é um diagrama ilustrando uma relação de referência na presente variação. Apesar do dispositivo de codificação de dados tridimensionais não se referir ao código de ocupação do nó vizinho ao parental na modalidade descrita acima, o dispositivo de codificação de dados tridimensionais pode mudar para se referir a um código de ocupação de um nó vizinho ao nó parental, de acordo com uma condição específica.
[00618] Por exemplo, quando o dispositivo de codificação de dados tridimensionais codifica uma “octree” enquanto digitaliza a “octree” com largura primeiro, o dispositivo de codificação de dados tridimensionais codifica um código de ocupação de um nó atual por referência à informação de ocupação de um nó em um nó vizinho ao parental. Em contraste, quando o dispositivo de codificação de dados tridimensionais codifica a “octree” enquanto digitaliza a “octree” com 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ó parental. 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.
[00619] 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 com largura primeiro ou profundidade primeiro. A figura 147 é um diagrama ilustrando um exemplo de uma sintaxe da informação de cabeçalho nesse caso. “octree”_scan_order é igual a 0, largura primeiro é indicada, e quando “octree”_scan_order é igual a 1, profundidade primeiro é indicada. Visto que isso 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 referência a “octree”_scan_order, o dispositivo de decodificação de dados tridimensionais pode decodificar de forma adequada a sequência de bits.
[00620] 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 parental. A figura 148 é um diagrama ilustrando um exemplo de uma sintaxe da informação de cabeçalho nesse caso. limit_refer_flag é a informação de mudança de proibição (um indicador de mudança de proibição) indicando se proíbe a referência a um nó vizinho ao nó parental. A figura 148 é um diagrama ilustrando um exemplo de uma sintaxe da informação de cabeçalho nesse caso. limit_refer_flag é a informação de mudança de proibição (um indicador de mudança de proibição) indicando se proíbe a referência a um nó vizinho parental. Por exemplo, quando limit_refer_flag é igual a 1, a proibição da referência ao nó vizinho do nó parental é 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ó parental) é indicada.
[00621] Em outras palavras, o dispositivo de codificação de dados tridimensionais determina se proíbe a referência ao nó vizinho parental e seleciona se proíbe ou permite a referência ao nó vizinho do nó parental, com base em um resultado da determinação acima. Adicionalmente, o dispositivo de codificação de dados tridimensionais gera uma sequência de bits incluindo a informação de troca de proibição que indica o resultado da determinação e indica se proíbe a referência ao nó vizinho do nó parental.
[00622] O dispositivo de decodificação de dados tridimensionais obtém, a partir de uma sequência de bits, a informação de mudança de proibição para proibir a referência a um nó vizinho do nó parental, e seleciona se proíbe ou permite a referência ao nó vizinho do nó parental, com base na informação de mudança de proibição.
[00623] Isso permite que o dispositivo de codificação de dados tridimensionais controle a referência ao nó vizinho do nó parental e gere a sequência de bits. Isso 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ó parental.
[00624] Apesar do 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ó parental é proibida na presente modalidade, a presente descriçã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 norma, ou um grau de reflexo, adicionada a um nó é codificada. Adicionalmente, o mesmo método pode ser aplicado quando uma tabela de codificação ou um valor predito é codificado.
[00625] Daqui em diante, a Variação 2 da presente modalidade será descrita. Na descrição acima, como ilustrado na figura 53, o exemplo no qual os três nós vizinhos de referência são utilizados é provido, mas quatro ou mais nós vizinhos de referência podem ser utilizados. A figura 64 é um diagrama ilustrando um exemplo de um nó atual e nós de referência vizinhos.
[00626] Por exemplo, o dispositivo de codificação de dados tridimensionais calcula uma tabela de codificação a ser utilizada quando o dispositivo de codificação de dados tridimensionais codifica por entropia um código de ocupação do nó atual ilustrado na figura 149, utilizando a equação que segue.
CodingTable= (FlagX0 << 3) + (FlagX1 << 2) + (FlagY << 1) + (FlagZ)
[00627] Na presente invenção, 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.
[00628] Nesse momento, quando um nó vizinho, por exemplo, o nó vizinho X0 na figura 64, não é referível (proibido de ser referido), o dispositivo de codificação de dados tridimensionais pode utilizar, como um valor substituto, um valor fixo tal como 1 (ocupado) ou 0 (não ocupado).
[00629] A figura 65 é um diagrama ilustrando um exemplo de um nó atual e nós de referência vizinhos. Como ilustrado na figura 65, 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 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 utilizando a informação de ocupação do nó vizinho G0 em vez do nó vizinho X0 ilustrado na figura 65, e pode determinar um valor de uma tabela de codificação utilizando FlagX0 calculado. Deve ser observado que o nó vizinho G0 ilustrado na figura 65 é uma ocupação ou não ocupação do nó vizinho que pode ser determinada utilizando 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 utilizando um código de ocupação de um nó parental.
[00630] Daqui em diante, a Variação 3 da presente modalidade será descrita. As figuras 66 e 67 são, cada uma, um diagrama ilustrando uma relação de referência de acordo com a presente variação. Especificamente, a figura 151 é um diagrama ilustrando uma relação de referência em uma estrutura de “octree” e a figura 67 é um diagrama ilustrando uma relação de referência em uma região espacial.
[00631] 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ó parental 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 possuem o mesmo nó parental 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 ilustrado na figura 66, o dispositivo de codificação de dados tridimensionais se refere a um código de ocupação de um nó no nó parental ao qual o nó atual 2 pertence, por exemplo, o nó atual ilustrado na figura 66. Como ilustrado na figura 67, o código de ocupação do nó atual, ilustrado na figura 66 indica, por exemplo, se cada nó no nó atual vizinho ao nó atual 2 está ocupado. Portanto, uma vez 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.
[00632] O dispositivo de codificação de dados tridimensionais pode calcular uma tabela de codificação a ser utilizada quando o dispositivo de codificação de dados tridimensionais codificar por entropia o código de ocupação do nó atual 2, utilizando a equação que segue, por exemplo.
CodingTable = (FlagX1 << 5) + (FlagX2 << 4) + (FlagX3 << 3) + (FlagX4 << 2) + (FlagY << 1) + (FlagZ)
[00633] Na presente invenção, 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.
[00634] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode modificar 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ó parental.
[00635] Quando referência a um nó vizinho do nó parental 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ó parental. Por exemplo, quando a referência ao nó vizinho do nó parental não é proibida, referência à informação (por exemplo,
informação de ocupação) de um nó criança de um terceiro nó que possui um nó parental diferente do de um nó atual. No exemplo ilustrado na figura 65, 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 referência a um código de ocupação do nó vizinho X0 possuindo um nó parental diferente do nó parental do nó atual. O dispositivo de codificação de dados tridimensionais seleciona uma tabela de codificação a ser utilizada 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.
[00636] Como 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. Como ilustrado na figura 51 e na figura 52, 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ó possuindo um mesmo nó parental que o nó atual, o segundo nó possuindo um nó parental diferente do nó parental 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ó parental e proíbe referência à informação (por exemplo, um código de ocupação) de outro nó (um nó vizinho do nó parental) na mesma camada que o nó parental.
[00637] Com isso, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação por referência à informação do primeiro nó incluída nos nós vizinhos,
espacialmente vizinhos do nó atual, o primeiro nó possuindo o mesmo nó parental que o nó atual. Além disso, o dispositivo de codificação de dados tridimensionais pode reduzir uma quantidade de processamento não fazendo referência à informação do segundo nó incluído nos nós vizinhos, o segundo nó possuindo um nó parental diferente do nó parental do nó atual. Dessa 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.
[00638] 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 incluindo a informação de mudança de proibição (por exemplo, limit_refer_flag ilustrada na figura 148) que indica o resultado da determinação e indica se proíbe a referência à informação do segundo nó.
[00639] Com isso, 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 utilizando a informação de mudança de proibição.
[00640] 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ó.
[00641] 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 utilizando a tabela de codificação selecionada.
[00642] Por exemplo, como ilustrado na figura 66 e na figura 67, 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.
[00643] Com isso, uma vez 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.
[00644] Por exemplo, como ilustrado na figura 53, 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ó parental.
[00645] Com isso, 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ó parental.
[00646] Por exemplo, o dispositivo de codificação de dados tridimensionais inclui um processador e uma memória, e o processador realiza o processo acima utilizando a memória.
[00647] 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. Como ilustrado na figura 51 e na figura 52, 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ó possuindo um mesmo nó parental que o nó atual, o segundo nó possuindo um nó parental diferente do nó parental 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ó parental e proíbe a referência à informação (por exemplo, um código de ocupação) de um outro nó (um nó vizinho ao nó parental) na mesma camada que o nó parental.
[00648] Com isso, o dispositivo de decodificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação através de referência à informação do primeiro nó incluído nos nós vizinhos espacialmente vizinhos do nó atual, o primeiro nó possuindo o mesmo nó parental que o nó atual. Além disso, o dispositivo de decodificação de dados tridimensionais pode reduzir uma quantidade de processamento não fazendo referência à informação do segundo nó incluído nos nós vizinhos, o segundo nó possuindo um nó parental diferente do nó parental 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.
[00649] Por exemplo, o dispositivo de decodificação de dados tridimensionais obtém ainda, a partir de uma sequência de bits, a informação de mudança de proibição (por exemplo, limit_refer_flag ilustrada na figura 63), 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 de mudança de proibição.
[00650] Com isso, o dispositivo de decodificação de dados tridimensionais pode realizar adequadamente um processo de decodificação utilizando a informação de mudança de proibição.
[00651] 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ó.
[00652] 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 utilizando a tabela decodificação selecionada.
[00653] Por exemplo, como ilustrado na figura 66 e na figura 67, 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.
[00654] Com isso, uma vez 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.
[00655] Por exemplo, como ilustrado na figura 53, 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ó parental.
[00656] Com isso, 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ó parental.
[00657] Por exemplo, o dispositivo de decodificação de dados tridimensionais inclui um processador e uma memória, e o processador realiza o processo acima utilizando a memória. MODALIDADE 9
[00658] Informação de uma nuvem de pontos tridimensionais inclui informação de geometria (geometria) e informação de atributo (atributo). Informação de geometria inclui coordenadas (coordenada x, coordenada y, coordenada z) com relação a um certo ponto. Quando informação de geometria é codificada, um método de representação da posição de cada um dos três pontos tridimensionais em representação de “octree” e codificação da informação de “octree” para reduzir uma quantidade de códigos é usado ao invés de codificar diretamente as coordenadas do ponto tridimensional.
[00659] Por outro lado, informação de atributo inclui informação indicando, por exemplo, informação de cor (RGB, YUV, etc.) de cada ponto tridimensional, uma refletância e um vetor normal. Por exemplo, um dispositivo de codificação de dados tridimensionais é capaz de codificar informação de atributo usando um método de codificação diferente de um método usado para codificar informação de geometria.
[00660] Na presente modalidade, um método de codificação de informação de atributo é explicado. Deve ser observado que, na presente modalidade, o método é explicado com base em um caso de exemplo usando valores inteiros como valores de informação de atributo. Por exemplo, quando cadum componente de cor de RGB ou YUV é de uma precisão de 8 bits, o componente de cor é um valor inteiro em uma faixa de 0 a 255. Quando um valor de refletância é de precisão de 10 bits, o valor de refletância é um inteiro em uma faixa de a partir de 0 a 1023. Deve ser observado que, quando a precisão de bits de informação de atributo é uma precisão decimal, o dispositivo de codificação de dados tridimensionais pode multiplicar o valor em um valor de escala para arredondá-lo para um valor inteiro de modo que o valor da informação de atributo se torna um valor inteiro. Deve ser observado que o dispositivo de codificação de dados tridimensionais pode adicionar o valor de escala a, por exemplo, um cabeçalho de uma sequência de bits.
[00661] Como um método de codificação de informação de atributo de um ponto tridimensional, é concebível calcular um valor predito da informação de atributo do ponto tridimensional e codificar uma diferença (residual de predição) entre o valor original da informação de atributo e o valor predito. Por exemplo, quando o valor de informação de atributo no ponto tridimensional p é Ap e um valor predito é Pp, o dispositivo de codificação de dados tridimensionais codifica valor diferencial absoluto Deffp = |Ap - Pp|. Nesse caso, quando valor predito altamente preciso Pp pode ser gerado, valor diferencial absoluto Diffp é pequeno. Portanto, por exemplo, é possível reduzir a quantidade de códigos através de codificação por entropia de valor diferencial absoluto Diffp usando uma tabela de codificação que reduz uma contagem de bit de ocorrência mais quando valor diferencial absoluto Deffp é menor.
[00662] Como um método de geração de um valor de predição de informação de atributo, é concebível usar informação de atributo de um ponto tridimensional de referência que é um outro ponto tridimensional que é vizinho de um ponto tridimensional atual a ser codificado. Aqui, um ponto tridimensional de referência é um ponto tridimensional em uma faixa de uma distância predeterminada do ponto tridimensional atual. Por exemplo, quando há ponto tridimensional atual p = (x1, y1, z1) e ponto tridimensional q = (x2, y2, z2), o dispositivo de codificação de dados tridimensionais calcula a distância Euclidiana d (p, q) entre ponto tridimensional p e ponto tridimensional q representados pela (Equação A1).
[Mat. 1] (Equação A1)
[00663] O dispositivo de codificação de dados tridimensionais determina que a posição do ponto tridimensional q seja mais próximo da posição de ponto tridimensional p atual quando a distância Euclidiana d (p, q) é menor do que valor limiar predeterminado (THd), e determina uso do valor da informação de atributo de ponto tridimensional q para gerar um valor predito da informação de atributo de ponto p tridimensional atual. Deve ser observado que o método de cálculo da distância pode ser um outro método, e uma distância Mahalanobis ou similar pode ser usada. Ainda, o dispositivo de codificação de dados tridimensionais pode determinar não usar, em processamento de predição, qualquer ponto tridimensional fora da faixa predeterminada de distância do ponto tridimensional atual. Por exemplo, quando ponto tridimensional r está presente, e distância d (p, r) entre ponto tridimensional atual p e ponto tridimensional r é maior do que ou igual ao valor limiar THd, o dispositivo de codificação de dados tridimensionais pode determinar não usar ponto tridimensional r para predição. Deve ser observado que o dispositivo de codificação de dados tridimensionais pode adicionar a informação indicando valor limiar THd a, por exemplo, um cabeçalho de uma sequência de bits.
[00664] A figura 68 é um diagrama ilustrando um exemplo de pontos tridimensionais. Nesse exemplo, a distância d (p, q) entre o ponto p tridimensional atual e o ponto q tridimensional é menor do que o valor limiar THd. Portanto, o dispositivo de codificação de dados tridimensionais determina que o ponto q tridimensional seja um ponto tridimensional de referência de ponto tridimensional p atual, e determina usar o valor de informação de atributo Aq de ponto tridimensional q para gerar valor predito Pp de informação de atributo Ap de ponto tridimensional p atual.
[00665] Em contraste, a distância d (p, r) entre o ponto tridimensional atual p e ponto tridimensional r é maior do que ou igual ao valor limiar THd. Portanto, o dispositivo de codificação de dados tridimensionais determina que o ponto tridimensional r não é nenhum ponto tridimensional de referência de ponto tridimensional p atual, e determina não usar o valor de informação de atributo Ar de ponto tridimensional r para gerar valor predito Pp de informação de atributo Ap de ponto tridimensional p atual.
[00666] Ainda, quando codificando a informação de atributo do ponto tridimensional atual usando um valor predito, o dispositivo de codificação de dados tridimensionais usa um ponto tridimensional cuja informação de atributo já foi codificada e decodificada como um ponto tridimensional de referência. Da mesma maneira, quando decodificando a informação de atributo de um ponto tridimensional atual a ser decodificado, o dispositivo de decodificação de dados tridimensionais usa um ponto tridimensional cuja informação de atributo já foi decodificada como um ponto tridimensional de referência. Dessa maneira, é possível gerar o mesmo valor predito no momento de codificação e decodificação. Portanto, uma sequência de bits do ponto tridimensional gerado pela codificação pode ser decodificada corretamente no lado de decodificação.
[00667] Ainda, quando codificando informação de atributo de cada um dos pontos tridimensionais, é concebível classificar o ponto tridimensional em uma de uma pluralidade de camadas usando informação de geometria do ponto tridimensional e então codificar a informação de atributo. Aqui, cada uma das camadas classificadas é referida como um Nível de Detalhes (LoD). Um método de geração de LoDs é explicado com referência à figura 69.
[00668] Primeiro, o dispositivo de codificação de dados tridimensionais seleciona o ponto inicial a0 e designa ponto inicial a0 a LoD0. Em seguida, o dispositivo de codificação de dados tridimensionais extrai o ponto a1 distante do ponto a0 mais do que o valor limiar Thres_LoD[0] de LoD0 e designa o ponto a1 a LoD0. Em seguida, o dispositivo de codificação de dados tridimensionais extrai o ponto a2 distante do ponto a1 mais do que o valor limiar Thres_LoD[0] de LoD0 e designa o ponto a2 a LoD0. Desta maneira, o dispositivo de codificação de dados tridimensionais configura LoD0 de tal maneira que a distância entre os pontos em LoD0 é maior do que o valor limiar Thres_LoD[0].
[00669] Em seguida, o dispositivo de codificação de dados tridimensionais seleciona o ponto b0 que não foi ainda assinado a nenhum LoD e designa o ponto b0 a LoD1. Em seguida, o dispositivo de codificação de dados tridimensionais extrai o ponto b1 que está distante do ponto b0 mais do que o valor limiar Thres_LoD[1] de LoD1 e que não foi ainda assinado a nenhum LoD, e designa o ponto b1 a LoD1. Em seguida, o dispositivo de codificação de dados tridimensionais extrai o ponto b2 que está distante do ponto b1 mais do que o valor limiarThres_LoD[1] de LoD1 e que não foi ainda assinado a nenhum LoD, e designa o ponto b2 a LoD1. Desta maneira, o dispositivo de codificação de dados tridimensionais configura LoD1 de tal maneira que a distância entre os pontos em LoD1 é maior do que o valor limiar Thres_LoD[1].
[00670] Em seguida, o dispositivo de codificação de dados tridimensionais seleciona o ponto c0 que não foi ainda assinado a nenhum LoD a designa o ponto c0 a LoD2. Em seguida, o dispositivo de codificação de dados tridimensionais extrai o ponto c1 que está distante do ponto c0 mais do que o valor limiar Thres_LoD[2] de LoD2 e que não foi ainda assinado a nenhum LoD, e designa o ponto c1 a LoD2. Em seguida, o dispositivo de codificação de dados tridimensionais extrai o ponto c2 que está distante do ponto c1 mais do que valor limiar Thres_LoD[2] de LoD2 e que não foi ainda assinado a nenhum LoD, e designa o ponto c2 a LoD2. Desta maneira, o dispositivo de codificação de dados tridimensionais configura LoD2 de tal maneira que a distância entre os pontos em LoD2 é maior do que o valor limiar Thres_LoD[2]. Por exemplo, como ilustrado na figura 70, valores limiares Thres_LoD[0], Thres_LoD[1] e Thres_LoD[2] dos respectivos LoDs são definidos.
[00671] Ainda, o dispositivo de codificação de dados tridimensionais pode adicionar a informação indicando o valor limiar de cada LoD a, por exemplo, um cabeçalho de sequência de bits. Por exemplo, no caso do exemplo ilustrado na figura 70, o dispositivo de codificação de dados tridimensionais pode adicionar valores limiares Thres_LoD[0], Thres_LoD[1] e Thres_LoD[2] dos respectivos LoDs a um cabeçalho.
[00672] Alternativamente, o dispositivo de codificação de dados tridimensionais pode designar todos os pontos tridimensionais que não foram ainda assinados a nenhum LoD no LoD da camada mais inferior. Nesse caso, o dispositivo de codificação de dados tridimensionais é capaz de reduzir a quantidade de códigos do cabeçalho ao não designar o valor limiar do LoD da camada mais inferior ao cabeçalho. Por exemplo, no caso do exemplo ilustrado na figura 70, o dispositivo de codificação de dados tridimensionais designa valores limiares Thres_LoD[0] e Thres_LoD[1] ao cabeçalho, e não designa Thres_LoD[2] ao cabeçalho. Nesse caso, o dispositivo de codificação de dados tridimensionais pode estimar valor 0 de Thres_LoD[2]. Ainda, o dispositivo de codificação de dados tridimensionais pode adicionar o número de LoDs a um cabeçalho. Desta maneira, o dispositivo de codificação de dados tridimensionais é capaz de determinar o LoD da camada mais inferior usando o número de LoDs.
[00673] Ainda, configurar valores limiares para os respectivos LoDs de camadas de tal maneira que um valor limiar maior é configurado para uma camada superior faz com que uma camada superior (camada mais próxima de LoD0) tenha uma nuvem de pontos esparsa (esparsa) em que pontos tridimensionais são mais distantes e faz com que uma camada inferior tenha uma nuvem de pontos densa (densa) em que pontos tridimensionais estão mais próximos. Deve ser observado que, em um exemplo ilustrado na figura 70, LoD0 é a camada superior.
[00674] Ainda, o método de seleção de um ponto tridimensional inicial no momento de configuração de cada LoD pode depender de uma ordem de codificação no momento de codificação de informação de geometria. Por exemplo, o dispositivo de codificação de dados tridimensionais configura LoD0 através da seleção do ponto tridimensional codificado primeiro no momento da codificação de informação de geometria codificando como ponto inicial a0 de LoD0, e selecionando o ponto a1 e o ponto a2 do ponto inicial a0 como a origem. O dispositivo de codificação de dados tridimensionais então pode selecionar o ponto tridimensional cuja informação de geometria foi codificada no primeiro momento dentre os pontos tridimensionais que não pertencem a LoD0, como ponto inicial b0 de LoD1. Em outras palavras, o dispositivo de codificação de dados tridimensionais pode selecionar o ponto tridimensional cuja informação de geometria foi codificada no primeiro momento dentre os pontos tridimensionais que não pertencem às camadas (LoD0 a LoDn-1) acima de LoDn, como ponto inicial n0 de LoDn. Desta maneira, o dispositivo de codificação de dados tridimensionais é capaz de configurar o mesmo LoD que na codificação usando, na decodificação, o método de seleção de ponto inicial similar ao usado na codificação, que permite decodificação apropriada de uma sequência de bits. Mais especificamente, o dispositivo de codificação de dados tridimensionais seleciona o ponto tridimensional cuja informação de geometria foi decodificada no primeiro momento dentre os pontos tridimensionais que não pertencem às camadas acima de LoDn, como ponto inicial n0 de LoDn.
[00675] Daqui em diante, é dada uma descrição de um método de geração do valor predito da informação de atributo de cada ponto tridimensional usando informação de LoDs. Por exemplo, quando codificando pontos tridimensionais começando com os pontos tridimensionais incluído em LoD0, o dispositivo de codificação de dados tridimensionais gera pontos tridimensionais atuais que estão incluídos em LoD1 usando informação de atributo codificada e decodificada (daqui em diante também simplesmente referida como “codificada”) incluída em LoD0 e LoD1. Desta maneira, o dispositivo de codificação de dados tridimensionais gera um valor previsivo de informação de atributo de cada ponto tridimensional incluído em LoDn usando informação de atributo codificada incluída em LoDn’ (n’ ≤ n). Em outras palavras, o dispositivo de codificação de dados tridimensionais não usa informação de atributo de cada um dos pontos tridimensionais incluídos em qualquer camada abaixo de LoDn para calcular um valor predito de informação de atributo de cada um dos pontos tridimensionais incluídos em LoDn.
[00676] Por exemplo, o dispositivo de codificação de dados tridimensionais calcula uma média de informação de atributo de N ou menos pontos tridimensionais dentre pontos tridimensionais codificados circundando um ponto tridimensional atual a ser codificado para gerar um valor predito de informação de atributo do ponto tridimensional atual. Ainda, o dispositivo de codificação de dados tridimensionais pode adicionar valor N a, por exemplo, um cabeçalho de uma sequência de bits. Deve ser observado que o dispositivo de codificação de dados tridimensionais pode modificar o valor N para cada ponto tridimensional e pode adicionar valor N para cada ponto tridimensional. Isso permite seleção de N apropriado para cada ponto tridimensional, o que torna possível aumentar a precisão do valor predito. Portanto, é possível reduzir o residual de predição. Alternativamente, o dispositivo de codificação de dados tridimensionais pode adicionar valor N a um cabeçalho de uma sequência de bits, e pode fixar o valor indicando N na sequência de bits. Isso eliminar a necessidade de codificar ou decodificar valor N para cada ponto tridimensional, o que torna possível reduzir a quantidade de processamento. Ainda, o dispositivo de codificação de dados tridimensionais pode codificar os valores de N separadamente para cada LoD. Desta maneira, é possível aumentar a eficiência de codificação ao selecionar N apropriado para cada LoD.
[00677] Alternativamente, o dispositivo de codificação de dados tridimensionais pode calcular um valor predito de informação de atributo de ponto tridimensional com base em valores de média ponderada de informação de atributo de pontos tridimensionais vizinhos N codificados. Por exemplo, o dispositivo de codificação de dados tridimensionais calcula pesos usando informação de distância entre um ponto tridimensional atual e cada um de pontos tridimensionais vizinhos.
[00678] Quando codificando valor N para cada LoD, por exemplo, o dispositivo de codificação de dados tridimensionais define valor maior para N para um LoD de camada superior, e define valor N menor para um LoD de camada inferior. A distância entre pontos tridimensionais pertencentes a um LoD de camada superior é maior, há uma possibilidade que seja possível aumentar a precisão de predição ao definir valor N grande, selecionar uma pluralidade de pontos tridimensionais vizinhos e tirar a média dos valores. Ainda, a distância entre pontos tridimensionais pertencentes a um LoD de camada inferior é pequena, é possível realizar predição eficiente enquanto reduzindo a quantidade de processamento de realização de média ao definir valor N menor.
[00679] A Figura 71 é um diagrama ilustrando um exemplo de informação de atributo a ser usada para valores preditos. Como descrito acima, o valor predito de ponto P incluído em LoDN é gerado usando ponto vizinho codificado P’ incluído em LoDN’ (N’ ≤ N). Aqui, ponto vizinho P’ é selecionado com base na distância do ponto P. Por exemplo, o valor predito de informação de atributo de ponto b2 ilustrado na Figura 71 é gerado usando informação de atributo de cada um dos pontos a0, a1, b0 e b1.
[00680] Pontos vizinhos a serem selecionados variam dependendo dos valores de N descritos acima. Por exemplo, no caso de N = 5, a0, a1, a2, b0 e b1 são selecionados como pontos vizinhos. No caso de N = 4, a0, a1, a2 e b1 são selecionados com base em informação de distância.
[00681] O valor predito é calculado através de média ponderada dependente da distância. Por exemplo, no exemplo ilustrado na figura 71, o valor predito a2p de ponto a2 é calculado através de média ponderada de informação de atributo de cada ponto a0 e a1, como representado pela (Equação A2) e (Equação A3). Deve ser observado que Ai é um valor de informação de atributo de ai.
[Mat. 2] ...(Equação A2) ...(Equação A3)
[00682] Ainda, o valor predito b2p de ponto b2 é calculado através de média ponderada de informação de atributo de cada um de ponto a0, a1, a2, b0 e b1, como representado pelas (Equação 4) e (Equação 6). Deve ser observado que Bi é um valor de informação de atributo de bi.
[Mat. 3] ...(Equação A4) ...(Equação A5) ...(Equação A6)
[00683] Ainda, o dispositivo de codificação de dados tridimensionais pode calcular um valor de diferença (residual de predição) gerado a partir do valor de informação de atributo de um ponto tridimensional e pontos vizinhos, e pode quantizar o residual de predição calculado. Por exemplo, o dispositivo de codificação de dados tridimensionais realiza quantização ao dividir o residual de predição por uma escala de quantização (também referida como uma etapa de quantização). Nesse caso, um erro (erro de quantização) que pode ser gerado pela quantização reduz conforme a escala de quantização é menor. No outro caso onde a escala de quantização é maior, o erro de quantização resultante é maior.
[00684] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode mudar a escala de quantização a ser usada para cada LoD. Por exemplo, o dispositivo de codificação de dados tridimensionais reduz a escala de quantização mais para uma camada superior e aumenta a escala de quantização mais para uma camada inferior. O valor de informação de atributo de um ponto tridimensional pertencente a uma camada superior pode ser usado como um valor predito de informação de atributo de um ponto tridimensional pertencente a uma camada inferior. Portanto, é possível aumentar a eficiência de codificação ao reduzir a escala de quantização para a camada superior para reduzir o erro de quantização que pode ser gerado na camada superior e aumentar a precisão de predição do valor predito. Deve ser observado que o dispositivo de codificação de dados tridimensionais pode adicionar a escala de quantização a ser usada para cada LoD a, por exemplo, um cabeçalho. Desta maneira, o dispositivo de codificação de dados tridimensionais pode decodificar a escala de quantização corretamente, dessa maneira decodificando apropriadamente a sequência de bits.
[00685] Ainda, o dispositivo de codificação de dados tridimensionais pode converter um valor inteiro assinado (valor quantizado assinado) que é um residual de predição quantizado em um valor inteiro não assinado (valor quantizado não assinado). Isso elimina a necessidade de considerar a ocorrência de um inteiro negativo quando da codificação por entropia do residual de predição. Deve ser observado que o dispositivo de codificação de dados tridimensionais não precisa sempre converter um valor inteiro assinado em um valor inteiro não assinado e, por exemplo, que o dispositivo de codificação de dados tridimensionais pode codificar por entropia um bit de sinal separadamente.
[00686] O residual de predição é calculado subtraindo um valor de predição do valor original. Por exemplo, como representado pela (Equação A7), o residual de predição a2r do ponto a2 é calculado subtraindo valor predito a2p do ponto a2 do valor A2 de informação de atributo do ponto a2. Como representado pela (Equação A8), o residual de predição b2r do ponto b2 é calculado subtraindo o valor predito b2p do ponto b2 do valor B2 de informação de atributo do ponto b2.
a2r = A2 – a2p ... (Equação 7) b2r = B2 – b2p ... (Equação 8)
[00687] Ainda, o residual de predição é quantizado ao ser dividido por uma Etapa de Quantização (QS). Por exemplo, o valor quantizado a2q do ponto a2 é calculado de acordo com a (Equação A9). O valor quantizado b2q do ponto b2 é calculado de acordo com a (Equação A10). Aqui, QS_LoD0 é uma QS para LoD0 e QS_LoD1 é uma QS para LoD1. Em outras palavras, a QS pode ser mudada de acordo com um LoD. a2q = a2r/QS_LoD0 ... (Equação A9) b2q = b2r/QS_LoD1 ... (Equação A10)
[00688] Ainda, o dispositivo de codificação de dados tridimensionais converte valores inteiros assinados que são valores quantizados como indicado abaixo em valores inteiros não assinados como indicado abaixo. Quando o valor inteiro assinado a2q é menor do que 0, o dispositivo de codificação de dados tridimensionais configura valor inteiro não assinado a2u para -1 – (2 x a2q). Quando o valor inteiro assinado a2q é 0 ou mais, o dispositivo de codificação de dados tridimensionais configura valor inteiro não assinado a2u para 2 x a2q.
[00689] Da mesma maneira, quando o valor inteiro assinado b2q é menor do que 0, o dispositivo de codificação de dados tridimensionais configura o valor inteiro não assinado b2u para – 1 – (2 x b2q). Quando o valor inteiro assinado b2q é 0 ou mais, o dispositivo de codificação de dados tridimensionais configura valor inteiro não assinado b2u para 2 x b2q.
[00690] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar o residual de predição quantizado (valor inteiro não assinado) através de codificação por entropia. Por exemplo, o dispositivo de codificação de dados tridimensionais pode binariza o valor inteiro não assinado e então aplicar codificação aritmética binária ao valor binário.
[00691] Deve ser observado que, nesse caso, o dispositivo de codificação de dados tridimensionais pode mudar métodos de binarização de acordo com o valor de um residual de predição. Por exemplo, quando o residual de predição pu é menor do que o valor limiar R_TH, o dispositivo de codificação de dados tridimensionais binariza o residual de predição pu usando uma contagem de bits fixa requerida para representação de valor limiar R_TH. Ainda, quando o residual de predição pu é maior do que ou igual ao valor limiar R_TH, o dispositivo de codificação de dados tridimensionais binariza os dados binário de valor limiar R_TH e o valor de (pu – R_TH) usando codificação Exponencial-Golomb ou similar.
[00692] Por exemplo, quando o valor limiar R_TH é 63 e residual de predição pu é menor do que 63, o dispositivo de codificação de dados tridimensionais binariza o residual de predição pu usando 6 bits. Quando o residual de predição pu é maior do que ou igual a 63, o dispositivo de codificação de dados tridimensionais realiza codificação aritmética através de binarização dos dados binários (111111) de valor limiar R_TH e (pu – 63) usando codificação Exponencial-Golomb.
[00693] Em um exemplo mais específico, quando o residual de predição pu é 32, o dispositivo de codificação de dados tridimensionais gera dados binários de 6-bits (100000) e codifica por aritmética a sequência de bits. Ainda, quando o residual de predição pu é 66, o dispositivo de codificação de dados tridimensionais gera dados binários (111111) do valor limiar R_TH e uma sequência de bits (00100) representando valor 3 (66 – 63) usando codificação Exponencial-
Golomb e codifica por aritmética a sequência de bits (111111 + 00100).
[00694] Desta maneira, o dispositivo de codificação de dados tridimensionais pode realizar codificação enquanto evitando que uma contagem de bits binária aumente abruptamente no caso onde um residual de predição se torna grande através da muda dos métodos de binarização de acordo com a magnitude do residual de predição. Deve ser observado que o dispositivo de codificação de dados tridimensionais pode adicionar valor limiar R_TH a, por exemplo, um cabeçalho de uma sequência de bits.
[00695] Por exemplo, no caso onde codificação é realizada em uma taxa de bits alta, isto é, quando uma escala de quantização é pequena, um erro de quantização pequeno e uma precisão de predição alta são obtidos. Como resultado, um residual de predição não pode ser grande. Portanto, nesse caso, o dispositivo de codificação de dados tridimensionais configura valor limiar grande R_TH. Isso reduz a possibilidade que os dados binários de valor limiar R_TH sejam codificados, o que aumenta a eficiência de codificação. No caso oposto onde codificação é realizada em uma taxa de bits baixa, isto é, quando uma escala de quantização é grande, um erro de quantização grande e uma precisão de predição baixa são obtidos. Como resultado, um residual de predição pode ser grande. Portanto, nesse caso, o dispositivo de codificação de dados tridimensionais configura valor limiar pequeno R_TH. Desta maneira, é possível evitar aumento abrupto em comprimento de bits de dados binários.
[00696] Ainda, o dispositivo de codificação de dados tridimensionais pode mudar o valor limiar R_TH para cada LoD, e pode adicionar valor limiar R_TH para cada LoD a, por exemplo, um cabeçalho. Em outras palavras, o dispositivo de codificação de dados tridimensionais pode mudar métodos de binarização para cada LoD. Por exemplo, uma vez que distâncias entre pontos tridimensionais são grandes em uma camada superior, uma precisão de predição é baixa, o que pode aumentar um residual de predição. Portanto, o dispositivo de codificação de dados tridimensionais pode aumentar um residual de predição. Portanto, o dispositivo de codificação de dados tridimensionais evita aumento abrupto em comprimento de bits de dados binários ao configurar valor limiar pequeno R_TH à camada superior. Ainda, uma vez que distâncias entre pontos tridimensionais são pequenas em uma camada inferior, uma precisão de predição é alta, o que pode reduzir um residual de predição. Portanto, o dispositivo de codificação de dados tridimensionais aumenta a eficiência de codificação ao configurar valor limiar grande R_TH para a camada inferior.
[00697] A figura 72 é um diagrama indicando exemplos de códigos de Exponencial-Golomb. O diagrama indica as relações entre valores de pré-binarização (valores não binários) e bits pós-binarização (códigos). Deve ser observado que 0 e 1 indicados na figura 72 podem ser invertidos.
[00698] O dispositivo de codificação de dados tridimensionais aplica codificação aritmética aos dados binários de residuais de predição. Desta maneira, a eficiência de codificação pode ser aumentada. Deve ser observado que, na aplicação da codificação aritmética, há uma possibilidade que tendências de probabilidade de ocorrência de 0 e 1 em cada bit variem, em dados binários, entre um código de n-bits que é uma parte binarizada por bits n e um código restante que é uma parte binarizada usando codificação Exponencial-Golomb. Portanto, o dispositivo de codificação de dados tridimensionais pode mudar métodos de aplicação de codificação aritmética entre o código de n-bits e o código restante.
[00699] Por exemplo, o dispositivo de codificação de dados tridimensionais realiza codificação aritmética no código de n-bits usando uma ou mais tabelas de codificação (tabelas de probabilidade)
diferentes para cada bit. Nesse momento, o dispositivo de codificação de dados tridimensionais pode mudar o número de tabelas de codificação a serem usadas para cada bit. Por exemplo, o dispositivo de codificação de dados tridimensionais realiza codificação aritmética usando uma tabela de codificação para o primeiro bit b0 em um código de n-bits. O dispositivo de codificação de dados tridimensionais usa duas tabelas de codificação para o próximo bit b1. O dispositivo de codificação de dados tridimensionais muda as tabelas de codificação a serem usadas para codificação aritmética do bit 1 de acordo com o valor (0 ou 1) de b0. Da mesma maneira, o dispositivo de codificação de dados tridimensionais usa quatro tabelas de codificação para o próximo bit b2. O dispositivo de codificação de dados tridimensionais muda tabelas de codificação a serem usadas para codificação aritmética do bit 2 de acordo com os valores (em uma faixa de 0 a 3) de b0 e b1.
[00700] Desta maneira, o dispositivo de codificação de dados tridimensionais usa tabelas de codificação 2n-1 quando da codificação aritmética de cada bit bn – 1 em código de n-bits. O dispositivo de codificação de dados tridimensionais muda as tabelas de codificação a serem usadas de acordo com os valores (padrões de ocorrência) de bits antes de bn – 1. Desta maneira, o dispositivo de codificação de dados tridimensionais pode usar tabelas de codificação apropriadas para cada bit, e então pode aumentar a eficiência de codificação.
[00701] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode reduzir o número de tabelas de codificação a serem usadas para cada bit. Por exemplo, o dispositivo de codificação de dados tridimensionais pode mudar as tabelas de codificação 2m de acordo com os valores (padrões de ocorrência) de bits m (m < n – 1) antes de bn – 1 quando codificação aritmética de cada bit bn – 1. Desta maneira, é possível aumentar a eficiência de codificação enquanto reduzindo o número de tabelas de codificação a serem usadas para cada bit. Deve ser observado que o dispositivo de codificação de dados tridimensionais pode atualizar as probabilidades de ocorrência de 0 e 1 em cada tabela de codificação de acordo com os valores de dados binários realmente ocorridos. Ainda, o dispositivo de codificação de dados tridimensionais pode fixar as probabilidades de ocorrência de 0 e 1 em tabelas de codificação para algum(ns) bit(s). Desta maneira, é possível reduzir o número de atualizações de probabilidades de ocorrência, e então reduzir a quantidade de processamento.
[00702] Por exemplo, quando um código de n-bits é b0, b1, b2,..., bn- 1, a tabela de codificação para b0 é uma tabela (CTb0). As tabelas de codificação para b1 são duas tabelas (CTb10 e CTb11). As tabelas de codificação a serem usadas são mudadas de acordo com o valor (0 ou 1) de b0. As tabelas de codificação para b2 são quatro tabelas (CTb20, CTb21, CTb22 e CTb23). Tabelas de codificação a serem usadas são mudadas de acordo com os valores (na faixa de 0 a 3) de b0 e b1. Tabelas de codificação para bn – 1 são tabelas 2n-1 (CTbn0, CTbn1,..., CTbn (2n-1 – 1)). As tabelas de codificação a serem usadas são mudadas de acordo com os valores (na faixa de 0 a 2n-1 -1) de b0, b1,..., bn -2.
[00703] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode aplicar, a um código de n-bits, codificação aritmética (m = 2n) através de m-ária que configura o valor na faixa de 0 a 2n-1 sem binarização. Quando o dispositivo de codificação de dados tridimensionais codifica por aritmética um código de n-bits através de uma m-ária, o dispositivo de decodificação de dados tridimensionais pode reconstruir o código de n-bits através de decodificação aritmética da m-ária.
[00704] A figura 73 é um diagrama para ilustração de processamento no caso onde códigos restantes são códigos Exponenciais-Golomb. Como indicado na figura 73, cada código restante que é uma parte binarizada usando codificação Exponencial-Golomb inclui um prefixo e um sufixo. Por exemplo, o dispositivo de codificação de dados tridimensionais muda as tabelas de codificação entre o prefixo e o sufixo. Em outras palavras, o dispositivo de codificação de dados tridimensionais codifica por aritmética cada um dos bits incluídos no prefixo usando tabelas de codificação para o prefixo e codifica por aritmética cada um dos bits incluídos no sufixo usando tabelas de codificação para o sufixo.
[00705] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode atualizar as probabilidades de ocorrência de 0 e 1 em cada tabela de codificação de acordo com os valores de dados binários realmente ocorridos. Ainda, o dispositivo de codificação de dados tridimensionais pode fixar as probabilidades de ocorrência de 0 e 1 em uma das tabelas de codificação. Desta maneira, é possível reduzir o número de atualizações de probabilidades de ocorrência, e então reduzir a quantidade de processamento. Por exemplo, o dispositivo de codificação de dados tridimensionais pode atualizar as probabilidades de ocorrência para o prefixo, e pode fixar as probabilidades de ocorrência para o sufixo.
[00706] Ainda, o dispositivo de codificação de dados tridimensionais decodifica um residual de predição quantizado através de quantização inversa e reconstrução, e usa um valor decodificado que é o residual de predição decodificado para predição de um ponto tridimensional atual a ser codificado e o(s) ponto(s) tridimensional(ais) que segue(m). Mais especificamente, o dispositivo de codificação de dados tridimensionais calcula um valor quantizado inverso multiplicando o residual de predição quantizado (valor quantizado) com uma escala de quantização, e soma o valor quantizado inverso e um valor de predição para obter o valor decodificado (valor reconstruído).
[00707] Por exemplo, o valor quantizado a2iq do ponto a2 é calculado usando o valor quantizado a2q do ponto a2 de acordo com a (Equação 11). O valor quantizado inverso b2iq do ponto b2q é calculado usando o valor quantizado b2q do ponto b2 de acordo com a (Equação A12). Na presente invenção, QS_LoD0 é uma QS para LoD0 e QS_LoD1 é uma QS para LoD1. Em outras palavras, a QS pode ser mudada de acordo com um LoD.
a2iq = a2q x QS_LoD0 ...(Equação A11) b2iq = b2q x QS_LoD1 ...(Equação A12)
[00708] Por exemplo, conforme representado pela (Equação A13), o valor decodificado a2rec do ponto a2 é calculado somando valor de quantização inversa a2iq do ponto a2 ao valor predito a2p do ponto a2. Como representado pela Equação (A14), o valor decodificado b2rec do ponto b2 é calculado somando o valor quantizado inverso b2iq do ponto b2 ao valor predito b2p do ponto b2.
a2rec = a2iq + a2p ...(Equação A13) b2rec = b2iq + b2p ...(Equação A14)
[00709] Daqui em diante, um exemplo de sintaxe de uma sequência de bits de acordo com a presente modalidade é descrito. A figura 74 é um diagrama indicando o exemplo de sintaxe de um cabeçalho de atributo (atribute_cabeçalho) de acordo com a presente modalidade. O cabeçalho de atributo é informação de cabeçalho de informação de atributo. Como indicado na figura 74, o cabeçalho de atributo inclui o número de informação de camadas (NumLoD), o número de informação de pontos tridimensionais (NumOfPOint[i]), um valor limiar de camada
(Thres_LoD[i]), o número de informação de pontos vizinhos (NumNeighborPoint[i]), um valor limiar de predição (THd[i]), uma escala de quantização (QS[i]) e um valor limiar de binarização (R_TH[i]).
[00710] O número de informação de camadas (NumLoD) indica o número de LoDs a ser usado.
[00711] O número de informação de pontos tridimensionais (NumOfPoint[i]) indica o número de pontos tridimensionais pertencentes à camada i. Deve ser observado que o dispositivo de codificação de dados tridimensionais pode adicionar, a um outro cabeçalho, o número de informação de pontos tridimensionais indicando o número total de pontos tridimensionais. Nesse caso, o dispositivo de codificação de dados tridimensionais não precisa adicionar, a um cabeçalho, NumOfPoint [NumLoD – 1] indicando o número de pontos tridimensionais pertencentes à camada mais inferior. Nesse caso, o dispositivo de decodificação de dados tridimensionais é capaz de calcular NumOfPoint [NumLoD – 1] de acordo com a (Equação A15). Nesse caso, é possível reduzir a quantidade de códigos do cabeçalho.
[Mat. 4] ...(Equação A15)
[00712] O valor limiar de camada (Thres_LoD[i]) é um valor limiar a ser usado para configurar a camada i. O dispositivo de codificação de dados tridimensionais e o dispositivo de decodificação de dados tridimensionais configuram LoDi de tal maneira que a distância entre os pontos em LoDi se torna maior do que o valor limiar Thres_LoD[i]. O dispositivo de codificação de dados tridimensionais não precisa adicionar o valor de Thres_LoD [NumLoD-1] (camada mais inferior) a um cabeçalho. Nesse caso, o dispositivo de decodificação de dados tridimensionais pode estimar 0 como o valor de Thres_LoD [NumLoD – 1]. Nesse caso, é possível reduzir a quantidade de códigos do cabeçalho.
[00713] O número de informação de pontos vizinhos (NumNeighborPoint[i]) indica o valor limite superior do número de pontos vizinhos a ser usado para gerar um valor predito de um ponto tridimensional pertencente à camada i. O dispositivo de codificação de dados tridimensionais pode calcular um valor predito usando o número de pontos vizinhos M quando o número de pontos vizinhos M é menor do que o NumNeighborPoint[i] (M < NumNeighborPoint[i]). Ainda, quando não há nenhuma necessidade de diferenciar os valores de NumNeighborPoint[i] para os respectivos LoDs, o dispositivo de codificação de dados tridimensionais pode adicionar uma parte do número de informação de pontos vizinhos (NumNeighborPoint) a ser usado em todos os LoDs a um cabeçalho.
[00714] O valor limiar de predição (THd[i]) indica o valor limite superior da distância entre um ponto tridimensional atual a ser codificado ou decodificado na camada i e cada um dos pontos tridimensionais vizinhos a serem usados para predizer o ponto tridimensional atual. O dispositivo de codificação de dados tridimensionais e o dispositivo de decodificação de dados tridimensionais não usam, para predição, nenhum ponto tridimensional distante do ponto tridimensional atual com relação a THd[i]. Deve ser observado que quando não há nenhuma necessidade de diferenciar os valores de THd[i] para os respectivos LoDs, o dispositivo de codificação de dados tridimensionais pode adicionar um valor limiar de predição único (THd) a ser usado em todos os LoDs a um cabeçalho.
[00715] A escala de quantização (QS[i]) indica uma escala de quantização a ser usada para quantização e quantização inversa na camada i.
[00716] O valor limiar de binarização (R_TH[i]) é um valor limiar para mudar métodos de binarização de residuais de predição dos pontos tridimensionais pertencentes à camada i. Por exemplo, o dispositivo de codificação de dados tridimensionais binariza o residual de predição pu usando uma contagem de bits fixa quando um residual de predição é menor do que o valor limiar R_TH e binariza os dados binários do valor limiar R_TH e o valor de (pu – R_TH) usando codificação Exponencial- Golomb quando um residual de predição é maior do que ou igual ao valor R_TH. Deve ser observado que, quando não há nenhuma necessidade de mudar os valores de R_TH[i] entre LoDs, o dispositivo de codificação de dados tridimensionais pode adicionar um valor limiar de binarização único (R_TH) a ser usado em todos os LoDs a um cabeçalho.
[00717] Deve ser observado que R_TH[i] pode ser o valor máximo que pode ser representado por n bits. Por exemplo, R_TH é 63 no caso de 6 bits e R_TH é 255 no caso de 8 bits. Alternativamente, o dispositivo de codificação de dados tridimensionais pode codificar uma contagem de bits ao invés de codificar o valor máximo que pode ser representado por n bits como um valor limiar de binarização. Por exemplo, o dispositivo de codificação de dados tridimensionais pode adicionar valor 6 no caso de R_TH[i] = 63 a um cabeçalho e pode adicionar valor 8 no caso de R_TH[i] = 255 a um cabeçalho. Alternativamente, o dispositivo de codificação de dados tridimensionais pode definir o valor mínimo (contagem mínima de bits) representando R_TH[i] e adicionar uma contagem de bits relativa do valor mínimo a um cabeçalho. Por exemplo, o dispositivo de codificação de dados tridimensionais pode adicionar valor 0 a um cabeçalho quando R_TH[i] = 63 é satisfeito e a contagem de bits mínima for 6 e pode adicionar valor 2 a um cabeçalho quando R_TH[i] = 255 é satisfeito e a contagem de bits mínima for 6.
[00718] Alternativamente, o dispositivo de codificação de dados tridimensionais pode codificar por entropia pelo menos um de NumLoD, Thres_LoD[i], NumNeighborPoint[i], THd[i], QS[i] e R_TH[i] e adicionar a entropia codificada um a um cabeçalho. Por exemplo, o dispositivo de codificação de dados tridimensionais pode binarizar cada valor e realizar codificação aritmética no valor binário. Ainda, o dispositivo de codificação de dados tridimensionais pode codificar cada valor usando um comprimento fixo a fim de reduzir a quantidade de processamento.
[00719] Alternativamente, o dispositivo de codificação de dados tridimensionais não precisa sempre adicionar pelo menos um de NumLoD, Thres_LoD[i], NumNeighborPoint[i], THd[i], QS[i] e R_TH[i] a um cabeçalho. Por exemplo, pelo menos um desses valores pode ser definido por um perfil ou um nível em um padrão ou similar. Dessa maneira, é possível reduzir a quantidade de bits do cabeçalho.
[00720] A figura 75 é um diagrama indicando o exemplo de sintaxe dados de atributo (atribute_data) de acordo com a presente modalidade. Os dados de atributo incluem dados codificados da informação de atributo de uma pluralidade de pontos tridimensionais. Como indicado na figura 75, os dados de atributo incluem um código de n-bits e um código restante.
[00721] O código de n-bits são dados codificados em um residual de predição de um valor de informação de atributo ou uma parte dos dados codificados. O comprimento de bits do código de n-bits depende do valor R_TH[]i]. Por exemplo, o comprimento de bit do código de n-bits é 6 bits quando o valor indicado por R_TH[i] é 63, o comprimento de bit do código de n-bits é 8 bits quando o valor indicado por R_TH[i] é 255.
[00722] O código restante são dados codificados usando codificação Exponencial-Golomb dentre os dados codificados do residual de predição do valor da informação de atributo. O código restante é codificado ou decodificado quando o valor do código de n-bits é igual a
R_TH[i]. O dispositivo de decodificação de dados tridimensionais decodifica o residual de predição ao adicionar o valor do código de n- bits e o valor do código restante. Deve ser observado que o código restante não precisa ser sempre codificado ou decodificado quando o valor do código de n-bits não for igual a R_TH[i].
[00723] Daqui em diante, é dada uma descrição de um fluxo de processamento no dispositivo de codificação de dados tridimensionais. A figura 76 é um fluxograma de um processo de codificação de dados tridimensionais realizado pelo dispositivo de codificação de dados tridimensionais.
[00724] Primeiro, o dispositivo de codificação de dados tridimensionais codifica informação de geometria (geometria) (S3001). Por exemplo, a codificação dos dados tridimensionais é realizada usando representação de “octree”.
[00725] Quando as posições dos pontos tridimensionais mudaram através de quantização, etc., após a codificação da informação de geometria, o dispositivo de codificação de dados tridimensionais designa novamente informação de atributo dos pontos tridimensionais originais para os pontos tridimensionais pós-mudança (S3002). Por exemplo, o dispositivo de codificação de dados tridimensionais interpola valores de informação de atributo de acordo com as quantidades de mudança em posição para designar novamente a informação de atributo. Por exemplo, o dispositivo de codificação de dados tridimensionais detecta pontos tridimensionais N de pré-mudança mais próximo das posições tridimensionais pós-mudança, e realiza média de ponderação dos valores de informação de atributo dos pontos tridimensionais N. Por exemplo, o dispositivo de codificação de dados tridimensionais determina pesos com base em distâncias das posições tridimensionais pós-mudança para as respectivas posições tridimensionais N em média ponderada. O dispositivo de codificação de dados tridimensionais então determina os valores obtidos através da média ponderada como sendo os valores da informação de atributo dos pontos tridimensionais pós-mudança. Quando dois ou mais dos pontos tridimensionais são mudados para a mesma posição tridimensional através de quantização, etc., o dispositivo de codificação de dados tridimensionais pode designar o valor médio da informação de atributo dos dois ou mais pontos tridimensionais de pré-mudança como o valor da informação de atributo dos pontos tridimensionais pós-mudança.
[00726] Em seguida, o dispositivo de codificação de dados tridimensionais codifica a informação de atributo (atributo) novamente designada (S3003). Por exemplo, quando codificando uma pluralidade de tipos de informação de atributo, o dispositivo de codificação de dados tridimensionais pode codificar a pluralidade de tipos de informação de atributo em ordem. Por exemplo, quando codificando cores e refletâncias como informação de atributo, o dispositivo de codificação de dados tridimensionais pode gerar uma sequência de bits somada com os resultados de codificação de cor e os resultados de codificação de refletância após os resultados de codificação de cor. Deve ser observado que a ordem da pluralidade de resultados de codificação de informação de atributo a ser somada a uma frequência de bits não é limitada à ordem, e pode ser qualquer ordem.
[00727] Alternativamente, o dispositivo de codificação de dados tridimensionais pode adicionar, a um cabeçalho, por exemplo, informação indicando o local de início de dados codificados de cada informação de atributo em uma sequência de bits. Desta maneira, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar seletivamente informação de atributo requerida ser decodificada, e então é capaz de pular o processo de decodificação da informação de atributo não necessária ser codificada. Portanto, é possível reduzir a quantidade de processamento pelo dispositivo de decodificação de dados tridimensional. Alternativamente, o dispositivo de codificação de dados tridimensionais pode codificar uma pluralidade de tipos de informação de atributo em paralelo, e pode integrar os resultados de codificação em uma frequência de bits única. Desta maneira, o dispositivo de codificação de dados tridimensionais é capaz de codificar a pluralidade de tipos de informação de atributo em velocidade alta.
[00728] A figura 77 é um fluxograma de um processo de codificação de informação de atributo (S3003). Primeiro, o dispositivo de codificação de dados tridimensionais configura LoDs (S3011). Em outras palavras, o dispositivo de codificação de dados tridimensionais designa cada um dos pontos tridimensionais a qualquer um da pluralidade de LoDs.
[00729] Em seguida, o dispositivo de codificação de dados tridimensionais inicia um ciclo para cada LoD (S3012). Em outras palavras, o dispositivo de codificação de dados tridimensionais realiza iterativamente os processos das Etapas de S3013 a S3021 para cada LoD.
[00730] Em seguida, o dispositivo de codificação de dados tridimensionais inicia um ciclo para cada ponto tridimensional (S3013). Em outras palavras, o dispositivo de codificação de dados tridimensionais realiza iterativamente os processos das Etapas de S3014 a S3020 para cada ponto tridimensional.
[00731] Primeiro, o dispositivo de codificação de dados tridimensionais busca uma pluralidade de pontos vizinhos que são pontos tridimensionais presentes na vizinhança de um ponto tridimensional atual a ser processado e devem ser usados para calcular um valor predito do ponto tridimensional atual (S3014). Em seguida, o dispositivo de codificação de dados tridimensionais calcula a média ponderada dos valores de informação de atributo da pluralidade de pontos vizinhos, e configura o valor resultante para o valor predito P
(S3015). Em seguida, o dispositivo de codificação de dados tridimensionais calcula um residual de predição que é a diferença entre a informação de atributo do ponto tridimensional atual e o valor predito (S3016). Em seguida, o dispositivo de codificação de dados tridimensionais quantiza o residual de predição para calcular um valor quantizado (S3017). Em seguida, o dispositivo de codificação de dados tridimensionais codifica por aritmética o valor quantizado (S3018).
[00732] Em seguida, o dispositivo de codificação de dados tridimensionais realiza quantização inversa do valor quantizado para calcular um valor quantizado inverso (S3019). Em seguida, o dispositivo de codificação de dados tridimensionais soma um valor de predição ao valor quantizado inverso para gerar um valor decodificado (S3020). Em seguida, o dispositivo de codificação de dados tridimensionais termina o ciclo para cada ponto tridimensional (S3021). Em seguida, o dispositivo de codificação de dados tridimensionais termina o ciclo para cada LoD (S3022).
[00733] Daqui em diante, é dada uma descrição de um processo de decodificação de dados tridimensionais no dispositivo de decodificação de dados tridimensionais que decodifica uma sequência de bits gerada pelo dispositivo de codificação de dados tridimensionais.
[00734] O dispositivo de decodificação de dados tridimensionais gera dados binários decodificados através de decodificação aritmética dos dados binários da informação de atributo na sequência de bits gerada pelo dispositivo de codificação de dados tridimensionais, de acordo com o método similar a um realizado pelo dispositivo de codificados de dados tridimensionais. Deve ser observado que quando métodos de aplicação de codificação aritmética são mudados entre a parte (código de n-bits) binarizada usando n-bits e a parte (código restante) binarizada usando codificação Exponencial-Golomb no dispositivo de codificação de dados tridimensionais, o dispositivo de decodificação de dados tridimensionais realiza decodificação em conformidade com a codificação aritmética, quando aplicando decodificação aritmética.
[00735] Por exemplo, o dispositivo de decodificação de dados tridimensionais realiza decodificação aritmética usando tabelas de codificação (tabelas de decodificação) diferentes para cada bit na decodificação aritmética do código de n-bits. Nesse momento, o dispositivo de decodificação de dados tridimensionais pode mudar o número de tabelas de codificação a serem usadas para cada bit. Por exemplo, o dispositivo de decodificação de dados tridimensionais realiza decodificação aritmética usando uma tabela de codificação para o primeiro bit b0 no código de n-bits. O dispositivo de decodificação de dados tridimensionais usa duas tabelas de codificação para o próximo bit b1. O dispositivo de decodificação de dados tridimensionais muda as tabelas de codificação a serem usadas para decodificação aritmética de bit b1 de acordo com o valor (0 ou 1) de b0. Da mesma maneira, o dispositivo de decodificação de dados tridimensionais usa quatro tabelas de codificação para o próximo bit b2. O dispositivo de decodificação de dados tridimensionais muda tabelas de codificação a serem usadas para decodificação aritmética de bit 2 de acordo com os valores (na faixa de a partir de 0 a 3) de b0 e b1.
[00736] Desta maneira, o dispositivo de decodificação de dados tridimensionais usa tabelas de codificação 2n-1 quando decodificando cada bit bn – 1 no código de n-bits. O dispositivo de decodificação de dados tridimensionais muda as tabelas de codificação a serem usadas de acordo com os valores (padrões de ocorrência) de bits antes de bn –
1. Desta maneira, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente uma sequência de bits codificada em uma eficiência de codificação aumentada usando as tabelas de codificação apropriadas para cada bit.
[00737] Deve ser observado que o dispositivo de decodificação de dados tridimensionais pode reduzir o número de tabelas de codificação a serem usadas para cada bit. Por exemplo, o dispositivo de decodificação de dados tridimensionais pode mudar tabelas de codificação 2m de acordo com os valores (padrões de ocorrência) de bits m (m < n - 1) antes de bn – 1 quando decodificando por aritmética cada bit bn – 1. Desta maneira, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente a sequência de bits codificada na eficiência de codificação aumentada enquanto reduzindo o número de tabelas de codificação a serem usadas para cada bit. Deve ser observado que o dispositivo de decodificação de dados tridimensionais pode atualizar as probabilidades de ocorrência de 0 e 1 em cada tabela de codificação de acordo com os valores de dados binários realmente ocorridos. Ainda, o dispositivo de decodificação de dados tridimensionais pode fixar as probabilidades de ocorrência de 0 e 1 em tabelas de codificação para alguns (bits). Desta maneira, é possível reduzir o número de atualizações de probabilidades de ocorrência, e então reduzir a quantidade de processamento.
[00738] Por exemplo quando um código de n-bit é b0, b1, b2,..., bn- 1, a tabela de codificação para b0 é uma (CTb0). As tabelas de codificação para b1 são duas tabelas (CTb10 e CTb11). As tabelas de codificação a serem usadas são mudadas de acordo com o valor (0 ou 1) de b0. As tabelas de codificação para b2 são quatro tabelas (CTb20, CTb21, CTb22 e CTb23). As tabelas de codificação a serem usadas de acordo com os valores (na faixa de 0 a 3) de b0 e b1. As tabelas de codificação para bn – 1 são tabelas 2n-1 (CTbn0, CTbn1,...., CTbn (2n- 1 – 1)). As tabelas de codificação a serem usadas são mudadas de acordo com os valores (na faixa de 0 a 2n-1 – 1) de b0, b1,..., bn -2.
[00739] A figura 78 é um diagrama para ilustração de processamento no caso onde códigos restantes são códigos Exponenciais-Golomb. Como indicado na figura 78, a parte (parte restante) binarizada e codificada pelo dispositivo de codificação de dados tridimensionais usando codificação Exponencial-Golomb inclui um prefixo e um sufixo. Por exemplo, o dispositivo de decodificação de dados tridimensionais muda as tabelas de codificação entre o prefixo e o sufixo. Em outras palavras, o dispositivo de decodificação de dados tridimensionais decodifica por aritmética cada um dos bits incluídos no prefixo usando tabelas de codificação para o prefixo e decodifica por aritmética cada um dos bits incluídos no sufixo usando tabelas de codificação para o sufixo.
[00740] Deve ser observado que o dispositivo de codificação de dados tridimensionais pode atualizar as probabilidades de ocorrência de 0 e 1 em cada tabela de codificação de acordo com os valores de dados binários ocorridos no momento da decodificação. Ainda, o dispositivo de decodificação de dados tridimensionais pode fixar as probabilidades de ocorrência de 0 e 1 em uma das tabelas de codificação. Desta maneira, é possível reduzir o número de atualizações de probabilidades de ocorrência, e então reduzir a quantidade de processamento. Por exemplo, o dispositivo de codificação de dados tridimensionais pode atualizar as probabilidades de ocorrência para o prefixo e pode fixar as probabilidades de ocorrência para o sufixo.
[00741] Ainda, o dispositivo de decodificação de dados tridimensionais decodifica o residual de predição quantizado (valor inteiro não assinado) através de desbinarização dos dados binários da aritmética residual de predição decodificada de acordo com um método em conformidade com o método de codificação usado pelo dispositivo de codificação de dados tridimensionais. O dispositivo de decodificação de dados tridimensionais primeiro decodifica por aritmética os dados binários de um código de n-bit para calcular um valor do código de n- bits. Em seguida, o dispositivo de decodificação de dados tridimensionais compara o valor do código de n-bits com valor limiar
R_TH.
[00742] No caso onde o valor do código de n-bits e o valor limiar R_TH correspondem, o dispositivo de decodificação de dados tridimensionais determina que um bit codificado usando codificação Exponencial-Golomb está presente em seguida, e decodifica por aritmética o código restante que são os dados binários codificados usando codificação Exponencial-Golomb. O dispositivo de decodificação de dados tridimensionais então calcula, a partir do código restante decodificado, um valor do código restante usando uma tabela de pesquisa reversa indicando a relação entre o código restante e o valor. A figura 79 é um diagrama indicando um exemplo de uma tabela de pesquisa reversa indicando relações entre códigos restantes e os seus valores. Em seguida, o dispositivo de decodificação de dados tridimensionais soma o valor obtido do código restante a R_TH, dessa maneira obtendo um residual de predição quantizado desbinarizado.
[00743] No caso oposto onde o valor do código de n-bits e valor limiar R_TH não correspondem (o valor do código de n-bits é menor do que o valor R_TH (o valor do código de n-bits é menor do que o valor R_TH), o dispositivo de decodificação de dados tridimensionais determina o valor do código de n-bits ser o residual de predição quantizado desbinarizado como ele é. Desta maneira, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente a sequência de bits gerada enquanto mudando os métodos de binarização de acordo com os valores dos residuais de predição pelo dispositivo de codificação de dados tridimensionais.
[00744] Deve ser observado que, quando o valor limiar R_TH é somado a, por exemplo, um cabeçalho de uma sequência de bits, o dispositivo de decodificação de dados tridimensionais pode decodificar o valor limiar R_TH do cabeçalho, e pode mudar os métodos de decodificação usando valor limiar decodificado R_TH. Quando o valor limiar R_TH é adicionado a, por exemplo, um cabeçalho para cada LoD, o dispositivo de decodificação de dados tridimensionais muda os métodos de decodificação usando valor limiar R_TH decodificado para cada LoD.
[00745] Por exemplo, quando o valor limiar R_TH é 63 e o valor do código de n-bits decodificado é 63, o dispositivo de decodificação de dados tridimensionais decodifica o código restante usando codificação Exponencial-Golomb, desta maneira obtendo o valor do código restante. Por exemplo, no exemplo indicado na figura 79, o código restante é 00100, e 3 é obtido como o valor do código restante. Em seguida, o dispositivo de decodificação de dados tridimensionais soma 63 que é valor limiar R_TH e 3 que é o valor do código restante, dessa maneira obtendo 66 que é o valor do residual de predição.
[00746] Ainda, quando o valor do código de n-bits decodificado é 32, o dispositivo de decodificação de dados tridimensionais configura 32 que é o valor do código de n-bits para o valor do residual de predição.
[00747] Ainda, o dispositivo de decodificação de dados tridimensionais converte o residual de predição quantizado decodificado, por exemplo, de um valor inteiro não assinado para um valor inteiro assinado, através de processamento inverso ao processamento no dispositivo de codificação de dados tridimensionais. Desta maneira, quando decodificando por entropia o residual de predição, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente a sequência de bits gerada sem considerar ocorrência de um inteiro negativo. Deve ser observado que o dispositivo de decodificação de dados tridimensionais nem sempre precisa converter um valor inteiro não assinado em um valor inteiro assinado e que, por exemplo, o dispositivo de decodificação de dados tridimensionais pode decodificar um bit de designação quando decodificando uma sequência de bits gerada através de codificação por entropia separadamente do bit de designação.
[00748] O dispositivo de decodificação de dados tridimensionais realiza decodificação através de quantização inversa e reconstrução do residual de predição quantizado após ser convertido no valor inteiro assinado, para obter um valor decodificado. O dispositivo de decodificação de dados tridimensionais usa o valor decodificado gerado para predição de um ponto tridimensional atual a ser decodificado e o(s) ponto(s) tridimensional(ais) que segue(m). Mais especificamente, o dispositivo de decodificação de dados tridimensionais multiplica o residual de predição quantizado por uma escala de quantização decodificada para calcular um valor quantizado inverso e soma o valor quantizado inverso e o valor predito para obter o valor decodificado.
[00749] O valor inteiro não assinado decodificado (valor quantizado não assinado) é convertido em um valor inteiro assinado através do processamento indicado abaixo. Quando o bit menos significante (LSB) de valor inteiro não assinado decodificado a2u é 1, o dispositivo de decodificação de dados tridimensionais configura o valor inteiro assinado a2q para –((a2u + 1) >> 1). Quando o LSB de valor inteiro não assinado a2u não é 1, o dispositivo de decodificação de dados tridimensionais configura valor inteiro assinado a2q para ((a2u >> 1).
[00750] Da mesma maneira, quando um LSB de valor inteiro não assinado decodificado b2u é 1, o dispositivo de decodificação de dados tridimensionais configura valor inteiro assinado b2q para –((b2u + 1) >> 1). Quando o LSB de valor inteiro não assinado decodificado n2u não é 1, o dispositivo de decodificação de dados tridimensionais configura o valor inteiro assinado b2q para ((b2u >> 1).
[00751] Detalhes do processamento de quantização inversa e reconstrução pelo dispositivo de decodificação de dados tridimensionais são similares ao processamento de quantização inversa e reconstrução no dispositivo de codificação de dados tridimensionais.
[00752] Daqui em diante, é dada uma descrição de um fluxo de processamento no dispositivo de decodificação de dados tridimensionais. A figura 80 é um fluxograma de um processo de decodificação de dados tridimensionais realizado pelo dispositivo de decodificação de dados tridimensionais. Primeiro, o dispositivo de decodificação de dados tridimensionais decodifica informação de geometria (geometria) de uma sequência de bits (S3031). Por exemplo, o dispositivo de decodificação de dados tridimensionais realiza decodificação usando representação de “octree”.
[00753] Em seguida, o dispositivo de decodificação de dados tridimensionais decodifica informação de atributo (atributo) da sequência de bits (S3032). Por exemplo, quando decodificando uma pluralidade de tipos de informação de atributo, o dispositivo de decodificação de dados tridimensionais pode decodificar a pluralidade de tipos de informação de atributo em ordem. Por exemplo, quando decodificando cores e refletâncias como informação de atributo, o dispositivo de decodificação de dados tridimensionais decodifica os resultados de decodificação de cor e os resultados de decodificação de refletância em ordem de designação na sequência de bits. Por exemplo, quando os resultados de codificação de refletância são somados após os resultados de codificação de cor em uma sequência de bits, o dispositivo de decodificação de dados tridimensionais decodifica os resultados de codificação de cor, e então decodifica os resultados de codificação de refletância. Deve ser observado que o dispositivo de decodificação de dados tridimensionais pode decodificar, em qualquer ordem, os resultados de codificação da informação de atributo adicionados à sequência de bits.
[00754] Alternativamente, o dispositivo de codificação de dados tridimensionais pode adicionar, a um cabeçalho, por exemplo, informação indicando o local de início de dados codificados de cada informação de atributo em uma sequência de bits. Desta maneira, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar seletivamente informação de atributo necessária ser decodificada, e então é capaz de pular o processo de decodificação da informação de atributo não necessária ser decodificada. Portanto, é possível reduzir a quantidade de processamento pelo dispositivo de decodificação de dados tridimensionais. Ainda, o dispositivo de decodificação de dados tridimensionais pode decodificar uma pluralidade de tipos de informação de atributo em paralelo, e pode integrar os resultados de decodificação em uma única nuvem de pontos tridimensionais. Desta maneira, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar uma pluralidade de tipos de informação de atributo em alta velocidade.
[00755] A figura 81 é um fluxograma de um processo de decodificação de informação de atributo (S3032). Primeiro, o dispositivo de decodificação de dados tridimensionais configura LoDs (S3041). Em outras palavras, o dispositivo de decodificação de dados tridimensionais designa cada um dos pontos tridimensionais tendo a informação de geometria decodificada para qualquer um da pluralidade de LoDs. Por exemplo, o método de designação é o mesmo que o método de designação usado no dispositivo de codificação de dados tridimensionais.
[00756] Em seguida, o dispositivo de decodificação de dados tridimensionais começa um ciclo para cada LoD (S3042). Em outras palavras, o dispositivo de decodificação de dados tridimensionais realiza iterativamente os processos das Etapas de S3043 a S3049 para cada LoD.
[00757] Em seguida, o dispositivo de decodificação de dados tridimensionais começa um ciclo para cada ponto tridimensional (S3043). Em outras palavras, o dispositivo de decodificação de dados tridimensionais realiza iterativamente os processos das Etapas de S3044 a S3048 para cada ponto tridimensional.
[00758] Primeiro, o dispositivo de decodificação de dados tridimensionais busca uma pluralidade de pontos vizinhos que são pontos tridimensionais presentes na vizinhança de um ponto tridimensional atual a ser processado e devem ser usados para calcular um valor predito do ponto tridimensional atual a ser processado (S3044). Em seguida, o dispositivo de decodificação de dados tridimensionais calcula a média ponderada dos valores de informação de atributo da pluralidade de pontos vizinhos, e configura o valor resultante de valor predito P (S3045). Deve ser observado que esses processos são similares aos processos no dispositivo de codificação de dados tridimensionais.
[00759] Em seguida, o dispositivo de decodificação de dados tridimensionais decodifica por aritmética o valor quantizado da sequência de bits (S3046). O dispositivo de decodificação de dados tridimensionais quantiza inverso o valor quantizado decodificado para calcular um valor quantizado inverso (S3047). Em seguida, o dispositivo de decodificação de dados tridimensionais soma um valor predito ao valor quantizado inverso para gerar um valor decodificado (S3048). Em seguida, o dispositivo de decodificação de dados tridimensionais termina o ciclo para cada ponto tridimensional (S3049). Em seguida, o dispositivo de codificação de dados tridimensionais termina o ciclo para cada LoD (S3050).
[00760] O que segue descreve configurações do dispositivo de codificação de dados tridimensionais e do dispositivo de decodificação de dados tridimensionais de acordo com a presente modalidade. A figura 82 é um diagrama de blocos ilustrando uma configuração de dispositivo de codificação de dados tridimensionais 3000 de acordo com a presente modalidade. O dispositivo de codificação de dados tridimensionais 3000 inclui codificador de informação de geometria 3001, nova designação de informação de atributo 3002 e codificador de informação de atributo 3003.
[00761] O codificador de informação de atributo 3003 codifica informação de geometria (geometria) de uma pluralidade de pontos tridimensionais incluídos em uma nuvem de pontos de inserção. O elemento de nova designação de informação de atributo 3002 designa novamente os valores de informação de atributo da pluralidade de pontos tridimensionais incluídos na nuvem de pontos de inserção, usando os resultados de codificação e decodificação da informação de geometria. O codificador de informação de atributo 3003 codifica a informação de atributo (atributo) novamente designada. Ainda, o dispositivo de codificação de dados tridimensionais 3000 gera uma sequência de bits incluindo a informação de geometria codificada e a informação de atributo codificada.
[00762] A figura 83 é um digrama de blocos ilustrando uma configuração de dispositivo de decodificação de dados tridimensionais 3010 de acordo com a presente modalidade. O dispositivo de decodificação de dados tridimensionais 3010 inclui decodificador de informação de geometria 3011 e decodificador de informação de atributo
3012.
[00763] O decodificador de informação de geometria 3011 decodifica a informação de geometria (geometria) de uma pluralidade de pontos tridimensionais de uma sequência de bits. O decodificador de informação de atributo 3012 decodifica a informação de atributo (atributo) da pluralidade de pontos tridimensionais da sequência de bits. Ainda, o dispositivo de decodificação de dados tridimensionais 3010 integra a informação de geometria decodificada e a informação de atributo decodificada para gerar uma emissão de nuvem de pontos.
[00764] Como descrito acima, o dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade realiza o processo ilustrado na figura 84. O dispositivo de codificação de dados tridimensionais codifica um ponto tridimensional tendo a informação de atributo. Primeiro, o dispositivo de codificação de dados tridimensionais calcula um valor predito da informação de atributo do ponto tridimensional (S3061). Em seguida, o dispositivo de codificação de dados tridimensionais calcula um residual de predição que é a diferença entre a informação de atributo do ponto tridimensional e o valor predito (S3062). Em seguida o dispositivo de codificação de dados tridimensionais binariza o residual de predição para gerar dados binários (S3063). Em seguida, o dispositivo de codificação de dados tridimensionais codifica por aritmética os dados binários (S3064).
[00765] Desta maneira, o dispositivo de codificação de dados tridimensionais é capaz de reduzir a quantidade de códigos dos dados a serem codificados da informação de atributo através do cálculo do residual de predição da informação de atributo, e binarização e codificação aritmética do residual de predição.
[00766] Por exemplo, em codificação aritmética (S3064), o dispositivo de codificação de dados tridimensionais usa tabelas de codificação diferentes para cada um dos bits de dados binários. Ao fazer isso, o dispositivo de codificação de dados tridimensionais pode aumentar a eficiência de codificação.
[00767] Por exemplo, em codificação aritmética (S3064), o número de tabelas de codificação a ser usado é maior para um bit de ordem menor dos dados binários.
[00768] Por exemplo, em codificação aritmética (S3064), o dispositivo de codificação de dados tridimensionais seleciona tabelas de codificação a serem usadas para codificar por aritmética um bit atual incluído em dados binários, de acordo com o valor de um bit de ordem superior com relação ao bit atual. Ao fazer isso, uma vez que o dispositivo de codificação de dados tridimensionais pode selecionar tabelas de codificação a serem usadas de acordo com o valor do bit de ordem superior, o dispositivo de codificação de dados tridimensionais pode aumentar a eficiência de codificação.
[00769] Por exemplo, em binarização (S3063), o dispositivo de codificação de dados tridimensionais: binariza um residual de predição usando uma contagem de bits fixa para gerar dados binários quando o residual de predição é menor do que um valor limiar (R_TH): e gera dados binários incluindo um primeiro código (código de n-bits) e um segundo código (código remanescente) quando o residual de predição é maior do que ou igual ao valor limiar (R_TH). O primeiro código é de uma contagem de bits fixa indicando o valor limiar (R_TH), e o segundo código (código remanescente) é obtido através de binarização, usando codificação Exponencial-Golomb, o valor obtido através de subtração do valor limiar (R_TH) do residual de predição. Em codificação aritmética (S3064), o dispositivo de codificação de dados tridimensionais usa métodos de codificação aritmética diferentes entre o primeiro código e o segundo código.
[00770] Com isso, por exemplo, uma vez que é possível codificar por aritmética o primeiro código e o segundo código usando métodos de codificação aritmética respectivamente adequados para o primeiro código e o segundo código, é possível aumentar a eficiência de codificação.
[00771] Por exemplo, o dispositivo de codificação de dados tridimensionais quantiza o residual de predição e, em binarização (S3063), binariza o residual de predição quantizado. O valor limiar (R_TH) é mudado de acordo com uma escala de quantização em quantização. Com isso, uma vez que o dispositivo de codificação de dados tridimensionais pode usar o valor limiar adequadamente de acordo com a escala de quantização, é possível aumentar a eficiência de codificação.
[00772] Por exemplo, o segundo código inclui um prefixo e um sufixo. Em codificação aritmética (S3064), o dispositivo de codificação de dados tridimensionais usa tabelas de codificação diferentes entre o prefixo e o sufixo. Desta maneira, o dispositivo de codificação de dados tridimensionais pode aumentar a eficiência de codificação.
[00773] Por exemplo, o dispositivo de codificação de dados tridimensionais inclui um processador e memória, e o processador realiza o processo acima usando a memória.
[00774] O dispositivo de decodificação de dados tridimensionais de acordo com a presente modalidade realiza o processo ilustrado na figura
85. O dispositivo de decodificação de dados tridimensionais decodifica um ponto tridimensional tendo informação de atributo. Primeiro, o dispositivo de decodificação de dados tridimensionais calcula um valor predito da informação de atributo de um ponto tridimensional (S3071). Em seguida, o dispositivo de decodificação de dados tridimensionais decodifica por aritmética os dados codificados incluídos em uma sequência de bits para gerar dados binários (S3072). Em seguida, o dispositivo de decodificação de dados tridimensionais desbinariza os dados binários para gerar um residual de predição (S3073). Em seguida, o dispositivo de decodificação de dados tridimensionais calcula um valor decodificado da informação de atributo do ponto tridimensional através da soma do valor predito e do residual de predição (S3074).
[00775] Desta maneira, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente a sequência de bits da informação de atributo gerada pelo cálculo do residual de predição da informação de atributo e binarização e decodificação por aritmética do residual de predição.
[00776] Por exemplo, em decodificação aritmética (S3072), o dispositivo de decodificação de dados tridimensionais usa tabelas de codificação diferentes para cada um de bits de dados binários. Com isso, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente a sequência de bits codificada em uma eficiência de codificação aumentada.
[00777] Por exemplo, em decodificação aritmética (S3072), o número de tabelas de codificação a serem usadas é maior para um bit inferior dos dados binários.
[00778] Por exemplo, em decodificação aritmética (S3072), o dispositivo de decodificação de dados tridimensionais seleciona tabelas de codificação a serem usadas para decodificar por aritmética um bit atual incluído em dados binários, de acordo com o valor de um bit de ordem superior com relação ao bit atual. Com isso, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente a sequência de bits codificada em uma eficiência de codificação aumentada.
[00779] Por exemplo, em desbinarização (S3073), o dispositivo de decodificação de dados tridimensionais desbinariza o primeiro código (código de n-bits) de uma contagem de bits fixa incluída nos dados binários para gerar um primeiro valor. O dispositivo de decodificação de dados tridimensionais: determina o primeiro valor ser o residual de predição quando o primeiro valor é menor do que o valor limiar (R_TH): e, quando o primeiro valor é maior do que ou igual ao valor limiar (R_YH), gera um segundo valor através da desbinarização do segundo código (código restante) que é um código Exponencial-Golomb incluído nos dados binários e soma o primeiro valor e o segundo valor, dessa maneira gerando um residual de predição. Na decodificação aritmética (S3072), o dispositivo de decodificação de dados tridimensionais usa métodos de decodificação aritmética diferentes entre o primeiro código e o segundo código.
[00780] Com isso, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente a sequência de bits codificada em uma eficiência de codificação aumentada.
[00781] Por exemplo, o dispositivo de decodificação de dados tridimensionais quantiza inverso o residual de predição e, ainda (S3074), soma o valor predito e o residual de predição quantizado inverso. O valor limiar (R_TH) é mudado de acordo com uma escala de quantização em quantização inversa. Com isso, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente a sequência de bits codificada em uma eficiência de codificação aumentada.
[00782] Por exemplo, o segundo código inclui um prefixo e um sufixo. Em decodificação aritmética (S3072), o dispositivo de decodificação de dados tridimensionais usa tabelas de codificação diferentes entre o prefixo e o sufixo. Com isso, o dispositivo de decodificação de dados tridimensionais é capaz de decodificar apropriadamente a sequência de bits codificada em uma eficiência de codificação aumentada.
[00783] Por exemplo, o dispositivo de decodificação de dados tridimensionais inclui um processador e memória, e o processador realiza o processo descrito acima usando a memória. MODALIDADE 10
[00784] Os valores preditos podem ser gerados através de um método diferente daquele na Modalidade 9. Daqui em diante, um ponto tridimensional a ser codificado é referido como um primeiro ponto tridimensional, e um ou mais pontos tridimensionais na vizinhança do primeiro ponto tridimensional são referidos como um ou mais segundos pontos tridimensionais em alguns casos.
[00785] Por exemplo, na geração de um valor predito de um item de informação de atributo (informação de atributo) de um ponto tridimensional, um valor de atributo uma vez que ele é de um ponto tridimensional mais próximo dentre pontos tridimensionais codificados e decodificados na vizinhança de um ponto tridimensional a ser codificado pode ser gerado como um valor predito. Na geração do valor predito, informação de modo de predição (PredMode) pode ser anexada a cada ponto tridimensional, e um valor predito pode ser selecionado de uma pluralidade de valores preditos para permitir geração de um valor predito. Especificamente, por exemplo, é concebível que, para número total M de modos de predição, um valor médio seja assinado para o modo de predição 0, um valor de atributo de ponto tridimensional A seja assinado para o modo de predição 1,..., e um valor de atributo de ponto tridimensional Z seja assinado para o modo de predição M-1, e o modo de predição usado para predição é anexado a uma sequência de bits para cada ponto tridimensional. Desta maneira, um primeiro valor de modo de predição indicando um primeiro modo de predição para calcular, como um valor predito, uma média de itens de informação de atributo dos pontos tridimensionais circundantes pode ser menor do que um segundo valor de modo de predição indicando um segundo modo de predição para calcular, como um valor predito, um item de informação de atributo uma vez que ele é de um ponto tridimensional circundante. Aqui, o “valor médio” como o valor predito calculado no modo de predição 0 é um valor médio dos valores de atributo dos pontos tridimensionais na vizinhança do ponto tridimensional a ser codificado.
[00786] A Figura 86 é um diagrama ilustrando um primeiro exemplo de uma tabela representando valores preditos calculados nos modos de predição de acordo com a Modalidade 10. A Figura 87 é um diagrama ilustrando exemplos de itens de informação de atributo usados como os valores preditos de acordo com a Modalidade 10. A Figura 88 é um diagrama ilustrando um segundo exemplo de uma tabela representando valores preditos calculados nos modos de predição de acordo com a modalidade 10.
[00787] O número M de modos de predição pode ser anexado a uma sequência de bits. O número M de modos de predição pode ser definido por um perfil ou um nível de padrões ao invés de anexado à sequência de bits. O número M de modos de predição pode ser também calculado a partir do número N de pontos tridimensionais usados para predição. Por exemplo, o número M de modos de predição pode ser calculado por M=N+1.
[00788] A tabela na figura 86 é um exemplo de um caso com número N de pontos tridimensionais usados para predição sendo 4 e número M de modos de predição sendo 5. Um valor predito de um item de informação de atributo do ponto b2 pode ser gerado usando os itens de informação de atributo dos pontos a0, a2, b1. Na seleção de um modo de predição a partir de uma pluralidade de modos de predição, um modo de predição para geração, como um valor predito, de um valor de atributo de cada um dos pontos a0, a1, a2, b1 pode ser selecionado de acordo com a informação de distância do ponto b2 para cada um dos pontoa a0, a1, a2, b1. O modo de predição é anexado a cada ponto tridimensional a ser codificado. O valor predito é calculado de acordo com um valor correspondendo ao modo de predição anexo.
[00789] A tabela na figura 88 é, como na figura 86, um exemplo de um caso com número N de pontos tridimensionais usados para predição sendo 4 e número M de modos de predição sendo 5. Um valor predito de um item de informação de atributo de ponto a2 pode ser gerado usando itens de informação de atributo dos pontos a0, a1. Na seleção de um modo de predição a partir de uma pluralidade de modos de predição, um modo de predição para geração, como um valor predito, de um valor de atributo para cada um dos pontos a0 e a1 pode ser selecionado de acordo com a informação de distância do ponto a2 para cada um dos pontos a0, a1. O modo de predição é anexado a cada ponto tridimensional a ser codificado. O valor predito é calculado de acordo com um valor correspondendo ao modo de predição anexado.
[00790] Quando o número de pontos vizinhos, isto é, número N de pontos tridimensionais circundantes, é menor do que quatro tal como no ponto a2 acima, um modo de predição para o qual um valor predito não é assinado pode ser escrito como “não disponível” na tabela.
[00791] Designação de valores dos modos de predição pode ser determinada de acordo com a distância do ponto tridimensional a ser codificado. Por exemplo, valores de modo de predição indicando uma pluralidade de modos de predição diminuem com distância decrescente a partir do ponto tridimensional a ser codificado para os pontos tridimensionais circundantes tendo os itens de informação de atributo usados como os valores preditos. O exemplo na figura 86 mostra que os pontos b1, a2, a1, a0 estão sequencialmente localizados mais próximo do ponto b2 como o ponto tridimensional a ser codificado. Por exemplo, no cálculo do valor predito, o item de informação de atributo do ponto b1 é calculado como o valor predito em um modo de predição indicado por um valor de modo de predição de “1” dentre dois ou mais modos de predição, e o item de informação de atributo do ponto a2 é calculado como o valor predito em um modo de predição indicado por um valor de modo de predição de “2”. Desta maneira, o valor do modo de predição indicando o modo de predição para cálculo, como o valor de predição, do item de informação de atributo do ponto b1 é menor do que o valor de modo de predição indicando o modo de predição para cálculo, como o valor predito, do item de informação de atributo do ponto a2 mais distante do ponto b2 do que o ponto b1.
[00792] Portanto, um valor de modo de predição pequeno pode ser assinado para um ponto que é mais provável ser predito e selecionado devido a uma distância curta, desta maneira reduzindo o número de bits para codificação do valor de modo de predição. Também, um valor de modo de predição pequeno pode ser preferivelmente assinado para um ponto tridimensional pertencente ao mesmo LoD que o ponto tridimensional a ser codificado.
[00793] A figura 89 é um diagrama ilustrando um terceiro exemplo de uma tabela representando valores preditos calculados nos modos de predição de acordo com a Modalidade 10. Especificamente, o terceiro exemplo é um exemplo de um caso onde um item de informação de atributo usado como um valor predito é um valor de informação de cor (YUV) de um ponto tridimensional circundante. Desta maneira, o item de informação de atributo usado como o valor predito pode ser informação de cor indicando uma cor do ponto tridimensional.
[00794] Como mostrado na figura 89, um valor predito calculado em um modo de predição indicado por um valor de modo de predição de “0” é uma média de componentes Y, U e V definindo um espaço de cor YUV. Especificamente, o valor predito inclui um Yméd de média ponderada de valores de componente Y Yb1, Ya2, Ya1, Ya0 correspondendo aos pontos b1, a2, a1, a0, respectivamente, um Uméd de média ponderada de valores de componentes U Ub1, Ua2, Ua1, Ua0 correspondendo aos pontos b1, a2, a1, a0, respectivamente, e um Vméd de média ponderada de valores de componentes V Vb1, Va2, Va1, Va0 correspondendo aos pontos b1, a2, a1, a0, respectivamente. Os valores preditos calculados em modos de predição indicados pelos valores de modo de predição de “1” a “4” incluem informação de cor dos pontos tridimensionais circundantes b1, a2, a1, a0. A informação de cor é indicada através de combinações dos valores de componentes Y, U e V.
[00795] Na figura 89, a informação de cor é indicada por um valor definido pelo espaço de cor YUV, mas não limitado ao espaço de cor YUV. A informação de cor pode ser indicada por um valor definido por um espaço de cor RGB ou um valor definido por qualquer outro espaço de cor.
[00796] Desta maneira, no cálculo do valor predito, duas ou mais médias ou dois ou mais itens de informação de atributo podem ser calculados como os valores preditos dos modos de predição. As duas ou mais médias ou dois ou mais itens de informação de atributo podem indicar dois ou mais valores componentes cada um definindo um espaço de cor.
[00797] Por exemplo, quando um modo de predição indicado por um valor de modo de predição de “2” na tabela na figura 89 é selecionado, um componente Y, um componente U e um componente V como valores de atributo do ponto tridimensional a ser codificado podem ser codificados como valores preditos Ya2, Ua2, Va2. Nesse caso, o valor de modo de predição de “2” é anexado à sequência de bits.
[00798] A figura 90 é um diagrama ilustrando um quarto exemplo de uma tabela representando valores preditos calculados nos modos de predição de acordo com a Modalidade 10. Especificamente, o quarto exemplo é um exemplo de um caso onde um item de informação de atributo usado como um valor predito é um valor de informação de refletância de um ponto tridimensional circundante. A informação de refletância é, por exemplo, informação indicando refletância R.
[00799] Como mostrado na figura 90, um valor predito calculado em um modo de predição indicado por um valor de modo de predição de “0” é Rméd de média ponderada de refletâncias Rb1, Ra2, Ra1, R0 correspondendo aos pontos b1, a2, a1, a0, respectivamente. Os valores preditos calculados em modos de predição indicados pelos valores de modo de predição de “1” a “4” são refletâncias Rb1, Ra2, Ra1, Ra0 de pontos tridimensionais circundantes b1, a2, a1, a0, respectivamente.
[00800] Por exemplo, quando um modo de predição indicado por um valor de modo de predição de “3” na tabela na figura 90 é selecionado, uma refletância como um valor de atributo de um ponto tridimensional a ser codificado pode ser codificada como valor predito Ra1. Nesse caso, o valor de modo de predição de “3” é anexado à sequência de bits.
[00801] Como mostrado nas figuras 89 e 90, o item de informação de atributo pode incluir um primeiro item de informação de atributo e um segundo item de informação de atributo diferente do primeiro item de informação de atributo. O primeiro item de informação de atributo é, por exemplo, informação de cor. O segundo item de informação de atributo é, por exemplo, informação de refletância. No cálculo do valor predito, um primeiro valor predito pode ser calculado usando o primeiro item de informação de atributo e um segundo valor predito pode ser calculado usando o segundo item de informação de atributo. MODALIDADE 11
[00802] Como um outro exemplo de codificação da informação de atributo de um ponto tridimensional usando as informações nos LoDs, será descrito um método que codifica uma pluralidade de pontos tridimensionais em ordem a partir dos pontos tridimensionais incluídos na camada inferior dos LoDs. Por exemplo, quando codificando uma pluralidade de pontos tridimensionais em ordem a partir dos pontos tridimensionais incluídos na camada inferior LoDn dos LoDs, o dispositivo de codificação de dados tridimensionais pode calcular os valores preditos dos pontos tridimensionais incluídos na LoDn usando a informação de atributo dos pontos tridimensionais incluídos em uma camada mais alta do que a LoDn dos LoDs.
[00803] A Figura 91 é um diagrama mostrando um exemplo da relação de referência. Por exemplo, no caso do exemplo mostrado na Figura 91, o dispositivo de codificação de dados tridimensionais calcula os valores preditos dos pontos tridimensionais incluídos no LoD2 usando a informação de atributo dos pontos tridimensionais incluídos no LoD0 ou no LoD1. Ainda, o dispositivo de codificação de dados tridimensionais calcula os valores preditos dos pontos tridimensionais incluídos no LoD1 usando a informação de atributo dos pontos tridimensionais incluídos no LoD0. Nesse caso, o LoD0 ou o LoD1 não precisa ser necessariamente a informação de atributo que foi codificada e decodificada. Neste caso, o dispositivo de codificação de dados tridimensionais pode usar, por exemplo, o valor antes da codificação.
[00804] Desta maneira, o dispositivo de codificação de dados tridimensionais pode gerar os valores preditos da informação de atributo dos pontos tridimensionais incluídos na LoDn usando a informação de atributo incluída no LoDn '(n' <n). Desta maneira, uma vez que a pluralidade de pontos tridimensionais incluídos na LoDn não se referem uns aos outros, o dispositivo de codificação de dados tridimensionais pode calcular em paralelo os valores preditos da pluralidade de pontos tridimensionais incluídos na LoDn.
[00805] Por exemplo, o dispositivo de codificação de dados tridimensionais gera o valor predito da informação de atributo de um ponto tridimensional calculando a média dos valores de atributo de N ou menos pontos tridimensionais dentre os pontos tridimensionais em torno de um ponto tridimensional atual a ser codificado. Ainda, o dispositivo de codificação de dados tridimensionais pode adicionar o valor de N ao cabeçalho de um fluxo de bits ou similar. Observar que o dispositivo de codificação de dados tridimensionais pode modificar o valor de N para cada ponto tridimensional e pode adicionar o valor de N para cada ponto tridimensional. Desta maneira, uma vez que um N apropriado pode ser selecionado para cada ponto tridimensional, a precisão do valor predito pode ser melhorada. Portanto, o residual predito pode ser reduzido. Ainda, o dispositivo de codificação de dados tridimensionais pode adicionar o valor de N ao cabeçalho de um fluxo de bits e pode fixar o valor de N dentro do fluxo de bits. Consequentemente, uma vez que se torna desnecessário codificar ou decodificar o valor de N para cada ponto tridimensional, a quantidade de processamento pode ser reduzida. Ainda, o dispositivo de codificação de dados tridimensionais pode codificar separadamente o valor de N para cada LoD.
Consequentemente, a eficiência da codificação pode ser melhorada selecionando um N apropriado para cada LoD.
[00806] Alternativamente, o dispositivo de codificação de dados tridimensionais pode calcular o valor predito da informação de atributo de um ponto tridimensional com o valor ponderal médio da informação de atributo de N pontos tridimensionais periféricos. Por exemplo, o dispositivo de codificação de dados tridimensionais calcula o peso usando as respectivas partes de informação de distância de um ponto tridimensional atual e N pontos tridimensionais periféricos.
[00807] Quando codificando separadamente o valor de N para cada LoD, o dispositivo de codificação de dados tridimensionais define, por exemplo, o valor de N ser maior para as camadas superiores nos LoDs e o valor de N ser menor para as camadas inferiores. A distância entre os pontos tridimensionais pertencentes às camadas superiores nos LoDs é maior do que a distância entre os pontos tridimensionais pertencentes à camada superior nos LoDs. Portanto, nas camadas superiores, existe uma possibilidade que a precisão da predição possa ser melhorada calculando a média de pontos tridimensionais mais periféricos definindo o valor de N como grande. Ainda, a distância entre pontos tridimensionais pertencentes às camadas inferiores nos LoDs é curta. Portanto, nas camadas inferiores, se torna possível realizar predição eficiente enquanto suprimindo a quantidade de processamento de média, definindo o valor de N ser pequeno.
[00808] Conforme descrito acima, o valor predito do ponto P incluído no LoDN é gerado usando o ponto circundante codificado P 'incluído no LoDN' (N '<= N). Aqui, o ponto circundante P 'é selecionado com base na distância do ponto P. Por exemplo, o valor predito da informação de atributo do ponto b2 mostrado na Figura 91 é gerado usando a informação de atributo dos pontos a0, a1 e a2.
[00809] Os pontos periféricos a serem selecionados são mudados de acordo com o valor de N descrito acima. Por exemplo, quando N = 3, os pontos a0, a1 e a2 são selecionados como os pontos circundantes do ponto b2. Quando N = 2, os pontos a1 e a2 são selecionados com base na informação de distância.
[00810] O valor predito é calculado pela média ponderada dependente da distância. Por exemplo, no exemplo mostrado na Figura 91, um valor predito b2p do ponto b2 é calculado pela média ponderada da informação de atributo do ponto a0 e do ponto a1, como mostrado nas (Fórmula J1) e (Fórmula J2). Observar que Ai é o valor da informação de atributo de um ponto ai. Ainda, d (p, q) é, por exemplo, a distância Euclidiana entre o ponto tridimensional p e o ponto tridimensional q. [Mat. 5] ... (Fórmula J1) ... (Fórmula J2)
[00811] Ainda, como mostrado nas (Fórmula J3) e (Fórmula J4), um valor predito aNp de um ponto aN é calculado pela média ponderada da informação de atributo de pontos aN-4, aN-3, aN-2 e aN-1.
[Mat. 6] ... (Fórmula J3)
... (Fórmula J4)
[00812] Ainda, o dispositivo de codificação de dados tridimensionais pode calcular o valor de diferença (residual predito) entre o valor da informação de atributo de um ponto tridimensional e o valor predito gerado a partir dos pontos circundantes e pode quantizar o residual predito calculado. Por exemplo, o dispositivo de codificação de dados tridimensionais realiza quantização dividindo o residual predito por uma escala de quantização (também chamada uma etapa de quantização). Nesse caso, quanto menor a escala de quantização, menor o erro (erro de quantização) que pode ocorrer devido à quantização. Por outro lado, quanto maior a escala de quantização, maior o erro de quantização.
[00813] Observar que o dispositivo de codificação de dados tridimensionais pode mudar a escala de quantização a ser usada para cada LoD. Por exemplo, o dispositivo de codificação de dados tridimensionais torna a escala de quantização menor para as camadas superiores e torna a escala de quantização maior para as camadas inferiores. Uma vez que o valor da informação de atributo de pontos tridimensionais pertencentes às camadas superiores pode ser usado como o valor predito da informação de atributo de pontos tridimensionais pertencentes às camadas inferiores, a eficiência de codificação pode ser melhorada suprimindo o erro de quantização que pode ocorrer nas camadas superiores tornando a escala de quantização para as camadas superiores pequena para aumentar a precisão do valor predito. Observar que o dispositivo de codificação de dados tridimensionais pode adicionar a escala de quantização usada para cada LoD a um cabeçalho ou similar. Consequentemente, uma vez que o dispositivo de decodificação de dados tridimensionais pode decodificar corretamente a escala de quantização, um fluxo de bits pode ser decodificado apropriadamente.
[00814] Ainda, o dispositivo de codificação de dados tridimensionais pode mudar adaptativamente a escala de quantização a ser usada de acordo com a importância de um ponto tridimensional atual. Por exemplo, o dispositivo de codificação de dados tridimensionais usa uma escala de quantização pequena para um ponto tridimensional de grande importância e usa uma escala de quantização grande para um ponto tridimensional de baixa importância. Aqui, a importância pode ser calculada a partir, por exemplo, do número de vezes que o ponto tridimensional atual foi referido pelos outros pontos tridimensionais no momento do cálculo do valor predito, o peso naquele momento ou similar. Por exemplo, o valor do QW que segue (Peso de Quantização) é usado como a importância. O dispositivo de codificação de dados tridimensionais define o valor do QW de um ponto tridimensional com alta importância como grande e torna a escala de quantização pequena. Consequentemente, uma vez que o erro de quantização de um ponto tridimensional com alta importância se torna pequeno, a eficiência da codificação pode ser melhorada.
[00815] A Figura 92 é um diagrama mostrando um exemplo de cálculo do QW. A QS (etapa de quantização) pode ser mudada de acordo com o LoD. QS_LoD0 é a QS para LoD0 e QS_LoD1 é a QS para LoD1.
[00816] O QW é o valor que representa a importância de um ponto tridimensional atual. Por exemplo, quando o ponto b2 é usado para cálculo do valor predito do ponto c0, o valor do QW do ponto c0 pode ser multiplicado por um peso Wb2_c0 para o ponto b2 calculado no momento da geração do valor predito do ponto c0, e o valor obtido pode ser adicionado ao valor do QW do ponto b2. Consequentemente, o valor do QW de um ponto tridimensional que tem sido usado frequentemente para geração do valor predito se torna grande, e a eficiência de predição pode ser melhorada suprimindo o erro de quantização do ponto tridimensional.
[00817] Por exemplo, o dispositivo de codificação de dados tridimensionais pode primeiro inicializar os valores dos QWs de todos os pontos tridimensionais com 1 e pode atualizar o QW de cada ponto tridimensional de acordo com uma estrutura de predição. Alternativamente, o dispositivo de codificação de dados tridimensionais pode mudar um valor inicial de acordo com a camada de um LoD, sem inicialização dos QWs de todos os pontos tridimensionais com o valor
1. Por exemplo, o dispositivo de codificação de dados tridimensionais pode fazer escala de quantização para as camadas superiores menores definindo os valores iniciais dos QWs para as camadas superiores como sendo maiores. Consequentemente, uma vez que os erros de predição para as camadas superiores podem ser suprimidos, a precisão de predição para as camadas inferiores pode ser aumentada e a eficiência de codificação pode ser melhorada.
[00818] Além disso, o dispositivo de codificação de dados tridimensionais pode converter um valor inteiro assinado (valor quantizado assinado), que é o residual predito após a quantização, em um valor inteiro não assinado (valor quantizado sem sinal). Consequentemente, quando codificando por entropia o residual predito, se torna desnecessário considerar a ocorrência de um número inteiro negativo. Observar que o dispositivo de codificação de dados tridimensionais não precisa necessariamente converter um valor inteiro assinado em um valor inteiro não assinado e pode, por exemplo, codificar separadamente por entropia um bit de sinal.
[00819] A Figura 93 é um diagrama mostrando um exemplo de cálculo de um residual predito. O residual predito é calculado subtraindo um valor predito de um valor original. Por exemplo, como mostrado na
(Fórmula J5), o residual predito b2r do ponto b2 é calculado subtraindo o valor predito b2p do ponto b2 do valor B2 da informação de atributo do ponto b2.
b2r = B2 - b2p... (Fórmula J5)
[00820] Ainda, o residual predito é quantizado ao ser dividido pela QS (Etapa de Quantização). Por exemplo, o valor quantizado b2q do ponto b2 é calculado pela (Fórmula J6). Aqui, QS_LoD1 é a QS para o LoD1. Isto é, a QS pode ser mudada de acordo com o LoD.
b2q = b2r / QS_LoD1... (Fórmula J6)
[00821] Ainda, quando usando o QW como descrito acima, o valor quantizado b2q do ponto b2 é calculado pelas (Equação J7) e (Fórmula J8). [Mat. 7] ... (Fórmula J7) ... (Fórmula J8)
[00822] Ainda, o dispositivo de codificação de dados tridimensionais converte o valor inteiro assinado, que é o valor quantizado descrito acima, em um valor inteiro não assinado como segue. Quando o valor inteiro assinado b2q é menor que 0, o dispositivo de codificação de dados tridimensionais define o valor inteiro não assinado b2u como -1 - (2 x b2q). Quando o valor inteiro assinado b2q é 0 ou mais, o dispositivo de codificação de dados tridimensionais define o valor inteiro não assinado b2u para 2 x b2q.
[00823] Ainda, o dispositivo de codificação de dados tridimensionais digitaliza e codifica o residual predito (valor inteiro não assinado) após a quantização de acordo com uma dada ordem. Por exemplo, o dispositivo de codificação de dados tridimensionais codifica uma pluralidade de pontos tridimensionais em ordem a partir dos pontos tridimensionais incluídos nas camadas superiores dos LoDs em direção às camadas inferiores.
[00824] A Figura 94 é um diagrama que mostra um exemplo dessa codificação. No caso do exemplo mostrado na Figura 94, o dispositivo de codificação de dados tridimensionais codifica uma pluralidade de pontos tridimensionais a partir do ponto a0 incluído na camada superior LoD0 na ordem de a1, a2, b0, b1, b2, c0, c1, c2,... , cN. Aqui, há uma tendência que quanto menor o LoD, mais provável que o residual predito após a quantização se torne 0. Isso pode ser devido ao que segue e similar.
[00825] Uma vez que o valor predito de um ponto tridimensional pertencente a uma camada inferior dos LoDs é gerado com referência a mais pontos tridimensionais do que o valor predito de um ponto tridimensional de uma camada superior, a precisão da predição é alta, e o residual predito se torna facilmente 0. Ainda, ao mudar a escala de quantização de acordo com a importância descrita acima e similar, quanto mais baixa a camada, maior a escala de quantização e mais provável que o residual predito após a quantização se torne 0. Desta maneira, os pontos tridimensionais da camada inferior têm mais probabilidade de ter 0 para o residual predito após a quantização. Portanto, o valor 0 é provável ser gerado consecutivamente para uma primeira sequência de códigos nas camadas inferiores. Aqui, a primeira sequência de códigos é uma sequência de códigos em que os residuais preditos após a quantização de uma pluralidade de pontos de acordo com a ordem de codificação descrita acima são dispostos como mostrado na Figura 94
[00826] Por outro lado, o dispositivo de codificação de dados tridimensionais conta o número de vezes que o valor 0 ocorre na primeira sequência de códigos e codifica o número de vezes que o valor 0 ocorre consecutivamente, ao invés dos valores consecutivos 0. Isto é, o dispositivo de codificação de dados tridimensionais gera uma segunda sequência de códigos ao substituir os residuais preditos dos valores consecutivos 0 na primeira sequência de códigos pelo número de vezes consecutivas (ZeroCnt) de 0. Consequentemente, quando há valores consecutivos 0 dos residuais preditos após a quantização, a eficiência de codificação pode ser melhorada codificando o número de vezes consecutivas de 0, em vez de codificar muitos 0s.
[00827] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar por entropia o valor de ZeroCnt. Por exemplo, o dispositivo de codificação de dados tridimensionais binariza o valor de ZeroCnt com o código unário truncado do número total T dos pontos tridimensionais codificados e codifica aritmeticamente cada bit após a binarização. A Figura 95 é um diagrama mostrando um exemplo do código unário truncado no caso onde o número total dos pontos tridimensionais codificados é T. Neste momento, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação usando uma tabela de codificação diferente para cada bit. Por exemplo, o dispositivo de codificação de dados tridimensionais usa a tabela de codificação 1 para o primeiro bit, usa a tabela de codificação 2 para o segundo bit e a tabela de codificação 3 para os bits subsequentes. Desta maneira, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência da codificação mudando a tabela de codificação para cada bit.
[00828] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar aritmeticamente ZeroCnt após binarização de ZeroCnt com um Exponencial-Golomb. Consequentemente, quando o valor de ZeroCnt se torna grande facilmente, a eficiência pode ser melhorada mais do que a codificação aritmética binarizante com o código unário truncado. Observar que o dispositivo de codificação de dados tridimensionais pode adicionar um sinalizador para alternar entre uso do código unário truncado e o uso do Exponencial-Golomb para um cabeçalho. Consequentemente, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação selecionando o melhor método de binarização. Ainda, o dispositivo de decodificação de dados tridimensionais pode decodificar corretamente um fluxo de bits ao se referir ao sinalizador incluído no cabeçalho para mudar o método de binarização.
[00829] A Figura 96 é um diagrama mostrando um exemplo de sintaxe da informação de atributo (attribute_data). A informação de atributo (attribute_data) inclui o número de zeros consecutivos (ZeroCnt), o número de dimensões do atributo (attribute_dimension) e o residual predito (valor [j] [i]).
[00830] O número de zeros consecutivos (ZeroCnt) indica o número de vezes que o valor 0 continua no residual predito após a quantização. Observar que o dispositivo de codificação de dados tridimensionais pode codificar aritmeticamente ZeroCnt após binarização de ZeroCnt.
[00831] O número de dimensões de atributo (attribute_dimension) indica o número de dimensões da informação de atributo. Por exemplo, quando a informação de atributo é a informação de cor (RGB, YUV ou similar) de um ponto tridimensional, uma vez que a informação da cor é tridimensional, o número de dimensões do atributo é definido para um valor 3. Quando a informação de atributo é a refletância, uma vez que a refletância é unidimensional, o número de dimensões do atributo é definido como um valor 1. Observar que o número de dimensões de atributo pode ser adicionado ao cabeçalho da informação de atributo de um fluxo de bits ou similar.
[00832] O residual predito (valor [j] [i]) indica o residual predito após a quantização da informação de atributo da j-ésima dimensão do i-ésimo ponto tridimensional. Por exemplo, quando a informação de atributo é informação de cor, o valor [99] [1] indica o residual predito da segunda dimensão (por exemplo, o valor G) do 100º ponto tridimensional. Ainda, quando a informação de atributo é informação de refletância, o valor
[119] [0] indica o residual predito da primeira dimensão (por exemplo, a refletância) do 120º ponto tridimensional.
[00833] Observar que, quando as condições que seguem são satisfeitas, o dispositivo de codificação de dados tridimensionais pode subtrair o valor 1 do valor [j] [i] e pode codificar por entropia o valor obtido. Neste caso, o dispositivo de decodificação de dados tridimensionais restaura o residual predito adicionando o valor 1 ao valor [j] [i] após decodificação por entropia.
[00834] As condições descritas acima são (1) quando attribute_dimension = 1 ou (2) quando attribute_dimension é 1 ou mais e quando os valores de todas as dimensões são iguais. Por exemplo, quando a informação de atributo é a refletância, uma vez que attribute_dimension = 1, o dispositivo de codificação de dados tridimensionais subtrai o valor 1 do residual predito para calcular o valor e codifica o valor calculado. O dispositivo de decodificação de dados tridimensionais calcula o residual predito adicionando o valor 1 ao valor após decodificação.
[00835] Mais especificamente, por exemplo, quando o residual predito da refletância é 10, o dispositivo de codificação de dados tridimensionais codifica o valor 9 obtido subtraindo o valor 1 do valor 10 do residual predito. O dispositivo de decodificação de dados tridimensionais adiciona o valor 1 ao valor decodificado 9 para calcular o valor 10 do residual predito.
[00836] Ainda, uma vez que attribute_dimension = 3 quando a informação de atributo é a cor, por exemplo, quando o residual predito após a quantização de cada um dos componentes R, G e B é o mesmo, o dispositivo de codificação de dados tridimensionais subtrai o valor 1 de cada residual predito e codifica o valor obtido. O dispositivo de decodificação de dados tridimensionais adiciona o valor 1 ao valor após decodificação. Mais especificamente, por exemplo, quando o residual predito de R, G e B = (1, 1, 1), o dispositivo de codificação de dados tridimensionais codifica (0, 0, 0). O dispositivo de decodificação de dados tridimensionais adiciona 1 a cadum componente de (0, 0, 0) para calcular (1, 1, 1). Ainda, quando o residual predito de R, G e B = (2, 1, 2), o dispositivo de codificação de dados tridimensionais codifica (2, 1, 2) como é. O dispositivo de decodificação de dados tridimensionais usa o (2, 1, 2) decodificado como é como o residual predito.
[00837] Desta maneira, ao prover ZeroCnt, uma vez que o padrão em que todas as dimensões são 0 como valor não é gerado, o valor obtido subtraindo 1 do valor indicado por valor pode ser codificado. Portanto, a eficiência da codificação pode ser melhorada.
[00838] O dispositivo de codificação de dados tridimensionais pode mudar o método de cálculo do valor de ZeroCnt dependendo do valor de attribute_dimension. Por exemplo, quando attribute_dimension = 3, o dispositivo de codificação de dados tridimensionais pode contar o número de vezes que os valores dos residuais preditos de todos os componentes (dimensões) se tornam 0. A Figura 97 é um diagrama que mostra um exemplo do residual predito e ZeroCnt neste caso. Por exemplo, no caso da informação de cor mostrada na Figura 97, o dispositivo de codificação de dados tridimensionais conta o número de residuais preditos consecutivos tendo 0 para todos os componentes R, G e B e adiciona o número contado a um fluxo de bits como ZeroCnt.
Consequentemente, se torna desnecessário codificar ZeroCnt para cadum componente e a sobrecarga pode ser reduzida. Portanto, a eficiência da codificação pode ser melhorada. Observar que o dispositivo de codificação de dados tridimensionais pode calcular ZeroCnt para cada dimensão mesmo quando attribute_dimension é dois ou mais, e pode adicionar o ZeroCnt calculado a um fluxo de bits.
[00839] A Figura 98 é um diagrama mostrando um outro exemplo de sintaxe da informação de atributo (attribute_data). A informação de atributo mostrada na Figura 98 inclui ainda informação de modo de predição (PredMode) em adição à informação de atributo mostrada na Figura 96.
[00840] A informação do modo de predição (PredMode) indica o modo de predição para codificar ou decodificar o valor de atributo do ponto tridimensional j-ésimo. PredMode assume valores de um valor 0 a M-1 (M é o número total de modos de predição). Quando PredMode não está incluído em um fluxo de bits (quando maxdiff>=Thfix&&NumPredMode[i]> 1, que é uma condição, não é satisfeito), o dispositivo de decodificação de dados tridimensionais pode estimar que PredMode tem um valor 0.
[00841] Aqui, maxdiff é o valor de diferença absoluta máxima da informação de atributo de uma pluralidade de pontos tridimensionais que podem ser referidos. Thfix[i] é um valor-limite predefinido. Ainda, o valor 0 da informação do modo de predição é, por exemplo, o modo de predição que usa a média da informação de atributo da pluralidade de pontos tridimensionais que podem ser referidos como o valor predito. Isto é, quando a diferença entre a pluralidade de partes de informação de atributo que podem ser referidas é menor do que um valor predefinido, um modo de predição predefinido é usado. Ainda, NumPredMode[i] indica o número de modos de predição disponíveis. Isto é, quando o número de modos de predição disponíveis é 1, o modo de predição predefinido é usado.
[00842] Observar que o dispositivo de decodificação de dados tridimensionais pode usar não apenas o valor 0, mas qualquer valor predefinido de 0 a M-1 como o valor estimado. Ainda, o valor estimado no caso onde PredMode não está incluído em um fluxo de bits pode ser adicionado separadamente a um cabeçalho ou similar.
[00843] O dispositivo de codificação de dados tridimensionais pode codificar aritmeticamente PredMode através da binarização de PredMode com o código unário truncado usando o número de modos de predição aos quais o valor predito é assinado.
[00844] A Figura 99 é um fluxograma do processamento de codificação de dados tridimensionais de acordo com a presente modalidade. Primeiro, o dispositivo de codificação de dados tridimensionais codifica informação de geometria (geometria) (S6501). Por exemplo, o dispositivo de codificação de dados tridimensionais realiza codificação usando uma representação de “octree”.
[00845] Em seguida, o dispositivo de codificação de dados tridimensionais converte a informação de atributo (S6502). Por exemplo, após a codificação da informação de geometria, quando a posição de um ponto tridimensional é mudada devido à quantização ou similar, o dispositivo de codificação de dados tridimensionais designa novamente a informação de atributo do ponto tridimensional original para o ponto tridimensional após a mudança. Observar que o dispositivo de codificação de dados tridimensionais pode interpolar o valor da informação de atributo de acordo com a quantidade de mudança da posição para realizar a nova designação. Por exemplo, o dispositivo de codificação de dados tridimensionais detecta N pontos tridimensionais antes da mudança perto da posição tridimensional após a mudança, realiza a média ponderada do valor da informação de atributo dos N pontos tridimensionais com base na distância da posição tridimensional após a mudança para cada um dos N pontos tridimensionais, e determina o valor obtido como o valor da informação de atributo do ponto tridimensional após a mudança. Ainda, quando dois ou mais pontos tridimensionais são mudados para a mesma posição tridimensional devido à quantização ou similar, o dispositivo de codificação de dados tridimensionais pode designar o valor médio da informação de atributo nos dois ou mais pontos tridimensionais antes da mudança como o valor da informação de atributo após a mudança.
[00846] Em seguida, o dispositivo de codificação de dados tridimensionais codifica a informação de atributo (S6503). Por exemplo, quando codificando uma pluralidade de partes de informação de atributo, o dispositivo de codificação de dados tridimensionais pode codificar a pluralidade de partes de informação de atributo em ordem. Por exemplo, quando codificando a cor e a refletância como a informação de atributo, o dispositivo de codificação de dados tridimensionais gera um fluxo de bits ao qual o resultado de codificação da refletância é adicionado após o resultado de codificação da cor. Observar que uma pluralidade de resultados de codificação de informação de atributo adicionada a um fluxo de bits pode estar em qualquer ordem.
[00847] Ainda, o dispositivo de codificação de dados tridimensionais pode adicionar a informação indicando a localização inicial dos dados codificados de cada informação de atributo em um fluxo de bits a um cabeçalho ou similar. Consequentemente, uma vez que o dispositivo de decodificação de dados tridimensionais pode decodificar seletivamente a informação de atributo que precisa ser decodificada, o processamento de decodificação da informação de atributo que não precisa ser decodificada pode ser omitido. Portanto, a quantidade de processamento para o dispositivo de decodificação de dados tridimensional pode ser reduzida. Ainda, o dispositivo de codificação de dados tridimensionais pode codificar uma pluralidade de partes de informação de atributo em paralelo e pode integrar os resultados de codificação a um fluxo de bits. Consequentemente, o dispositivo de codificação de dados tridimensionais pode codificar uma pluralidade de partes de informação de atributo em alta velocidade.
[00848] A Figura 100 é um fluxograma do processamento de codificação de informação de atributo (S6503). Primeiro, o dispositivo de codificação de dados tridimensional define LoDs (S6511). Isto é, o dispositivo de codificação de dados tridimensionais designa cada ponto tridimensional a qualquer um de uma pluralidade de LoDs.
[00849] Em seguida, o dispositivo de codificação de dados tridimensionais inicia um ciclo por LoD (S6512). Isto é, o dispositivo de codificação de dados tridimensionais realiza repetidamente o processamento das etapas S6513 a S6521 para cada LoD.
[00850] Em seguida, o dispositivo de codificação de dados tridimensionais inicia um ciclo por ponto tridimensional (S6513). Isto é, o dispositivo de codificação de dados tridimensionais realiza repetidamente o processamento das etapas S6514 a S6520 para cada ponto tridimensional.
[00851] Primeiro, o dispositivo de codificação de dados tridimensionais busca uma pluralidade de pontos circundantes, que são pontos tridimensionais que existem nos arredores de um ponto tridimensional atual e que são usados para o cálculo do valor predito dos pontos tridimensionais atuais (S6514). Em seguida, o dispositivo de codificação de dados tridimensionais calcula a média ponderada do valor da informação de atributo da pluralidade de pontos circundantes e define o valor obtido para o valor predito P (S6515). Em seguida, o dispositivo de codificação de dados tridimensionais calcula o residual predito, que é a diferença entre a informação de atributo do ponto tridimensional atual e o valor predito (S6516). Em seguida, o dispositivo de codificação de dados tridimensionais calcula o valor quantizado através da quantização do residual predito (S6517). Em seguida, o dispositivo de codificação de dados tridimensionais codifica aritmeticamente o valor quantizado (S6518).
[00852] Ainda, o dispositivo de codificação de dados tridimensionais calcula o valor quantizado inverso por quantização inversa do valor quantizado (S6519). Em seguida, o dispositivo de codificação de dados tridimensionais gera o valor decodificado adicionando o valor predito ao valor quantizado inverso (S6520). Em seguida, o dispositivo de codificação de dados tridimensionais termina o ciclo na unidade de ponto tridimensional (S6521). Ainda, o dispositivo de codificação de dados tridimensionais termina o ciclo na unidade de LoD (S6522).
[00853] A Figura 101 é um fluxograma do processamento de codificação residual predito (S6518). Primeiro, o dispositivo de codificação de dados tridimensionais converte um residual predito de um valor inteiro assinado em um valor inteiro não assinado (S6531).
[00854] Quando nem todos os residuais preditos foram processados (Não em S6532), o dispositivo de codificação de dados tridimensionais determina se o valor do residual predito a ser processado é zero (S6533). Quando o valor do residual predito a ser processado é zero (Sim em S6533), o dispositivo de codificação de dados tridimensionais aumenta ZeroCnt em 1 (S6534) e retorna para a etapa S6532.
[00855] Quando o valor do residual predito a ser processado não é zero (Não em S6533), o dispositivo de codificação de dados tridimensionais codifica ZeroCnt e redefine ZeroCnt para zero (S6535). Ainda, o dispositivo de codificação de dados tridimensionais codifica o residual predito a ser processado (S6536) e retorna para a etapa S6532. Por exemplo, o dispositivo de codificação de dados tridimensionais realiza codificação aritmética binária. Ainda, o dispositivo de codificação de dados tridimensionais pode subtrair o valor 1 do residual predito e codificar o valor obtido.
[00856] Ainda, o processamento das etapas S6533 a S6536 é realizado repetidamente para cada residual predito. Ainda, quando todos os residuais preditos tiverem sido processados (Sim em S6532), o dispositivo de codificação de dados tridimensional termina o processamento.
[00857] A Figura 102 é um fluxograma do processamento de decodificação de dados tridimensionais de acordo com a presente modalidade. Primeiro, o dispositivo de decodificação de dados tridimensionais decodifica informação de geometria (geometria) de um fluxo de bits (S6541). Por exemplo, o dispositivo de decodificação de dados tridimensionais realiza decodificação usando uma representação de “octree”.
[00858] Em seguida, o dispositivo de decodificação de dados tridimensionais decodifica a informação de atributo do fluxo de bits (S6542). Por exemplo, quando decodificando uma pluralidade de partes de informação de atributo, o dispositivo de decodificação de dados tridimensionais pode decodificar a pluralidade de partes de informação de atributo em ordem. Por exemplo, quando decodificando a cor e a refletância como a informação de atributo, o dispositivo de decodificação de dados tridimensionais decodifica o resultado de codificação da cor e o resultado de codificação da refletância de acordo com a ordem em que são adicionados ao fluxo de bits. Por exemplo, quando o resultado de codificação da refletância é adicionado após o resultado de codificação da cor em um fluxo de bits, o dispositivo de decodificação de dados tridimensionais decodifica o resultado da codificação da cor e, em seguida, decodifica o resultado de codificação da refletância. Observar que o dispositivo de decodificação de dados tridimensionais pode decodificar os resultados de codificação da informação de atributo adicionada a um fluxo de bits em qualquer ordem.
[00859] Ainda, o dispositivo de decodificação de dados tridimensionais pode obter a informação indicando a localização inicial dos dados codificados de cada informação de atributo em um fluxo de bits através da decodificação de um cabeçalho ou similar. Consequentemente, uma vez que o dispositivo de decodificação de dados tridimensionais pode decodificar seletivamente a informação de atributo que precisa ser decodificada, o processamento de decodificação da informação de atributo que não precisa ser decodificado pode ser omitido. Portanto, a quantidade de processamento para o dispositivo de decodificação de dados tridimensional pode ser reduzida. Ainda, o dispositivo de decodificação de dados tridimensionais pode decodificar uma pluralidade de partes de informação de atributo em paralelo e pode integrar os resultados da decodificação em uma nuvem de pontos tridimensionais. Consequentemente, o dispositivo de decodificação de dados tridimensionais pode decodificar uma pluralidade de partes de informação de atributo em alta velocidade.
[00860] A Figura 103 é um fluxograma do processamento de decodificação de informação de atributo (S6542). Primeiro, o dispositivo de decodificação de dados tridimensional define LoDs (S6551). Isto é, o dispositivo de decodificação de dados tridimensionais designa cada um de uma pluralidade de pontos tridimensionais tendo as informações de geometria decodificada para qualquer um de uma pluralidade de LoDs. Por exemplo, este método de designação é o mesmo método que o método de designação usado pelo dispositivo de codificação de dados tridimensionais.
[00861] Em seguida, o dispositivo de decodificação de dados tridimensionais inicia um ciclo por LoD (S6552). Isto é, o dispositivo de decodificação de dados tridimensionais realiza repetidamente o processamento das etapas S6553 a S6559 para cada LoD.
[00862] Em seguida, o dispositivo de decodificação de dados tridimensionais inicia um loop por ponto tridimensional (S6553). Isto é, o dispositivo de decodificação de dados tridimensionais executa repetidamente o processamento das etapas S6554 a S6558 para cada ponto tridimensional.
[00863] Primeiro, o dispositivo de decodificação de dados tridimensionais busca uma pluralidade de pontos circundantes, que são pontos tridimensionais que existem nos arredores de um ponto tridimensional atual e que são usados para cálculo do valor predito do ponto tridimensional atual (S6554). Em seguida, o dispositivo de decodificação de dados tridimensionais calcula a média ponderada do valor da informação de atributo da pluralidade de pontos circundantes e define o valor obtido para o valor predito P (S6555). Observar que esses processamentos são iguais aos processamentos no dispositivo de codificação de dados tridimensional.
[00864] Em seguida, o dispositivo de decodificação de dados tridimensionais decodifica aritmeticamente o valor quantizado de um fluxo de bits (S6556). Além disso, o dispositivo de decodificação de dados tridimensionais calcula o valor quantizado inverso realizando quantização inversa do valor quantizado decodificado (S6557). Em seguida, o dispositivo de decodificação de dados tridimensionais gera o valor decodificado adicionando o valor predito ao valor quantizado inverso (S6558). Em seguida, o dispositivo de decodificação de dados tridimensionais termina o ciclo por ponto tridimensional (S6559). Além disso, o dispositivo de decodificação de dados tridimensionais termina o ciclo por LoD (S6560).
[00865] A Figura 104 é um fluxograma do processamento de decodificação residual predito (S6556). Primeiro, o dispositivo de decodificação de dados tridimensional decodifica ZeroCnt de um fluxo de bits (S6561). Quando nem todos os residuais preditos foram processados (Não em S6562), o dispositivo de decodificação de dados tridimensionais determina se ZeroCnt é maior que 0 (S6563).
[00866] Quando ZeroCnt é maior que zero (Sim em S6563), o dispositivo de decodificação de dados tridimensionais define o residual predito a ser processado como 0 (S6564). Em seguida, o dispositivo de decodificação de dados tridimensionais subtrai 1 de ZeroCnt (S6565) e retorna para a etapa S6562.
[00867] Quando ZeroCnt é zero (Não em S6563), o dispositivo de decodificação de dados tridimensionais decodifica o residual predito a ser processado (S6566). Por exemplo, o dispositivo de decodificação de dados tridimensionais usa decodificação aritmética binária. Além disso, o dispositivo de decodificação de dados tridimensionais pode adicionar o valor 1 ao residual predito decodificado.
[00868] Em seguida, o dispositivo de decodificação de dados tridimensionais decodifica ZeroCnt, define o valor obtido para ZeroCnt (S6567) e retorna para a etapa S6562.
[00869] Ainda, o processamento das etapas S6563 a S6567 é realizado repetidamente para cada residual predito. Além disso, quando todos os residuais preditos foram processados (Sim em S6562), o dispositivo de codificação de dados tridimensionais converte uma pluralidade de residuais preditos decodificados de valores inteiros não assinados em valores inteiros assinados (S6568).
[00870] A Figura 105 é um diagrama de blocos de codificador de informação de atributo 6500 incluído no dispositivo de codificação de dados tridimensionais. O codificador de informação de atributo 6500 inclui gerador de LoD 6501, buscador 6502, preditor 6503, subtrator 6504, quantizador 6505, quantizador inverso 6506, reconstrutor 6507 e memória 6508.
[00871] O gerador de LoD 6501 gera LoDs usando a informação de geometria de pontos tridimensionais. O buscador 6502 busca pontos tridimensionais vizinhos de cada ponto tridimensional usando o resultado da geração de LoD e a informação de distância entre pontos tridimensionais. O preditor 6503 gera o valor predito da informação de atributo de um ponto tridimensional atual. Ainda, o preditor 6503 designa o valor predito a uma pluralidade de modos de predição 0 a M-1 e seleciona o modo de predição a ser usado a partir da pluralidade de modos de predição.
[00872] O subtrator 6504 gera o residual predito através da subtração do valor predito da informação de atributo. O quantizador 6505 quantiza o residual predito da informação de atributo. O quantizador inverso 6506 realiza quantização inversa do residual predito após a quantização. O reconstrutor 6507 gera o valor decodificado adicionando o valor predito e o residual predito após a quantização inversa. A memória 6508 armazena o valor (valor decodificado) da informação de atributo de cada ponto tridimensional decodificado. A informação de atributo do ponto tridimensional decodificado armazenado na memória 6508 é utilizada para predição de um ponto tridimensional não codificado pelo preditor 6503.
[00873] O codificador aritmético 6509 calcula ZeroCnt a partir do residual predito após a quantização e codifica aritmeticamente ZeroCnt. Ainda, o codificador aritmético 6509 codifica aritmeticamente o residual predito diferente de zero após a quantização. O codificador aritmético 6509 pode binarizar o residual predito antes da codificação aritmética. Além disso, o codificador aritmético 6509 pode gerar e codificar vários tipos de informação de cabeçalho. Além disso, o codificador aritmético 6509 pode codificar aritmeticamente a informação do modo de predição (PredMode) indicando o modo de predição usado para codificação pelo preditor 6503 e pode adicionar a informação do modo de predição a um fluxo de bits.
[00874] A Figura 106 é um diagrama de blocos do decodificador de informação de atributo 6510 incluído no dispositivo de decodificação de dados tridimensionais. O decodificador de informação de atributo 6510 inclui decodificador aritmético 6511, gerador de LoD 6512, buscador 6513, preditor 6514, quantizador inverso 6515, reconstrutor 6516 e a memória 6517.
[00875] O decodificador aritmético 6511 decodifica aritmeticamente ZeroCnt e o residual predito incluído em um fluxo de bits. Ainda, o decodificador aritmético 6511 decodifica vários tipos de informação de cabeçalho. Além disso, o decodificador aritmético 6511 decodifica aritmeticamente a informação do modo de predição (PredMode) do fluxo de bits e envia a informação do modo de predição obtida para o preditor
6514.
[00876] O gerador de LoD 6512 gera LoDs usando a informação de geometria de pontos tridimensionais decodificados. O buscador 6513 busca os pontos tridimensionais vizinhos de cada ponto tridimensional usando o resultado da geração de LoD e a informação de distância entre os pontos tridimensionais.
[00877] O preditor 6514 gera o valor predito da informação de atributo de um ponto tridimensional atual a ser decodificado. O quantizador inverso 6515 realiza quantização inversa do residual predito decodificado aritmeticamente. O reconstrutor 6516 gera o valor decodificado adicionando o valor predito e o residual predito após a quantização inversa. A memória 6517 armazena o valor (valor decodificado) da informação de atributo de cada ponto tridimensional decodificado. A informação de atributo do ponto tridimensional decodificado armazenado na memória 6517 é utilizada para predição de um ponto tridimensional não decodificado pelo preditor 6514.
[00878] Daqui em diante, uma modificação da presente modalidade será descrita. Na presente modalidade, embora o exemplo tenha sido mostrado em que os pontos tridimensionais são codificados na ordem das camadas superiores para as camadas inferiores dos LoDs como a ordem de codificação, não está necessariamente limitado a isso. Por exemplo, pode ser usado um método que digitaliza na ordem das camadas inferiores para as camadas superiores dos LoDs. Observar que, também neste caso, o dispositivo de codificação de dados tridimensionais pode codificar o número de vezes que o valor 0 é consecutivo como ZeroCnt.
[00879] Ainda, na presente modalidade, embora o exemplo tenha sido mostrado em que os LoDs são construídos a partir dos pontos tridimensionais, e a codificação é realizada com base nas informações dos LoDs, ele não é necessariamente limitado a isso. Por exemplo, o dispositivo de codificação de dados tridimensionais ou o dispositivo de decodificação de dados tridimensionais pode gerar códigos de Morton usando a informação de geometria de pontos tridimensionais e pode realizar a codificação ou decodificação na ordem dos códigos de Morton. Consequentemente, uma vez que o tempo de processamento para gerar os LoDs pode ser reduzido, uma velocidade mais alta pode ser realizada.
[00880] Ainda, na presente modalidade, embora o exemplo tenha sido mostrado em que o residual predito de cada camada dos LoDs é calculado, o residual predito calculado é quantizado e o residual predito após a quantização é codificado, ele não é necessariamente limitado a esse. Por exemplo, o dispositivo de codificação de dados tridimensionais pode usar um sistema que gera o residual predito das camadas inferiores e, em seguida, realiza a codificação realimentando o residual predito das camadas inferiores para as camadas superiores. Por exemplo, o dispositivo de codificação de dados tridimensionais pode aplicar esse sistema em um sistema que adiciona o residual predito das camadas inferiores com peso ao valor do atributo (informações de atributo) das camadas superiores usadas para predição e codifica o valor do atributo após adição como o valor de atributo dos pontos tridimensionais nas camadas superiores, quando codificando o residual predito. Consequentemente, o residual predito pode ser codificado eficientemente e a eficiência de codificação pode ser melhorada.
[00881] Ainda, o dispositivo de codificação de dados tridimensionais pode mudar entre usar ou não o método de codificação usando ZeroCnt descrito na presente modalidade por WLD, SPC ou volume. Neste caso, o dispositivo de codificação de dados tridimensionais pode adicionar a informação indicando se o método de codificação usando ZeroCnt foi aplicado ou não à informação do cabeçalho. Consequentemente, o dispositivo de decodificação de dados tridimensionais pode realizar decodificação apropriadamente. Como um exemplo do método de mudança, por exemplo, o dispositivo de codificação de dados tridimensionais conta o número de vezes de ocorrência do residual predito tendo um valor de 0 em relação a um volume. Quando o valor de contagem excede um valor limiar predefinido, o dispositivo de codificação de dados tridimensionais aplica o método usando ZeroCnt para o próximo volume, e quando o valor de contagem é igual ou menor do que o valor limiar, o dispositivo de codificação de dados tridimensionais não aplica o método usando ZeroCnt para o próximo volume. Consequentemente, uma vez que o dispositivo de codificação de dados tridimensionais pode mudar apropriadamente se deve ou não aplicar o método de codificação usando ZeroCnt de acordo com a característica de um ponto tridimensional a ser codificado, a eficiência da codificação pode ser melhorada.
[00882] Daqui em diante, uma outra técnica (modificação) da presente modalidade será descrita. O dispositivo de codificação de dados tridimensionais digitaliza e codifica os residuais preditos (valores inteiros não assinados) após a quantização de acordo com uma certa ordem. Por exemplo, o dispositivo de codificação de dados tridimensionais codifica uma pluralidade de pontos tridimensionais dos pontos tridimensionais incluídos nas camadas inferiores de LoDs em direção às camadas superiores em ordem.
[00883] A Figura 107 é um diagrama mostrando um exemplo dessa codificação. No exemplo mostrado na Figura 107, o dispositivo de codificação de dados tridimensionais codifica uma pluralidade de pontos tridimensionais do ponto cN incluído na camada inferior LoD2 na ordem de c2, c1, c0, b2, b1, b0, a2, a1 e a0. Aqui, há uma tendência que quanto menor o LoD, mais provável que o residual predito após a quantização se torne 0. Isso pode ser devido ao que segue e similar.
[00884] Uma vez que o valor predito de um ponto tridimensional pertencente a uma camada inferior dos LoDs é gerado com referência a mais pontos tridimensionais do que o valor predito de um ponto tridimensional de uma camada superior, a precisão da predição é alta, e o próprio residual predito se torna 0 facilmente. Ainda, ao modificar a escala de quantização adaptativa descrita acima, quanto mais baixa a camada, maior a escala de quantização e mais provável que o residual predito após a quantização se torne 0. Desta maneira, os pontos tridimensionais da camada inferior são mais prováveis ter 0 para o residual predito após a quantização. Portanto, o valor 0 é provável ser gerado consecutivamente para uma primeira sequência de codificação nas camadas inferiores.
[00885] Por outro lado, o dispositivo de codificação de dados tridimensionais conta o número de vezes que o valor 0 ocorre na primeira sequência de códigos e codifica o número de vezes que o valor 0 ocorre consecutivamente, ao invés dos valores consecutivos 0. Consequentemente, quando há valores consecutivos 0 dos residuais preditos após a quantização, a eficiência da codificação pode ser melhorada codificando o número de vezes consecutivas de 0 (ZeroCnt), ao invés de codificar muitos 0s.
[00886] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar a informação indicando o número total de vezes de ocorrência do valor 0. Consequentemente, a sobrecarga de codificação de ZeroCnt pode ser reduzida e a eficiência da codificação pode ser melhorada.
[00887] Por exemplo, o dispositivo de codificação de dados tridimensionais codifica o número total de residuais preditos com um valor de 0 como TotalZeroCnt. Consequentemente, no exemplo mostrado na Figura 107, no momento quando o dispositivo de decodificação de dados tridimensionais decodifica o segundo ZeroCnt (valor 1) incluído na segunda sequência de codificacao, o número total de ZeroCnts decodificados será N + 1 (= TotalZeroCnt). Portanto, o dispositivo de decodificação de dados tridimensionais pode identificar que 0 não ocorre depois disso. Portanto, subsequentemente, se torna desnecessário para o dispositivo de codificação de dados tridimensionais codificar ZeroCnt para cada valor, e a quantidade de códigos pode ser reduzida.
[00888] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar por entropia TotalZeroCnt. Por exemplo, o dispositivo de codificação de dados tridimensionais binariza o valor de TotalZeroCnt com o código unário truncado do número total T dos pontos tridimensionais codificados e codifica aritmeticamente cada bit após a binarização. Neste momento, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação usando uma tabela de codificação diferente para cada bit. Por exemplo, o dispositivo de codificação de dados tridimensionais usa a tabela de codificação 1 para o primeiro bit, usa a tabela de codificação 2 para o segundo bit e a tabela de codificação 3 para os bits subsequentes. Desta maneira, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência da codificação mudando a tabela de codificação para cada bit.
[00889] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar aritmeticamente TotalZeroCnt após binarização de TotalZeroCnt com um Exponencial-Golomb. Consequentemente, quando o valor de TotalZeroCnt se torna facilmente grande, a eficiência pode ser melhorada mais do que a codificação aritmética binarizante com o código unário truncado. Observar que o dispositivo de codificação de dados tridimensionais pode adicionar um sinalizador para mudar entre uso do código unário truncado e uso do Exponencial-Golomb para um cabeçalho. Consequentemente, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação selecionando o melhor método de binarização. Ainda, o dispositivo de decodificação de dados tridimensionais pode decodificar corretamente um fluxo de bits ao se referir ao sinalizador incluído no cabeçalho para mudar o método de binarização.
[00890] A Figura 108 é um diagrama que mostra um exemplo de sintaxe da informação de atributo (attribute_data) na presente modificação. A informação de atributo (attribute_data) mostrada na Figura 108 inclui ainda o número total de zeros (TotalZeroCnt) em adição à informação de atributo mostrada na Figura 96. Observar que a outra informação é igual àquela da Figura 96. O número total de zeros (TotalZeroCnt) indica o número total dos residuais preditos com um valor de 0 após a quantização.
[00891] Ainda, o dispositivo de codificação de dados tridimensionais pode mudar o método de cálculo dos valores de TotalZeroCnt e ZeroCnt dependendo do valor de attribute_dimension. Por exemplo, quando attribute_dimension = 3, o dispositivo de codificação de dados tridimensionais pode contar o número de vezes que os valores dos residuais preditos de todos os componentes (dimensões) se tornam 0. Figura 109 é um diagrama mostrando um exemplo do residual predito, ZeroCnt e TotalZeroCnt neste caso. Por exemplo, no caso da informação de cor mostrada na Figura 109, o dispositivo de codificação de dados tridimensionais conta o número de residuais preditos consecutivos tendo 0 para todos os componentes R, G e B e adiciona o número contado a um fluxo de bits como TotalZeroCnt e ZeroCnt. Consequentemente, se torna desnecessário codificar Total ZeroCnt e ZeroCnt para cadum componente, e a sobrecarga pode ser reduzida. Portanto, a eficiência da codificação pode ser melhorada. Observar que o dispositivo de codificação de dados tridimensionais pode calcular TotalZeroCnt e ZeroCnt para cada dimensão mesmo quando attribute_dimension é dois ou mais, e pode adicionar o TotalZeroCnt e o ZeroCnt calculados a um fluxo de bits.
[00892] A Figura 110 é um fluxograma do processamento de codificação residual predito (S6518) na presente modificação. Primeiro, o dispositivo de codificação de dados tridimensionais converte um residual predito de um valor inteiro assinado em um valor inteiro não assinado (S6571). Em seguida, o dispositivo de codificação de dados tridimensional codifica TotalZeroCnt (S6572).
[00893] Quando nem todos os residuais preditos foram processados (Não em S6573), o dispositivo de codificação de dados tridimensionais determina se o valor do residual predito a ser processado é zero (S6574). Quando o valor do residual predito a ser processado é zero (Sim em S6574), o dispositivo de codificação de dados tridimensionais aumenta ZeroCnt em 1 (S6575) e retorna para a etapa S6573.
[00894] Quando o valor do residual predito a ser processado não é zero (Não em S6574), o dispositivo de codificação de dados tridimensionais determina se TotalZeroCnt é maior que 0 (S6576). Quando TotalZeroCnt é maior que 0 (Sim em S6576), o dispositivo de codificação de dados tridimensional codifica ZeroCnt e define TotalZeroCnt como TotalZeroCnt - ZeroCnt (S6577).
[00895] Após a etapa S6577, ou quando TotalZeroCnt é 0 (Não em
S6576), o dispositivo de codificação de dados tridimensionais codifica o residual predito, redefine ZeroCnt para 0 (S6578) e retorna para a etapa S6573. Por exemplo, o dispositivo de codificação de dados tridimensionais executa codificação aritmética binária. Ainda, o dispositivo de codificação de dados tridimensionais pode subtrair o valor 1 do residual predito e codificar o valor obtido.
[00896] Ainda, o processamento das etapas S6574 a S6578 é repetidamente realizado para cada residual predito. Além disso, quando todos os residuais preditos foram processados (Sim em S6573), o dispositivo de codificação de dados tridimensional termina o processamento.
[00897] A Figura 111 é um fluxograma do processamento de decodificação residual predito (S6556) na presente modificação. Primeiro, o dispositivo de decodificação de dados tridimensional decodifica TotalZeroCnt de um fluxo de bits (S6581). Em seguida, o dispositivo de decodificação de dados tridimensional decodifica ZeroCnt do fluxo de bits e define TotalZeroCnt para TotalZeroCnt - ZeroCnt (S6582).
[00898] Quando nem todos os residuais preditos foram processados (Não em S6583), o dispositivo de decodificação de dados tridimensionais determina se ZeroCnt é maior que 0 (S6584).
[00899] Quando ZeroCnt é maior que zero (Sim em S6584), o dispositivo de decodificação de dados tridimensionais define o residual predito a ser processado para 0 (S6585). Em seguida, o dispositivo de decodificação de dados tridimensionais subtrai 1 de ZeroCnt (S6586) e retorna para a etapa S6583.
[00900] Quando ZeroCnt é zero (Não em S6584), o dispositivo de decodificação de dados tridimensionais decodifica o residual predito a ser processado (S6587). Por exemplo, o dispositivo de decodificação de dados tridimensionais usa decodificação aritmética binária. Além disso,
o dispositivo de decodificação de dados tridimensionais pode adicionar o valor 1 ao residual predito decodificado.
[00901] Em seguida, o dispositivo de decodificação de dados tridimensionais determina se TotalZeroCnt é maior que 0 (S6588). Quando TotalZeroCnt é maior que 0 (Sim em S6588), o dispositivo de decodificação de dados tridimensionais decodifica ZeroCnt, define o valor obtido para ZeroCnt, define TotalZeroCnt para TotalZeroCnt - ZeroCnt (S6589) e retorna para a etapa S6583. Ainda, quando TotalZeroCnt é 0 (Não em S6588), o dispositivo de decodificação tridimensional retorna para a etapa S6583.
[00902] Ainda, o processamento das etapas S6584 a S6589 é realizado repetidamente para cada residual predito. Ainda, quando todos os residuais preditos foram processados (Sim em S6583), o dispositivo de codificação de dados tridimensionais converte o residual predito decodificado de um valor inteiro não assinado em um valor inteiro assinado (S6590).
[00903] Como declarado acima, o dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade realiza o processo mostrado pela Figura 112. O dispositivo de codificação de dados tridimensionais calcula valores de diferença (por exemplo, residuais de predição), cada um dos quais é uma diferença entre (i) uma correspondente de partes de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos e (ii) um valor predito correspondente à informação de atributo correspondente (S6591). O dispositivo de codificação de dados tridimensionais gera uma segunda sequência de códigos incluindo a primeira informação (por exemplo, ZeroCnt) e a segunda informação (por exemplo, valor), a primeira informação indicando um número total de valores de diferença zero consecutivos em uma primeira sequência de códigos em que os valores de diferença são arranjados, a segunda informação indicando um valor de um valor de diferença diferente de zero incluído nos valores de diferença, os valores de diferença zero sendo incluídos nos valores de diferença e tendo um valor de 0 (S6592). O dispositivo de codificação de dados tridimensionais gera um fluxo de bits incluindo a segunda sequência de códigos (S6593).
[00904] De acordo com isso, uma vez que o dispositivo de codificação de dados tridimensionais pode reduzir a quantidade de código no caso de valores de diferença consecutivos tendo um valor de zero utilizando a primeira informação, a eficiência de codificação pode ser melhorada.
[00905] Por exemplo, como mostrado pela Figura 97, cada uma das partes de informação de atributo inclui componentes, cada um dos valores de diferença inclui componentes de diferença correspondendo aos componentes, a primeira informação indica o número total dos valores de diferença zero cada um incluindo os componentes de diferença que são todos 0, e a segunda informação indica valores de componentes de diferença, pelo menos um dos quais não é 0 e que estão incluídos no valor de diferença diferente de zero.
[00906] De acordo com isso, uma vez que o dispositivo de codificação de dados tridimensionais pode reduzir a quantidade de códigos comparado com o caso onde a primeira informação é provida para cadum componente, a eficiência da codificação pode ser melhorada.
[00907] Por exemplo, quando pelo menos dois dos valores dos componentes de diferença incluídos no valor de diferença diferente de zero são diferentes, a segunda informação indica os valores dos componentes de diferença, e quando todos os valores dos componentes de diferença incluídos no valor de diferença diferente de zero são idênticos, a segunda informação indica um valor obtido subtraindo 1 de cada um dos valores dos componentes de diferença.
[00908] De acordo com isso, uma vez que o dispositivo de codificação de dados tridimensionais pode reduzir a quantidade de códigos, a eficiência de codificação pode ser melhorada.
[00909] Por exemplo, quando cada uma das partes de informação de atributo inclui pelo menos dois componentes, a segunda informação indica valores dos pelo menos dois componentes, e quando cada uma das partes de informação de atributo inclui um componente, a segunda informação indica um valor obtido por subtraindo 1 de um valor do um componente.
[00910] De acordo com isso, uma vez que o dispositivo de codificação de dados tridimensionais pode reduzir a quantidade de códigos, a eficiência da codificação pode ser melhorada.
[00911] Por exemplo, os pontos tridimensionais são classificados em camadas (por exemplo, LoDs), com base em informação de geometria dos três pontos tridimensionais, e os valores de diferença são dispostos para cada uma das camadas na primeira sequência de codificação.
[00912] Por exemplo, o dispositivo de codificação de dados tridimensionais quantifica mais cada um dos valores de diferença e dispõe os valores de diferença quantizados na primeira sequência de códigos.
[00913] Por exemplo, o dispositivo de codificação de dados tridimensionais inclui um processador e memória, e o processador realiza o processo descrito acima usando a memória.
[00914] O dispositivo de decodificação de dados tridimensionais de acordo com a presente modalidade realiza o processo mostrado pela Figura 113. O dispositivo de decodificação de dados tridimensionais obtém uma segunda sequência de códigos de um fluxo de bits, a segunda sequência de códigos incluindo primeira informação (por exemplo, ZeroCnt) e a segunda informação (por exemplo, valor), a primeira informação indicando um número total de valores de diferença zero consecutivos em uma primeira sequência de códigos em que os valores de diferença (por exemplo, residuais de predição) são dispostos, a segunda informação indicando um valor de um valor de diferença diferente de zero incluído nos valores de diferença, os valores de diferença zero sendo incluídos nos valores de diferença e tendo um valor de 0, os valores de diferença cada um sendo uma diferença entre (i) uma correspondente de partes de informação de atributo de pontos tridimensionais incluídos em dados de nuvem de pontos e (ii) um valor predito correspondendo à informação de atributo correspondente (S6595). O dispositivo de decodificação de dados tridimensionais obtém os valores de diferença através da restauração da primeira sequência de códigos a partir da segunda sequência de códigos (S6596). O dispositivo de decodificação de dados tridimensionais calcula as partes de informação de atributo adicionando valores preditos aos valores de diferença, os valores preditos cada um correspondendo a um diferente dos valores de diferença (S6597).
[00915] De acordo com isso, uma vez que o dispositivo de decodificação de dados tridimensionais pode reduzir a quantidade de códigos no caso de valores de diferença consecutivos tendo um valor de zero usando a primeira informação, a eficiência de codificação pode ser melhorada.
[00916] Por exemplo, como mostrado pela Figura 97, cada uma das partes de informação de atributo inclui componentes, cada um dos valores de diferença inclui componentes de diferença correspondendo aos componentes, a primeira informação indica o número total dos valores de diferença zero, cada um incluindo os componentes de diferença que são todos 0, e a segunda informação indica valores de componentes de diferença pelo menos um dos quais não é 0 e que estão incluídos no valor de diferença diferente de zero.
[00917] De acordo com isso, uma vez que o dispositivo de decodificação de dados tridimensionais pode reduzir a quantidade de códigos comparado com o caso em que a primeira informação é provida para cadum componente, a eficiência da codificação pode ser melhorada.
[00918] Por exemplo, quando pelo menos dois dos valores dos componentes de diferença incluídos no valor de diferença diferente de zero são diferentes, a segunda informação indica os valores dos componentes de diferença, e quando todos os valores dos componentes de diferença incluídos no valor de diferença diferente de zero são idênticos, a segunda informação indica um valor obtido subtraindo 1 de cada um dos valores dos componentes de diferença.
[00919] De acordo com isso, uma vez que o dispositivo de decodificação de dados tridimensionais pode reduzir a quantidade de códigos, a eficiência da codificação pode ser melhorada.
[00920] Por exemplo, quando valores indicados pela segunda informação são idênticos, o dispositivo de decodificação de dados tridimensionais calcula os valores dos componentes de diferença adicionando 1 a cada um dos valores e restaura a primeira sequência de códigos usando os valores dos componentes de diferença calculados.
[00921] Por exemplo, quando cada uma das partes de informação de atributo inclui pelo menos dois componentes, a segunda informação indica valores dos pelo menos dois componentes, e quando cada uma das partes de informação de atributo inclui um componente, a segunda informação indica um valor obtido subtraindo 1 de um valor do um componente.
[00922] De acordo com isso, uma vez que o dispositivo de decodificação de dados tridimensionais pode reduzir a quantidade de códigos, a eficiência de codificação pode ser melhorada.
[00923] Por exemplo, quando um valor correspondendo a um componente é indicado pela segunda informação, o dispositivo de decodificação de dados tridimensionais calcula o valor do um componente adicionando 1 ao valor, e restaura a primeira sequência de códigos usando o valor do um componente calculado.
[00924] Por exemplo, os pontos tridimensionais são classificados em camadas (por exemplo, LoDs), com base em informação de geometria dos pontos tridimensionais e os valores de diferença são dispostos para cada uma das camadas na primeira sequência de códigos.
[00925] Por exemplo, valores de diferença quantizados são dispostos na primeira sequência de codificação, os valores de diferença quantizados são obtidos através da restauração da primeira sequência de codificação e os valores de diferença são, cada um, obtidos através de quantização inversão de um correspondente dos valores de diferença quantizados.
[00926] Por exemplo, o dispositivo de decodificação de dados tridimensionais inclui um processador e memória, e o processador realiza o processo descrito acima usando a memória. MODALIDADE 12
[00927] A seguir, um método utilizando uma RAHT (Transformação hierárquica adaptativa de região) será descrito como outro método de codificação da informação de atributo de um ponto tridimensional. A Figura 114 é um diagrama para descrever a codificação da informação de atributo utilizando uma RAHT.
[00928] Primeiro, o dispositivo de codificação de dados tridimensionais gera códigos de Morton com base na informação de geometria de pontos tridimensionais, e classifica a informação de atributo dos pontos tridimensionais na ordem dos códigos de Morton. Por exemplo, o dispositivo de codificação de dados tridimensionais pode realizar a classificação em ordem crescente dos códigos de Morton. Observar que a ordem de classificação não é limitada à ordem dos códigos de Morton, e outras ordens podem ser usadas.
[00929] A seguir, o dispositivo de codificação de dados tridimensionais gera um componente de alta frequência e um componente de baixa frequência da camada L aplicando a conversão de Haar à informação de atributo de dois pontos tridimensionais adjacentes na ordem dos códigos de Morton. Por exemplo, o dispositivo de codificação de dados tridimensionais pode usar a conversão de Haar de matrizes 2 x 2. O componente de alta frequência gerado é incluído em um coeficiente de codificação como o componente de alta frequência da camada L, e o componente de baixa frequência gerado é usado como o valor de entrada para a camada mais alta L+1 da camada L.
[00930] Após gerar o componente de alta frequência da camada L utilizando a informação de atributo da camada L, o dispositivo de codificação de dados tridimensionais subsequentemente realiza o processamento da camada L+1. No processamento da camada L+1, o dispositivo de codificação de dados tridimensionais gera um componente de alta frequência e um componente de baixa frequência da camada L+1 aplicando a conversão de Haar a dois componentes de baixa frequênciae obtidos pela conversão de Haar da informação de atributo da camada L. O componente de alta frequência gerado é incluído em um coeficiente de codificação como o componente de alta frequência da camada L+1, e o componente de baixa frequência gerado é usado como o valor de entrada para a camada mais alta L+2 da camada L+1.
[00931] O dispositivo de codificação de dados tridimensionais repete tal processamento de camada, e determina que a camada mais alta Lmax foi alcançada no momento quando um componente de baixa frequência que é inserido a uma camada se torna um. O dispositivo de codificação de dados tridimensionais inclui o componente de baixa frequência da camada Lmax-1 que é inserido à Camada Lmax em um coeficiente de codificação. Então, o valor do componente de baixa frequência ou componente de alta frequência incluído no coeficiente de codificação é quantizado, e é codificado utilizando codificação por entropia ou similar.
[00932] Observar que, quando apenas um ponto tridimensional existir como dois pontos tridimensionais adjacentes no momento de aplicação da conversão de Haar, o dispositivo de codificação de dados tridimensionais pode usar o valor da informação de atributo da existência de um ponto tridimensional como o valor de entrada para uma camada mais alta.
[00933] Dessa forma, o dispositivo de codificação de dados tridimensionais hierarquicamente aplica a conversão de Haar à informação de atributo de entrada, gera um componente de alta frequência e um componente de baixa frequência da informação de atributo, e realiza a codificação aplicando quantização descrita posteriormente ou similar. Certamente, a eficiência de codificação pode ser melhorada.
[00934] Quando a informação de atributo for N dimensional, o dispositivo de codificação de dados tridimensionais pode independentemente aplicar a conversão de Haar para cada dimensão, e pode calcular cada coeficiente de codificação. Por exemplo, quando a informação de atributo for informação colorida (RGB, YUV, ou similar), o dispositivo de codificação de dados tridimensionais aplica a conversão de Haar para cada componente, e calcula cada coeficiente de codificação.
[00935] O dispositivo de codificação de dados tridimensionais pode aplicar a conversão de Haar na ordem dos camadas L, L+1, ..., Lmax. Quanto mais próximo à camada Lmax, um coeficiente de codificação incluindo mais componentes de baixa frequência da informação de atributo de entrada são gerados.
[00936] w0 e w1 mostrados na Figura 114 são as ponderações atribuídas a cada ponto tridimensional. Por exemplo, o dispositivo de codificação de dados tridimensionais pode calcular a ponderação com base na informação de distância entre dois pontos tridimensionais adjacentes ao qual a conversão de Haar é aplicada, ou similar. Por exemplo, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação de modo que quanto mais próxima a distância, maior a ponderação. Observar que o dispositivo de codificação de dados tridimensionais pode calcular essa ponderação com outra técnica, ou não precisa usar a ponderação.
[00937] No exemplo mostrado na Figura 114, as peças da informação de atributo de entrada são a0, a1, a2, a3, a4, e a5. Ainda, Ta1, Ta5, Tb1, Tb3, Tc1, e d0 são codificados entre os coeficientes de codificação após a conversão de Haar. Os outros coeficientes de codificação (b0, b2, c0 e similares) são medianos, e não são codificados.
[00938] Especificamente, no exemplo mostrado na Figura 114, o componente de alta frequência Ta1 e o componente de baixa frequência b0 são gerados realizando a conversão de Haar on a0 e a1. Aqui, quando as ponderações w0 e w1 são iguais, o componente de baixa frequência b0 é o valor médio de a0 e a1, e o componente de alta frequência Ta1 é a diferença entre a0 e a1.
[00939] Uma vez que não há informação de atributo a ser pareada com a2, a2 é usado como b1 como é. Semelhantemente, uma vez que não há informação de atributo a ser pareada com a3, a3 é usado como b2 coom é. Ainda, o componente de alta frequência Ta5 e o componente de baixa frequência b3 são gerados realizando a conversão de Haar em a4 e a5.
[00940] Na camada L+1, o componente de alta frequência Tb1 e o componente de baixa frequência c0 são gerados realizando a conversão de Haar em b0 e b1. Semelhantemente, o componente de alta frequência Tb3 e o componente de baixa frequência c1 são gerados realizando a conversão de Haar em b2 e b3.
[00941] Na camada Lmax-1, o componente de alta frequência Tc1 e o componente de baixa frequência d0 são gerados realizando a conversão de Haar em c0 e c1.
[00942] O dispositivo de codificação de dados tridimensionais pode codificar os coeficientes de codificação ao qual a conversão de Haar foi aplicada, após a quantização dos coeficientes de codificação. Por exemplo, o dispositivo de codificação de dados tridimensionais realiza quantização dividindo o coeficiente de codificação pela escala de quantização (ainda chamada de etapa de quantização (QS)). Neste caso, quanto menor a escala de quantização, menor o erro (erro de quantização) que pode ocorrer devido à quantização. Inversamente, quanto maior a escala de quantização, maior o erro de quantização.
[00943] Observar que o dispositivo de codificação de dados tridimensionais pode mudar o valor da escala de quantização para cada camada. A Figura 115 é um diagrama mostrando um exemplo para definir a escala de quantização para cada camada. Por exemplo, o dispositivo de codificação de dados tridimensionais define as menores escalas de quantização às camadas mais altas, e maiores escalas de quantização à camadas mais baixas. Uma vez que os coeficientes de codificação dos pontos tridimensionais pertencentes às camadas mais altas incluem mais componentes de baixa frequência do que as camadas inferiores, há uma grande possibilidade de que os coeficientes de codificação sejam componentes importantes nas características visuais humanas e semelhantes. Portanto, suprimindo o erro de quantização que pode ocorrer nas camadas superiores, tornando pequenas as escalas de quantização para as camadas superiores, a deterioração visual pode ser suprimida e a eficiência de codificação pode ser melhorada.
[00944] Observar que o dispositivo de codificação de dados tridimensionais pode adicionar a escala de quantização para cada camada a um cabeçalho ou similar. Certamente, o dispositivo de decodificação tridimensional pode decodificar corretamente a escala de quantização, e pode adequadamente decodificar um fluxo de bits.
[00945] Ainda, o dispositivo de codificação de dados tridimensionais pode adaptativamente alternar o valor da escala de quantização de acordo com a importância de um ponto tridimensional atual a ser codificado. Por exemplo, o dispositivo de codificação de dados tridimensionais usa uma pequena escala de quantização para um ponto tridimensional com alta importância, e usa uma grande escala de quantização para um ponto tridimensional com baixa importância. Por exemplo, o dispositivo de codificação de dados tridimensionais pode calcular a importância a partir da ponderação no momento da conversão de Haar, ou similar. Por exemplo, o dispositivo de codificação de dados tridimensionais pode calcular a escala de quantização utilizando a soma de w0 e w1. Dessa forma, tornando a escala de quantização de um ponto tridimensional com alta importância pequena, o erro de quantização se torna pequeno, e a eficiência de codificação pode ser melhorada.
[00946] Ainda, o valor do QS pode ser menor para as camadas superiores. Consequentemente, quanto mais alta a camada, maior o valor de QW e a eficiência de predição pode ser melhorada suprimindo o erro de quantização do ponto tridimensional.
[00947] Aqui, um coeficiente de codificação Ta1q após a quantização do coeficiente de codificação Ta1 da informação de atributo a1 ser representada por Ta1/QS_L. Observar que QS pode ser o mesmo valor em todas as camadas ou uma parte das camadas.
[00948] A QW (Ponderação de Quantização) é o valor que representa a importância de um ponto tridimensional atual a ser codificado. Por exemplo, a soma descrita acima de w0 e w1 pode ser usada como a QW. Certamente, quanto mais alta a camada, maior o valor da QW, e a eficiência de previsão pode ser melhorada suprimindo o erro de quantização do ponto tridimensional.
[00949] Por exemplo, o dispositivo de codificação de dados tridimensionais pode primeiro inicializar os valores das QWs de todos os pontos tridimensionais com 1, e pode atualizar a QW de cada ponto tridimensional utilizando os valores de w0 e w1 no momento da conversão de Haar. De modo alternativo, o dispositivo de codificação de dados tridimensionais pode mudar o valor inicial de acordo com as camadas, sem inicializar os valores das QWs de todos os pontos tridimensionais com um valor de 1. Por exemplo, as escalas de quantização para as camadas superiores tornam-se pequenas ao definir valores iniciais de QW maiores para as camadas superiores. Por conseguinte, uma vez que o erro de predição nas camadas superiores pode ser suprimido, a precisão de predição das camadas inferiores pode ser aumentada e a eficiência de codificação pode ser melhorada. Observe que o dispositivo de codificação de dados tridimensionais não precisa necessariamente usar a QW.
[00950] Ao utilizar a QW, o valor quantizado Ta1q de Ta1 é calculado pela (Fórmula K1) e (Fórmula K2). [Mat. 8] ••• (Fórmula K1) ••• (Fórmula K2)
[00951] Ainda, o dispositivo de codificação de dados tridimensionais varre e codifica os coeficientes de codificação (valores de número inteiro não assinado) após a quantização em certa ordem. Por exemplo, o dispositivo de codificação de dados tridimensionais codifica uma pluralidade de pontos tridimensionais a partir dos pontos tridimensionais incluídos nas camadas mais altas em direção às camadas mais baixas na ordem.
[00952] Por exemplo, no exemplo mostrado na Figura 114, o dispositivo de codificação de dados tridimensionais codifica uma pluralidade de pontos tridimensionais na ordem de Tc1q Tb1q, Tb3q, Ta1q, e Ta5q a partir de d0q incluídos na camada mais alta Lmax. Aqui, há uma tendência que quanto menor a camada L, mais provável que o coeficiente de codificação após a quantização se torne 0. Isso pode ser devido ao seguinte e similar.
[00953] Uma vez que o coeficiente de codificação da camada inferior L mostra um componente de frequência mais alta do que as camadas mais altas, há uma tendência que o coeficiente de codificação se torna 0 dependendo de um ponto tridimensional atual. Ainda, alternando a escala de quantização de acordo com a importância descrita acima ou similar, quanto menor a camada, maiores as escalas de quantização, e maior a probabilidade do coeficiente de codificação após a quantização se tornar 0.
[00954] Dessa forma, quanto menores as camada, maior a probabilidade do coeficiente de codificação após a quantização se tornar 0, e o valor 0 consecutivamente ocorre na primeira sequência de codificação. A Figura 116 é um diagrama mostrando um exemplo da primeira sequência de codificação e da segunda sequência de codificação.
[00955] O dispositivo de codificação de dados tridimensionais conta o número de vezes que o valor 0 ocorre na primeira sequência de codificação, e codifica o número de vezes que o valor 0 consecutivamente ocorre, em vez dos valores consecutivos 0. Isto é, o dispositivo de codificação de dados tridimensionais gera uma segunda sequência de codificação sibstituindo o coeficiente de codificação dos valores consecutivos 0 na primeira sequência de codificação com o número de consecutivas vezes (ZeroCnt) de 0. Certamente, quando há valores consecutivos 0 de coeficientes de codificação após a quantização, a eficiência de codificação pode ser melhorada pela codificação do número de consecutivas vezes de 0, em vez da codificação de muitos 0s.
[00956] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar por entropia o valor de ZeroCnt. Por exemplo, o dispositivo de codificação de dados tridimensionais binariza o valor de ZeroCnt com o código unário truncado do número total T dos pontos tridimensionais codificados, e aritmeticamente codifica cada bit após a binarização. A Figura 117 é um diagrama mostrando um exemplo do código unário truncado no caso onde o número total de pontos tridimensionais codificados é T. Neste momento, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação utilizando uma tabela de codificação diferente para cada bit. Por exemplo, o dispositivo de codificação de dados tridimensionais usa a tabela de codificação 1 para o primeiro bit, usa a tabela de codificação 2 para o segundo bit, e a tabela de codificação 3 para os bits subsequentes. Dessa forma, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação alternando a tabela de codificação para cada bit.
[00957] Ainda, o dispositivo de codificação de dados tridimensionais pode aritmeticamente codificar ZeroCnt após binarizar ZeroCnt com um Exponential-Golomb. Certamente, quando o valor de ZeroCnt facilmente se torna grande, a eficiência pode ser mais melhorada do que a codificação aritmética binarizada com o código unário truncado. Observar que o dispositivo de codificação de dados tridimensionais pode adicionar um marcador para alternar entre utilizar o código unário truncado e utilizar o Exponential-Golomb a um cabeçalho. Certamente, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação selecionando o método ideal de binzarização. Ainda, o dispositivo de decodificação de dados tridimensionais pode decodificar corretamente um fluxo de bits referindo-se ao marcador incluído no cabeçalho para alternar o método de binarização.
[00958] O dispositivo de decodificação tridimensional pode converter o coeficiente de codificação decodificado após a quantização de um valor inteiro sem sinal para um valor inteiro com sinal com um método contrário ao método realizado pelo dispositivo de codificação de dados tridimensionais. Por conseguinte, quando o coeficiente de codificação é codificado por entropia, o dispositivo de decodificação tridimensional pode decodificar apropriadamente um fluxo de bits gerado sem considerar a ocorrência de um número inteiro negativo. Observe que o dispositivo de decodificação tridimensional não precisa necessariamente converter o coeficiente de codificação de um valor inteiro sem sinal para um valor inteiro com sinal. Por exemplo, ao decodificar um fluxo de bits incluindo um bit codificado que foi codificado separadamente por entropia, o dispositivo de decodificação tridimensional pode decodificar o bit de sinal.
[00959] O dispositivo de decodificação tridimensional decodifica o coeficiente de codificação após a quantização convertida no valor de número inteiro assinado, pela quantização inversa e pela conversão inversa de Haar. Ainda, o dispositivo de decodificação tridimensional utiliza o coeficiente de codificação após a decodificação para a predição após o ponto tridimensional atual a ser decodificado. Especificamente, o dispositivo de decodificação tridimensional calcula o valor quantizado inverso multiplicando o coeficiente de codificação após a quantização pela escala de quantização decodificada. A seguir, o dispositivo de decodificação tridimensional obtém o valor decodificado aplicando a conversão inversa de Haar descrita posteriormente ao valor quantizado inverso.
[00960] Por exemplo, o dispositivo de decodificação tridimensional converte o valor de número inteiro não assinado decodificado a um valor de número inteiro assinado com o seguinte método. Quando o LSB (bit menos significante) do valor de número inteiro não assinado decodificado a2u for 1, o valor de número inteiro assinado Ta1q é definido a - ((a2u + 1) >> 1). Quando o LSB do valor de número inteiro não assinado decodificado a2u não é 1 (quando for 0), o valor de número inteiro assinado Ta1q é definido a (a2u >> 1).
[00961] Ainda, o valor quantizado inverso de Ta1 é representado por Ta1q  QS_L. Aqio, Ta1q é o valor quantizado de Ta1. Além disso, QS_L é a etapa de quantização para a camada L.
[00962] Ainda, o QS pode ser o mesmo valor para todas as camadas ou uma parte das camadas. Além disso, o dispositivo de codificação de dados tridimensionais pode adicionar a informação indicando o QS a um cabeçalho ou similar. Certamente, o dispositivo de decodificação tridimensional pode realizar corretamente a quantização inversa utilizando o mesmo QS que o QS usado pelo dispositivo de codificação de dados tridimensionais.
[00963] A seguir, a conversão inversa de Haar será descrita. A Figura 118 é um diagrama para descrever a conversão inversa de Haar. O dispositivo de decodificação tridimensional decodifica o valor de atributo de um ponto tridimensional aplicando a conversão inversa de Haar ao coeficiente de codificação após a quantização inversa.
[00964] Primeiro, o dispositivo de decodificação tridimensional gera o códigos de Morton com base na informação de geometria de pontos tridimensionais, e classifica os pontos tridimensionais na ordem dos códigos de Morton. Por exemplo, o dispositivo de decodificação tridimensional pode realizar a classificação em ordem ascendente dos códigos de Morton. Observar que a ordem de classificação não é limitada à ordem dos códigos de Morton, e a outra pode ser usada.
[00965] A seguir, o dispositivo de decodificação tridimensional recupera a informação de atributo de pontos tridimensionais que são adjacentes entre si na ordem dos códigos de Morton na camada L, aplicando a conversão inversa de Haar ao coeficiente de codificação incluindo o componente de baixa frequência da camada L+1, e o coeficiente de codificação incluindo o componente de alta frequência da camada L. Por exemplo, o dispositivo de decodificação tridimensional pode usar a conversão inversa de Haar de uma matriz de 2  2. A informação de atributo da camada recuperada L é usada como o valor de entrada para a camada inferior L-1.
[00966] O dispositivo de decodificação tridimensional repete tal processamento de camada, e finaliza o processamento quando toda a informação de atributo da camada inferior é decodificada. Observar que, quando apenas um ponto tridimensional existe como dois pontos tridimensionais que são adjacentes entre si na camada L-1 no momento de aplicação da conversão inversa de Haar, o dispositivo de decodificação tridimensional pode atribuir o valor do componente de codificação da camada L ao valor de atributo de um ponto tridimensional existente. Certamente, o dispositivo de decodificação tridimensional pode decodificar corretamente um fluxo de bits com eficiência melhorada de codificação aplicando a conversão de Haar a todos os valores da informação de atributo de entrada.
[00967] Quando a informação de atributo for N dimensional, o dispositivo de decodificação tridimensional pode independentemente aplicar a conversão inversa de Haar para cada dimensão, e pode decodificar cada coeficiente de codificação. Por exemplo, quando a informação de atributo é informação colorida (RGB, YUV, ou similar), o dispositivo de decodificação de dados tridimensionais aplica a conversão inversa de Haar ao coeficiente de codificação para cada componente e decodifica cada valor de atributo.
[00968] O dispositivo de decodificação tridimensional pode aplicar a conversão inversa de Haar na ordem de Camadas Lmax, L+1, ..., L. Ainda, w0 e w1 mostrados na Figura 118 são as ponderações atribuídas a cada ponto tridimensional. Por exemplo, o dispositivo de decodificação de dados tridimensionais pode calcular a ponderação com base na informação de distância entre dois pontos tridimensionais adjacentes aos quais a conversão inversa de Haar é aplicada, ou similar. Por exemplo, o dispositivo de codificação de dados tridimensionais pode decodificar um fluxo de bits com eficiência melhorada de codificação de modo que quanto mais próxima a distância, maior a ponderação.
[00969] No exemplo mostrado na Figura 118, os coeficientes de codificação após a quantização inversa são Ta1, Ta5, Tb1, Tb3, Tc1, e d0, e a0, a1, a2, a3, a4, e a5 são obtidos como os valores decodificados.
[00970] A Figura 119 é um diagrama mostrando um exemplo de sintaxe da informação de atributo (attribute_data). A informação de atributo (attribute_data) inclui o número de zeros consecutivos (ZeroCnt), o número de dimensões de atributo (attribute_dimension), e o coeficiente de codificação (valor [j] [i]).
[00971] O número de zeros consecutivos (ZeroCnt) indica o número de vezes que o valor 0 continua no coeficiente de codificação após a quantização. Observar que o dispositivo de codificação de dados tridimensionais pode aritmeticamente codificar ZeroCnt após binarizar ZeroCnt.
[00972] Ainda, conforme mostrado na Figura 119, o dispositivo de codificação de dados tridimensionais pode determinar se ou não a camada L (layerL) a qual o coeficiente de codificação pertence é igual a ou mais do que um valor limiar predefinido TH_layer, e pode alternar a informação adicionada a um fluxo de bits de acordo com o resultado de determinação. Por exemplo, quando o resultado de determinação é verdadeiro, o dispositivo de codificação de dados tridimensionais adiciona todos os coeficientes de codificação da informação de atributo a um fluxo de bits. Além disso, quando o resultado de determinação for falso, o dispositivo de codificação de dados tridimensionais pode adicionar uma parte dos coeficientes de codificação a um fluxo de bits.
[00973] Especificamente, quando o resultado de determinação for verdadeiro, o dispositivo de codificação de dados tridimensionais adiciona o resultado codificado da informação tridimensional da informação colorida RGB ou YUV a um fluxo de bits. Quando o resultado de determinação é falso, o dispositivo de codificação de dados tridimensionais pode adicionar uma parte da informação como G ou Y da informação colorida a um fluxo de bits, e não precisa adicionar os outros componentes ao fluxo de bits. Dessa forma, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação não adicionando uma parte dos coeficientes de codificação da camada (a camada menor do que TH_layer) incluindo os coeficientes de codificação indicando o componente de alta frequência com degradação menos perceptível visualmente a um fluxo de bits.
[00974] O número de dimensões de atributo (attribute_dimension) indica o número de dimensões da informação de atributo. Por exemplo, quando a informação de atributo é a informação colorida (RGB, YUV, ou similar) de um ponto tridimensional, uma vez que a informação colorida é tridimensional, o número de dimensões de atributo é definido como um valor 3. Quando a informação de atributo é a refletância, uma vez que a refletância é unidimensional, o número de dimensões de atributo é definido como um valor 1. Observar que o número de dimensões de atributo pode ser adicionado ao cabeçalho da informação de atributo de um fluxo de bits ou similar.
[00975] O coeficiente de codificação (valor [j] [i]) indica o coeficiente de codificação após a quantização da informação de atributo da j-ésima dimensão do i-ésimo ponto tridimensional. Por exemplo, quando a informação de atributo é informação colorida, valor [99] [1] indica o coeficiente de codificação da segunda dimensão (por exemplo, o Valor G) do 100ésimo ponto tridimensional. Ainda, quando a informação de atributo é informação de refletância, valor [119] [0] indica o coeficiente de codificação da primeira dimensão (por exemplo, a refletância) do 120ésimo ponto tridimensional.
[00976] Observar que, quando as seguintes condições são atendidas, o dispositivo de codificação de dados tridimensionais pode subtrair o valor 1 a partir do valor [j] [i], e pode codificar por entropia o valor obtido. Neste caso, o dispositivo de decodificação de dados tridimensionais recupera o coeficiente de codificação adicionando o valor 1 ao valor [j] [i] após a decodificação por entropia.
[00977] As condições descritas acima são (1) quando attribute_dimension = 1, ou (2) quando attribute_dimension for 1 ou mais, e quando os valores de todas as dimensões são iguais. Por exemplo, quando a informação de atributo é a refletância, uma vez que attribute_dimension = 1, o dispositivo de codificação de dados tridimensionais subtrai o valor 1 a partir do coeficiente de codificação para calcular valor, e codifica o valor calculado. O dispositivo de decodificação tridimensional calcula o coeficiente de codificação adicionando o valor 1 ao valor após a decodificação.
[00978] Mais especificamente, por exemplo, quando o coeficiente de codificação da refletância for 10, o dispositivo de codificação de dados tridimensionais codifica o valor 9 obtido subtraindo o valor 1 a partir do valor 10 do coeficiente de codificação. O dispositivo de decodificação de dados tridimensionais adiciona o valor 1 ao valor decodificado 9 para calcular o valor 10 do coeficiente de codificação.
[00979] Ainda, uma vez que attribute_dimension = 3 quando a informação de atributo é for cor, por exemplo, quando o coeficiente de codificação após a quantização de cada um dos componentes R, G, e B for o mesmo, o dispositivo de codificação de dados tridimensionais subtrai o valor 1 a partir de cada coeficiente de codificação, e codifica o valor obtido. O dispositivo de decodificação de dados tridimensionais adiciona o valor 1 ao valor após decodificação. Mais especificamente, por exemplo, quando o coeficiente de codificação de R, G, e B = (1, 1, 1), o dispositivo de codificação de dados tridimensionais codifica (0, 0, 0). O dispositivo de decodificação de dados tridimensionais adiciona 1 a cada componente de (0, 0, 0) para calcular (1, 1, 1). Ainda, quando os coeficientes de codificação de R, G, e B = (2, 1, 2), o dispositivo de codificação de dados tridimensionais codifica (2, 1, 2) como é. O dispositivo de decodificação de dados tridimensionais usa (2, 1, 2) decodificado como são os coeficientes de codificação.
[00980] Dessa forma, fornecendo ZeroCnt, uma vez que o padrão em que todas as dimensões são 0 conforme o valor não é gerado, o valor obtido subtraindo 1 a partir do valor indicado pelo valor pode ser codificado. Portanto, a eficiência de codificação pode ser melhorada.
[00981] Ainda, o valor [0] [i] mostrado na Figura 119 indica o coeficiente de codificação após a quantização da informação de atributo da primeira dimensão do i-ésimo ponto tridimensional. Conforme mostrado na Figura 119, quando a camada L (layerL) à qual o coeficiente de codificação pertence é menor do que o valor limiar TH_layer, a quantidade de código pode ser reduzida adicionando a informação de atributo da primeira dimensão a um fluxo de bits (não adicionando a informação de atributo do segundo e seguindo as dimensões ao fluxo de bits).
[00982] O dispositivo de codificação de dados tridimensionais pode alternar o método de cálculo do valor de ZeroCnt dependendo do valor de attribute_dimension. Por exemplo, quando attribute_dimension = 3, o dispositivo de codificação de dados tridimensionais pode contar o número de vezes que os valores do coeficientes de codificação de todos os componentes (dimensões) se tornam 0. A Figura 120 é um diagrama mostrando um exemplo do coeficiente de codificação e ZeroCnt neste caso. Por exemplo, no caso da informação colorida mostrada na Figura 120, o dispositivo de codificação de dados tridimensionais conta o número dos coeficientes de codificação consecutivos tendo 0 para todos os componentes R, G, e B, e adiciona o número contado a um fluxo de bits como ZeroCnt. Certamente, se torna desnecessário codificar ZeroCnt para cada componente, e a sobrecarga pode ser reduzida. Portanto, a eficiência de codificação pode ser melhorada. Observar que o dispositivo de codificação de dados tridimensionais pode calcular ZeroCnt para cada dimensão mesmo quando attribute_dimension for dois ou mais, e pode adicionar o ZeroCnt calculado a um fluxo de bits.
[00983] A Figura 121 é um fluxograma do processo de codificação de dados tridimensionais de acordo com a presente modalidade. Primeiro, o dispositivo de codificação de dados tridimensionais codifica informação de geometria (geometry) (S6601). Por exemplo, o dispositivo de codificação de dados tridimensionais realiza a codificação utilizando uma representação octree.
[00984] A seguir, o dispositivo de codificação de dados tridimensionais converte a informação de atributo (S6602). Por exemplo, após a codificação da informação de geometria, quando a posição de um ponto tridimensional é mudada devido à quantização ou similar, o dispositivo de codificação de dados tridimensionais reatribui a informação de atributo do ponto tridimensional original ao ponto tridimensional após a mudança. Observar que o dispositivo de codificação de dados tridimensionais pode interpolar o valor da informação de atributo de acordo com a quantidade de mudança da posição para realizar a reatribuição. Por exemplo, o dispositivo de codificação de dados tridimensionais detecta N pontos tridimensionais antes da mudança perto da posição tridimensional após a mudança, realiza a média ponderada do valor da informação de atributo dos N pontos tridimensionais com base na distância a partir da posição tridimensional após a mudança a cada um dos N pontos tridimensionais, e define o valor obtido como o valor da informação de atributo do ponto tridimensional após a mudança. Ainda, quando dois ou mais pontos tridimensionais são mudados na mesma posição tridimensional devido à quantização ou similar, o dispositivo de codificação de dados tridimensionais pode atribuir o valor médio da informação de atributo em dois ou mais pontos tridimensionais antes de mudar como o valor da informação de atributo após a mudança.
[00985] A seguir, o dispositivo de codificação de dados tridimensionais codifica a informação de atributo (S6603). Por exemplo, ao codificar uma pluralidade de peças de informação de atributo, o dispositivo de codificação de dados tridimensionais pode codificar a pluralidade de peças de informação de atributo na ordem. Por exemplo, ao codificar a cor e a refletância como a informação de atributo, o dispositivo de codificação de dados tridimensionais gera um fluxo de bits no qual o resultado da codificação da refletância é adicionado após o resultado da codificação da cor. Observar que uma pluralidade de resultados da codificação da informação de atributo adicionada a um fluxo de bits pode ser em qualquer ordem.
[00986] Ainda, o dispositivo de codificação de dados tridimensionais pode adicionar a informação indicando a localização inicial dos dados codificados de cada informação de atributo em um fluxo de bits a um cabeçalho ou similar. Certamente, uma vez que o dispositivo de decodificação de dados tridimensionais pode seletivamente decodificar a informação de atributo que precisa ser decodificada, o processamento de decodificação da informação de atributo que não precisa ser decodificada pode ser omitido. Portanto, a quantidade de processamento para o dispositivo de decodificação de dados tridimensionais pode ser reduzida. Ainda, o dispositivo de codificação de dados tridimensionais pode codificar uma pluralidade de peças de informação de atributo em paralelo, e pode integrar os resultados da codificação em um fluxo de bits. Certamente, o dispositivo de codificação de dados tridimensionais pode codificar uma pluralidade de peças de informação de atributo em alta velocidade.
[00987] A Figura 122 é um fluxograma do processamento de codificação de informação de atributo (S6603). Primeiro, o dispositivo de codificação de dados tridimensionais gera um coeficiente de codificação a partir de informação de atributo pela conversão de Haar (S6611). A seguir, o dispositivo de codificação de dados tridimensionais aplica quantização ao coeficiente de codificação (S6612). A seguir, o dispositivo de codificação de dados tridimensionais gera informação de atributo codificada (fluxo de bits) codificando o coeficiente de codificação após a quantização (S6613).
[00988] Ainda, o dispositivo de codificação de dados tridimensionais aplica a quantização inversa ao coeficiente de codificação após a quantização (S6614). A seguir, o dispositivo de decodificação tridimensional decodifica a informação de atributo aplicando a conversão inversa de Haar ao coeficiente de codificação após a quantização inversa (S6615). Por exemplo, a informação de atributo decodificada é referida na seguinte codificação.
[00989] A Figura 123 é um fluxograma do processamento de codificação do coeficiente de codificação (S6613). Primeiro, o dispositivo de codificação de dados tridimensionais converte um coeficiente de codificação a partir de um valor de número inteiro assinado a um valor de número inteiro não assinado (S6621). Por exemplo, o dispositivo de codificação de dados tridimensionais converte um valor de número inteiro assinado a um valor de número inteiro não assinado como segue. Quando o valor de número inteiro assinado Ta1q é menor do que 0, o valor de número inteiro não assinado é definido como -1 - (2  Ta1q). Quando o valor de número inteiro assinado Ta1q é igual a ou maior do que 0, o valor de número inteiro não assinado é definido como 2  Ta1q. Observar que, quando o coeficiente de codificação não se torna um valor negativo, o dispositivo de codificação de dados tridimensionais pode codificar o coeficiente de codificação como o valor de número inteiro não assinado como é.
[00990] Quando nem todos coeficientes de codificação foram processados (Não em S6622), o dispositivo de codificação de dados tridimensionais determina se o valor do coeficiente de codificação a ser processado é zero (S6623). Quando o valor do coeficiente de codificação a ser processado é zero (Sim em S6623), o dispositivo de codificação de dados tridimensionais aumenta ZeroCnt em 1 (S6624), e retorna para a etapa S6622.
[00991] Quando o valor do coeficiente de codificação a ser processado não é zero (Não em S6623), o dispositivo de codificação de dados tridimensionais codifica ZeroCnt, e redefine ZeroCnt a zero (S6625). Ainda, o dispositivo de codificação de dados tridimensionais aritmeticamente codifica o coeficiente de codificação a ser processado (S6626), e retorna à etapa S6622. Por exemplo, o dispositivo de codificação de dados tridimensionais realiza codificação aritmética binária. Além disso, o dispositivo de codificação de dados tridimensionais pode subtrair o valor 1 a partir do coeficiente de codificação, e pode codificar o valor obtido.
[00992] Ainda, o processamento das etapas S6623 a S6626 é repetidamente realizado para cada coeficiente de codificação. Além disso, quando todos os coeficientes de codificação foram processados (Sim em S6622), o dispositivo de codificação de dados tridimensionais finaliza o processamento.
[00993] A Figura 124 é um fluxograma do processamento de decodificação de dados tridimensionais de acordo com a presente modalidade. Primeiro, o dispositivo de decodificação tridimensional decodifica a informação de geometria (geometry) a partir de um fluxo de bits (S6631). Por exemplo, o dispositivo de decodificação de dados tridimensionais realiza a decodificação utilizando uma representação octree.
[00994] A seguir, o dispositivo de decodificação tridimensional decodifica a informação de atributo a partir do fluxo de bits (S6632). Por exemplo, quando decodificação uma pluralidade de peças de informação de atributo, o dispositivo de decodificação tridimensional pode decodificar a pluralidade de peças de informação de atributo na ordem. Por exemplo, ao decodificar a cor e a refletância como a informação de atributo, o dispositivo de decodificação de dados tridimensionais decodifica o resultado da codificação da cor e o resultado da codificação da refletância de acordo com a ordem em que eles são adicionados ao fluxo de bits. Por exemplo, quando o resultado da codificação da refletância é adicionado após o resultado da codificação da cor em um fluxo de bits, o dispositivo de decodificação de dados tridimensionais decodifica o resultado da codificação da cor e, a seguir, decodifica o resultado da codificação da refletância. Observar que o dispositivo de decodificação de dados tridimensionais pode decodificar os resultados da codificação da informação de atributo adicionada a um fluxo de bits em qualquer ordem.
[00995] Ainda, o dispositivo de decodificação tridimensional pode obter a informação indicando a localização inicial dos dados codificados de cada informação de atributo em um fluxo de bits decoficando um cabeçalho ou similar. Certamente, uma vez que o dispositivo de decodificação de dados tridimensionais pode seletivamente decodificar a informação de atributo que precisa ser decodificada, o processamento de decodificação da informação de atributo que não precisa ser decodificado pode ser omitida. Portanto, a quantidade de processamento do dispositivo de decodificação tridimensional pode ser reduzida. Ainda, o dispositivo de decodificação de dados tridimensionais pode decodificar uma pluralidade de peças de informação de atributo em paralelo, e pode integrar os resultados da decodificação em uma nuvem de ponto tridimensional. Certamente, o dispositivo de decodificação de dados tridimensionais pode decodificar uma pluralidade de peças de informação de atributo em alta velocidade.
[00996] A Figura 125 é um fluxograma do processamento de decodificação de informação de atributo (S6632). Primeiro, o dispositivo de decodificação tridimensional decodifica um coeficiente de codificação a partir de um fluxo de bits (S6641). A seguir, o dispositivo de decodificação tridimensional aplica a quantização inversa ao coeficiente de codificação (S6642). A seguir, o dispositivo de decodificação tridimensional decodifica a informação de atributo aplicando a conversão inversa de Haar ao coeficiente de codificação após a quantização inversa (S6643).
[00997] A Figura 126 é um fluxograma do processamento de decodificação do coeficiente de codificação (S6641). Primeiro, o dispositivo de decodificação tridimensional decodifica ZeroCnt a partir de um fluxo de bits (S6651). Quando nem todos os coeficientes de codificação foram processados (Não em S6652), o dispositivo de decodificação tridimensional determina se ZeroCnt for maior do que 0 (S6653).
[00998] Quando ZeroCnt é maior do que zero (Sim em S6653), o dispositivo de decodificação tridimensional define o coeficiente de codificação a ser processado em 0 (S6654). A seguir, o dispositivo de decodificação tridimensional subtrai 1 a partir de ZeroCnt (S6655), e retorna para etapa S6652.
[00999] Quando ZeroCnt for zero (Não em S6653), o dispositivo de decodificação tridimensional decodifica o coeficiente de codificação a ser processado (S6656). Por exemplo, o dispositivo de decodificação tridimensional usa decodificação aritmética binária. Ainda, o dispositivo de decodificação tridimensional pode adicionar o valor 1 ao coeficiente de codificação decodificado.
[001000] A seguir, o dispositivo de decodificação tridimensional decodifica ZeroCnt, define o valor obtido como ZeroCnt (S6657), e retorna à etapa S6652.
[001001] Ainda, o processamento das etapas S6653 a S6657 é repetidamente realizado para cada coeficiente de codificação. Além disso, quando todos os coeficientes de codificação foram processados (Sim em S6652), o dispositivo de codificação de dados tridimensionais converte uma pluralidade de coeficientes de codificação decodificados a partir de valores de número inteiro não assinados em valores de número inteiro assinados (S6658). Por exemplo, o dispositivo de decodificação de dados tridimensionais pode converter os coeficientes de codificação decodificados a partir de valores de número inteiro não assinados em valores de número inteiro assinados como segue. Quando o LSB (bit menos significante) do valor de número inteiro não assinado decodificado Ta1u for 1, o valor de número inteiro assinado Ta1q é definido como - ((Ta1u + 1) >>1). Quando o LSB do valor de número inteiro não assinado decodificado Ta1u não for 1 (quando for 0), o valor de número inteiro assinado Ta1q é definido como (Ta1u >> 1). Observar que, quando o coeficiente de codificação não se torna um valor negativo, o dispositivo de decodificação de dados tridimensionais pode usar o coeficiente de codificação decodificado como é o valor de número inteiro assinado.
[001002] A Figura 127 é um diagrama em blocos de codificador de informação de atributo 6600 incluído no dispositivo de codificação de dados tridimensionais. O codificador de informação de atributo 6600 inclui classificador 6601, transformador Haar 6602, quantizador 6603, quantizador inverso 6604, conversor inverso de Haar 6605, memória 6606, e codificador aritmético 6607.
[001003] O classificador 6601 gera os códigos de Morton utilizando a informação de geometria de pontos tridimensionais, e classifica a pluralidade de pontos tridimensionais na ordem dos códigos de Morton. O transformador Haar 6602 gera o coeficiente de codificação aplicando a conversão de Haar à informação de atributo. O quantizador 6603 quantiza o coeficiente de codificação da informação de atributo.
[001004] O quantizador inverso 6604 quantiza inversamente o coeficiente de codificação após a quantização. O conversor inverso de Haar 6605 aplica a conversão inversa de Haar ao coeficiente de codificação. A memória 6606 armazena os valores de peças de informação de atributo de uma pluralidade de pontos tridimensionais decodificados. Por exemplo, a informação de atributo dos pontos tridimensionais decodificados armazenados na memória 6606 pode ser utilizada para predição e similar de um ponto tridimensional não codificado.
[001005] O codificador aritmético 6607 calcula ZeroCnt a partir do coeficiente de codificação após a quantização, e aritmeticamente codifica ZeroCnt. Ainda, codificador aritmético 6607 aritmeticamente codifica o coeficiente de codificação não zero após a quantização. O codificador aritmético 6607 pode binarizar o coeficiente de codificação antes da codificação aritmética. Além disso, o codificador aritmético 6607 pode gerar e codificar vários tipos de informação de cabeçalho.
[001006] A Figura 128 é um diagrama em blocos de decodificador de informação de atributo 6610 incluído no dispositivo de decodificação tridimensional. O decodificador de informação de atributo 6610 inclui decodificador aritmético 6611, quantizador inverso 6612, conversor inverso de Haar 6613, e memória 6614.
[001007] O decodificador aritmético 6611 aritmeticamente decodifica ZeroCnt e o coeficiente de codificação incluído em um fluxo de bits. Observar que o decodificador aritmético 6611 pode decodificar vários tipos de informação de cabeçalho.
[001008] O quantizador inverso 6612 quantiza inversamente o coeficiente de codificação aritmeticamente decodificado. O conversor inverso de Haar 6613 aplica a conversão inversa de Haar ao coeficiente de codificação após a quantização inversa. A memória 6614 armazena os valores de peças de informação de atributo de uma pluralidade de pontos tridimensionais decodificados. Por exemplo, a informação de atributo dos pontos tridimensionais decodificados armazenados na memória 6614 pode ser utilizada para predição de um ponto tridimensional não codificado.
[001009] Observar que, na modalidade descrita acima, embora o exemplo foi mostrado em que os pontos tridimensionais são codificados na ordem das camadas mais baixas às camadas mais altas como a ordem de codificação, não é necessário limitar a isso. Por exemplo, um método pode ser usado varrendo os coeficientes de codificação após a conversão de Haar na ordem das camadas mais altas às camadas mais baixas. Observar que, ainda neste caso, o dispositivo de codificação de dados tridimensionais pode codificar o número de consecutivas vezes do valor 0 como ZeroCnt.
[001010] Ainda, o dispositivo de codificação de dados tridimensionais pode alternar se ou não usar o método de codificação utilizando ZeroCnt descrito na presente modalidade por WLD, SPC, ou volume. Neste caso, o dispositivo de codificação de dados tridimensionais pode adicionar a informação indicando se ou não o método de codificação utilizando ZeroCnt foi aplicado à informação de cabeçalho. Certamente, o dispositivo de decodificação tridimensional pode adequadamente realizar a decodificação. Como um exemplo do método de comutação, por exemplo, o dispositivo de codificação de dados tridimensionais conta o número de vezes de ocorrência do coeficiente de codificação tendo um valor de 0 com relação a um volume. Quando o valor da contagem exceeder um valor limiar predefinido, o dispositivo de codificação de dados tridimensionais aplica o método utilizando ZeroCnt ao próximo volume, e quando o valor da contagem for igual a ou menor do que o valor limiar, o dispositivo de codificação de dados tridimensionais não aplica o método utilizando ZeroCnt ao próximo volume. Certamente, uma vez que o dispositivo de codificação de dados tridimensionais pode adequadamente alternar se ou não aplicar o método de codificação utilizando ZeroCnt de acordo com a característica de um ponto tridimensional atual a ser codificado, a eficiência de codificação pode ser melhorada.
[001011] A seguir, outra técnica (modificação) da presente modalidade será descrita. O dispositivo de codificação de dados tridimensionais varre e codifica os coeficientes de codificação (valores de número inteiro não assinados) após a quantização de acordo com certa ordem. Por exemplo, o dispositivo de codificação de dados tridimensionais codifica uma pluralidade de pontos tridimensionais a partir dos pontos tridimensionais incluídos nas camadas mais baixas em direção às camadas mais altas na ordem.
[001012] A Figura 129 é um diagrama mostrando um exemplo da primeira sequência de codificação e da segunda sequência de codificação no caso onde essa técnica é usada para a informação de atributo mostrada na Figura 114. No caso desse exemplo, o dispositivo de codificação de dados tridimensionais codifica uma pluralidade de coeficientes de codificação na ordem de Ta5q, Tb1q, Tb3q, Tc1q, e d0q a partir de Ta1q incluído na camada inferior L. Aqui, há uma tendência que quanto menor a camada, maior a probabilidade do coeficiente de codificação após a quantização se tornar 0. Isso pode ser devido ao seguinte e similar.
[001013] Uma vez que os coeficientes de codificação das camadas mais baixas L mostram um componente de frequência mais alta do que as camadas mais altas, os coeficientes de codificação tendem a ser 0 dependendo do ponto tridimensional atual a ser codificado. Ainda, alternando a escala de quantização de acordo com a importância descrita acima ou similar. Quanto menor a camada, maior a escala de quantização, e o coeficiente de codificação após a quantização facilmente se tornar 0.
[001014] Dessa forma, quanto menor a camada, maior a probabilidade do coeficiente de codificação após a quantização se tornar 0, e o valor 0 provavelmente será consecutivamente Gerado para a primeira sequência de codificação. O dispositivo de codificação de dados tridimensionais conta o número de vezes que o valor 0 ocorre na primeira sequência de codificação, e codifica o número de vezes (ZeroCnt) que o valor 0 consecutivamente ocorre, em vez dos valores consecutivos 0. Certamente, quando há valores consecutivos 0 dos coeficientes de codificação após a quantização, a eficiência de codificação pode ser melhorada codificando o número de consecutivas vezes de 0, em vez da codificação de muitos 0s.
[001015] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar a informação indicando o número total de vezes de ocorrência do valor 0. Certamente, a sobrecarga de codificação ZeroCnt pode ser reduzida, e a eficiência de codificação pode ser melhorada.
[001016] Por exemplo, o dispositivo de codificação de dados tridimensionais codifica o número total do coeficientes de codificação tendo um valor de 0 como TotalZeroCnt. Certamente, no exemplo mostrado na Figura 129, no momento quando o dispositivo de decodificação de dados tridimensionais decodifica o segundo ZeroCnt (valor 1) incluído na segunda sequência de codificação, o número total de ZeroCnts decodificados será N + 1 (= TotalZeroCnt). Portanto, o dispositivo de decodificação de dados tridimensionais pode identificar que 0 não ocorre após isso. Portanto, subsequentemente, se torna desnecessário para o dispositivo de codificação de dados tridimensionais codificar ZeroCnt para cada valor, e a quantidade de código pode ser reduzida.
[001017] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar por entropia TotalZeroCnt. Por exemplo, o dispositivo de codificação de dados tridimensionais binariza o valor de TotalZeroCnt com o código unário truncado do número total T dos pontos tridimensionais codificados, e aritmeticamente codifica cada bit após binarização. Neste momento, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação utilizando uma tabela de codificação diferente para cada bit. Por exemplo, o dispositivo de codificação de dados tridimensionais usa a tabela de codificação 1 para o primeiro bit, usa a tabela de codificação 2 para o segundo bit, e a tabela de codificação 3 para os bits subsequentes. Dessa forma, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação alternando a tabela de codificação para cada bit.
[001018] Ainda, o dispositivo de codificação de dados tridimensionais pode aritmeticamente codificar TotalZeroCnt após binarizar TotalZeroCnt com um Exponential-Golomb. Certamente, quando o valor de TotalZeroCnt facilmente se torna grande, a eficiência pode ser mais melhorada do que a codificação aritmética binarizada com o código unário truncado. Observar que o dispositivo de codificação de dados tridimensionais pode adicionar um marcador para alternar entre utilizando o código unário truncado e utilizando o Exponential-Golomb a um cabeçalho. Certamente, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação selecionando o método ideal de binzarização. Ainda, o dispositivo de decodificação de dados tridimensionais pode decodificar corretamente um fluxo de bits referindo-se ao marcador incluído no cabeçalho para alternar o método de binarização.
[001019] A Figura 130 é um diagrama mostrando um exemplo de sintaxe da informação de atributo (attribute_data) na presente modificação. A informação de atributo (attribute_data) mostrada na Figura 130 ainda inclui o número total de zeros (TotalZeroCnt) além da informação de atributo mostrada na Figura 119. Observar que a outra informação é a mesmo que na Figura 119. O número total de zeros (TotalZeroCnt) indica o número total do coeficientes de codificação tendo um valor de 0 após a quantização.
[001020] Ainda, o dispositivo de codificação de dados tridimensionais pode alternar o método de cálculo dos valores de TotalZeroCnt e ZeroCnt dependendo do valor de attribute_dimension. Por exemplo, quando attribute_dimension = 3, o dispositivo de codificação de dados tridimensionais pode contar o número de vezes que os valores do coeficientes de codificação de todos os componentes (dimensões) se tornam 0. A Figura 131 é um diagrama mostrando um exemplo do coeficiente de codificação, ZeroCnt, e TotalZeroCnt neste caso. Por exemplo, no caso da informação colorida mostrada na Figura 131, o dispositivo de codificação de dados tridimensionais conta o número dos coeficientes de codificação consecutivos tendo 0 para todos os componentes R, G, e B, e adiciona o número contado a um fluxo de bits como TotalZeroCnt e ZeroCnt. Certamente, se torna desnecessário codificar Total ZeroCnt e ZeroCnt para cada componente, e a sobrecarga pode ser reduzida. Portanto, a eficiência de codificação pode ser melhorada. Observar que o dispositivo de codificação de dados tridimensionais pode calcular TotalZeroCnt e ZeroCnt para cada dimensão mesmo quando attribute_dimension for dois ou mais, e pode adicionar os TotalZeroCnt e ZeroCnt calculados a um fluxo de bits.
[001021] A Figura 132 é um fluxograma do processamento de codificação do coeficiente de codificação (S6613) na presente modificação. Primeiro, o dispositivo de codificação de dados tridimensionais converte o coeficiente de codificação a partir de um valor de número inteiro assinado em um valor de número inteiro não assinado (S6661). A seguir, o dispositivo de codificação de dados tridimensionais codifica TotalZeroCnt (S6662).
[001022] Quando nem todos os coeficientes de codificação foram processados (Não em S6663), o dispositivo de codificação de dados tridimensionais determina se o valor do coeficiente de codificação a ser processado é zero (S6664). Quando o valor do coeficiente de codificação a ser processado é zero (Sim em S6664), o dispositivo de codificação de dados tridimensionais aumenta ZeroCnt em 1 (S6665), e retorna à etapa S6663.
[001023] Quando o valor do coeficiente de codificação a ser processado não for zero (Não em S6664), o dispositivo de codificação de dados tridimensionais determina se TotalZeroCnt é maior do que 0 (S6666). Quando TotalZeroCnt for maior do que 0 (Sim em S6666), o dispositivo de codificação de dados tridimensionais codifica ZeroCnt, e define TotalZeroCnt to TotalZeroCnt - ZeroCnt (S6667).
[001024] Após a etapa S6667, ou quando TotalZeroCnt for 0 (Não em S6666), o dispositivo de codificação de dados tridimensionais codifica o coeficiente de codificação, redefine ZeroCnt a 0 (S6668), e retorna à etapa S6663. Por exemplo, o dispositivo de codificação de dados tridimensionais realiza a codificação aritmética binária. Ainda, o dispositivo de codificação de dados tridimensionais pode subtrair o valor 1 a partir do coeficiente de codificação, e codificar o valor obtido.
[001025] Ainda, o processamento das etapas S6664 a S6668 é repetidamente realizado para cada coeficiente de codificação. Além disso, quando todos os coeficientes de codificação foram processados (Sim em S6663), o dispositivo de codificação de dados tridimensionais finaliza o processamento.
[001026] A Figura 133 é um fluxograma do processamento de decodificação do coeficiente de codificação (S6641) na presente modificação. Primeiro, o dispositivo de decodificação tridimensional decodifica TotalZeroCnt a partir de um fluxo de bits (S6671). A seguir, o dispositivo de decodificação tridimensional decodifica ZeroCnt a partir do fluxo de bits, e define TotalZeroCnt a TotalZeroCnt - ZeroCnt (S6672).
[001027] Quando nem todos os coeficientes de codificação foram processados (Não em S6673), o dispositivo de codificação de dados tridimensionais determina se ZeroCnt é maior do que 0 (S6674).
[001028] Quando ZeroCnt for maior do que zero (Sim em S6674), o dispositivo de decodificação de dados tridimensionais define o coeficiente de codificação a ser processado em 0 (S6675). A seguir, o dispositivo de decodificação de dados tridimensionais subtrai 1 a partir de ZeroCnt (S6676), e retorna à etapa S6673.
[001029] Quando ZeroCnt for zero (Não em S6674), o dispositivo de decodificação de dados tridimensionais decodifica o coeficiente de codificação a ser processado (S6677). Por exemplo, o dispositivo de decodificação de dados tridimensionais usa a decodificação aritmética binária. Ainda, o dispositivo de decodificação de dados tridimensionais pode adicionar o valor 1 ao coeficiente de codificação decodificado.
[001030] A seguir, o dispositivo de decodificação de dados tridimensionais determina se TotalZeroCnt é maior do que 0 (S6678). Quando TotalZeroCnt for maior do que 0 (Sim em S6678), o dispositivo de decodificação de dados tridimensionais decodifica ZeroCnt, define o valor obtido a ZeroCnt, define TotalZeroCnt a TotalZeroCnt - ZeroCnt (S6679), e retorna à etapa S6673. Ainda, quando TotalZeroCnt for 0 (Não em S6678), o dispositivo de decodificação tridimensional retorna à etapa S6673.
[001031] Ainda, o processamento das etapas S6674 a S6679 for repetidamente realizado para cada coeficiente de codificação. Além disso, quando todos os coeficientes de codificação foram processados (Sim em S6673), o dispositivo de codificação de dados tridimensionais converte o coeficiente de codificação decodificado a partir de um valor de número inteiro não assinado a um valor de número inteiro assinado (S6680).
[001032] A Figura 134 é um diagrama mostrando outro exemplo de sintaxe da informação de atributo (attribute_data). A informação de atributo (attribute_data) mostrada na Figura 134 inclui valor [j] [i]_greater_zero_flag, valor [j] [i]_greater_one_flag, e valor [j] [i], em vez do coeficiente de codificação (valor [j] [i]) mostrado na Figura 119. Observar que a outra informação é a mesmo que na Figura 119.
[001033] O valor [j] [i]_greater_zero_flag indica se ou não o valor do coeficiente de codificação (valor [j] [i]) é maior do que 0. Em outras palavras, o valor [j] [i]_greater_zero_flag indica se ou não o valor do coeficiente de codificação (valor [j] [i]) é 0.
[001034] Por exemplo, quando o valor do coeficiente de codificação for maior do que 0, valor [j] [i]_greater_zero_flag é definido ao valor 1, e quando o valor do coeficiente de codificação é 0, valor [j] [i]_greater_zero_flag é definido ao valor 0. Quando o valor de valor [j] [i]_greater_zero_flag for 0, o dispositivo de codificação de dados tridimensionais não precisa adicionar valor [j] [i] a um fluxo de bits. Neste caso, o dispositivo de decodificação tridimensional pode determinar que o valor do valor [j] [i] é o valor 0. Certamente, a quantidade de código pode ser reduzida.
[001035] O valor [j] [i]_greater_one_flag indica se ou não o valor do coeficiente de codificação (valor [j] [i]) é maior do que 1 (é igual a ou maior do que 2). Em outras palavras, o valor [j] [i]_greater_one_flag indica se ou não o valor do coeficiente de codificação (valor [j] [i]) é 1.
[001036] Por exemplo, quando o valor do coeficiente de codificação é maior do que 1, o valor [j] [i]_greater_one_flag é definido ao valor 1. Caso contrário, (quando o valor do coeficiente de codificação é igual a ou menor do que 1), o valor [j] [i]_greater_one_flag é definido ao valor
0. Quando o valor de valor [j] [i]_greater_one_flag é 0, o dispositivo de codificação de dados tridimensionais não precisa adicionar valor [j] [i] a um fluxo de bits. Neste caso, o dispositivo de decodificação tridimensional pode determinar que o valor de valor [j] [i] é o valor 1.
[001037] O valor [j] [i] indica o coeficiente de codificação após a quantização da informação de atributo da j-ésima dimensão do i-ésimo ponto tridimensional. Por exemplo, quando a informação de atributo é informação colorida, o valor [99] [1] indica o coeficiente de codificação da segunda dimensão (por exemplo, o valor G) do 100ésimo ponto tridimensional. Ainda, quando a informação de atributo é informação de refletância, o valor [119] [0] indica o coeficiente de codificação da primeira dimensão (por exemplo, a refletância) do 120ésimo ponto tridimensional.
[001038] Quando o valor [j] [i]_greater_zero_flag = 1, e o valor [j] [i]_greater_one_flag = 1, o dispositivo de codificação de dados tridimensionais pode adicionar valor [j] [i] a um fluxo de bits. Ainda, o dispositivo de codificação de dados tridimensionais pode adicionar o valor obtido subtraindo 2 a partir de valor [j] [i] ao fluxo de bits. Neste caso, o dispositivo de decodificação tridimensional calcula o coeficiente de codificação adicionando o valor 2 ao valor decodificado [j] [i].
[001039] O dispositivo de codificação de dados tridimensionais pode codificar por entropia valor [j] [i]_greater_zero_flag e valor [j] [i]_greater_one_flag. Por exemplo, a codificação aritmética binária e a decodificação aritmética binária podem ser usadas. Certamente, a eficiência de codificação pode ser melhorada.
[001040] Conforme declarado acima, o dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade realiza o processo mostrado pela Figura 135. O dispositivo de codificação de dados tridimensionais calcula valores de coeficiente (por exemplo, coeficientes codificados) a partir das peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos (S6691). A seguir, o dispositivo de codificação de dados tridimensionais gera uma segunda sequência de codificação incluindo primeira informação (por exemplo, ZeroCnt) e segunda informação (por exemplo, valor [j] [i]_greater_zero_flag), a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que os valores de coeficiente são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0 (S6692). O dispositivo de codificação de dados tridimensionais gera um fluxo de bits incluindo a segunda sequência de codificação (S6693). Deve ser observado que os valores de coeficiente descritos acima não são limitados aos coeficientes codificados, e podem ser residuais de predição que são valores de diferença entre informação de atributo e valores preditos.
[001041] De acordo com isso, uma vez que o dispositivo de codificação de dados tridimensionais pode reduzir a quantidade de código no caso de valores de coeficiente consecutivos tendo um valor de zero utilizando a primeira informação, a eficiência de codificação pode ser melhorada. Ainda, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ocorrem utilizando a segunda informação.
[001042] Por exemplo, cada uma das peças de informação de atributo inclui componentes, cada um dos valores de coeficiente inclui componentes de coeficiente correspondentes aos componentes, a primeira informação indica o número total de os valores de coeficiente consecutivos incluindo os componentes de coeficiente todos sendo 0, e a segunda informação indica se cada um dos componentes de coeficiente for 0.
[001043] De acordo com isso, uma vez que o dispositivo de codificação de dados tridimensionais pode reduzir a quantidade de código em comparação com o caso onde a primeira informação é fornecida para cada componente, a eficiência de codificação pode ser melhorada.
[001044] Por exemplo, a segunda sequência de codificação ainda inclui terceira informação (por exemplo, valor [j] [i]_greater_one_flag) e quarta informação (por exemplo, valor [j] [i]), a terceira informação indicando se cada um dos componentes de coeficiente é 1, a quarta informação indicando um valor obtido subtraindo 2 de cada um dos componentes de coeficiente.
[001045] Ainda, o dispositivo de codificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ou um valor de 1 ocorrem, utilizando a segunda informação, a terceira informação, e a quarta informação.
[001046] Por exemplo, os valores de coeficiente (por exemplo, coeficientes codificados) são gerados separando, por hierarquização, cada uma das peças de informação de atributo em um componente de alta frequência e um componente de baixa frequência.
[001047] Por exemplo, o dispositivo de codificação de dados tridimensionais ainda quantiza cada um dos valores de coeficiente, e os valores de coeficiente quantizados são dispostos na primeira sequência de codificação.
[001048] Por exemplo, o dispositivo de codificação de dados tridimensionais inclui um processador e memória, e o processador realiza o processo acima utilizando a memória.
[001049] O dispositivo de decodificação de dados tridimensionais de acordo com a presente modalidade realiza o processo mostrado pela Figura 136. O dispositivo de decodificação de dados tridimensionais obtém uma segunda sequência de codificação a partir de um fluxo de bits, a segunda sequência de codificação incluindo a primeira informação (por exemplo, ZeroCnt) e a segunda informação (por exemplo, valor [j] [i]_greater_zero_flag, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que valores de coeficiente gerados a partir das peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0 (S6695). A seguir, o dispositivo de decodificação de dados tridimensionais obtém os valores de coeficiente recuperando a primeira sequência de codificação a partir de a segunda sequência de codificação (S6696). Depois disso, o dispositivo de decodificação de dados tridimensionais calcula as peças de informação de atributo a partir dos valores de coeficiente (S6697). Deve ser observado que os valores de coeficiente descritos acima não são limitados aos coeficientes codificados, e podem ser residuais de predição que são valores de diferença entre a informação de atributo e os valores preditos.
[001050] De acordo com isso, uma vez que o dispositivo de decodificação de dados tridimensionais pode reduzir a quantidade de código no caso de valores de coeficiente consecutivos tendo um valor de zero utilizando a primeira informação, a eficiência de codificação pode ser melhorada. Ainda, o dispositivo de decodificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ocorrem utilizando a segunda informação.
[001051] Por exemplo, cada uma das peças de informação de atributo inclui componentes, cada um dos valores de coeficiente inclui componentes de coeficiente correspondentes aos componentes, a primeira informação indica o número total de os valores de coeficiente consecutivos incluindo os componentes de coeficiente todos sendo 0, e a segunda informação indica se cada um dos componentes de coeficiente é 0.
[001052] De acordo com isso, uma vez que o dispositivo de decodificação de dados tridimensionais pode reduzir a quantidade de código em comparação com o caso onde a primeira informação é fornecida para cada componente, a eficiência de codificação pode ser melhorada.
[001053] Por exemplo, a segunda sequência de codificação ainda inclui terceira informação (por exemplo, valor [j] [i]_greater_one_flag) e quarta informação (por exemplo, valor [j] [i]), a terceira informação indicando se cada um dos componentes de coeficiente é 1, a quarta informação indicando um valor obtido subtraindo 2 de cada um dos componentes de coeficiente.
[001054] Ainda, o dispositivo de decodificação de dados tridimensionais pode melhorar a eficiência de codificação no caso onde muitos valores de coeficiente tendo um valor de zero ou um valor de 1 ocorrem, utilizando a segunda informação, a terceira informação, e a quarta informação.
[001055] Por exemplo, os valores de coeficiente são gerados separando, por hierarquização, cada uma das peças de informação de atributo em um componente de alta frequência e um componente de baixa frequência.
[001056] Por exemplo, valores de coeficiente quantizados são dispostos na primeira sequência de codificação. O dispositivo de decodificação de dados tridimensionais obtém os valores de coeficiente quantizados recuperando a primeira sequência de codificação, e obtém cada um dos valores de coeficiente pela quantização inversa de um dos valores de coeficiente quantizados correspondentes.
[001057] Por exemplo, o dispositivo de decodificação de dados tridimensionais inclui um processador e memória, e o processador realiza o processo acima utilizando a memória.
[001058] Um dispositivo de codificação de dados tridimensionais, um dispositivo de decodificação de dados tridimensionais e similar de acordo com as modalidades da presente invenção foram descritos acima, mas a presente descrição não é limitada a essas modalidades.
[001059] Observar que cada um dos processadores incluídos no dispositivo de codificação de dados tridimensionais, no dispositivo de decodificação de dados tridimensionais e similar de acordo com as modalidades acima é tipicamente implementado como um circuito integrado de larga escala (LSI), que é um circuito integrado (IC). Esses podem tomar a forma de chips individuais ou podem ser parcialmente ou totalmente inseridos em um único chip.
[001060] Tal IC não está limitado a um LSI e, dessa 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.
[001061] Além disso, nas modalidades acima, os componentes estruturais podem ser implementados como hardware dedicado ou podem ser obtidos pela execução de 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.
[001062] 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 executado pelo dispositivo de codificação de dados tridimensionais, dispositivo de decodificação de dados tridimensionais e similar.
[001063] Além disso, as divisões dos blocos funcionais ilustrados nos diagramas em bloco são meros exemplos e, dessa 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 um outro bloco funcional. Além disso, as funções de uma pluralidade de blocos funcionais possuindo funções similares podem ser processadas por hardware ou software único de forma paralelizada ou dividida no tempo.
[001064] Além disso, a ordem de processamento da execução das etapas ilustradas nos fluxogramas é uma mera ilustração para descrever especificamente a presente invenção e, dessa forma, pode ser uma ordem diferente da ordem ilustrada. Além disso, uma ou mais dentre as etapas podem ser executadas simultaneamente (em paralelo)
com uma outra etapa.
[001065] Um dispositivo de codificação de dados tridimensionais, um dispositivo de decodificação de dados tridimensionais e similar de acordo com um ou mais aspectos foram descritos com base nas modalidades, mas a presente descrição não está limitada a essas modalidades. O um ou mais aspectos podem, dessa forma, incluir formas obtidas pela realização de várias modificações nas modalidades acima, que podem ser concebidas pelos versados na técnica, além das formas obtidas pela combinação de componentes estruturais em modalidades diferentes, sem se distanciar materialmente do espírito da presente descrição. Aplicabilidade Industrial
[001066] 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. Referência nos Desenhos 100, 400 dispositivo de codificação de dados tridimensionais 101, 202, 401, 501 obtentor 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 GOS inicial de decodificação 203 determinador de SPC de decodificação
204, 625 decodificador 212, 512, 513 dados tridimensionais decodificados 403 extrator de SWLD 404 codificador de WLD 405 codificador de SWLD 411 dados tridimensionais inseridos 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 misturador 631, 651 informação de 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 obtentor de mapa tridimensional 702 obtentor de dados autodetectados 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 autodetectados 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 armazenador de dados tridimensionais 820 controlador de transmissão 822 transmissor de dados 831, 832, 834, 835, 836, 837 dados tridimensionais 833 informação de 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 armazenador de dados tridimensionais 1021, 1121 controlador de transmissão 1022, 1122 transmissor de dados 1031, 1032, 1135 mapa tridimensional 1033, 1037, 1132 informação de sensor 1034, 1035, 1134 dados tridimensionais 1117 misturador de dados tridimensionais 1201 processador de compressão/decodificação de mapa tridimensional 1202 processador de compressão/decodificação de informação de sensor 1211 processador de decodificação de mapa tridimensional 1212 processador de compressão de informação de 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 intrapreditor 1310, 1407 memória de espaço de referência 1311, 1408 interpreditor 1312, 1409 controlador de predição 1313 codificador por entropia 1400 dispositivo de decodificação de dados tridimensionais 1401 decodificador por entropia 2100 dispositivo de codificação de dados tridimensionais 2101, 2111 gerador de “octree” 2102, 2112 calculadora de informação de 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 3000 dispositivo de codificação de dados tridimensionais 3001 codificador de informação de geometria 3002 novo sinalizador de informação de atributo 3003 codificador de informação de atributo 3010 dispositivo de decodificação de dados tridimensionais 3011 decodificador de informação de geometria 3012 decodificador de informação de atributo 6500 codificador de informação de atributo 6501, 6512 gerador de LoD 6502, 6513 buscador 6503, 6514 preditor 6504 subtrator 6505 quantizador 6506, 6515 quantizador inverso 6507, 6516 reconstrutor 6508, 6517 memória 6509 codificador aritmético 6510 decodificador de informação de atributo 6511 decodificador aritmético 6600 codificador de informação de atributo 6601 classificador 6602 transformador Haar 6603 quantizador 6604, 6612 quantizador inverso 6605, 6613 conversor inverso de Haar 6606, 6614 memória 6607 codificador aritmético 6610 decodificador de informação de atributo 6611 decodificador aritmético

Claims (12)

REIVINDICAÇÕES
1. Método de codificação de dados tridimensionais, caracterizado pelo fato de que compreende: calcular valores de coeficiente de peças de informação de atributo de pontos tridimensionais incluídos em dados de nuvem de pontos; gerar uma segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que os valores de coeficiente são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; e gerar um fluxo de bits incluindo a segunda sequência de codificação.
2. Método de codificação de dados tridimensionais, de acordo com a reivindicação 1, caracterizado pelo fato de que cada uma das peças de informação de atributo inclui componentes, cada um dos valores de coeficiente inclui componentes de coeficiente correspondentes aos componentes, a primeira informação indica o número total dos valores de coeficiente consecutivos incluindo os componentes de coeficiente todos sendo 0, e a segunda informação indica se cada um dos componentes de coeficiente é 0.
3. Método de codificação de dados tridimensionais, de acordo com a reivindicação 2, caracterizado pelo fato de que a segunda sequência de codificação ainda inclui terceira informação e quarta informação, a terceira informação indicando se cada um dos componentes de coeficiente é 1, a quarta informação indicando um valor obtido subtraindo 2 de cada um dos componentes de coeficiente.
4. Método de codificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que os valores de coeficiente são gerados separando, por hierarquização, cada uma das peças de informação de atributo em um componente de alta frequência e um componente de baixa frequência.
5. Método de codificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 1 a 4, ainda caracterizado pelo fato de que compreende: quantizar cada um dos valores de coeficiente, em que os valores de coeficiente quantizados são dispostos na primeira sequência de codificação.
6. Método de decodificação de dados tridimensionais, caracterizado pelo fato de que compreende: obter uma segunda sequência de codificação a partir de um fluxo de bits, a segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que valores de coeficiente gerados a partir de peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; obter os valores de coeficiente recuperando a primeira sequência de codificação a partir da segunda sequência de codificação; e calcular as peças de informação de atributo a partir dos valores de coeficiente.
7. Método de decodificação de dados tridimensionais, de acordo com a reivindicação 6, caracterizado pelo fato de que cada uma das peças de informação de atributo inclui componentes, cada um dos valores de coeficiente inclui componentes de coeficiente correspondentes aos componentes, a primeira informação indica o número total dos valores de coeficiente consecutivos incluindo os componentes de coeficiente todos sendo 0, e a segunda informação indica se cada um dos componentes de coeficiente é 0.
8. Método de decodificação de dados tridimensionais, de acordo com a reivindicação 7, caracterizado pelo fato de que a segunda sequência de codificação ainda inclui terceira informação e quarta informação, a terceira informação indicando se cada um dos componentes de coeficiente é 1, a quarta informação indicando um valor obtido subtraindo 2 de cada um dos componentes de coeficiente.
9. Método de decodificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 6 a 8, caracterizado pelo fato de que os valores de coeficiente são gerados separando, por hierarquização, cada uma das peças de informação de atributo em um componente de alta frequência e um componente de baixa frequência.
10. Método de decodificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 6 a 9, caracterizado pelo fato de que valores de coeficiente quantizados são dispostos na primeira sequência de codificação,
os valores de coeficiente quantizados são obtidos recuperando a primeira sequência de codificação, e os valores de coeficiente são cada um, obtidos pela quantização inversa de um dos valores de coeficiente quantizados correspondentes.
11. Dispositivo de codificação de dados tridimensionais, caracterizado pelo fato de que compreender: um processador; e memória, em que usando a memória, o processador: calcula valores de coeficiente a partir de peças da informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos; gera uma segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que os valores de coeficiente são dispostos, a segunda informação indicando se cada um dos valores de coeficiente é 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; e gera um fluxo de bits incluindo a segunda sequência de codificação.
12. Dispositivo de decodificação de dados tridimensionais, caracterizado pelo fato de que compreende: um processador; e memória, em que usando a memória, o processador: obtém a segunda sequência de codificação a partir de um fluxo de bits, a segunda sequência de codificação incluindo primeira informação e segunda informação, a primeira informação indicando um número total de valores de coeficiente zero consecutivos em uma primeira sequência de codificação em que os valores de coeficiente gerados a partir de peças de informação de atributo de pontos tridimensionais incluídos nos dados de nuvem de pontos são dispostos, a segunda informação indicando se cada um dos valores de coeficiente for 0, os valores de coeficiente zero sendo incluídos nos valores de coeficiente e tendo um valor de 0; obtém os valores de coeficiente recuperando a primeira sequência de codificação a partir da segunda sequência de codificação; e calcula as peças de informação de atributo a partir dos valores de coeficiente.
BR112021010602-2A 2018-12-26 2019-12-26 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)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862785002P 2018-12-26 2018-12-26
US62/785,002 2018-12-26
PCT/JP2019/051275 WO2020138352A1 (ja) 2018-12-26 2019-12-26 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Publications (1)

Publication Number Publication Date
BR112021010602A2 true BR112021010602A2 (pt) 2021-08-24

Family

ID=71129525

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021010602-2A BR112021010602A2 (pt) 2018-12-26 2019-12-26 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 (8)

Country Link
US (1) US20210314612A1 (pt)
EP (1) EP3905202A4 (pt)
JP (1) JPWO2020138352A1 (pt)
KR (1) KR20210107686A (pt)
CN (1) CN113228109A (pt)
BR (1) BR112021010602A2 (pt)
MX (1) MX2021006631A (pt)
WO (1) WO2020138352A1 (pt)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7480775B2 (ja) * 2019-03-19 2024-05-10 ソニーグループ株式会社 情報処理装置および方法
CN112532990B (zh) * 2020-11-23 2024-03-08 绍兴文理学院 一种串长度参数编码、解码方法和装置
BR112023020363A2 (pt) * 2021-04-21 2023-11-21 Panasonic Ip Corp America Método de codificação de dados tridimensional, método de decodificação de dados tridimensional, dispositivo de codificação de dados tridimensional, e dispositivo de decodificação de dados tridimensional
WO2023240660A1 (zh) * 2022-06-17 2023-12-21 Oppo广东移动通信有限公司 解码方法、编码方法、解码器以及编码器

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06237448A (ja) * 1993-02-12 1994-08-23 Toshiba Corp 可変長符号化及び復号化装置
JP3413720B2 (ja) * 1998-06-26 2003-06-09 ソニー株式会社 画像符号化方法及び装置、並びに画像復号方法及び装置
US7016417B1 (en) * 1998-12-23 2006-03-21 Kendyl A. Roman General purpose compression for video images (RHN)
JP4111367B2 (ja) * 2000-11-28 2008-07-02 Kddi株式会社 3次元画像の階層符号化方法および階層伝送復号方法
CN1946186B (zh) * 2001-11-22 2012-02-22 松下电器产业株式会社 可变长度编码方法以及可变长度解码方法
ATE287608T1 (de) * 2003-06-16 2005-02-15 Cit Alcatel Verfahren zur übertragung von signalisierungsinformation in einem mehrträgerfunkübertragungsnetzwerk
JP2005244789A (ja) * 2004-02-27 2005-09-08 Seiko Epson Corp 情報処理装置
JP4502384B2 (ja) * 2004-11-25 2010-07-14 キヤノン株式会社 可変長符号復号化装置及び可変長符号復号化方法
EP2051499B1 (en) * 2006-07-13 2015-09-09 NEC Corporation Wavelet-based image encoding and decoding device and encoding method and decoding method
US8098735B2 (en) * 2006-12-21 2012-01-17 Lsi Corporation Efficient 8×8 CABAC residual block decode
KR101394153B1 (ko) * 2007-12-11 2014-05-16 삼성전자주식회사 양자화 방법 및 장치, 역양자화 방법 및 장치
KR101501568B1 (ko) * 2008-07-04 2015-03-12 에스케이 텔레콤주식회사 영상 부호화 및 복호화 장치 및, 방법
US9391635B2 (en) * 2009-05-15 2016-07-12 Texas Instruments Incorporated Block scanner and run-level encoder from AC to DC values
US8340448B2 (en) * 2009-10-06 2012-12-25 Cisco Technology, Inc. Locally variable quantization and hybrid variable length coding for image and video compression
US10091529B2 (en) * 2010-07-09 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding a transform coefficient
US9288496B2 (en) * 2010-12-03 2016-03-15 Qualcomm Incorporated Video coding using function-based scan order for transform coefficients
US20130044819A1 (en) * 2011-08-16 2013-02-21 Phani Kumar Uppalapati Decoding a variable length code
US9866829B2 (en) * 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
CA2807786C (en) * 2012-03-08 2016-06-21 Research In Motion Limited Motion vector sign bit hiding
US9491463B2 (en) * 2012-04-14 2016-11-08 Qualcomm Incorporated Group flag in transform coefficient coding for video coding
WO2014020663A1 (ja) 2012-07-30 2014-02-06 三菱電機株式会社 地図表示装置
CN109328461B (zh) * 2016-04-29 2023-09-05 世宗大学校产学协力团 视频信号编码/解码方法和设备
US10223810B2 (en) * 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
JP2018201143A (ja) * 2017-05-29 2018-12-20 株式会社シキノハイテック 画像符号化装置
US10861196B2 (en) * 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
EP3503557A1 (en) * 2017-12-22 2019-06-26 Thomson Licensing Method and apparatus for video encoding and decoding based on context switching
US20190208225A1 (en) * 2018-01-02 2019-07-04 Qualcomm Incorporated Sign prediction in video coding
US10877152B2 (en) * 2018-03-27 2020-12-29 The Mathworks, Inc. Systems and methods for generating synthetic sensor data
AU2018204786A1 (en) * 2018-06-29 2020-01-16 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
US11222427B2 (en) * 2018-10-31 2022-01-11 Wind River Systems, Inc. Image compression

Also Published As

Publication number Publication date
JPWO2020138352A1 (ja) 2021-11-18
KR20210107686A (ko) 2021-09-01
WO2020138352A1 (ja) 2020-07-02
US20210314612A1 (en) 2021-10-07
EP3905202A1 (en) 2021-11-03
EP3905202A4 (en) 2022-03-16
MX2021006631A (es) 2021-07-07
CN113228109A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
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
JP7167147B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7330962B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7245244B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7167144B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP7448519B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
BR112021016832A2 (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
JP7410879B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JPWO2019235587A1 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP2024052911A (ja) 符号化方法
JP7509751B2 (ja) 三次元点のデータ符号化方法、三次元点のデータ復号方法、三次元点のデータ符号化装置、及び三次元点のデータ復号装置
RU2798155C2 (ru) Способ кодирования трехмерных данных, способ декодирования трехмерных данных, устройство кодирования трехмерных данных и устройство декодирования трехмерных данных
JP7453212B2 (ja) 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置