BR112020023939A2 - 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 PDFInfo
- Publication number
- BR112020023939A2 BR112020023939A2 BR112020023939-9A BR112020023939A BR112020023939A2 BR 112020023939 A2 BR112020023939 A2 BR 112020023939A2 BR 112020023939 A BR112020023939 A BR 112020023939A BR 112020023939 A2 BR112020023939 A2 BR 112020023939A2
- Authority
- BR
- Brazil
- Prior art keywords
- dimensional data
- dimensional
- information
- data
- decoding
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 315
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 238000013139 quantization Methods 0.000 claims description 70
- 230000002441 reversible effect Effects 0.000 claims description 16
- 238000011002 quantification Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 145
- 238000010586 diagram Methods 0.000 description 132
- 238000012545 processing Methods 0.000 description 92
- 230000005540 biological transmission Effects 0.000 description 71
- 238000013519 translation Methods 0.000 description 69
- 230000014616 translation Effects 0.000 description 69
- 238000004891 communication Methods 0.000 description 50
- 230000003068 static effect Effects 0.000 description 30
- 230000008859 change Effects 0.000 description 19
- 230000006835 compression Effects 0.000 description 19
- 238000007906 compression Methods 0.000 description 19
- 230000009466 transformation Effects 0.000 description 18
- 230000010365 information processing Effects 0.000 description 17
- 230000002159 abnormal effect Effects 0.000 description 15
- 238000012544 monitoring process Methods 0.000 description 15
- 238000003070 Statistical process control Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 230000033001 locomotion Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 230000010485 coping Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004020 luminiscence type Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 238000011426 transformation method Methods 0.000 description 6
- 108091026890 Coding region Proteins 0.000 description 5
- 230000003321 amplification Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000003199 nucleic acid amplification method Methods 0.000 description 5
- 239000003086 colorant Substances 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 1
- 239000013643 reference control Substances 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Processing (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 é para codificação
de um ponto tridimensional que tem informação de atributo. O método de
codificação de dados tridimensionais envolve cálculo de um valor de
previsão para a informação de atributo do ponto tridimensional (S3061),
cálculo de um residual de previsão que é a diferença entre o valor de
previsão e a informação de atributo do ponto tridimensional (S3062),
geração de dados binários através da binarização do residual de previsão
(S3063) e codificação aritmética dos dados binários (S3064). A
codificação aritmética pode, por exemplo, usar uma tabela de codificação
diferente para cada bit dos dados binários.
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
[0001] A presente invenção refere-se a um método de codificação de dados tridimensionais, a um método de decodificação de dados tridimensionais, a um dispositivo de codificação de dados tridimensionais e a um dispositivo de decodificação de dados tridimensionais.
[0002] Os dispositivos ou serviços que utilizam dados tridimensionais devem ter seu uso difundido em uma faixa ampla de campos, tal como visão de computador que permite as operações autônomas de carros e robôs, informação de mapa, monitoramento, inspeção de infraestrutura e distribuição de vídeo. Os dados tridimensionais são obtidos através de vários meios, incluindo um sensor de distância, tal como um buscador de faixa, além de uma câmera estéreo e uma combinação de uma pluralidade de câmeras monoculares.
[0003] Os métodos de representação dos dados tridimensionais incluem um método conhecido como um esquema de nuvem de pontos que representa o formato de uma estrutura tridimensional por um grupo de pontos em um espaço tridimensional. No esquema de nuvem de pontos, as posições e cores de um grupo de pontos são armazenadas. Enquanto a nuvem de pontos deve ser um método principal de representação de dados tridimensionais, uma quantidade massiva de dados de um grupo de pontos necessita de compressão da quantidade de dados tridimensionais, através de codificação, para fins de acúmulo e transmissão, como no caso de uma imagem em movimento bidimensional (exemplos incluem MPEG-4 AVC e HEVC padronizado por MPEG).
[0004] Enquanto isso, a compressão da nuvem de pontos tem suporte parcial, por exemplo, por uma biblioteca de fonte aberta (Point Cloud Library) para processamento relacionado com a nuvem de pontos.
[0005] 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
[0006] LPT 1: Publicação Internacional WO 2014/020663
[0007] Tem havido uma demanda pela redução de tempo de processamento na codificação ou decodificação de dados tridimensionais.
[0008] A presente invenção tem por objetivo fornecer um método de codificação de dados tridimensionais, um método de decodificação de dados tridimensionais, um dispositivo de codificação de dados tridimensionais e um dispositivo de decodificação de dados tridimensionais, que sejam capazes de reduzir a quantidade de código.
[0009] Um método de codificação de dados tridimensionais de acordo com um aspecto da presente invenção é um método de codificação de dados tridimensionais de codificação de um ponto tridimensional tendo informação de atributo. O método de codificação de dados tridimensionais inclui: cálculo de um residual de previsão que é uma diferença entre a informação de atributo do ponto tridimensional e o valor previsto; binarização do residual de previsão para gerar dados binários; e codificação aritmética dos dados binários.
[0010] Um método de decodificação de dados tridimensionais de acordo com um aspecto da presente invenção é um método de decodificação de dados tridimensionais de decodificação de um ponto tridimensional tendo informação de atributo. O método de decodificação de dados tridimensionais inclui: cálculo de um valor previsto da informação de atributo do ponto tridimensional; decodificação aritmética de dados codificados incluídos em uma sequência de bits para gerar dados binários; desbinarização dos dados binários para gerar um residual de previsão; e cálculo de um valor decodificado da informação de atributo do ponto tridimensional através da adição do valor previsto e do residual de previsão.
[0011] A presente invençã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 reduzir a quantidade de código.
[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 previsão dentre os SPCs que pertencem à camada mais inferior em um GOS, de acordo com a modalidade 1.
[0014] A figura 3 é um diagrama ilustrando um exemplo de estruturas de previsã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 em bloco 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 em bloco 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 ilustrando 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 em bloco 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 em bloco 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 ilustrando 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 ilustrando 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 em bloco de um dispositivo de criação de dados tridimensionais, de acordo com a modalidade 3.
[0036] A figura 25 é um diagrama em bloco de um dispositivo de transmissão de dados tridimensionais, de acordo com a modalidade 3.
[0037] A figura 26 é um diagrama em bloco de um dispositivo de processamento de informação tridimensional, de acordo com a modalidade 4.
[0038] A figura 27 é um diagrama em bloco 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 em bloco de um dispositivo de cliente, de acordo com a modalidade 6.
[0041] A figura 30 é um diagrama em bloco 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 em bloco 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 previsã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 intraprevisão, de acordo com a modalidade 7.
[0056] A figura 45 é um diagrama para descrever um processo de rotação e translação, de acordo com a modalidade 7.
[0057] A figura 46 é um diagrama 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 interprevisão, de acordo com a modalidade 7.
[0059] A figura 48 é um diagrama em bloco 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ó parente 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ó parente, de acordo com a modalidade 8.
[0067] A Figura 56 é um diagrama em bloco de um dispositivo de codificação de dados tridimensionais, de acordo com a modalidade 8.
[0068] A Figura 57 é diagrama em bloco 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 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 configuração de LoDs, de acordo com a modalidade 9.
[0081] A Figura 70 é diagrama ilustrando um exemplo de configuraçã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 previstos, de acordo com a modalidade 9.
[0083] A Figura 72 é um diagrama ilustrando exemplos de códigos
Golomb-exponencial, de acordo com a modalidade 9.
[0084] A Figura 73 é um diagrama indicando um processo em códigos Golomb-exponencial, 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 Golomb-exponencial, 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 em bloco de um dispositivo de codificação de dados tridimensionais, de acordo com a modalidade 9.
[0094] A Figura 83 é um diagrama em bloco de um dispositivo de codificação de dados tridimensionais, de acordo com a modalidade 9.
[0095] A Figura 84 é um fluxograma de um processo de decodificaçã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] Um método de codificação de dados tridimensionais de acordo com um aspecto da presente invenção é um método de codificação de dados tridimensionais de codificação de um ponto tridimensional tendo informação de atributo. O método de codificação de dados tridimensionais inclui: cálculo de um valor previsto da informação de atributo do ponto tridimensional; cálculo de um residual de previsão que é uma diferença entre a informação de atributo do ponto tridimensional e o valor previsto; binarização do residual de previsão para gerar dados binários; e codificação aritmética dos dados binários.
[0098] Desta maneira, o método de codificação de dados tridimensionais incluindo cálculo do residual de previsão da informação de atributo, e binarização e codificação aritmética do residual de previsão, o que torna possível reduzir a quantidade de código dos dados a serem codificados da informação de atributo.
[0099] Por exemplo, na codificação aritmética, uma tabela de codificação diferente pode ser usada para cada bit incluído nos dados binários.
[0100] Com isso, o método de codificação de dados tridimensionais torna possível aumentar a eficiência de codificação.
[0101] Por exemplo, na codificação aritmética, um número total de tabelas de codificação a ser usado pode ser maior para um bit de ordem menor incluído nos dados binários.
[0102] Por exemplo, na codificação aritmética, uma tabela de codificação a ser usada para codificar por aritmética um bit atual incluído nos dados binários pode ser selecionada de acordo com um valor de um bit de ordem maior com relação ao bit atual.
[0103] Com isso, uma vez que a tabela de codificação é selecionada de acordo com o valor do bit de ordem superior, o método de codificação de dados tridimensionais torna possível aumentar a eficiência de codificação.
[0104] Por exemplo, na binarização: os dados binários que têm uma contagem de bit fixa podem ser gerados através de binarização do residual de previsão quando o residual de previsão é menor do que um valor limiar; e os dados binários incluindo um primeiro código e um segundo código podem ser gerados quando o residual de previsão é maior do que ou igual ao valor limiar. O primeiro código pode ter a contagem de bit fixa indicando o valor limiar, e o segundo código pode ter sido obtido através de binarização, usando codificação Golomb- exponencial, um valor obtido subtraindo o valor limiar do residual de previsão. Por exemplo, na codificação aritmética, métodos de codificação aritmética diferentes podem ser usados para o primeiro código e o segundo código.
[0105] Com isso, por exemplo, uma vez que o primeiro código e o segundo código podem ser codificados de modo aritmético usando métodos de codificação aritmética respectivamente adequados para o primeiro código e o segundo código, o método de codificação de dados tridimensionais torna possível aumentar a eficiência de codificação.
[0106] Por exemplo, o método de codificação de dados tridimensionais pode incluir ainda quantização do residual de previsão, e binarização do residual de previsão quantizado, na binarização. Por exemplo, o valor limiar pode ser modificado de acordo com uma escala de quantização na quantização.
[0107] Com isso, uma vez que o valor limiar adequadamente de acordo com a escala de quantização pode ser usado, o método de codificação de dados tridimensionais torna possível aumentar a eficiência de codificação.
[0108] Por exemplo, o segundo código pode incluir um prefixo e um sufixo. Por exemplo, na codificação aritmética, tabelas de codificação diferentes podem ser usadas para o prefixo e o sufixo.
[0109] Com isso, o método de codificação de dados tridimensionais torna possível aumentar a eficiência de codificação.
[0110] Um método de decodificação de dados tridimensionais de acordo com um aspecto da presente invenção é um método de decodificação de dados tridimensionais de decodificação de um ponto tridimensional tendo informação de atributo. O método de decodificação de dados tridimensionais inclui: cálculo de um valor previsto da informação de atributo do ponto tridimensional; decodificação aritmética de dados codificados incluídos em uma sequência de bits para gerar dados binários; desbinarização dos dados binários para gerar um residual de previsão; e cálculo de um valor decodificado da informação de atributo do ponto tridimensional através da adição do valor previsto e do residual de previsão.
[0111] Desta maneira, o método de decodificação de dados tridimensionais torna possível decodificar apropriadamente a sequência de bits da informação de atributo gerada pelo cálculo do residual de previsão da informação de atributo e binarização e decodificação aritmética do residual de previsão.
[0112] Por exemplo, na decodificação aritmética, uma tabela de codificação diferente pode ser usada para cada bit incluído nos dados arbitrários.
[0113] Com isso, o método de decodificação de dados tridimensionais torna possível decodificar apropriadamente a sequência de bits codificada em uma eficiência de codificação aumentada.
[0114] Por exemplo, na decodificação aritmética, um número total de tabelas de codificação a serem usadas pode ser maior para um bit de ordem menor incluído nos dados binários.
[0115] Por exemplo, na decodificação aritmética, uma tabela de codificação a ser usada para codificar por aritmética um bit atual incluído nos dados binários pode ser selecionada de acordo com um valor de um bit de ordem superior com relação ao bit atual.
[0116] Com isso, o método de decodificação de dados tridimensionais torna possível decodificar apropriadamente a sequência de bits codificada em uma eficiência de codificação aumentada.
[0117] Por exemplo, na desbinarização: um primeiro código que tem uma contagem de bit fixa incluída nos dados binários pode ser desbinarizado para gerar um primeiro valor; o primeiro valor pode ser determinado ser o residual de previsão quando o primeiro valor é menor do que um valor limiar; e quando o primeiro valor é maior do que ou igual ao valor limiar, um código que é um código Golumb-exponencial incluído nos dados binários pode ser desbinarizado para gerar um segundo valor, e o primeiro valor e o segundo valor podem ser adicionados para gerar o residual de previsão. Por exemplo, na decodificação aritmética, métodos de decodificação aritmética diferentes podem ser usados para o primeiro código e o segundo código.
[0118] Com isso, o método de decodificação de dados tridimensionais torna possível decodificar apropriadamente a sequência de bits codificada em uma eficiência de codificação aumentada.
[0119] Por exemplo, o método de decodificação de dados tridimensionais pode incluir ainda quantização inversa do residual de previsão, e adição do valor previsto e do residual de previsão quantizado inverso, na adição. Por exemplo, o valor limiar pode ser modificado de acordo com uma escala de quantização na quantização inversa.
[0120] Com isso, o método de decodificação de dados tridimensionais torna possível decodificar apropriadamente a sequência de bits codificada em uma eficiência de codificação aumenta.
[0121] Por exemplo, o segundo código pode incluir um prefixo e um sufixo. Por exemplo, na decodificação aritmética, tabelas de codificação diferentes podem ser usadas para o prefixo e o sufixo.
[0122] Um dispositivo de codificação de dados tridimensionais de acordo com um aspecto da presente invenção é um dispositivo de codificação de dados tridimensionais que codifica um ponto tridimensional tendo informação de atributo. O dispositivo de codificação de dados tridimensionais inclui um processador e memória. Usando a memória, o processador: calcula um valor previsto da informação de atributo do ponto tridimensional; calcula um residual de previsão que é uma diferença entre a informação de atributo do ponto tridimensional e o valor previsto; binariza o residual de previsão para gerar dados binários; e codifica de modo aritmético os dados binários.
[0123] Desta maneira, o dispositivo de codificação de dados tridimensionais é capaz de reduzir a quantidade de código dos dados a serem codificados da informação de atributo através do cálculo do residual de previsão da informação de atributo e binarização e codificação aritmética do residual de previsão.
[0124] Um dispositivo de decodificação de dados tridimensionais de acordo com um aspecto da presente invenção é um dispositivo de decodificação de dados tridimensionais que decodifica um ponto tridimensional tendo informação de atributo. O dispositivo de codificação de dados tridimensionais inclui um processador e memória. Usando a memória, o processador: calcula um valor previsto da informação de atributo do ponto tridimensional: decodifica por aritmética os dados codificados incluídos em uma sequência de bits para gerar dados binários; desbinariza os dados binários para gerar um residual de previsão; e calcula um valor decodificado da informação de atributo do ponto tridimensional através da adição do valor previsto e do residual de previsão.
[0125] 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 previsão da informação de atributo e binarização e decodificação aritmética do residual de previsão.
[0126] Note-se que esses aspectos gerais e 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 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.
[0127] A seguir são descritas modalidades com referência aos desenhos. Note-se 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 devem limitar a presente descriçã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
[0128] Primeiro, a estrutura de dados dos dados tridimensionais codificados (doravante 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.
[0129] Na presente modalidade, um espaço tridimensional é dividido em espaços (SPCs), que correspondem às imagens na codificação de imagem em movimento, e os dados tridimensionais são codificados SPC por SPC. Cada SPC é adicionalmente dividido em volumes (VLMs), que correspondem a macro blocos etc. na codificação de imagem em movimento, e previsões e transformações são realizadas 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. Note-se que a previsão é um processo de geração de dados tridimensionais de previsã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 previsão e a unidade de processamento atual, como no caso de previsões realizadas nas imagens bidimensionais. Tal previsão inclui não apenas a previsão espacial, na qual outra unidade de previsão, que corresponde ao mesmo tempo, é referida, mas também a previsão temporal, na qual uma unidade de previsão, que corresponde a um tempo diferente, é referida.
[0130] 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 (doravante também referido como dispositivo de codificação) codifica os pontos no grupo de pontos ou pontos incluídos nos “voxels” respectivos, de uma forma coletiva, de acordo com um tamanho de voxel. “voxels” mais finos permitem uma representação altamente precisa do formato tridimensional de um grupo de pontos, enquanto os “voxels” maiores permitem uma representação aproximada do formato tridimensional de um grupo de pontos.
[0131] Note-se que o apresentado a seguir descreve o caso no qual os dados tridimensionais são uma nuvem de pontos, mas os dados tridimensionais não estão limitados a uma nuvem de pontos, e, dessa forma, os dados tridimensionais de qualquer formato podem ser empregados.
[0132] Além disso, note-se que os “voxels”, com uma estrutura hierárquica, podem ser utilizados. Em tal caso, o fato de a hierarquia incluir n níveis, se um ponto de amostragem está incluído no nível n-1 ou seus níveis inferiores (os níveis inferiores ao nível n), pode ser sequencialmente indicado. Por exemplo, quando apenas o nível n é decodificado, e o nível n-1 ou seus níveis inferiores incluem um ponto de amostragem, o nível n pode ser decodificado considerando-se que um ponto de amostragem seja incluído no centro de um “voxel” no nível n.
[0133] 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.
[0134] Como no caso de codificação de imagem em movimento, cada SPC é classificado em uma das pelo menos três estruturas de previsão que incluem intra SPC (I-SPC), que é individualmente decodificável; SPC de previsã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.
[0135] 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).
[0136] 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. Note-se que a metainformação pode ser incluída em dados codificados, ou pode ser transmitida separadamente a partir dos dados codificados.
[0137] 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.
[0138] Note-se que a seguir também são descritos os processos, tal como codificação, decodificação e referência, a serem realizados nos dados tridimensionais incluídos nas unidades de processamento, tal como GOS, SPC e VLM, simplesmente como realização de codificação/para codificar, decodificação/para decodificar, referência, etc. em uma unidade de processamento. Note-se também que os dados tridimensionais incluídos em uma unidade de processamento incluem, por exemplo, pelo menos um par de uma posição espacial, tal como coordenadas tridimensionais, e um valor de atributo, tal como informação de cor.
[0139] A seguir, as estruturas de previsão, dentre SPCs em um GOS, serão descritas. Uma pluralidade de SPCs, no mesmo GOS, ou uma pluralidade de VLMs, no mesmo SPC, ocupam espaços mutuamente diferentes, enquanto possuem a mesma informação de tempo (o tempo de decodificação e o tempo de exibição).
[0140] 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. Enquanto isso, 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 podem ser decodificados isoladamente.
[0141] Note-se que no caso de dados codificados da 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, a reprodução retroativa é difícil quando os GOSs são interdependentes. Em tal caso, um GOS fechado é basicamente utilizado.
[0142] 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.
[0143] A figura 2 é um diagrama ilustrando um exemplo de estruturas de previsão dentre os SPCs que pertencem à camada mais inferior de um GOS. A figura 3 é um diagrama ilustrando um exemplo de estruturas de previsão dentre as camadas.
[0144] 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 alta velocidade, por exemplo, o dispositivo de decodificação de dados tridimensionais (doravante também referido como dispositivo de decodificação) decodifica apenas I-SPC(s) no GOS.
[0145] 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.
[0146] Na estrutura ilustrada na figura 3, o dispositivo de codificação ou o dispositivo de decodificação codificam ou decodificam uma pluralidade de camadas, sequencialmente a partir da camada inferior (camada 1). Isso aumenta a prioridade de dados no solo e em suas proximidades, o que envolve uma maior quantidade de informação, quando, por exemplo, um carro de direção automática, é considerado.
[0147] Com referência aos dados codificados utilizados para um drone, por exemplo, a codificação ou decodificação pode ser realizada sequencialmente a partir de SPCs na camada superior em um GOS na direção da altura.
[0148] 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.
[0149] A seguir, o manuseio de objetos estáticos e objetos dinâmicos será descrito.
[0150] Um espaço tridimensional inclui cenas ou objetos inanimados, tal como um edifício ou uma estrada (doravante coletivamente chamados de objetos estáticos), e objetos com movimento, tal como um carro e uma pessoa (doravante 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. Nessa descrição, um método ilustrativo de codificação de um objeto dinâmico será descrito.
[0151] 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.
[0152] 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.
[0153] 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.
[0154] 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.
[0155] 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 GOS 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.
[0156] 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. Note-se que um objeto dinâmico pode ser representado não pelos SPC(s), mas por pelo menos um VLM ou VXL.
[0157] O dispositivo de codificação também pode codificar um objeto estático e um objeto dinâmico como sequências mutuamente diferentes.
[0158] 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, GOS por GOS.
[0159] SPC(s) incluídos em outros GOS codificados podem ser referidos em um P-SPC ou um B-SPC que constituem um objeto dinâmico. No caso 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.
[0160] 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 deve ser separado, e, dessa forma, o dispositivo de codificação utiliza o segundo método. Enquanto isso, 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.
[0161] O tempo de codificação e o tempo de exibição de um GOS ou um SPC podem ser armazenados nos dados codificados ou como 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 designado para cada GOS ou SPC como o tempo de decodificação, e o mesmo valor pode ser designado como 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, um modelo pode ser empregado, garantindo que um decodificador possa realizar a decodificação sem falhas, mas possuindo 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.
[0162] A seguir, a topologia dos 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 a 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 GOS são determinados de acordo com a ordem de codificação.
[0163] No presente documento, os espaços tridimensionais nos mundos respectivos são previamente associados, um para um, às coordenadas geográficas absolutas, tal como coordenadas GPS ou coordenadas de latitude/longitude. Alternativamente, cada espaço tridimensional pode ser representado como uma posição relativa a uma posição de referência previamente determinada. As direções do eixo geométrico x, do eixo geométrico y e do eixo geométrico z, no espaço tridimensional, são representadas por vetores direcionais que são determinados com base nas latitudes e longitudes etc. Tais vetores direcionais são armazenados juntos com os dados codificados como metainformação.
[0164] GOSs possuem um tamanho fixo, e o dispositivo de codificação armazena tal tamanho como metainformação. O tamanho de 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 de GOS pode ser alterado de acordo com a quantidade ou atributos dos objetos com valores de informação. Alternativamente, no mesmo mundo, o dispositivo de codificação pode alterar, de forma adaptativa, o tamanho de GOS ou intervalo entre I-SPCs nos GOSs, de acordo com a densidade do objeto etc. Por exemplo, o dispositivo de codificação configura o tamanho de GOS para que seja menor, e o intervalo entre I-SPCs nos GOSs para ser mais curto, à medida que a densidade do objeto aumenta.
[0165] Em um exemplo ilustrado na figura 5, para se permitir o acesso randômico com um maior detalhamento, um GOS com uma alta densidade de objeto é dividido em regiões do terceiro ao décimo GOSs. Note-se que os sétimo a décimo GOSs estão localizados atrás dos terceiro a sexto GOSs.
[0166] 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 em bloco 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.
[0167] 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 elemento de obtenção 101, o determinador de região de codificação 102, o divisor 103 e o codificador 104.
[0168] Como ilustrado na figura 7, primeiro, o elemento de obtenção 101 obtém os dados tridimensionais 111, que são os dados de grupo de pontos (S101).
[0169] 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) obtido. 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.
[0170] 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, tal 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.
[0171] A seguir, o codificador 104 codifica sequencialmente uma pluralidade de SPCs em cada GOS, gerando, assim, os dados tridimensionais codificados 112 (S104).
[0172] Note-se 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 é codificada, 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.
[0173] 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.
[0174] 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).
[0175] 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).
[0176] Enquanto isso, 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).
[0177] 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.
[0178] 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 em bloco 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.
[0179] 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 elemento de obtenção 201, o determinador GOS inicial de decodificação 202, o determinador SPC de decodificação 203 e o decodificador 204.
[0180] Primeiro, o elemento de obtenção 201 obtém os dados tridimensionais codificados 211 (S201). A seguir, o determinador GOS inicial de decodificação 202 determina um GOS atual para decodificação (S202). Mais especificamente, o determinador 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.
[0181] A seguir, o determinador de SPC de decodificação 203 determina o tipo (I, P e/ou B) de SPCs a serem decodificados no GOS (S203). Por exemplo, o determinador de SPC de decodificação 203 determina se (1) decodifica apenas I-SPC(s), (2) se decodifica I-SPC(s) e P-SPCs ou (3) se decodifica SPCs de todos os tipos. Note-se 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.
[0182] 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). Note-se que a localização de endereço é armazenada na metainformação etc.
[0183] O dispositivo de decodificação de dados tridimensionais 200 decodifica os dados tridimensionais decodificados 212 como descrito no presente documento. Mais especificamente, o dispositivo de decodificação de dados tridimensionais 200 decodifica cada um dos dados tridimensionais codificados 211 das primeiras unidades de processamento (GOSs), cada um sendo uma unidade de acesso randômico e sendo associado à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).
[0184] 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).
[0185] 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. Enquanto isso, em adição aos tempos, o acesso randômico para espaços (coordenadas, objetos etc.) é considerado realizado em um mundo.
[0186] Para se permitir o acesso randômico a pelo menos três elementos de coordenadas, objetos e tempos, tabelas são preparadas associando os elementos respectivos aos números de índice GOS. Adicionalmente, os números de índice 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. Note-se que nem todas as tabelas ilustradas na figura 10 precisam ser utilizadas, e, dessa forma, pelo menos uma das tabelas é utilizada.
[0187] A seguir é descrito um exemplo no qual o 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 GOS é referida, o que indica que o endereço do primeiro I-SPC no segundo GOS é addr(2). Como tal, o decodificador 204 obtém dados desse endereço para iniciar a decodificação.
[0188] Note-se 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.
[0189] 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. Enquanto isso, 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.
[0190] 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 pontos chave para determinar o objeto detectado como um ponto de acesso randômico.
[0191] Como 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 unidades de processamento respectivas (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 unidades de processamento respectivas (GOSs).
[0192] O dispositivo de decodificação de dados tridimensional 200 obtém a primeira informação a partir dos dados tridimensionais codificados 211. Utilizando-se 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.
[0193] 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.
[0194] 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.
[0195] 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 indicar o atributo, por exemplo, se um objeto é um objeto dinâmico ou um objeto estático.
[0196] A metainformação também pode incluir informação que indica uma faixa da região espacial ocupada por um mundo.
[0197] 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 de dados codificados ou a uma pluralidade de SPCs, tal como SPCs em um GOS.
[0198] 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 utilizada 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.
[0199] 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.
[0200] A seguir são descritas variações da presente modalidade.
[0201] 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.
[0202] 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 amplificação com zoom, etc.
[0203] 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 a partir 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. Se "fornecer uma prioridade mais baixa" significa, no presente documento, por exemplo, se baixar a prioridade na sequência de processamento, para reduzir a resolução (para aplicar decimação no processamento), ou baixar a qualidade de imagem (para aumentar a eficiência de codificação, por exemplo, pela configuração da etapa de quantização, para que seja maior).
[0204] 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 o nível inferior na hierarquia.
[0205] O dispositivo de decodificação também pode iniciar a decodificação preferivelmente a partir do nível inferior da hierarquia, de acordo com a amplificação por zoom ou uso pretendido do mapa.
[0206] 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 a partir do chão (a região a ser reconhecida).
[0207] O dispositivo de codificação também pode codificar as nuvens de pontos que representam os formatos espaciais de um interior de um cômodo ou um exterior de um cômodo separadamente. Por exemplo, a separação de um GOS que representa o interior de um cômodo (GOS interno) e um GOS que representa o exterior de um cômodo (GOS externo) permite que o dispositivo de decodificação selecione um GOS a ser decodificado, de acordo com uma localização de ponto de vista, quando da utilização de dados codificados.
[0208] 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.
[0209] 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 mudar a precisão dos pontos chave de extração a partir de uma nuvem de pontos, ou a precisão da detecção de objetos, por exemplo, dependendo de se um GOS é um GOS interno ou um GOS externo.
[0210] 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. Note-se 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.
[0211] 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.
[0212] Quando da detecção de um objeto dinâmico não de uma nuvem de pontos, mas de uma informação de imagem tridimensional 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.
[0213] 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.
[0214] 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, SPC por SPC, incluindo a informação de coordenadas.
[0215] Adicionalmente, o dispositivo de codificação e o dispositivo de decodificação realizam a codificação ou a decodificação, volume por volume, em um SPC. Cada volume inclui um voxel, que é a unidade mínima na qual a informação de posição está associada.
[0216] Além disso, utilizando uma tabela que associa os elementos respectivos da informação espacial, incluindo coordenadas, objetos e tempos, com GOSs ou utilizando uma tabela que associa esses elementos um ao outro, o dispositivo de codificação e o dispositivo de decodificação associa qualquer um dos elementos a qualquer outro 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.
[0217] 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.
[0218] SPCs são classificados em três tipos: I-SPC que é codificado ou decodificado 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.
[0219] 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 designados a GOSs diferentes.
[0220] Objetos dinâmicos são codificados ou decodificados, 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.
[0221] O dispositivo de codificação e o dispositivo de decodificação fornecem uma prioridade aumentada ao I-SPC em um GOS para realizar a codificação ou decodificação. Por exemplo, o dispositivo de codificação realiza a codificação de uma forma que impede a degradação dos I-SPCs (de uma forma que permita que os dados tridimensionais originais sejam reproduzidos com uma maior fidelidade depois de decodificados). O dispositivo de decodificação decodifica, por exemplo, apenas os I-SPCs.
[0222] 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) de objetos em um mundo para realizar a codificação. De outra forma, o dispositivo de codificação altera a frequência de seleção de I-SPCs dependendo do número ou da escassez e densidade dos objetos incluídos nos dados tridimensionais. Por exemplo, o dispositivo de codificação utiliza os I-SPCs com uma frequência mais alta quando a densidade dos objetos em um mundo é mais alta.
[0223] O dispositivo de codificação também configura os pontos de acesso randômico, GOS por GOS, e armazena a informação indicando as regiões espaciais correspondentes aos GOSs na informação de cabeçalho.
[0224] O dispositivo de codificação utiliza, por exemplo, um valor padrão como o tamanho espacial de um GOS. Note-se 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.
[0225] 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 “voxels” respectivos. Adicionalmente, os “voxels” mais finos permitem uma informação de posição mais precisa.
[0226] 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.).
[0227] Além disso, a codificação ou decodificação é realizada, GOS por GOS, incluindo pelo menos um SPC.
[0228] 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.
[0229] 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.
[0230] Adicionalmente, o dispositivo de codificação e o dispositivo de decodificação transmitem ou recebem uma sequência codificada, mundo por mundo, incluindo pelo menos um GOS.
[0231] 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 à de cada SPC.
[0232] Além disso, o dispositivo de codificação e o dispositivo de decodificação codificam ou decodificam sucessivamente GOSs, mundo por mundo, incluindo tais GOSs. Em fazendo 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.
[0233] 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.
[0234] 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.
[0235] O dispositivo de codificação e o dispositivo de decodificação codificam ou decodificam SPCs ou GOSs incluídos em um espaço identificado que é identificado com base na informação externa de autolocalização e/ou uma região de tamanho, tal como a informação GPS, informação de rota, ou amplificação.
[0236] 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.
[0237] 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.
[0238] O dispositivo de codificação muda a precisão dos pontos chave de extração, a precisão do reconhecimento de objetos, ou o tamanho das regiões espaciais etc., incluídos em um SPC, dependendo de se um objeto é um objeto interno ou um objeto externo. Note-se 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 na qual esses GOSs se tornem adjacentes um ao outro em um mundo, e associa seus identificadores um ao outro para codificação e decodificação. Modalidade 2
[0239] 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 se reduzir a largura de banda de rede. No entanto, não tem havido tal funcionalidade na estrutura de codificação de dados tridimensionais, nem em um método de codificação para a mesma.
[0240] 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.
[0241] 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 previsão de um FGOS, um FSPC e um FVLM podem ser iguais às de um GOS, um SPC e um VLM.
[0242] 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.
[0243] 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).
[0244] 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.
[0245] 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.
[0246] 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.
[0247] Utilizadas como características de luz visível encontrou-se 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.
[0248] Um SWLD é gerado pelo cálculo das características descritas acima dos VXLs respectivos em um WLD para extração de FVXLs. No presente documento, SWLD pode ser atualizado cada vez que WLD for atualizado, ou pode ser atualizado com regularidade depois de ter se passado um determinado período de tempo, independentemente da temporização na qual WLD é atualizado.
[0249] Um SWLD pode ser gerado para cada tipo de característica. Por exemplo, diferentes SWLDs podem ser gerados para tipos respectivos de características, tal como SWLDS1 com base em características SHOT e SWLD2 com base em características SIFT, de modo que 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.
[0250] 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, com relação ao WLD que inclui todos os VXLs.
[0251] Em uma aplicação que utiliza as características para uma determinada finalidade, o uso da informação em um SWLD, em vez de um WLD, reduz o tempo necessário para se ler os dados a partir de um disco rígido, além da largura de banda e tempo necessários para a transferência de dados através de uma rede. Por exemplo, um WLD e um SWLD são mantidos em um servidor como informação de mapa, de modo que a informação de mapa a ser enviada seja 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.
[0252] A figura 12 e a figura 13 são diagramas ilustrando exemplos de utilização de um SWLD e um WLD. Como ilustra a figura 12, quando o cliente 1, que é um dispositivo montado em veículo, exige 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, SWLD em resposta à solicitação de obtenção (S302). O cliente 1 utiliza SWLD recebido para determinar a autolocalização (S303). Em fazendo 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 VXL obtida e SWLD. No presente documento, a informação de autolocalização inclui informação de posição tridimensional, orientação etc. do cliente 1.
[0253] Como ilustra a figura 13, quando o cliente 2, que é um dispositivo montado em veículo, exige 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, WLD, em resposta à solicitação de obtenção (S312). O cliente 2 utiliza o WLD recebido para criar um mapa (S313). Em fazendo 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.
[0254] Como descrito acima, o servidor envia, para um cliente, um
SWD quando as características dos VXLs respectivos são basicamente necessárias, tal como no caso de estimativa de autolocalização, e envia para um cliente um WLD, quando a informação VXL detalhada é necessária, tal como no caso de criação de mapa. Isso permite um envio/recepção eficiente de dados de mapa.
[0255] Note-se que um cliente pode julgar qual dentre um SWLD e um WLD é necessário, e solicitar que o servidor envie um SWLD ou um WLD. Além disso, o servidor pode julgar qual dentre um SWLD e um WLD enviar, de acordo com a situação do cliente ou de uma rede.
[0256] A seguir, um método será descrito para comutar o envio/recepção entre um mundo esparso (SWLD) e um mundo (WLD).
[0257] 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, limitando 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). Enquanto isso, 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.
[0258] Mais especificamente, um cliente recebe o SWLD através de uma rede LTE quando interno, e obtém o WLD através de uma rede WiFi quando interno, tal como em uma instalação. Isso permite que o cliente obtenha informação de mapa mais detalhada do ambiente interno.
[0259] 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 (WLD ou 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 (WLD ou SWLD) adequados para tal cliente.
[0260] 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). Enquanto isso, 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. Enquanto isso, quando viajando em uma estrada geral, o cliente recebe WLD, o que permite a obtenção de informação de mapa mais detalhada.
[0261] Como descrito acima, o cliente pode solicitar do 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 (WLD ou 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 (WLD ou SWLD) adequados para tal cliente.
[0262] 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, tal como edifícios, sinais ou pessoas, aparecem com alta frequência, de modo que o cliente possa, posteriormente, obter um WLD de tal região estreitada. Isso permite que o cliente obtenha a informação detalhada de uma região necessária, enquanto reduz a quantidade de dados recebidos do servidor.
[0263] O servidor também pode criar, a partir de um WLD, diferentes SWLDs para os respectivos objetos, e o cliente pode receber SWLDs de acordo com o uso pretendido. 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 deseja obter informação sobre as pessoas em torno do cliente, recebe o SWLD das pessoas, e quando deseja obter informação sobre os carros, recebe SWLD sobre os carros. Tais tipos de SWLDs podem ser distinguidos pela informação (indicador, ou tipo etc.) adicionada ao cabeçalho etc.
[0264] 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 em bloco do dispositivo de codificação de dados tridimensionais 400, de acordo com a presente modalidade. A figura 17 é um fluxograma dos processos de codificação de dados tridimensionais realizados pelo dispositivo de codificação de dados tridimensionais 400.
[0265] O dispositivo de codificação de dados tridimensionais 400,
ilustrado na figura 16, codifica os dados tridimensionais registrados 411, gerando, assim, os dados tridimensionais codificados 413 e os dados tridimensionais codificados 414, cada um sendo uma sequência codificada. No presente documento, os dados tridimensionais codificados 413 são dados tridimensionais codificados que correspondem a um WLD, e os dados tridimensionais codificados 414 são dados tridimensionais codificados que correspondem a um SWLD. Tal dispositivo de codificação de dados tridimensionais 400 inclui, um elemento de obtenção 401, um determinador de região de codificação 402, um extrator de SWLD 403, um codificador de WLD 404, e um codificador de SWLD 405.
[0266] Primeiro, como ilustra a figura 17, o elemento de obtenção 401 obtém os dados tridimensionais registrados 411, que são dados de grupo de pontos em um espaço tridimensional (S401).
[0267] 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).
[0268] A seguir, o extrator 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, gerando, assim, 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 registrados 411.
[0269] A seguir, o codificador de WLD 404 codifica os dados tridimensionais registrados 411 correspondendo a WLD, gerando, assim, os dados tridimensionais codificados 413 que correspondem ao
WLD (S404). Em fazendo 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.
[0270] O codificador de SWLD 405 codifica os dados tridimensionais extraídos 412 correspondendo ao SWLD, gerando, assim, os dados tridimensionais codificados 414 que correspondem a SWLD (S405). Em fazendo isso, o codificador SWLD 405 adiciona ao cabeçalho de dados tridimensionais codificados 414, a informação que distingue que tais dados tridimensionais codificados 414 são uma sequência incluindo um SWLD.
[0271] Note-se 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, note-se que uma parte ou todos esses processos podem ser realizados em paralelo.
[0272] Um parâmetro "world_type" é definido, por exemplo, como a informação adicionada a cada cabeçalho dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414. world_type=0 indica que uma sequência inclui um WLD, e world_type=1 indica que uma sequência inclui um SWLD. Um número aumentado de valores pode ser designado, 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.
[0273] Além disso, um método de codificação, utilizado pelo codificador WLD 404 para codificar um WLD, pode ser diferente de um método de codificação utilizado pelo codificador SWLD 405 para codificar um SWLD.
[0274] 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 um WLD. Por essa razão, de intraprevisão e interprevisão, a interprevisã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.
[0275] 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.
[0276] Além disso, o codificador 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 em um WLD. Um SWLD pode ter uma correção interdados inferior, por exemplo, à 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 apresentarem 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 SWLD 405 realiza a codificação novamente para regenerar os dados tridimensionais codificados 414 possuindo um tamanho de dados reduzido.
[0277] 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 SWLD 405 codifica tais dados tridimensionais extraídos 412. Alternativamente, o codificador 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.
[0278] Quando da falha em reduzir o tamanho dos dados dos dados tridimensionais codificados 414 do SWLD para menores do que o tamanho de dados dos dados tridimensionais codificados 413 do WLD, o codificador SWLD 405 pode gerar os dados tridimensionais codificados 414 do SWLD. Alternativamente, os dados tridimensionais codificados 413 do WLD podem ser copiados como dados tridimensionais codificados 414 do SWLD. De outra forma, os dados tridimensionais codificados 413 do WLD podem ser utilizados como estão, como dados tridimensionais codificados 414 do SWLD.
[0279] 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 em bloco do dispositivo de decodificação de dados tridimensionais 500, de acordo com a presente modalidade. A figura 19 é um fluxograma de processos de decodificação de dados tridimensionais realizados pelo dispositivo de decodificação de dados tridimensionais 500.
[0280] O dispositivo de decodificação de dados tridimensionais 500, ilustrado na figura 18, decodifica os dados tridimensionais codificados 511, gerando, dessa forma, 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.
[0281] Tal dispositivo de decodificação de dados tridimensionais 500 inclui um elemento de obtenção 501, um analisador de cabeçalho 502, um decodificador de WLD 503 e um decodificador de SWLD 504.
[0282] Primeiro, como ilustra a figura 19, o elemento de obtenção 501 obtém os dados tridimensionais codificados 511 (S501). A seguir, o analisador de cabeçalho 502 analisa o cabeçalho dos dados tridimensionais codificados 511 para identificar se os dados tridimensionais codificados 511 são uma sequência que inclui um WLD, ou uma sequência que inclui um SWLD (S502). Por exemplo, o parâmetro descrito acima world_type é referido na criação de tal identificação.
[0283] 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, gerando, assim, os dados tridimensionais decodificados 512 do WLD (S504). Enquanto isso, 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, gerando, assim, os dados tridimensionais decodificados 513 do SWLD (S505).
[0284] 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 intraprevisão e a interprevisão, a interprevisã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.
[0285] 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.
[0286] A seguir, uma representação de “octree” será descrita, sendo um método de representação de posições tridimensionais. Dados VXL incluídos nos dados tridimensionais são convertidos em uma estrutura de “octree” antes de serem 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 (doravante referidos como VXLs efetivos). Como ilustra a figura 21, 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. No presente documento, 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.
[0287] 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ó é adicionalmente dividido 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.
[0288] 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. Enquanto isso, VXL3 não é julgado como FVXL, e, dessa forma, não é adicionado a 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, com relação a WLD, e, dessa forma, os dados tridimensionais codificados de SWLD são menores do que os dados tridimensionais codificados de WLD.
[0289] A seguir são descritas variações da presente modalidade.
[0290] 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. Enquanto isso, 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.
[0291] Em geral, um SWLD tem menos chances de incluir dados VXL em uma região plana. Como tal, 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 a estimativa de autolocalização e a detecção de obstáculo na parte do cliente, enquanto reduz a largura de banda da rede.
[0292] Quando o cliente cria dados de mapa tridimensionais em alta velocidade, a informação de mapa, possuindo uma estrutura de entrelaçamento, é mais útil em alguns casos. Como tal, o servidor pode gerar um entrelaçamento de um WLD para deter o mesmo antecipadamente, como um mundo entrelaçado (MWLD). Por exemplo, quando deseja realizar uma criação tridimensional aproximada, o cliente recebe um MWLD, e quando deseja realizar uma criação tridimensional detalhada, o cliente recebe um WLD. Isso reduz a largura de banda de rede.
[0293] 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., como necessários para a estimativa de autolocalização, assistência à direção, ou direção autônoma, etc. e incorporar tal VXL, VLM, SPC ou GOS em um SWLD como um FVXL, um FVLM, um FSPC ou um FGOS. Tal julgamento pode ser realizado manualmente. Além disso, FVXLs etc., que foram 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, adicionalmente, a partir dos dados tridimensionais de entrada 411, dados correspondentes a um objeto que possui um atributo predeterminado, como dados tridimensionais extraídos 412.
[0294] 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.
[0295] 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.).
[0296] Um método, como descrito abaixo, pode ser utilizado para atualizar um WLD ou um SWLD.
[0297] 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 de WLD atualizado.
[0298] 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 de WLD. Quando o SWLD não precisa ser atualizado, o servidor julga que o WLD propriamente dito está ultrapassado.
[0299] Na descrição acima, a informação que distingue se uma sequência codificada que é proveniente de um WLD ou um SWLD é adicionada como informação de cabeçalho da sequência codificada. No entanto, quando houver muitos tipos de mundos, tal como um mundo entrelaçado e um mundo de faixa, a informação que distingue 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 SWLDs respectivos pode ser adicionada à informação de cabeçalho.
[0300] 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.
[0301] Como descrito acima, o dispositivo de codificação de dados tridimensionais 400 extrai, dos dados tridimensionais registrados 411 (os primeiros dados tridimensionais), os dados tridimensionais extraídos 412 (os 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).
[0302] 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 registrados 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.
[0303] O dispositivo de codificação de dados tridimensionais 400 codifica, adicionalmente, os dados tridimensionais registrados 411 para gerar os dados tridimensionais codificados 413 (segundos dados tridimensionais codificados).
[0304] 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.
[0305] Além disso, os dados tridimensionais extraídos 412 são codificados por um primeiro método de codificação, e os dados tridimensionais registrados 411 são codificados por um segundo método de codificação, diferente do primeiro método de codificação.
[0306] 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 registrados 411 e os dados tridimensionais extraídos 412.
[0307] Além disso, dentre a intraprevisão e a interprevisão, a interprevisão é mais preferivelmente realizada no primeiro método de codificação do que no segundo método de codificação.
[0308] Esse dispositivo de codificação de dados tridimensionais 400 permite que a interprevisão seja mais preferivelmente realizada nos dados tridimensionais extraídos 412, nos quais itens de dados adjacentes têm chances de apresentarem baixa correlação.
[0309] 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.
[0310] O dispositivo de codificação de dados tridimensionais 400 permite o uso de um método mais adequado para representar as posições tridimensionais dos dados tridimensionais considerando a diferença de número de itens de dados (o número de VXLs ou FVXLs) incluídos.
[0311] 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 registrados 411, ou dados tridimensionais codificados obtidos pela codificação de parte dos dados tridimensionais registrados
411. De outra forma, tal identificador identifica se os dados tridimensionais codificados são dados tridimensionais codificados 413 de um WLD, ou dados tridimensionais codificados 414 de um SWLD.
[0312] 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.
[0313] 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.
[0314] 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, dos dados tridimensionais codificados 413.
[0315] Além disso, o dispositivo de codificação de dados tridimensionais 400 extrai, adicionalmente, dados que correspondem a um objeto que possui um atributo predeterminado dos dados tridimensionais registrados 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.
[0316] Esse dispositivo de codificação de dados tridimensionais 400 pode gerar dados tridimensionais codificados 414 que incluem dados exigidos pelo dispositivo de decodificação.
[0317] Além disso, o dispositivo de codificação de dados tridimensionais 400 (servidor) envia, adicionalmente, para um cliente, um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414, de acordo com uma situação do cliente.
[0318] Esse dispositivo de codificação de dados tridimensionais 400 pode enviar dados adequados, de acordo com a situação do cliente.
[0319] 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.
[0320] Além disso, o dispositivo de codificação de dados tridimensionais 400 envia, adicionalmente, para um cliente, um dentre os dados tridimensionais codificados 413 e os dados tridimensionais codificados 414, de acordo com uma solicitação do cliente.
[0321] Esse dispositivo de codificação de dados tridimensionais 400 pode enviar dados adequados, de acordo com uma solicitação do cliente.
[0322] 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.
[0323] 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 registrados 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 registrados 411, o segundo método de decodificação sendo diferente do primeiro método de decodificação.
[0324] 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, adicionalmente, o uso de um método de decodificação adequado para cada um dentre os dados tridimensionais registrados 411 e os dados tridimensionais extraídos 412.
[0325] Além disso, dentre a intraprevisão e a interprevisão, a interprevisão é mais preferivelmente realizada no primeiro método de decodificação do que no segundo método de decodificação.
[0326] Esse dispositivo de decodificação de dados tridimensionais 500 permite que a interprevisão seja mais preferivelmente realizada nos dados tridimensionais extraídos onde os itens de dados adjacentes têm mais chances de apresentar uma baixa correlação.
[0327] 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.
[0328] 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.
[0329] Além disso, pelo menos um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414 inclui um identificador que indica se os dados tridimensionais codificados são dados tridimensionais codificados obtidos pela codificação de dados tridimensionais registrados 411, ou dados tridimensionais codificados obtidos pela codificação de parte dos dados tridimensionais registrados
411. O dispositivo de decodificação de dados tridimensionais 500 se refere a tal identificador na identificação entre os dados tridimensionais codificados 413 e os dados tridimensionais codificados 414.
[0330] 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.
[0331] O dispositivo de decodificação de dados tridimensionais 500 notifica, adicionalmente, 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.
[0332] Esse dispositivo de decodificação de dados tridimensionais 500 pode receber dados adequados, de acordo com a situação do cliente.
[0333] 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.
[0334] O dispositivo de decodificação de dados tridimensionais 500 realiza, adicionalmente, uma solicitação do servidor por um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414, e recebe um dos dados tridimensionais codificados 413 e dados tridimensionais codificados 414 do servidor, de acordo com a solicitação.
[0335] Esse dispositivo de decodificação de dados tridimensionais 500 pode receber dados adequados de acordo com o uso pretendido. Modalidade 3
[0336] 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.
[0337] A figura 24 é um diagrama em bloco 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, criando, assim, os terceiros dados tridimensionais 636 que possuem uma densidade maior.
[0338] Tal dispositivo de criação de dados tridimensionais 620 inclui o criador de dados tridimensionais 621, o determinador de faixa de solicitação 622, o buscador 623, o receptor 624, o decodificador 625 e o misturador 626.
[0339] Primeiro, o criador de dados tridimensionais 621 cria os primeiros dados tridimensionais 632, pelo uso da 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.
[0340] A seguir, o buscador 623 busca pelo veículo próximo possuindo os dados tridimensionais da faixa de solicitação e envia a informação da faixa de solicitação 633 indicando a faixa de solicitação para o veículo próximo 601 que foi buscado (S632). A seguir, o receptor 624 recebe os dados tridimensionais codificados 634, que é uma sequência codificada da faixa de solicitação, a partir do veículo próximo 601 (S624). Note-se que o buscador 623 pode enviar, de forma indiscriminada, solicitações para todos os veículos incluídos em uma faixa especificada, para receber os dados tridimensionais codificados 634 de um veículo que responder à solicitação. O buscador 623 pode enviar uma solicitação não apenas para os veículos, mas também para um objeto, tal como um sinal, e receber dados tridimensionais codificados 634 do objeto.
[0341] A seguir, o decodificador 625 decodifica os dados tridimensionais codificados recebidos 634, obtendo, dessa forma, os segundos dados tridimensionais 635. A seguir, o misturador 626 mistura os primeiros dados tridimensionais 632 com os segundos dados tridimensionais 635, pela criação de dados tridimensionais 636 que possuem uma maior densidade.
[0342] A seguir, 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 em bloco do dispositivo de transmissão de dados tridimensionais 640.
[0343] O dispositivo de transmissão de dados tridimensionais 640 é incluído, por exemplo, no veículo próximo descrito acima. O dispositivo de transmissão de dados tridimensionais 640 processa os quintos dados tridimensionais 652, criados pelo veículo próximo, em sextos dados tridimensionais 654 solicitado pelo próprio veículo, codifica os sextos dados tridimensionais 654 para gerar os dados tridimensionais codificados 634, e envia os dados tridimensionais codificados 634 para o próximo veículo.
[0344] O dispositivo de transmissão de dados tridimensionais 640 inclui o criador de dados tridimensionais 641, o receptor 642, o extrator 643, o codificador 644 e o transmissor 645.
[0345] Primeiro, o criador de dados tridimensionais 641 cria os quintos dados tridimensionais 652 pelo uso da informação de sensor 651, detectada pelo sensor incluído no veículo próximo. A seguir, o receptor 642 recebe a informação de faixa de solicitação 633 do próximo veículo.
[0346] A seguir, o extrator 643 extrai dos quintos dados tridimensionais 652 os dados tridimensionais da faixa de solicitação indicada pela informação de faixa de solicitação 633, processando, assim, os quintos dados tridimensionais 652 em sextos dados tridimensionais 654. A seguir, o codificador 644 codifica os sextos dados tridimensionais 654 para gerar os dados tridimensionais codificados 643, que é uma sequência codificada. Então, o transmissor 645 envia os dados tridimensionais codificados 634 para o próprio veículo.
[0347] Note-se que apesar de um caso ilustrativo ser descrito no presente documento, no qual o próprio veículo inclui o dispositivo de criação de dados tridimensionais 620, e o veículo próximo incluir o dispositivo de transmissão de dados tridimensionais 640, cada um dos veículos pode incluir a funcionalidade de ambos o dispositivo de criação de dados tridimensionais 620 e o dispositivo de transmissão de dados tridimensional 640.
Modalidade 4
[0348] A presente modalidade descreve as operações realizadas em casos anormais, quando a estimativa de autolocalização é realizada com base em um mapa tridimensional.
[0349] Um mapa tridimensional deve ter seu uso expandido em direção autônoma de um veículo e movimento autônomo etc. de um objeto móvel, tal como um robô e um objeto voador (por exemplo, um drone). Meios ilustrativos para se permitir tal movimento autônomo incluem um método no qual um objeto móvel se move de acordo com um mapa tridimensional, enquanto estima sua autolocalização no mapa (estimativa de autolocalização).
[0350] A estimativa de autolocalização é permitida pela combinação de um mapa tridimensional com a informação tridimensional das cernias do próprio veículo (doravante referidos 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.
[0351] Como no caso de um mapa HD sugerido por HERE Technologies, por exemplo, um mapa tridimensional pode incluir, não apenas uma nuvem de pontos tridimensionais, mas também dados de mapa bidimensionais, tal como informação dos formatos das estradas e interseções, ou informação que muda em tempo real, tal como informação de um engarrafamento no tráfego e um acidente. Um mapa tridimensional inclui uma pluralidade de camadas, tal como as camadas de dados tridimensionais, dados bidimensionais, e metadados que mudam em tempo real, dentre os quais o dispositivo pode obter ou se referir apenas aos dados necessários.
[0352] 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.
[0353] 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 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 chaves que formam o SWLD com pontos chaves tridimensionais extraídos dos dados tridimensionais autodetectados.
[0354] No presente documento, para se permitir a estimativa de autolocalização altamente precisa, o seguinte precisa ser satisfeito: (A) o mapa tridimensional e os dados tridimensionais 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, tal como os descritos abaixo.
[0355] 1. Um mapa tridimensional não pode ser obtido através da comunicação.
[0356] 2. Um mapa tridimensional não está presente, ou um mapa tridimensional obtido está corrompido.
[0357] 3. Um sensor do próprio veículo apresenta problemas, ou a precisão dos dados tridimensionais autodetectados gerados é inadequada devido ao mau tempo.
[0358] O apresentado a seguir descreve as operações para se 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.
[0359] A seguir descreve-se a estrutura do dispositivo de processamento de informação tridimensional e sua operação, de acordo com a presente modalidade, capaz de lidar com casos anormais que se referem a um mapa tridimensional ou a dados tridimensionais autodetectados. A figura 26 é um diagrama em bloco de uma estrutura ilustrativa do dispositivo de processamento de informação tridimensional 700, de acordo com a presente modalidade.
[0360] 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 o elemento de obtenção de mapa tridimensional 701, o elemento de obtenção de dados autodetectados 702, a unidade de julgamento de caso anormal 703, o determinador de operação de enfrentamento 704 e o controlador de operação 705.
[0361] Note 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 os 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, tal como 4G e 5G, ou através da comunicação interveicular ou da comunicação de estrada para veículo.
[0362] O elemento de obtenção de mapa tridimensional 701 obtém o mapa tridimensional 711 das cercanias da rota de percurso. Por exemplo, o elemento de obtenção de mapa tridimensional 701 obtém o mapa tridimensional 711 através de uma rede de comunicação móvel, ou através da comunicação interveicular, ou comunicação de estrada para veículo.
[0363] A seguir, o elemento de obtenção de dados auto detectado 702 obtém os dados tridimensionais autodetectados 712 com base na informação de sensor. Por exemplo, o elemento de obtenção de dados auto detectado 702 gera os dados tridimensionais autodetectados 712 com base na informação de sensor obtida por um sensor equipado no próprio veículo.
[0364] A seguir, 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.
[0365] Quando o caso anormal é detectado, a determinação de operação de enfrentamento 704 determina uma operação de enfrentamento para enfrentar tal caso anormal. A seguir, o controlador de operação 705 controla a operação de cada uma das unidades de processamento necessárias para se realizar a operação de enfrentamento.
[0366] Enquanto isso, quando nenhum caso anormal é detectado, o dispositivo de processamento de informação tridimensional 700 encerra o processo.
[0367] 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 pelo uso da localização estimada do veículo.
[0368] 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 a 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, na qual 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.
[0369] O dispositivo de processamento de informação tridimensional 700 também gera a 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 anomalia está presente.
[0370] O dispositivo de processamento de informação tridimensional 700 determina uma operação de enfrentamento para enfrentar a anomalia quando uma, dentre a primeira informação 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 se realizar a operação de enfrentamento.
[0371] Essa estrutura permite que o dispositivo de processamento de informação tridimensional 700 detecte uma anomalia 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
[0372] A presente modalidade descreve um método etc. de transmissão de dados tridimensionais para um veículo seguinte.
[0373] A figura 27 é um diagrama em bloco 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.
[0374] O dispositivo de criação de dados tridimensionais 810 inclui um receptor de dados 811, uma unidade de comunicação 812, um controlador de recepção 813, um conversor de formato 814, uma pluralidade de sensores 815, um criador de dados tridimensionais 816, um sintetizador de dados tridimensionais 817, um armazenador de dados tridimensionais 818, uma unidade de comunicação 819, um controlador de transmissão 820, um conversor de formato 821 e um transmissor de dados 822.
[0375] 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.
[0376] 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.
[0377] O controlador de recepção 813 permuta informação, tal como informação dos formatos suportados, com um parceiro de comunicações através da unidade de comunicação 812 para estabelecer a comunicação com o parceiro de comunicações.
[0378] 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.
[0379] Uma pluralidade de sensores 815 são grupos de sensores, tal como câmeras de luz visível, e câmeras de infravermelho, que obtêm a informação do exterior do veículo e geram informação de sensor 833. A informação de sensor 833 é, por exemplo, dados tridimensionais, tal como uma nuvem de pontos (dados de grupo de pontos), quando os sensores 815 são sensores de laser, tal como LiDARs. Note-se que um sensor singular pode servir como uma pluralidade de sensores 815.
[0380] 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.
[0381] 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., formando, assim, os dados tridimensionais 835 de um espaço que inclui o espaço à frente do veículo anterior, não detectável pelos sensores 815 do próprio veículo.
[0382] O armazenador de dados tridimensionais 818 armazena os dados tridimensionais gerados 835, etc.
[0383] 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.
[0384] O controlador de transmissão 820 permuta a informação, tal como a informação em formatos suportados, com um parceiro de comunicações, através da unidade de comunicação 819 para estabelecer a comunicação com o parceiro de comunicações. O controlador de transmissão 820 também determina uma região de transmissão, que é um espaço dos dados tridimensionais a serem transmitidos, com base na informação de formação de dados tridimensionais nos dados tridimensionais 832 gerados pelo sintetizador de dados tridimensionais 817 e a solicitação de transmissão de dados a partir do parceiro de comunicações.
[0385] Mais especificamente, o controlador de transmissão 820 determina uma região de transmissão que inclui o espaço à frente do próprio veículo que não é detectável por um sensor do veículo seguinte, em resposta à solicitação de transmissão de dados do sistema de monitoramento de tráfego com base em nuvem ou veículo seguinte. O controlador de transmissão 820 julga, por exemplo, se um espaço é transmissível ou se o espaço já transmitido inclui uma atualização, com base na informação de formação de dados tridimensionais, para determinar uma região de transmissão. Por exemplo, o controlador de transmissão 820 determina, como uma região de transmissão, uma região que é uma região especificada pela solicitação de transmissão de dados; e uma região, correspondente aos dados tridimensionais 835 dos quais está presente. O controlador de transmissão 820, então, notifica o conversor de formato 821 sobre o formato suportado pelo parceiro de comunicações e região de transmissão.
[0386] 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 no formato suportado pela extremidade do receptor para gerar dados tridimensionais 837. Note-se que o conversor de formato 821 pode comprimir ou codificar os dados tridimensionais 837 para reduzir a quantidade de dados.
[0387] 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.
[0388] Note-se que o exemplo foi descrito, no qual o conversor de formato 814 e o conversor de formato 821 realizam a conversão de formato etc., mas a conversão de formato pode não ser realizada.
[0389] 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, gerando, assim, 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.
[0390] 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, por exemplo, dados tridimensionais de um espaço que inclui o espaço à frente do próprio veículo, não detectável por um sensor do veículo 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 o veículo a seguir. Modalidade 6
[0391] Na modalidade 5, um exemplo é descrito no qual um dispositivo de cliente de um veículo ou similar transmite os dados tridimensionais para outro veículo ou um servidor, tal como um sistema de monitoramento de tráfego com base em nuvem. Na presente modalidade, um dispositivo de cliente transmite a informação de sensor obtida através de um sensor para um servidor ou um dispositivo de cliente.
[0392] 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. Note 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.
[0393] 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.
[0394] O servidor 901 transmite o mapa tridimensional formado por uma nuvem de pontos para o dispositivo de cliente 902. Note-se que uma estrutura do mapa tridimensional não está limitada a uma nuvem de pontos, e também pode ser outra estrutura que expressa os dados tridimensionais, tal como uma estrutura entrelaçada.
[0395] 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, a informação de posição de sensor, ou a informação de velocidade de sensor.
[0396] 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 se 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.
[0397] 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. Note-se que o servidor 901 também pode transmitir o mapa tridimensional sem esperar pela solicitação de transmissão para o mapa tridimensional, a partir do dispositivo de cliente
902. Por exemplo, o servidor 901 pode difundir o mapa tridimensional para pelo menos um dispositivo de cliente 902 localizado em um espaço predeterminado. O servidor 901 também pode transmitir o mapa tridimensional adequado para uma posição do dispositivo de cliente 902 em intervalos de tempo fixos para o dispositivo de cliente 902 que recebeu a solicitação de transmissão uma vez. O servidor 901 pode transmitir também o mapa tridimensional gerenciado pelo servidor 901 para o dispositivo de cliente 902 cada vez que o mapa tridimensional é atualizado.
[0398] 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.
[0399] Note-se 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.
[0400] 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 previsto com base no percurso de movimento e na velocidade de movimento do dispositivo de cliente 902.
[0401] 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.
[0402] 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. Note-se 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.
[0403] 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 similares.
[0404] 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.
[0405] A figura 29 é um diagrama em bloco ilustrando uma estrutura ilustrativa do dispositivo de cliente 902. O dispositivo de cliente 902 recebe o mapa tridimensional formado por uma nuvem de pontos e similares 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.
[0406] O dispositivo de cliente 902 inclui o receptor e dados 1011, a unidade de comunicação 1012, o controlador de recepção 1013, o conversor de formato 1014, os sensores 1015, o criador de dados tridimensionais 1016, o processador de imagem tridimensional 1017, o armazenador de dados tridimensional 1018, o conversor de formato 1019, a unidade de comunicação 10120, o controlador de transmissão 1021 e o transmissor de dados 1022.
[0407] 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.
[0408] A unidade de comunicação 1012 comunica com o servidor 901 e transmite uma solicitação de transmissão de dados (por exemplo, solicitação de transmissão do mapa tridimensional) para o servidor 901.
[0409] O controlador de recepção 1013 permuta a informação, tal como a informação de formatos suportados, com um parceiro de comunicações através da unidade de comunicação 1012 para estabelecer a comunicação com o parceiro de comunicações.
[0410] O conversor de formato 1014 realiza uma conversão de formato e similares no mapa tridimensional 1031 recebido pelo receptor de dados 1011 para gerar o mapa tridimensional 1032. O conversor de formato 1014 também realiza um processo de descompressão ou decodificação quando o mapa tridimensional 1031 é comprimido ou codificado. Note-se 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.
[0411] Os sensores 815 são um grupo de sensores, tal como LiDARs, câmeras de luz visível, câmeras de infravermelho, ou sensores de profundidade que obtêm a informação do exterior de um veículo equipado com o dispositivo de cliente 902, e geram a informação de sensor 1033. A informação de sensor 1033 é, por exemplo, dados tridimensionais, tal como uma nuvem de pontos (dados de grupo de pontos), quando sensores 1015 são sensores de laser, tal como LiDARs. Note-se que um único sensor pode servir como sensores 1015.
[0412] 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.
[0413] O processador de imagem tridimensional 1017 realiza um processo de estimativa de autolocalização e similares 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. Note-se que o processador de imagem tridimensional 1017 pode gerar os dados tridimensionais 1035 sobre as cercanias do próprio veículo pela mistura do mapa tridimensional 1032 e dos dados tridimensionais 1034, e pode realizar o processo de estimativa de autolocalização utilizando os dados tridimensionais criados 1035.
[0414] O armazenador de dados tridimensional 1018 armazena o mapa tridimensional 1032, dados tridimensionais 1034, dados tridimensionais 1035, e similares.
[0415] 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. Note-se 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.
[0416] 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 similares a partir do servidor
901.
[0417] O controlador de transmissão 1021 permuta informação, tal como informação de formatos suportados, com um parceiro de comunicações através da unidade de comunicação 1020 para estabelecer a comunicação com o parceiro de comunicações.
[0418] 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.
[0419] Uma estrutura do servidor 901 será descrita a seguir. A figura 30 é um diagrama em bloco ilustrando 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 para o mapa tridimensional do dispositivo de cliente 902.
[0420] O servidor 901 inclui o receptor de dados 1111, a unidade de comunicação 1112, o controlador de recepção 1113, o conversor de formato 1114, o criador de dados tridimensionais 1116, o misturador de dados tridimensionais 1117, o armazenador de dados tridimensionais 1118, o conversor de formato 1119, a unidade de comunicação 1120, o controlador de transmissão 1121 e o transmissor de dados 1122.
[0421] 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 similares.
[0422] A unidade de comunicação 1112 comunica com o dispositivo de cliente 902 e transmite uma solicitação de transmissão de dados (por exemplo, a solicitação de transmissão da informação de sensor) e similares para o dispositivo de cliente 902.
[0423] O controlador de recepção 1113 permuta informação, tal como informação dos formatos suportados, com um parceiro de comunicações através da unidade de comunicação 1112 para estabelecer a comunicação com o parceiro de comunicações.
[0424] 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 é comprimida ou codificada. Note-se 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.
[0425] 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.
[0426] O misturador de dados tridimensionais 1117 atualiza o mapa tridimensional 1135 pela mistura de dados tridimensionais 1134 criados com base na informação de sensor 1132 com o mapa tridimensional 1135 gerenciado pelo servidor 901.
[0427] O armazenador de dados tridimensionais 1118 armazena o mapa tridimensional 1135 e similares.
[0428] O conversor de formato 1119 gera o mapa tridimensional 1031 pela conversão do mapa tridimensional 1135 em um formato suportado pela extremidade receptora. Note-se 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.
[0429] 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 similares do dispositivo de cliente 902.
[0430] O controlador de transmissão 1121 permuta informação, tal como informação em formatos suportados, com um parceiro de comunicações através da unidade de comunicação 1120 para estabelecer a comunicação com o parceiro de comunicações.
[0431] 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.
[0432] 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.
[0433] 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 do 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.
[0434] O dispositivo de cliente 902, a seguir, 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).
[0435] O dispositivo de cliente 902, a seguir, 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, a seguir, 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-se a informação de sensor 1033 (S1005).
[0436] 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). Note-se 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.
[0437] 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, a seguir, 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, a seguir, cria os dados tridimensionais 1134 utilizando a informação de sensor recebida 1037 (S1023). O servidor 901, a seguir, reflete os dados tridimensionais criados 1134 no mapa tridimensional 1135 (S1024).
[0438] 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.
[0439] Doravante, variações da presente modalidade serão descritas.
[0440] 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, a seguir, calcula uma diferença entre os dados tridimensionais 1134 e o mapa tridimensional 1135, pela combinação dos dados tridimensionais criados 1134 com o mapa tridimensional 1135 da mesma área gerenciada pelo servidor 901. O servidor 901 determina que um tipo de anomalia ocorreu na área circundante ao dispositivo de cliente 902, quando a diferença for superior a ou igual a um limite predeterminado. Por exemplo, é concebível que uma grande diferença ocorra entre o mapa tridimensional 1135 gerenciado pelo servidor 901, e os dados tridimensionais 1134 criados com base na informação de sensor 1037, quando a subsidência de solo e similares ocorrem, devido a um desastre natural, tal como um terremoto.
[0441] Informação do sensor 1037 pode incluir informação que inclui indicar pelo menos um dentre um tipo de sensor, um desempenho de sensor, e um número de modelo de sensor. A informação de sensor 1037 também pode ser anexada a um ID de classe e similares, de acordo com o desempenho de sensor. Por exemplo, quando a informação de sensor 1037 é obtida pelo LiDAR, é concebível se designar identificadores para desempenho de sensor. Um sensor capaz de obter informação com precisão em unidades de vários milímetros é de classe 1, um sensor capaz de obter informação com precisão em unidades de vários centímetros é de classe 2, e um sensor capaz de obter informação com precisão em unidades de vários metros é de classe 3. O servidor 901 pode estimar a informação de desempenho de sensor, e similares, 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.
[0442] O servidor 901 pode, simultaneamente, enviar 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.
[0443] 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.
[0444] 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.
[0445] 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.
[0446] 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.
[0447] A figura 36 é um diagrama em bloco 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.
[0448] 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 comprimidos para o servidor 901. Com essa estrutura, o dispositivo de cliente 902 não precisa armazenar internamente um processador que realiza um processo para compressão de dados tridimensionais do mapa tridimensional (nuvem de pontos, etc.), desde que o dispositivo de cliente 902 armazene internamente um processador que realiza um processo para decodificação do mapa tridimensional (nuvem de pontos, etc.). Isso possibilita a limitação de custos, consumo de energia, e similares, do dispositivo de cliente 902.
[0449] 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.
[0450] 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 de o dispositivo de cliente 902 realizar os processos, tal como compressão ou codificação de dados tridimensionais, é possível se reduzir a quantidade de processamento do dispositivo de cliente 902. Como tal, o dispositivo de cliente 902 pode reduzir a quantidade de dados a ser transmitida ou simplificar a estrutura do dispositivo.
[0451] O dispositivo de cliente 902 transmite, adicionalmente, 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.
[0452] 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, uma informação de posição de sensor, ou informação de velocidade de sensor.
[0453] A informação de sensor 1033 inclui a informação que indica um desempenho do sensor.
[0454] 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.
[0455] Por exemplo, o dispositivo de cliente 902 inclui um processador e uma memória. O processador realiza os processos acima utilizando a memória.
[0456] O servidor 901, de acordo com a presente modalidade, é capaz de comunicar com o dispositivo de cliente 902 equipado no objeto móvel, e recebe informação 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 os dados tridimensionais 1134 de uma área circundante do objeto móvel utilizando a informação de sensor recebida 1037.
[0457] Com isso, o servidor 901 cria os dados tridimensionais 1134 utilizando a informação de sensor 1037 transmitida a partir do dispositivo de cliente 902. 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 de o dispositivo de cliente 902 realizar processos, tal como compressão ou codificação dos dados tridimensionais, é possível se reduzir a quantidade de processamento do dispositivo de cliente 902. Como tal, o servidor 901 é capaz de reduzir a quantidade de dados a ser transmitida ou simplificar a estrutura do dispositivo.
[0458] O servidor 901 transmite, adicionalmente, uma solicitação de transmissão da informação de sensor para o dispositivo de cliente 902.
[0459] O servidor 901 atualiza, adicionalmente, 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 do dispositivo de cliente 902.
[0460] 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, uma informação da posição do sensor, ou uma informação da velocidade do sensor.
[0461] A informação do sensor 1037 inclui a informação que indica um desempenho do sensor.
[0462] O servidor 901 corrige, adicionalmente, os dados tridimensionais, de acordo com o desempenho do sensor. Isso permite que o método de criação de dados tridimensionais aperfeiçoe a qualidade dos dados tridimensionais.
[0463] 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 aperfeiçoe a qualidade dos dados tridimensionais
1134.
[0464] 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.
[0465] Por exemplo, o servidor 901 inclui um processador e uma memória. O processador realiza os processos acima utilizando a memória. Modalidade 7
[0466] Na presente modalidade, os métodos de codificação e decodificação de dados tridimensionais, utilizando um processo de interprevisão, serão descritos.
[0467] A figura 37 é um diagrama em bloco 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 (doravante, 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 um divisor 1301, um subtraidor 1302, um transformador 1303, um quantizador 1304, um quantizador inverso 1305, um transformador inverso 1306, um somador 1307, uma memória de volume de referência 1308, um intraprevisor 1309, uma memória de espaço de referência 1310, um interprevisor 1311, um controlador de previsão 1312 e um codificador por entropia 1313.
[0468] O divisor 1301 divide uma pluralidade de volumes (VLMs), que são unidades de codificação de cada espaço (SPC) incluídos nos dados tridimensionais. O divisor 1301 realiza uma representação tipo “octree” (transforma em uma “octree”) dos “voxels” em cada volume. Note-se 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 se criar a representação tipo “octree”, a um cabeçalho, e similares, de uma sequência de bits.
[0469] O subtraidor 1302 calcula uma diferença entre um volume (interprevisor alvo de codificação) enviado pelo divisor 1301 e um volume previsto, gerado através da intraprevisão ou interprevisão, que serão descritos posteriormente, e envia a diferença calculada para o transformador 1303 como um residual de previsão. A figura 38 é um diagrama ilustrando um cálculo ilustrativo do residual de previsão. Note- se que as sequências de bits do volume alvo de codificação e do volume previsto ilustradas no presente documento são, por exemplo, a informação de posição que indica as posições dos pontos tridimensionais incluídos nos volumes.
[0470] Doravante, 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 ilustrando 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 (doravante, VXLs ativos).
[0471] Uma “octree” é representada, por exemplo, por sequências binárias de 1 e 0. Por exemplo, quando fornecendo aos nós ou VXLs ativos um valor igual a 1, e ao resto todo um valor igual a 0, cada nó e folha recebe a sequência binária 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.
[0472] A informação de profundidade da representação tipo “octree” será descrita a seguir. A profundidade na representação tipo “octree” é utilizada a fim de controlar até que nível de detalhamento uma informação de nuvem de pontos em um volume é armazenada. Depois de configurar uma profundidade grande, é possível se reproduzir a informação de nuvem de pontos para um nível mais preciso, mas, uma quantidade de dados para representar os nós e folhas, aumenta. Depois de configurar uma profundidade pequena, no entanto, a quantidade de dados diminui, mas parte da informação, que a informação de nuvem de pontos detinha originalmente, é perdida, visto que partes da informação de nuvem de pontos, 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.
[0473] 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 inferior de dados à “octree” ilustrada na figura 40. Em outras palavras, a “octree” binarizada, ilustrada na figura 42, possui uma contagem de bit inferior à “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 estando em posições diferentes é perdida.
[0474] 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 similares, 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, pela alteração da profundidade de “octree”.
[0475] 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 podem anexar a informação de profundidade à informação de cabeçalho do mundo, à informação de cabeçalho do espaço, ou à informação de cabeçalho do volume. Em todos os mundos, espaços e volumes associados a tempos diferentes, o mesmo valor pode ser 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.
[0476] Quando a informação de cor é incluída nos “voxels”, o transformador 1303 aplica a transformação de frequência, por exemplo, transformação ortogonal, a um residual de previsão da informação de cor dos “voxels” no volume. Por exemplo, o transformador 1303 cria um conjunto unidimensional pela digitalização do residual de previsão em uma ordem de digitalização determinada. Subsequentemente, o transformador 1303 transforma o conjunto unidimensional em um domínio de frequência pela aplicação da transformação ortogonal unidimensional ao conjunto unidimensional criado. Com isso, quando um valor do residual de previsão no volume é similar, um valor de um componente de baixa frequência aumenta e um valor de um componente de baixa frequência diminui. Como tal, é possível se reduzir, de forma mais eficiente, uma quantidade de codificação no quantizador 1304.
[0477] O transformador 1303 não precisa utilizar a 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 previsão para um conjunto bidimensional em uma ordem de digitalização determinada, e aplica a transformação ortogonal bidimensional ao conjunto bidimensional obtido. O transformador 1303 pode selecionar um método de transformação ortogonal a ser 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, a 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 a partir 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.
[0478] Por exemplo, o transformador 1303 combina a ordem de digitalização do residual de previsão a uma ordem de digitalização (largura primeiro, profundidade primeiro, ou similares) na “octree” no volume. Isso possibilita a redução de overhead, visto que a informação que indica a ordem de digitalização do residual de previsão não precisa ser anexada à sequência de bits. O transformador 1303 pode aplicar uma ordem de digitalização diferente da ordem de digitalização da “octree”. 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 previsão. Isso permite que o dispositivo de codificação de dados tridimensionais 1300 codifique, de forma eficiente, o residual de previsão. O dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, informação (indicador, etc.) indicando se aplica a ordem de digitalização da “octree”, e também pode anexar, à sequência de bits, a informação que indica a ordem de digitalização do residual de previsão quando a ordem de digitalização da “octree” não é aplicada.
[0479] O transformador 1303 não apenas transforma o residual de previsã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.
[0480] 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.
[0481] 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 previsã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 similares. O quantizador 1304 pode realizar o controle de quantização pela alteração de um peso por componente de frequência do residual de previsão. Por exemplo, o quantizador 1304 pode quantizar com precisão um componente de baixa frequência e quantizar de forma aproximada um componente de alta frequência. 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 cada componente de frequência.
[0482] 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.
[0483] O quantizador inverso 1305 gera um coeficiente quantizado inverso do residual de previsão pela realização da quantização inversa no coeficiente quantizado gerado pelo quantizador 1304, utilizando o parâmetro de controle de quantização, e envia o coeficiente quantizado inverso gerado para o transformador inverso 1306.
[0484] O transformador inverso 1306 gera um residual de previsão aplicado por transformação inversa, pela aplicação da transformação inversa ao coeficiente quantizado inverso gerado pelo quantizador inverso 1305. Esse residual de previsão aplicado por transformação inversa não precisa coincidir completamente com o residual de previsão enviado pelo transformador 1303, visto que o residual de previsão aplicado por transformação inversa é um residual de previsão que é gerado após a quantização.
[0485] O somador 1307 soma, para gerar um volume reconstruído, (i) o residual de previsão aplicado por transformação inversa gerado pelo transformador inverso 1306 a (ii) um volume previsto que é gerado através da intraprevisão ou da interprevisão, que serão descritas posteriormente, e é utilizado para gerar um residual de previsão pré- quantizado. Esse volume reconstruído é armazenado na memória de volume de referência 1308 ou memória de espaço de referência 1310.
[0486] O intraprevisor 1309 gera um volume previsto 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 intraprevisor 1309 gera um valor previsto de informação de cor ou uma refletância do volume alvo de codificação.
[0487] A figura 44 é um diagrama para descrever uma operação do intraprevisor 1309. Por exemplo, o intraprevisor 1309 gera o volume previsto do volume alvo de codificação (idx de volume = 3), 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 é designado para cada volume. Uma ordem de designação de idx de volume pode ser igual a uma ordem de codificação e também pode ser diferente da ordem de codificação. Por exemplo, o intraprevisor 1309 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 previsto da informação de cor do volume alvo de codificação ilustrado na figura 44. Nesse caso, um residual de previsão é gerado pela dedução do valor previsto 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 previsã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 previsão. A informação do volume vizinho, no presente documento, é a informação que indica um volume vizinho utilizado na previsão, e indica, por exemplo, o idx de volume do volume vizinho utilizado na previsão. A informação do modo de previsão, no presente documento, indica um modo utilizado para gerar o volume previsto. O modo é, por exemplo, um modo de valor médio no qual o valor previsto é gerado, utilizando um valor médio de “voxels” no volume vizinho, ou um modo mediano no qual o valor previsto é gerado utilizando o mediano de “voxels” no volume vizinho.
[0488] O intraprevisor 1309 pode gerar o volume previsto utilizando uma pluralidade de volumes vizinhos. Por exemplo, na estrutura ilustrada na figura 44, o intraprevisor 1309 gera o volume previsto 0 utilizando um volume com idx de volume = 0, e gera o volume previsto
1 utilizando um volume com idx de volume = 1. O intraprevisor 1309, então, gera uma média do volume previsto 0 e do volume previsto 1 como um volume previsto final. 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 previsto.
[0489] A figura 45 é um diagrama que ilustra, de forma esquemática, o processo de interprevisão de acordo com a presente modalidade. O interprevisor 1311 codifica (interprevê) um espaço (SPC) associado a um tempo determinado T_Cur utilizando um espaço codificado associado a um tempo diferente T_LX. Nesse caso, o interprevisor 1311 realiza um processo de codificação pela aplicação de um processo de rotação e translação ao espaço codificado associado ao tempo diferente T_LX.
[0490] O dispositivo de codificação de dados tridimensionais 1300 anexa, à sequência de bits, a informação RT referente a um processo de rotação e translação adequadas ao espaço associado ao tempo diferente T_LX. O tempo diferente T_LX é, por exemplo, o tempo T_L0 antes do tempo determinado T_Cur. Nesse ponto, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, a informação RT RT_L0 referente a um processo de rotação e translação adequado a um espaço associado ao tempo T_L0.
[0491] Alternativamente, o tempo diferente T_LX é, por exemplo, o tempo T_L1 depois do tempo determinado T_Cur. Nesse ponto, o dispositivo de codificação de dados tridimensionais 1300 pode anexar, à sequência de bits, a informação RT, RT_L1, referente a um processo de rotação e translação adequado a um espaço associado ao tempo T_L1.
[0492] Alternativamente, o interprevisor 1311 codifica (previsão bidirecional), com referência aos espaços associados ao tempo T_L0 e ao tempo T_L1, que diferem um do outro. 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.
[0493] Note-se 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.
[0494] 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-se duas listas de referência (lista L0 e lista L1). Quando um primeiro espaço de referência na lista L0 é L0R0, um segundo espaço de referência na lista L0 é L0R1, um primeiro espaço de referência na lista L1 é L1R0, e um segundo espaço de referência na lista L1 é L1R1, o dispositivo de codificação de dados tridimensionais 1300 anexa, à sequência de bits, a informação RT, RT_L0R0 de L0R0, a informação RT, RT_L0R1 de L0R1, a informação RT, RT_L1R0, de L1R0, e a informação RT, RT_L1R1, de L1R1. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 anexa essas partes de informação RT a um cabeçalho, e similares, da sequência de bits.
[0495] 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 similares, 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.
[0496] A figura 46 é um diagrama ilustrando uma sintaxe ilustrativa a ser anexada a um cabeçalho da informação RT e indicador RT. Note- se que uma contagem de bit 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 designados para MaxRefSpc_10. A contagem de bit a ser designada pode ser variável, de acordo com um valor que cada sintaxe pode ter, e também pode ser fixa independentemente do valor que cada sintaxe pode ter. Quando a contagem de bit a ser designada é fixa, o dispositivo de codificação de dados tridimensionais 1300 pode anexar essa contagem de bit fixa a outra informação de cabeçalho.
[0497] 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.
[0498] 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.
[0499] MaxRefSpc_l1 indica um número de espaços de referência incluídos na lista de referência L1. RT_flag_l1[i] é um indicador RT do espaço de referência i na lista de referência L1. Quando RT_flag_l1[i] é igual a 1, a rotação e a translação são aplicadas ao espaço de referência i. Quando RT_flag_l1[i] é igual a 0, a rotação e translação não são aplicadas ao espaço de referência i.
[0500] R_l1[i] e T_l1[i] são, então, a informação RT do espaço de referência i na lista de referência L1. R_l1[i] é a informação de rotação do espaço de referência i na lista de referência L1. A informação de rotação indica o conteúdo do processo de rotação aplicado, e é, por exemplo, uma matriz de rotação ou um “quaternion”. T_l1[i] é a informação de translação do espaço de referência i na lista de referência L1. A informação de translação indica o conteúdo do processo de translação aplicado e é, por exemplo, um vetor de translação.
[0501] O interprevisor 1311 gera o volume previsto de 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 previsto do volume alvo de codificação, o interprevisor 1311 calcula a informação RT em um espaço alvo de codificação e um espaço de referência 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 intraprevisor 1311, então, obtém o espaço de referência B pela aplicação de um processo de rotação e translação ao espaço de referência utilizando a informação RT calculada. Subsequentemente, o interprevisor 1311 gera o volume previsto de volume alvo de codificação no espaço alvo de codificação utilizando a informação no espaço de referência B.
[0502] Dessa forma, o interprevisor 1311 pode aperfeiçoar a precisão do volume previsto pela geração do volume previsto 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 se reduzir a quantidade de codificação, visto que é possível se limitar o residual de previsão. Note-se 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 está necessariamente limitado a isso. Por exemplo, o interprevisor 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 se reduzir a quantidade de processamento.
[0503] Quando o valor de erro ICP, obtido como resultado do ICP, for menor do que um primeiro limite predeterminado, isso é, quando, por exemplo, a relação de posição entre o espaço alvo de codificação e o espaço de referência for similar, o interprevisor 1311 determina que um processo de rotação e translação não é necessário, e o processo de rotação e translação não precisa ser realizado. Nesse caso, o dispositivo de codificação de dados tridimensionais 1300 pode controlar o overhead, não anexando a informação RT à sequência de bits.
[0504] Quando o valor de erro ICP for maior do que um segundo limite predeterminado, o interprevisor 1311 determina que uma mudança de formato entre os espaços é grande, e a intraprevisão pode ser aplicada a todos os volumes do espaço alvo de codificação. Doravante, espaços aos quais a intraprevisão é aplicada serão referidos como intraespaços. O segundo limite é superior ao primeiro limite acima. A presente modalidade não está limitada a ICP, e qualquer tipo de método pode ser utilizado desde que o método calcule a informação RT utilizando dois conjuntos de “voxel” e dois conjuntos de nuvens de pontos.
[0505] Quando a informação de atributo, por exemplo, informação de formato ou cor, é incluída nos dados tridimensionais, o interprevisor 1311 busca, por exemplo, por um volume cuja informação de atributo, por exemplo, informação de formato ou cor, seja mais similar ao volume alvo de codificação no espaço de referência, como o volume previsto do volume alvo de codificação no espaço alvo de codificação. Esse espaço de referência é, por exemplo, um espaço de referência no qual o processo de rotação e translação acima foi realizado. O interprevisor 1311 gera o volume previsto 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 previsto. Quando da codificação do volume alvo de codificação (idx de volume = 0), ilustrado na figura 47, utilizando a interprevisão, o interprevisor 1311 busca um volume com um menor residual de previsão, que é a diferença entre o volume alvo de codificação e o volume de referência, enquanto digitaliza, sequencialmente, o volume de referência no espaço de referência. O interprevisor 1311 seleciona o volume com menor residual de previsão como o volume previsto. Os residuais de previsão do volume alvo de codificação e do volume previsto são codificados através de processos realizados pelo transformador 1303 e processadores subsequentes. O residual de previsão, no presente documento, é uma diferença entre a informação de atributo do volume alvo de codificação e a informação de atributo do volume previsto. O dispositivo de codificação de dados tridimensional 1300 anexa, ao cabeçalho, e similares, da sequência de bits, o idx de volume, do volume de referência no espaço de referência, como o volume previsto.
[0506] 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 previsto do volume alvo de codificação. Os residuais de previsão do volume alvo de codificação e volume de referência, e o idx de volume de referência = 4 são, então, codificados e anexados à sequência de bits.
[0507] Note-se que um exemplo foi descrito, no qual o volume previsto da informação de atributo é gerado, mas o mesmo processo pode ser aplicado ao volume previsto da informação de posição.
[0508] O controlador de previsão 1312 controla se codifica o volume alvo de codificação utilizando a intraprevisão ou a interprevisão. Um modo que inclui a intraprevisão e a interprevisão é referido, no presente documento, como um modo de previsão. Por exemplo, o controlador de previsão 1312 calcula o residual de previsão quando o volume alvo de codificação é previsto utilizando-se a intraprevisão, e o residual de previsão, quando o volume alvo de codificação é previsto, utilizando-se a interprevisão, como valores de avaliação, e seleciona o modo de previsão cujo valor de avaliação é menor. Note-se que o controlador de previsão 1312 pode calcular uma quantidade de codificação real pela aplicação da transformação ortogonal, quantização e codificação por entropia ao residual de previsão da intraprevisão e o residual de previsão da interprevisão, e selecionar um modo de previsão utilizando a quantidade de codificação calculada como o valor de avaliação. A informação de overhead (informação de idx de volume de referência etc.), além do residual de previsão, pode ser adicionada ao valor de avaliação. O controlador de previsão 1312 pode selecionar, continuamente, a intraprevisão quando ficar decidido, antecipadamente, a codificação do espaço alvo de codificação utilizando-se o intraespaço.
[0509] 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.
[0510] 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 em bloco 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, o quantizador inverso 1402, o transformador inverso 1403, o somador 1404, a memória de volume de referência 1405, o intraprevisor 1406, a memória de espaço de referência 1407, o interprevisor 1408 e o controlador de previsão 1409.
[0511] 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.
[0512] O quantizador inverso 1402 gera um coeficiente quantizado inverso pela quantização inversa do coeficiente quantizado, registrado a partir do decodificador por entropia 1401, utilizando um parâmetro de quantização anexado à sequência de bits e similares.
[0513] O transformador inverso 1403 gera um residual de previsão pela transformação inversa do coeficiente quantizado inverso, registrado a partir do quantizador inverso 1402. Por exemplo, o transformador inverso 1403 gera o residual de previsão pela transformação ortogonalmente inversa do coeficiente quantizado inverso, com base na informação anexada à sequência de bits.
[0514] O somador 1404 soma, para gerar um volume reconstruído, (i) o residual de previsão gerado pelo transformador inverso 1403 a (ii) um volume previsto gerado através da intraprevisão ou interprevisão. Esse volume reconstruído é enviado como dados tridimensionais decodificados e é armazenado na memória de volume de referência 1405 ou memória de espaço de referência 1407.
[0515] O intraprevisor 1406 gera um volume previsto através da intraprevisã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 intraprevisor 1406 obtém a informação do volume vizinho (por exemplo, idx de volume) anexada à sequência de bits e a informação de modo de previsão, e gera o volume previsto através de um modo indicado pela informação de modo de previsão, utilizando um volume vizinho indicado na informação de volume vizinho Note-se que as especificidades desses processos são iguais às dos processos mencionados acima realizados pelo intraprevisor 1309, exceto por qual informação é anexada à sequência de bits.
[0516] O interprevisor 1408 gera um volume previsto através da interprevisã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 interprevisor 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 previsto utilizando o espaço de referência girado e transladado. Note-se que quando um indicador RT está presente na sequência de bits por espaço de referência, o interprevisor 1408 aplica um processo de rotação e translação ao espaço de referência, de acordo com o indicador RT. Note-se que as especificidades desses processos são iguais às dos processos mencionados acima realizados pelo interprevisor 1311, exceto pela informação anexada à sequência de bits.
[0517] O controlador de previsão 1409 controla se decodifica um volume alvo de decodificação utilizando intraprevisão ou interprevisão. Por exemplo, o controlador de previsão 1409 seleciona a intraprevisão ou interprevisão, de acordo com a informação que é anexada à sequência de bits e indica o modo de previsão a ser utilizado. Note-se que o controlador de previsão 1409 pode selecionar, continuamente, a intraprevisão quando ficar decidido, antecipadamente, o espaço alvo de decodificação utilizando o intraespaço.
[0518] Doravante, 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 podem 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 similares, da sequência de bits. O acima também pode ser combinado. Em outras palavras, o dispositivo de codificação de dados tridimensionais 1300 pode aplicar a rotação e translação em unidades grandes e, subsequentemente, aplicar a rotação e translação a unidades pequenas. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 pode aplicar rotação e translação a unidades de espaços, e também pode aplicar rotações e translações diferentes a cada um dentre uma pluralidade de volumes incluídos nos espaços obtidos.
[0519] Na presente modalidade, um exemplo foi descrito no qual a rotação e translação são aplicadas ao espaço de referência, mas não são necessariamente limitadas a isso. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 pode aplicar um processo de escalonamento e um tamanho dos dados tridimensionais. O dispositivo de codificação de dados tridimensionais 1300 também pode aplicar um ou dois dentre rotação, translação e escalonamento. Quando da aplicação de processos a múltiplos estágios e diferentes unidades, como mencionado acima, um tipo de processo aplicado a cada unidade pode diferir. Por exemplo, a rotação e translação podem ser aplicadas a unidades de espaços, e a translação pode ser aplicada a unidades de volumes.
[0520] Note-se que essas variações também são aplicáveis ao dispositivo de decodificação de dados tridimensionais 1400.
[0521] 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 interprevisão realizado pelo dispositivo de codificação de dados tridimensionais 1300.
[0522] O dispositivo de codificação de dados tridimensionais 1300 gera a informação de posição prevista (por exemplo, volume previsto) 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 prevista 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.
[0523] Note-se 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 prevista 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. Note-se 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 prevista na mesma unidade.
[0524] O dispositivo de codificação de dados tridimensionais 1300 pode gerar a informação de posição prevista 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.
[0525] Por exemplo, como ilustrado na figura 41, a informação de posição dos pontos tridimensionais e a informação de posição prevista são representadas utilizando-se uma estrutura tipo “octree”. Por exemplo, a informação de posição dos pontos tridimensionais e a informação de posição prevista são expressas em uma ordem de digitalização que prioriza uma largura sobre uma profundidade na estrutura tipo “octree”. Por exemplo, a informação de posição dos pontos tridimensionais e a informação de posição prevista são expressas em uma ordem de digitalização que prioriza uma profundidade sobre uma largura na estrutura tipo “octree”.
[0526] 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 RT. O dispositivo de codificação de dados tridimensionais 1300 codifica a informação RT que indica o conteúdo do processo de rotação e translação. Em outras palavras, o dispositivo de codificação de dados tridimensionais 1300 gera o sinal codificado (sequência de bits codificada) incluindo a informação RT. Note-se que o dispositivo de codificação de dados tridimensionais 1300 pode codificar a informação RT quando o indicador RT indicar a aplicação do processo de rotação e translação, e não precisa codificar a informação RT quando o indicador RT indicar a não aplicação do processo de rotação e translação.
[0527] 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 do atributo previsto utilizando a informação de atributo dos pontos tridimensionais incluídos nos dados de referência tridimensional (S1302).
[0528] O dispositivo de codificação de dados tridimensionais 1300, a seguir, codifica a informação de posição dos pontos tridimensionais incluídos nos dados tridimensionais atuais, utilizando a informação da posição prevista. 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 prevista e a informação de posição dos pontos tridimensionais incluídos nos dados tridimensionais atuais (S1303).
[0529] 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 prevista. Por exemplo, o dispositivo de codificação de dados tridimensionais 1300 calcula a informação do atributo diferencial, a informação do atributo diferencial sendo uma diferença entre a informação de atributo previsto e a informação de atributo nos pontos tridimensionais incluídos nos dados tridimensionais atuais (S1304). O dispositivo de codificação de dados tridimensionais 1300, a seguir, realiza a transformação e quantização da informação de atributo diferencial calculado (S1305).
[0530] 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 quantizado (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.
[0531] Note-se 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.
[0532] Uma ordem dos processos, ilustrada na figura 49, é meramente um exemplo e não está limitada a isso. Por exemplo, visto 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.
[0533] 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 prevista 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 prevista 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, visto que é possível se reduzir a quantidade de dados do sinal codificado.
[0534] O dispositivo de codificação de dados tridimensional 1300, de acordo com a presente modalidade, gera a informação de atributo prevista 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 prevista 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, visto que é possível se reduzir a quantidade de dados do sinal codificado.
[0535] 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.
[0536] A figura 48 é um fluxograma do processo de interprevisão realizado pelo dispositivo de decodificação de dados tridimensionais
1400.
[0537] 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).
[0538] O dispositivo de decodificação de dados tridimensionais 1400 decodifica, a partir do sinal codificado, um indicador RT que indica se aplica o processo de rotação e translação à informação 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 RT que indica o conteúdo do processo de rotação e translação. Note-se que o dispositivo de decodificação de dados tridimensionais 1400 pode decodificar a informação RT quando o indicador RT indicar a aplicação do processo de rotação e translação, e não precisa decodificar a informação RT quando o indicador RT indicar a não aplicação do processo de rotação e translação.
[0539] O dispositivo de decodificação de dados tridimensionais 1400, a seguir, realiza a transformação inversa e a quantização inversa na informação de atributo diferencial decodificado (S1402).
[0540] O dispositivo de decodificação de dados tridimensionais 1400, a seguir, gera a informação de posição prevista (por exemplo,
volume previsto) 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 prevista 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.
[0541] 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 RT. Em contraste, quando o indicador RT indica a não aplicação do processo de rotação e translação, o dispositivo de decodificação de dados tridimensionais 1400 não aplica o processo de rotação e translação à informação de posição, nos pontos tridimensionais incluídos nos dados de referência tridimensionais.
[0542] Note-se 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 prevista utilizando uma segunda unidade (por exemplo, volumes), que é menor do que a primeira unidade. Note-se 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 prevista na mesma unidade.
[0543] O dispositivo de decodificação de dados tridimensionais 1400 pode gerar a informação de posição prevista 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.
[0544] Por exemplo, como ilustrado na figura 41, a informação de posição sobre os pontos tridimensionais e a informação de posição prevista são representadas utilizando-se uma estrutura tipo “octree”. Por exemplo, a informação de posição sobre os pontos tridimensionais e a informação de posição prevista são expressas em uma ordem de digitalização que prioriza uma largura sobre uma profundidade na estrutura tipo “octree”. Por exemplo, a informação de posição sobre os pontos tridimensionais e a informação de posição prevista são expressas em uma ordem de digitalização que prioriza uma profundidade sobre uma largura na estrutura tipo “octree”.
[0545] O dispositivo de decodificação de dados tridimensionais 1400 gera a informação de atributo prevista utilizando a informação de atributo dos pontos tridimensionais incluídos nos dados de referência tridimensionais (S1404).
[0546] O dispositivo de decodificação de dados tridimensionais 1400, a seguir, 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 prevista. 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 prevista (S1405).
[0547] 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 prevista. 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 prevista (S1406).
[0548] Note-se 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.
[0549] Uma ordem dos processos ilustrados na figura 50 é meramente um exemplo e não está limitada a isso. Por exemplo, visto 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
[0550] 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.
[0551] 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.
[0552] 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 (doravante 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ó parente 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ó (doravante referido com um nó vizinho ao nó parente) que está na mesma camada que o nó parente. Em outras palavras, o dispositivo de codificação de dados tridimensionais desativa ou proíbe a referência a um nó vizinho ao nó parente.
[0553] Deve-se notar que o dispositivo de codificação de dados tridimensionais pode permitir referência à informação de codificação de um nó parente (doravante também referido como um nó avô) do nó parente. 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ó parente ao qual o nó atual pertence.
[0554] No presente documento, a informação de codificação, por exemplo, é um código de ocupação. Quando o dispositivo de codificação de dados tridimensionais codifica o código de ocupação do nó atual, o dispositivo de codificação de dados tridimensionais se refere à informação (doravante referida com informação de ocupação) indicando se uma nuvem de pontos está incluída em cada nó no nó parente 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ó parente. 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ó parente. 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ó parente. Ademais, 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ó parente e do nó vizinho ao nó parente.
[0555] 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ó parente ao qual o nó atual pertence. Deve-se notar 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ó parente. 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ó parente ou do nó avô, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação. Ademais, por não fazer referência ao nó vizinho ao parente, o dispositivo de codificação de dados tridimensionais pode suprimir um processo de verificação da informação do nó vizinho ao nó parente 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.
[0556] A seguir é descrito um exemplo de seleção de uma tabela de codificação utilizando um código de ocupação de um nó parente. 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ó parente e nós. A figura 55 é um diagrama ilustrando um exemplo de um código de ocupação do nó parente. No presente documento, um nó de referência vizinho é um nó referido quando um nó atual é codificado, dentre os nós espacialmente vizinhos do nó atual. No exemplo ilustrado na figura 53, os nós vizinhos pertencem à mesma camada que o nó atual. Ademais, 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.
[0557] Deve-se notar que os números de nós ilustrados na figura 54 são um exemplo, e uma relação entre os números de nós e as posições de nó não está limitada à relação ilustrada na figura 54. Apesar do nó 0 ser designado para o bit de ordem mais inferior e o nó 7 ser designado para o bit de ordem mais alta na figura 55, as designações podem ser feitas em ordem reversa. Adicionalmente, cada nó pode ser designado para qualquer bit.
[0558] 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 seguinte equação, por exemplo. CodingTable = (FlagX << 2) + (FlagY << 1) + (FlagZ)
[0559] No presente documento, CodingTable indica uma tabela de codificação para um código de ocupação de um nó atual, e indica um dos valores que variam de 0 a 7. FlagX é a informação de ocupação do nó vizinho X. FlagX indica 1 quando o nó vizinho X inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagY é a informação de ocupação do nó vizinho Y. FlagY indica 1 quando o nó vizinho Y inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagZ é a informação de ocupação do nó vizinho Z. FlagZ indica 1 quando o nó vizinho Z inclui uma nuvem de pontos (está ocupado) e indica 0 quando não.
[0560] Deve-se notar que visto que a informação que indica se um nó vizinho está ocupado é incluída em um código de ocupação de um nó parente, 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ó parente.
[0561] 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.
[0562] Ademais, 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ó parente. 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ó parente.
[0563] A seguir são descritos exemplos de configurações do dispositivo de codificação de dados tridimensionais e do dispositivo de decodificação de dados tridimensionais. A figura 56 é um diagrama em bloco 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 o gerador de “octree” 2101, a calculadora de informação de geometria 2102, o seletor de tabela de codificação 2103 e o codificador por entropia 2104.
[0564] O gerador de “octree” 2101 gera, por exemplo, uma “octree” a partir dos pontos tridimensionais registrados (uma nuvem de pontos) e gera um código de ocupação para cada nó incluído na “octree”. A calculadora de informação 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ó parente ao qual o nó atual pertence. Deve-se notar que, como ilustrado na figura 53, 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ó parente. Adicionalmente, 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ó parente.
[0565] 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-se notar que o codificador por entropia 2104 pode anexar, à sequência de bits, a informação que indica a tabela de codificação selecionada.
[0566] A figura 57 é um diagrama em bloco 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 57 inclui o gerador de “octree” 2111, a calculadora de informação de geometria 2112, o seletor de tabela de codificação 2113 e o decodificador por entropia 2114.
[0567] 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 x, eixo y e eixo o z anexadas à 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 x, eixo y e eixo z. Os nós A0 a A7 são configurados como um nó atual na sequência.
[0568] 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ó parente ao qual o nó atual pertence. Deve-se notar que, como ilustrado na figura 53, 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ó parente. 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ó parente.
[0569] 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-se notar 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.
[0570] 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.
[0571] 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 58 é 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).
[0572] 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ó parente 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).
[0573] 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.
[0574] 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ó parente do nó atual (S2113).
[0575] 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).
[0576] 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.
[0577] A seguir, é descrito um exemplo de seleção de uma tabela de codificação. A figura 60 é 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 60, o mesmo modo de contexto pode ser aplicado aos códigos de ocupação. Ademais, um modelo de contexto diferente pode ser designado para cada código de ocupação. Visto que isso permite a designação de um modelo de contexto de acordo com uma probabilidade de surgimento de um código de ocupação, é possível se aperfeiçoar a eficiência de codificação. 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.
[0578] Doravante, 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 de o dispositivo de codificação de dados tridimensionais não se referir ao código de ocupação do nó vizinho ao parente na modalidade descrita acima, o dispositivo de codificação de dados tridimensionais pode comutar para referir a um código de ocupação de um nó vizinho ao nó parente, de acordo com uma condição específica.
[0579] Por exemplo, quando o dispositivo de codificação de dados tridimensionais codifica uma “octree” enquanto digitaliza a “octree” largura primeiro, o dispositivo de codificação de dados tridimensionais codifica um código de ocupação de um nó atual por referência à informação de ocupação de um nó em um nó vizinho ao parente. Em contraste, quando o dispositivo de codificação de dados tridimensionais codifica a “octree” enquanto digitaliza a “octree” profundidade primeiro, o dispositivo de codificação de dados tridimensionais proíbe a referência à informação de ocupação do nó no nó vizinho ao nó parente. 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 aperfeiçoar a eficiência de codificação e reduzir a carga de processamento.
[0580] Deve-se notar que o dispositivo de codificação de dados tridimensionais pode anexar, a um cabeçalho de uma sequência de bits, a informação que indica, por exemplo, se uma “octree” é codificada largura primeiro ou profundidade primeiro. A figura 62 é um diagrama ilustrando um exemplo de uma sintaxe da informação de cabeçalho nesse caso. “octree”_scan_order mostrada na figura 62 está codificado informação de ordem (um indicador de ordem de codificação). Por exemplo, quando octree_scan_order é igual a 0, largura primeiro é indicada, e quando “octree”_scan_order é igual a 1, a 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.
[0581] Ademais, 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 ao parente. A figura 63 é um diagrama ilustrando um exemplo de uma sintaxe da informação de cabeçalho nesse caso. limit_refer_flag é a informação de comutação de proibição (um indicador de comutação de proibição) indicando se proíbe a referência a um nó vizinho ao nó parente. Por exemplo, quando limit_refer_flag é igual a 1, a proibição da referência ao nó vizinho do nó parente é 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ó parente) é indicada.
[0582] Em outras palavras, o dispositivo de codificação de dados tridimensionais determina se proíbe a referência ao nó vizinho ao parente e seleciona se proíbe ou permite a referência ao nó vizinho do nó parente, 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 comutação de proibição que indica o resultado da determinação e indica se proíbe a referência ao nó vizinho do nó parente.
[0583] O dispositivo de decodificação de dados tridimensionais obtém, a partir de uma sequência de bits, a informação de comutação de proibição indicando se proíbe referência a um nó vizinho do nó parente, e seleciona se proíbe ou permite a referência ao nó vizinho do nó parente, com base na informação de comutação de proibição.
[0584] Isso permite que o dispositivo de codificação de dados tridimensionais controle a referência ao nó vizinho do nó parente 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ó parente.
[0585] 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ó parente é 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 normal 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 previsto é codificado.
[0586] Doravante, 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 é fornecido, 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.
[0587] 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 64, utilizando a seguinte equação. CodingTable= (FlagX0 << 3) + (FlagX1 << 2) + (FlagY << 1) + (FlagZ)
[0588] No presente documento, CodingTable indica uma tabela de codificação para um código de ocupação de um nó atual, e indica um dos valores que variam de 0 a 15. FlagXN é a informação de ocupação do nó vizinho XN (N = 0..1). FlagXN indica 1 quando o nó vizinho XN inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagY é a informação de ocupação do nó vizinho Y. FlagY indica 1 quando o nó vizinho Y inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagZ é a informação de ocupação do nó vizinho Z. FlagZ indica 1 quando o nó vizinho Z inclui uma nuvem de pontos (está ocupado) e indica 0 quando não.
[0589] 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).
[0590] 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-se notar 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-se o código de ocupação do nó avô. O nó vizinho X1 é uma ocupação ou não ocupação do nó vizinho que pode ser determinada utilizando-se um código de ocupação de um nó parente.
[0591] Doravante, 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 66 é 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.
[0592] 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 (doravante 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ó parente 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 possui o mesmo nó parente 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ó parente 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. Sendo assim, visto que o dispositivo de codificação de dados tridimensionais pode selecionar uma tabela de codificação para o código de ocupação do nó atual 2, de acordo com um formato mais particular do nó atual, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação.
[0593] 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 codifica por entropia o código de ocupação do nó atual 2, utilizando a seguinte equação, por exemplo. CodingTable = (FlagX1 << 5) + (FlagX2 << 4) + (FlagX3 << 3) + (FlagX4 << 2) + (FlagY << 1) + (FlagZ)
[0594] No presente documento, CodingTable indica uma tabela de codificação para um código de ocupação do nó atual 2, e indica um dentre os valores que variam de 0 a 63. FlagXN é a informação de ocupação do nó vizinho XN (N = 1.. 4). FlagXN indica 1 quando o nó vizinho XN inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagY é a informação de ocupação do nó vizinho Y. FlagY indica 1 quando o nó vizinho Y inclui uma nuvem de pontos (está ocupado) e indica 0 quando não. FlagZ é a informação de ocupação do nó vizinho Z. FlagZ indica 1 quando o nó vizinho Z inclui uma nuvem de pontos (está ocupado) e indica 0 quando não.
[0595] Deve-se notar que o dispositivo de codificação de dados tridimensionais pode mudar um método de cálculo de uma tabela de codificação, de acordo com uma posição de nó do nó atual 2 no nó parente.
[0596] Quando referência a um nó vizinho do nó parente 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ó parente. Por exemplo, quando a referência ao nó vizinho do nó parente não é proibida, a referência à informação (por exemplo, informação de ocupação) de um nó criança de um terceiro nó, que possui um nó parente 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ó parente diferente do nó parente 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.
[0597] 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-ary 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ó parente que o nó atual, o segundo nó possuindo um nó parente diferente do nó parente 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ó parente e proíbe referência à informação (por exemplo, um código de ocupação) de outro nó (um nó vizinho do nó parente) na mesma camada que o nó parente.
[0598] 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ó parente 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ó parente diferente do nó parente 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.
[0599] Por exemplo, o dispositivo de codificação de dados tridimensionais determina, adicionalmente, se proíbe a referência à informação do segundo nó. Na codificação, o dispositivo de codificação 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. Ademais, o dispositivo de codificação de dados tridimensionais gera uma sequência de bits incluindo a informação de comutação de proibição (por exemplo, limit_refer_flag ilustrado na figura 63) que indica o resultado da determinação e indica se proíbe a referência à informação do segundo nó.
[0600] Com isso, o dispositivo de codificação de dados tridimensionais pode selecionar se proíbe a referência à informação do segundo nó. Adicionalmente, um dispositivo de decodificação de dados tridimensionais pode realizar, de forma adequada, um processo de decodificação utilizando a informação de comutação de proibição.
[0601] 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ó.
[0602] 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.
[0603] 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.
[0604] Com isso, visto que o dispositivo de codificação de dados tridimensionais permite a referência à informação mais detalhada de um nó vizinho, o dispositivo de codificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação.
[0605] 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ó parente.
[0606] 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ó parente.
[0607] 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.
[0608] 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-ary 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ó parente que o nó atual, o segundo nó possuindo um nó parente diferente do nó parente 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ó parente, e proíbe a referência à informação (por exemplo, um código de ocupação) de outro nó (um nó vizinho ao nó parente) na mesma camada que o nó parente.
[0609] Com isso, o dispositivo de decodificaçã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ó parente 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ó parente diferente do nó parente 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.
[0610] Por exemplo, o dispositivo de decodificação de dados tridimensionais obtém adicionalmente, de uma sequência de bits, a informação de comutação de proibição (por exemplo, limit_refer_flag ilustrado 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 comutação de proibição.
[0611] Com isso, o dispositivo de decodificação de dados tridimensionais pode realizar adequadamente um processo de decodificação utilizando a informação de comutação de proibição.
[0612] 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ó.
[0613] 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 de decodificação selecionada.
[0614] 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.
[0615] Com isso, visto que o dispositivo de decodificação de dados tridimensionais permite a referência à informação mais detalhada de um nó vizinho, o dispositivo de decodificação de dados tridimensionais pode aperfeiçoar a eficiência de codificação.
[0616] 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ó parente.
[0617] 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ó parente.
[0618] 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
[0619] 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ódigo é usado ao invés de codificar diretamente as coordenadas do ponto tridimensional.
[0620] 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.
[0621] 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 cada 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-se notar 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-se notar 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.
[0622] Como um método de codificação de informação de atributo de um ponto tridimensional, é concebível calcular um valor previsto da informação de atributo do ponto tridimensional e codificar uma diferença (residual de previsão) entre o valor original da informação de atributo e o valor previsto. Por exemplo, quando o valor de informação de atributo no ponto tridimensional p é Ap e um valor previsto é Pp, o dispositivo de codificação de dados tridimensionais codifica valor diferencial absoluto Deffp = |Ap - Pp|. Nesse caso, quando valor previsto altamente preciso Pp pode ser gerado, valor diferencial absoluto Diffp é pequeno. Portanto, por exemplo, é possível reduzir a quantidade de código 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.
[0623] Como um método de geração de um valor de previsã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)
[0624] 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 previsto da informação de atributo de ponto p tridimensional atual. Deve-se notar 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 previsão, qualquer ponto tridimensional fora da faixa predeterminada de distância a partir 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 previsão. Deve-se notar 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.
[0625] 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 previsto Pp de informação de atributo Ap de ponto tridimensional p atual.
[0626] 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 previsto Pp de informação de atributo Ap de ponto tridimensional p atual.
[0627] Ainda, quando codificando a informação de atributo do ponto tridimensional atual usando um valor previsto, 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 previsto 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.
[0628] 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.
[0629] Primeiro, o dispositivo de codificação de dados tridimensionais seleciona o ponto inicial a0 e designa o 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].
[0630] Em seguida, o dispositivo de codificação de dados tridimensionais seleciona o ponto b0 que não foi ainda designado 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 designado 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 limiar Thres_LoD[1] de LoD1 e que não foi ainda designado 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].
[0631] Em seguida, o dispositivo de codificação de dados tridimensionais seleciona o ponto c0 que não foi ainda designado 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 designado 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 designado a nenhum LoD, e designa o ponto 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.
[0632] 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.
[0633] Alternativamente, o dispositivo de codificação de dados tridimensionais pode designar todos os pontos tridimensionais que não foram ainda designados 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ódigo 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 atribui o ponto valores limiares Thres_LoD[0] e Thres_LoD[1] ao cabeçalho, e não atribui o ponto 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.
[0634] Ainda, configurar valores limiares para os respectivos LoDs de camadas de tal maneira que um valor limiar maior é configurado para uma camada maior 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-se notar que, em um exemplo ilustrado na figura 70, LoD0 é a camada mais superior.
[0635] 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.
[0636] Doravante, é dada uma descrição de um método de geração do valor previsto 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 (doravante 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 previsto de informação de atributo de cada um dos pontos tridimensionais incluídos em LoDn.
[0637] 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 previsto 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-se notar que o dispositivo de codificação de dados tridimensionais pode mudar 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 previsto. Portanto, é possível reduzir o residual de previsã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 elimina 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.
[0638] Alternativamente, o dispositivo de codificação de dados tridimensionais pode calcular um valor previsto 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 N.
[0639] 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 previsã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 previsão eficiente enquanto reduzindo a quantidade de processamento de realização de média ao definir valor N menor.
[0640] A Figura 71 é um diagrama ilustrando um exemplo de informação de atributo a ser usada para valores previstos. Como descrito acima, o valor previsto 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 previsto 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.
[0641] 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.
[0642] O valor previsto é calculado através de média ponderada dependente da distância. Por exemplo, no exemplo ilustrado na figura 71, o valor previsto 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-notar que Ai é um valor de informação de atributo de ai. [Mat. 2] (Equação A2) (Equação A3)
[0643] Ainda, o valor previsto 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 pela (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)
[0644] Ainda, o dispositivo de codificação de dados tridimensionais pode calcular um valor de diferença (residual de previsão) gerado a partir do valor de informação de atributo de um ponto tridimensional e pontos vizinhos, e pode quantizar o residual de previsão calculado. Por exemplo, o dispositivo de codificação de dados tridimensionais realiza quantização ao dividir o residual de previsã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 uma vez a escala de quantização sendo menor. No outro caso onde a escala de quantização é maior, o erro de quantização resultante é maior.
[0645] Deve-se notar 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 previsto 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 previsão do valor previsto. Deve-se observar 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.
[0646] Ainda, o dispositivo de codificação de dados tridimensionais pode converter um valor inteiro designado (valor quantizado designado) que é um residual de previsão quantizado em um valor inteiro não designado (valor quantizado não designado). Isso elimina a necessidade de considerar a ocorrência de um inteiro negativo quando da codificação por entropia do residual de previsão. Deve-se notar que o dispositivo de codificação de dados tridimensionais não precisa sempre converter um valor inteiro designado em um valor inteiro não designado e, por exemplo, que o dispositivo de codificação de dados tridimensionais pode codificar por entropia um bit de sinal separadamente.
[0647] O residual de previsão é calculado subtraindo um valor de previsão do valor original. Por exemplo, como representado pela (Equação A7), o residual de previsão a2r do ponto a2 é calculado subtraindo valor previsto a2p do ponto a2 do valor A2 de informação de atributo do ponto a2. Como representado pela (Equação A8), o residual de previsão b2r do ponto b2 é calculado subtraindo o valor previsto 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)
[0648] Ainda, o residual de previsã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)
[0649] Ainda, o dispositivo de codificação de dados tridimensionais converte valores inteiros designados que são valores quantizados como indicado abaixo em valores inteiros não designados como indicado abaixo. Quando o valor inteiro designado a2q é menor do que 0, o dispositivo de codificação de dados tridimensionais configura valor inteiro não designado a2u para -1 – (2 x a2q). Quando o valor inteiro designado a2q é 0 ou mais, o dispositivo de codificação de dados tridimensionais configura valor inteiro não designado a2u para 2 x a2q.
[0650] Da mesma maneira, quando o valor inteiro designado b2q é menor do que 0, o dispositivo de codificação de dados tridimensionais configura o valor inteiro não designado b2u para – 1 – (2 x b2q). Quando o valor inteiro designado b2q é 0 ou mais, o dispositivo de codificação de dados tridimensionais configura valor inteiro não designado b2u para 2 x b2q.
[0651] Ainda, o dispositivo de codificação de dados tridimensionais pode codificar o residual de previsão quantizado (valor inteiro não designado) através de codificação por entropia. Por exemplo, o dispositivo de codificação de dados tridimensionais pode binarizar o valor inteiro não designado e então aplicar codificação aritmética binária ao valor binário.
[0652] Deve-se notar que, nesse caso, o dispositivo de codificação de dados tridimensionais pode trocar métodos de binarização de acordo com o valor de um residual de previsão. Por exemplo, quando o residual de previsão pu é menor do que o valor limiar R_TH, o dispositivo de codificação de dados tridimensionais binariza o residual de previsão pu usando uma contagem de bits fixa requerida para representação de valor limiar R_TH. Ainda, quando o residual de previsã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 Golomb-exponencial, ou similar.
[0653] Por exemplo, quando o valor limiar R_TH é 63 e residual de previsão pu é menor do que 63, o dispositivo de codificação de dados tridimensionais binariza o residual de previsão pu usando 6 bits. Quando o residual de previsã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 Golomb-exponencial.
[0654] Em um exemplo mais específico, quando o residual de previsã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 previsã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 Golomb- exponencial, e codifica por aritmética a sequência de bits (111111 + 00100).
[0655] 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 previsão se torna grande através da troca dos métodos de binarização de acordo com a magnitude do residual de previsão. Deve- se notar 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.
[0656] 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 previsão alta são obtidos. Como resultado, um residual de previsão pode não 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 previsão baixa são obtidos. Como resultado, um residual de previsã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.
[0657] Ainda, o dispositivo de codificação de dados tridimensionais pode trocar 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 trocar 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 previsão é baixa, o que pode aumentar um residual de previsã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 previsão é alta, o que pode reduzir um residual de previsã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.
[0658] A figura 72 é um diagrama indicando exemplos de códigos Golomb-exponencial. 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-se notar que 0 e 1 indicados na figura 72 podem ser invertidos.
[0659] O dispositivo de codificação de dados tridimensionais aplica codificação aritmética aos dados binários de residuais de previsão. Desta maneira, a eficiência de codificação pode ser aumentada. Deve- se observar 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 Golomb-exponencial. Portanto, o dispositivo de codificação de dados tridimensionais pode trocar métodos de aplicação de codificação aritmética entre o código de n-bits e o código restante.
[0660] 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 troca 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 troca 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.
[0661] 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 troca 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 apropriada para cada bit, e então pode aumentar a eficiência de codificação.
[0662] 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 trocar 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 da 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-se notar 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.
[0663] 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 trocadas 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 trocadas 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 trocadas de acordo com os valores (na faixa de 0 a 2n-1 -1) de b0, b1, ..., bn -2.
[0664] Deve-se notar 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-ary 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 um m-ary, o dispositivo de decodificação de dados tridimensionais pode reconstruir o código de n-bits através de decodificação aritmética do m- ary.
[0665] A figura 73 é um diagrama para ilustração de processamento no caso onde códigos restantes são códigos Golomb-exponenciais. Como indicado na figura 73, cada código restante que é uma parte binarizada usando codificação Golomb-exponencial inclui um prefixo e um sufixo. Por exemplo, o dispositivo de codificação de dados tridimensionais troca 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.
[0666] Deve-se notar 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.
[0667] Ainda, o dispositivo de codificação de dados tridimensionais decodifica um residual de previsão quantizado através de quantização inversa e reconstrução, e usa um valor decodificado que é o residual de previsão decodificado para previsão de um ponto tridimensional atual a ser codificado e o(s) ponto(s) tridimensional(ais) que seguem. Mais especificamente, o dispositivo de codificação de dados tridimensionais calcula um valor quantizado inverso multiplicando o residual de previsão quantizado (valor quantizado) com uma escala de quantização, e soma o valor quantizado inverso e um valor de previsão para obter o valor decodificado (valor reconstruído).
[0668] 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, uma 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)
[0669] 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 previsto 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 previsto b2p do ponto b2. a2rec = a2iq + a2p (Equação A13) b2rec = b2iq + b2p (Equação A14)
[0670] Doravante, 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_header) 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 previsão (THd[i]), uma escala de quantização (QS[i]) e um valor limiar de binarização (R_TH[i]).
[0671] O número de informação de camadas (NumLoD) indica o número de LoDs a ser usado.
[0672] O número de informação de pontos tridimensionais (NumOfPoint[i]) indica o número de pontos tridimensionais pertencentes à camada i. Deve-se notar 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ódigo do cabeçalho. [Mat. 4] (Equação A15)
[0673] 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ódigo do cabeçalho.
[0674] 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 previsto de um ponto tridimensional pertencente à camada i. O dispositivo de codificação de dados tridimensionais pode calcular um valor previsto 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.
[0675] O valor limiar de previsã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 prever 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 previsão, nenhum ponto tridimensional distante do ponto tridimensional atual com relação a THd[i]. Deve-se notar 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 previsão único (THd) a ser usado em todos os LoDs a um cabeçalho.
[0676] 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.
[0677] O valor limiar de binarização (R_TH[i]) é um valor limiar para trocar métodos de binarização de residuais de previsão dos pontos tridimensionais pertencentes à camada i. Por exemplo, o dispositivo de codificação de dados tridimensionais binariza o residual de previsão pu usando uma contagem de bits fixa quando um residual de previsã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 Golomb- exponencial quando um residual de previsão é maior do que ou igual ao valor limiar R_TH. Deve-se notar que, quando não há nenhuma necessidade de trocar 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.
[0678] Deve-se notar 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 a partir 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 é 6.
[0679] 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 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.
[0680] 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.
[0681] 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.
[0682] O código de n-bits são dados codificados em um residual de previsã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 bits do código de n-bits é 8 bits quando o valor indicado por R_TH[i] é 255.
[0683] O código restante são dados codificados usando codificação Golomb-exponencial dentre os dados codificados do residual de previsã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 previsão ao adicionar o valor do código de n- bits e o valor do código restante. Deve-se notar 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].
[0684] Doravante, é 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.
[0685] 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”.
[0686] 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óximos 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 os valores da informação de atributo dos pontos tridimensionais pós- mudança.
[0687] 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-se notar 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.
[0688] 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 tridimensionais. 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.
[0689] 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.
[0690] 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.
[0691] 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.
[0692] 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 previsto 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 previsto P (S3015). Em seguida, o dispositivo de codificação de dados tridimensionais calcula um residual de previsão que é a diferença entre a informação de atributo do ponto tridimensional atual e o valor previsto
(S3016). Em seguida, o dispositivo de codificação de dados tridimensionais quantiza o residual de previsã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).
[0693] 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 previsã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).
[0694] Doravante, é 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.
[0695] 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-se notar que quando métodos de aplicação de codificação aritmética são trocados entre a parte (código de n-bits) binarizada usando n-bits e a parte (código restante) binarizada usando codificação Golomb-exponencial 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.
[0696] 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 troca 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 troca tabelas de codificação a serem usadas para decodificação aritmética de bit b2 de acordo com os valores (na faixa de a partir de 0 a 3) de b0 e b1.
[0697] Desta maneira, o dispositivo de decodificação de dados tridimensionais usa tabelas de codificação 2n-1 quando decodificando por aritmética cada bit bn – 1 no código de n-bits. O dispositivo de decodificação de dados tridimensionais troca 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.
[0698] Deve-se notar 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 trocar 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-se notar 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 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.
[0699] 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 trocadas 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 trocadas de acordo com os valores (na faixa de 0 a 2n-1 – 1) de b0, b1, ..., bn -2.
[0700] A figura 78 é um diagrama para ilustração de processamento no caso onde códigos restantes são códigos Golomb-exponenciais. Como indicado na figura 78, a parte (parte restante) binarizada e codificada pelo dispositivo de codificação de dados tridimensionais usando codificação Golomb-exponencial inclui um prefixo e um sufixo. Por exemplo, o dispositivo de decodificação de dados tridimensionais troca 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.
[0701] Deve-se notar 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.
[0702] Ainda, o dispositivo de decodificação de dados tridimensionais decodifica o residual de previsão quantizado (valor inteiro não designado) através de desbinarização dos dados binários do residual de previsão decodificado por aritmética 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-bit. Em seguida, o dispositivo de decodificação de dados tridimensionais compara o valor do código de n-bit com valor limiar R_TH.
[0703] No caso onde o valor do código de n-bit e o valor limiar R_TH correspondem, o dispositivo de decodificação de dados tridimensionais determina que um bit codificado usando codificação Golomb- exponencial está presente em seguida, e decodifica por aritmética o código restante que são os dados binários codificados usando codificação Golomb-exponencial. 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 previsão quantizado desbinarizado.
[0704] 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 dispositivo de decodificação de dados tridimensionais determina o valor do código de n-bits ser o residual de previsã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 trocando os métodos de binarização de acordo com os valores dos residuais de previsão pelo dispositivo de codificação de dados tridimensionais.
[0705] Deve-se notar 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 trocar 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 troca os métodos de decodificação usando valor limiar R_TH decodificado para cada LoD.
[0706] 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 Golomb-exponencial, 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 previsão.
[0707] 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 previsão.
[0708] Ainda, o dispositivo de decodificação de dados tridimensionais converte o residual de previsão quantizado decodificado, por exemplo, de um valor inteiro não designado para um valor inteiro designado, através de processamento inverso ao processamento no dispositivo de codificação de dados tridimensionais. Desta maneira, quando decodificando por entropia o residual de previsã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-se notar que o dispositivo de decodificação de dados tridimensionais nem sempre precisa converter um valor inteiro não designado em um valor inteiro designado 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.
[0709] O dispositivo de decodificação de dados tridimensionais realiza decodificação através de quantização inversa e reconstrução do residual de previsão quantizado após ser convertido no valor inteiro designado, para obter um valor decodificado. O dispositivo de decodificação de dados tridimensionais usa o valor decodificado gerado para previsã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 previsão quantizado por uma escala de quantização decodificada para calcular um valor quantizado inverso e soma o valor quantizado inverso e o valor previsto para obter o valor decodificado.
[0710] O valor inteiro não designado decodificado (valor quantizado não designado) é convertido em um valor inteiro designado através do processamento indicado abaixo. Quando o bit menos significante (LSB) de valor inteiro não designado decodificado a2u é 1, o dispositivo de decodificação de dados tridimensionais configura o valor inteiro designado a2q para –((a2u + 1) >> 1). Quando o LSB de valor inteiro não designado a2u não é 1, o dispositivo de decodificação de dados tridimensionais configura valor inteiro designado a2q para ((a2u >> 1).
[0711] Da mesma maneira, quando um LSB de valor inteiro não designado decodificado b2u é 1, o dispositivo de decodificação de dados tridimensionais configura valor inteiro designado b2q para –((b2u + 1) >> 1). Quando o LSB de valor inteiro não designado decodificado n2u não é 1, o dispositivo de decodificação de dados tridimensionais configura o valor inteiro designado b2q para ((b2u >> 1).
[0712] 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.
[0713] Doravante, é 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”.
[0714] 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 da decodificação de 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-se notar 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.
[0715] 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.
[0716] 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.
[0717] 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.
[0718] 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.
[0719] 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 previsto 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 para valor previsto P (S3045). Deve-se notar que esses processos são similares aos processos no dispositivo de codificação de dados tridimensionais.
[0720] 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 previsto 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).
[0721] O que segue descreve configurações do dispositivo de codificação de dados tridimensionais e do dispositivo de codificação de dados tridimensionais de acordo com a presente modalidade. A figura 82 é um diagrama em bloco 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.
[0722] 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 registro. 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 registro, 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.
[0723] A figura 83 é um digrama de bloco 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.
[0724] 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.
[0725] 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 previsto da informação de atributo do ponto tridimensional (S3061). Em seguida, o dispositivo de codificação de dados tridimensionais calcula um residual de previsão que é a diferença entre a informação de atributo do ponto tridimensional e o valor previsto (S3062). Em seguida o dispositivo de codificação de dados tridimensionais binariza o residual de previsã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).
[0726] Desta maneira, o dispositivo de codificação de dados tridimensionais é capaz de reduzir a quantidade de código dos dados a serem codificados da informação de atributo através do cálculo do residual de previsão da informação de atributo, e binarização e codificação aritmética do residual de previsão.
[0727] 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.
[0728] 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.
[0729] 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.
[0730] Por exemplo, em binarização (S3063), o dispositivo de codificação de dados tridimensionais: binariza um residual de previsão usando uma contagem de bits fixa para gerar dados binários quando o residual de previsã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 previsã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 Golomb-exponencial, o valor obtido através de subtração do valor limiar (R_TH) do residual de previsã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.
[0731] 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.
[0732] Por exemplo, o dispositivo de codificação de dados tridimensionais quantiza o residual de previsão e, em binarização (S3063), binariza o residual de previsã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.
[0733] 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.
[0734] 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.
[0735] 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 previsto 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 previsã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 previsto e do residual de previsão (S3074).
[0736] 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 previsão da informação de atributo e binarização e decodificação por aritmética do residual de previsão.
[0737] 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.
[0738] 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.
[0739] 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.
[0740] 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 previsã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 Golomb-exponencial incluído nos dados binários e soma o primeiro valor e o segundo valor, dessa maneira gerando um residual de previsã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.
[0741] 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.
[0742] Por exemplo, o dispositivo de decodificação de dados tridimensionais quantiza inverso o residual de previsão e, ainda (S3074), soma o valor previsto e o residual de previsã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.
[0743] 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.
[0744] 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.
[0745] Um dispositivo de codificação de dados tridimensionais, um dispositivo de decodificação de dados tridimensionais e similar de acordo com a modalidade da presente descrição foram descritos acima, mas a presente descrição não é limitada a essas modalidades.
[0746] Note-se 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.
[0747] 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.
[0748] Ademais, nas modalidades acima, os componentes estruturais podem ser implementados como hardware dedicado ou podem ser realizados 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.
[0749] A presente descriçã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 similares, executados pelo dispositivo de codificação de dados tridimensionais, dispositivo de decodificação de dados tridimensionais, e similares.
[0750] 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 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 singular de forma paralelizada ou dividida em tempo.
[0751] Além disso, a ordem de processamento da execução das etapas ilustradas nos fluxogramas é uma mera ilustração para descrever especificamente a presente descrição, e, dessa forma, pode ser uma ordem além da ordem ilustrada. Além disso, uma ou mais dentre as etapas podem ser executadas simultaneamente (em paralelo) com outra etapa.
[0752] Um dispositivo de codificação de dados tridimensionais, um dispositivo de decodificação de dados tridimensionais e similares, 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. Os 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
[0753] A presente descriçã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 elemento de obtenção 102, 402 determinador de região de codificação 103 divisor 104, 644 codificador 111 dados tridimensionais 112, 211, 413, 414, 511, 634 dados tridimensionais codificados 200, 500 dispositivo de decodificação de dados tridimensionais 202 determinador 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 registrados 412 dados tridimensionais extraídos 502 analisador de cabeçalho 503 decodificador de WLD 504 decodificador de SWLD 620, 620A dispositivo de criação de dados tridimensionais 621, 641 criador de dados tridimensionais 622 determinador de faixa de solicitação 623 buscador 624, 642 receptor 626 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 elemento de obtenção de mapa tridimensional 702 elemento de obtenção 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 subtraidor 1303 transformador 1304 quantizador 1305, 1402 quantizador inverso 1306, 1403 transformador inverso 1307, 1404 somador 1308, 1405 memória de volume de referência 1309, 1406 intraprevisor 1310, 1407 memória de espaço de referência 1311, 1408 interprevisor 1312, 1409 controlador de previsão 1313 codificador por entropia 1400 dispositivo de decodificação de dados tridimensionais
1401 decodificador por entropia 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 designador 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
Claims (16)
1. Método de codificação de dados tridimensionais de codificação de um ponto tridimensional tendo informação de atributo, caracterizado pelo fato de que compreende: cálculo de um valor previsto da informação de atributo do ponto tridimensional; cálculo de um residual de previsão que é uma diferença entre a informação de atributo do ponto tridimensional e o valor previsto; binarização do residual de previsão para gerar dados binários; e codificação aritmética dos dados binários.
2. Método de codificação de dados tridimensionais, de acordo com a reivindicação 1, caracterizado pelo fato de que na codificação aritmética, uma tabela de codificação diferente é usada para cada bit incluído nos dados binários.
3. Método de codificação de dados tridimensionais, de acordo com a reivindicação 2, caracterizado pelo fato de que na codificação aritmética, um número total de tabelas de codificação a serem usadas é maior para um bit de ordem inferior incluído nos dados binários.
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 na codificação aritmética, uma tabela de codificação a ser usada para codificar por aritmética um bit atual incluído nos dados binários é selecionada de acordo com um valor de um bit de ordem superior com relação ao bit atual.
5. Método de codificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que na binarização: os dados binários que têm uma contagem de bit fixa são gerados através de binarização do residual de previsão quando o residual de previsão é menor do que um valor limiar; e os dados binários incluindo um primeiro código e um segundo código são gerados quando o residual de previsão é maior do que ou igual ao valor limiar, o primeiro código tendo a contagem de bit fixa indicando o valor limiar, o segundo código tendo sido obtido através de binarização, usando codificação Golomb-exponencial, um valor obtido subtraindo o valor limiar do residual de previsão, e na codificação aritmética, métodos de codificação aritmética diferentes são usados para o primeiro código e o segundo código.
6. Método de codificação de dados tridimensionais, de acordo com a reivindicação 5, caracterizado pelo fato de que ainda compreende: quantização do residual de previsão; e binarização do residual de previsão quantizado, na binarização, em que o valor limiar é modificado de acordo com uma escala de quantização na quantização.
7. Método de codificação de dados tridimensionais, de acordo com a reivindicação 5, caracterizado pelo fato de que o segundo código inclui um prefixo e um sufixo, e na codificação aritmética, tabelas de codificação diferentes são usadas para o prefixo e o sufixo.
8. Método de decodificação de dados tridimensionais de decodificação de um ponto tridimensional tendo informação de atributo, caracterizado pelo fato de que compreende: calcular um valor previsto da informação de atributo do ponto tridimensional; decodificar por aritmética os dados codificados incluídos em uma sequência de bits para gerar dados binários;
desbinarizar os dados binários para gerar um residual de previsão; e calcular um valor decodificado da informação de atributo do ponto tridimensional através da adição do valor previsto e do residual de previsão.
9. Método de decodificação de dados tridimensionais, de acordo com a reivindicação 8, caracterizado pelo fato de que na decodificação aritmética, uma tabela de codificação diferente é usada para cada bit incluído nos dados binários.
10. Método de decodificação de dados tridimensionais, de acordo com a reivindicação 9, caracterizado pelo fato de que na decodificação aritmética, um número total de tabelas de codificação a serem usadas é maior para um bit de ordem inferior incluído nos dados binários.
11. Método de decodificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 8 a 10, caracterizado pelo fato de que na decodificação aritmética, uma tabela de codificação a ser usada para codificar por aritmética um bit atual incluído nos dados binários é selecionada de acordo com um valor de um bit de ordem superior com relação ao bit atual.
12. Método de decodificação de dados tridimensionais, de acordo com qualquer uma das reivindicações 8 a 11, caracterizado pelo fato de que na desbinarização: um primeiro código que tem uma contagem de bit fixa incluída nos dados binários é desbinarizado para gerar um primeiro valor; um primeiro valor é determinado ser o residual de previsão quando o primeiro valor é menor do que um valor limiar; e quando o primeiro valor é maior do que ou igual ao valor limiar, um código que é um código Golumb-exponencial incluído dos dados binários é desbinarizado para gerar um segundo valor, e o primeiro valor e o segundo valor são adicionados para gerar o residual de previsão, e na decodificação aritmética, métodos de decodificação aritmética diferentes são usados para o primeiro código e o segundo código.
13. Método de decodificação de dados tridimensionais, de acordo com a reivindicação 12, caracterizado pelo fato de que ainda compreende: quantizar inverso o residual de previsão; e adicionar o valor previsto e o residual de previsão quantizado inverso, na adição, em que o valor limiar é modificado de acordo com uma escala de quantização na quantização inversa.
14. Método de decodificação de dados tridimensionais, de acordo com a reivindicação 12, caracterizado pelo fato de que o segundo código inclui um prefixo e um sufixo, e na decodificação aritmética, tabelas de codificação diferentes são usadas para o prefixo e o sufixo.
15. Dispositivo de codificação de dados tridimensionais que codifica um ponto tridimensional tendo informação de atributo, caracterizado pelo fato de que compreende: um processador; e memória, em que, usando a memória, o processador: calcula um valor previsto da informação de atributo do ponto tridimensional; calcula um residual de previsão que é uma diferença entre a informação de atributo do ponto tridimensional e o valor previsto; binariza o residual de previsão para gerar dados binários; e codifica por aritmética os dados binários.
16. Dispositivo de decodificação de dados tridimensionais que decodifica um ponto tridimensional tendo informação de atributo, caracterizado pelo fato de que compreende: um processador; e memória, em que, usando a memória, o processador: calcula um valor previsto da informação de atributo do ponto tri-dimensional; decodifica por aritmética dados codificados incluídos em uma sequência de bits para gerar dados binários; desbinariza os dados binários para gerar um residual de previsão; e calcula um valor decodificado da informação de atributo do ponto tridimensional através da adição do valor previsto e do residual de previsão.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862681406P | 2018-06-06 | 2018-06-06 | |
US62/681,406 | 2018-06-06 | ||
PCT/JP2019/021636 WO2019235366A1 (ja) | 2018-06-06 | 2019-05-30 | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
BR112020023939A2 true BR112020023939A2 (pt) | 2021-02-09 |
Family
ID=68770323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112020023939-9A BR112020023939A2 (pt) | 2018-06-06 | 2019-05-30 | 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 (9)
Country | Link |
---|---|
US (1) | US20210082153A1 (pt) |
EP (1) | EP3806042A4 (pt) |
JP (1) | JP7167144B2 (pt) |
KR (1) | KR20210018254A (pt) |
CN (1) | CN112219227A (pt) |
BR (1) | BR112020023939A2 (pt) |
CA (1) | CA3101091A1 (pt) |
MX (1) | MX2020012935A (pt) |
WO (1) | WO2019235366A1 (pt) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2020218593A1 (pt) * | 2019-04-25 | 2020-10-29 | ||
WO2021132595A1 (ja) * | 2019-12-26 | 2021-07-01 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
US11893691B2 (en) | 2020-07-09 | 2024-02-06 | Tencent America LLC | Point cloud geometry upsampling |
KR20230124673A (ko) * | 2020-12-22 | 2023-08-25 | 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 | 포인트 클라우드의 인코딩 방법, 디코딩 방법, 인코더및 디코더 |
CN117397239A (zh) * | 2021-06-04 | 2024-01-12 | 华为技术有限公司 | 3d地图的编解码方法及装置 |
CN113676738B (zh) * | 2021-08-19 | 2024-03-29 | 上海交通大学 | 一种三维点云的几何编解码方法及装置 |
CN115720270A (zh) * | 2021-08-24 | 2023-02-28 | 鹏城实验室 | 点云编码方法、解码方法、点云编码设备及解码设备 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1285216C (zh) * | 2001-11-16 | 2006-11-15 | 株式会社Ntt都科摩 | 图像编码方法和装置、图像译码方法和装置 |
KR100873636B1 (ko) * | 2005-11-14 | 2008-12-12 | 삼성전자주식회사 | 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치 |
US20110116542A1 (en) * | 2007-08-24 | 2011-05-19 | France Telecom | Symbol plane encoding/decoding with dynamic calculation of probability tables |
WO2011052213A1 (ja) * | 2009-10-30 | 2011-05-05 | パナソニック株式会社 | 画像復号方法、画像符号化方法、それらの装置、プログラムおよび集積回路 |
EP2624564B1 (en) * | 2010-09-30 | 2018-05-30 | Sun Patent Trust | Image decoding method, image encoding method, image decoding device, image encoding device, program, and integrated circuit |
CN102014283A (zh) * | 2010-11-30 | 2011-04-13 | 上海大学 | 一阶差分前缀表示的图像数据无损压缩的编码方法 |
PT3349360T (pt) * | 2011-01-14 | 2019-12-09 | Ge Video Compression Llc | Esquema de codificação e descodificação de entropia |
BR112013027186B1 (pt) * | 2011-06-24 | 2022-05-03 | Sun Patent Trust | Método de decodificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, aparelho de codificação de imagem e aparelho de codificação e deco dificação de imagem |
JP2013062644A (ja) | 2011-09-13 | 2013-04-04 | Kddi Corp | 画像符号化装置及び画像復号装置 |
US9264706B2 (en) * | 2012-04-11 | 2016-02-16 | Qualcomm Incorporated | Bypass bins for reference index coding in video coding |
JP5762637B2 (ja) | 2012-07-30 | 2015-08-12 | 三菱電機株式会社 | 地図表示装置 |
US9503760B2 (en) * | 2013-08-15 | 2016-11-22 | Mediatek Inc. | Method and system for symbol binarization and de-binarization |
JP6197496B2 (ja) * | 2013-08-30 | 2017-09-20 | 富士通株式会社 | 量子化装置、量子化方法および量子化プログラム |
US11233998B2 (en) * | 2015-05-29 | 2022-01-25 | Qualcomm Incorporated | Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design |
KR20230091200A (ko) * | 2015-12-14 | 2023-06-22 | 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 | 삼차원 데이터 부호화 방법, 삼차원 데이터 복호 방법, 삼차원 데이터 부호화 장치 및 삼차원 데이터 복호 장치 |
US20170214943A1 (en) * | 2016-01-22 | 2017-07-27 | Mitsubishi Electric Research Laboratories, Inc. | Point Cloud Compression using Prediction and Shape-Adaptive Transforms |
CN116630452A (zh) * | 2016-06-14 | 2023-08-22 | 松下电器(美国)知识产权公司 | 三维数据编码方法、解码方法、编码装置、解码装置 |
KR20180007680A (ko) * | 2016-07-13 | 2018-01-23 | 한국전자통신연구원 | 영상 부호화/복호화 방법 및 장치 |
US20180053324A1 (en) | 2016-08-19 | 2018-02-22 | Mitsubishi Electric Research Laboratories, Inc. | Method for Predictive Coding of Point Cloud Geometries |
US11265561B2 (en) * | 2017-01-06 | 2022-03-01 | Mediatek Inc. | Method and apparatus for range derivation in context adaptive binary arithmetic coding |
-
2019
- 2019-05-30 KR KR1020207034445A patent/KR20210018254A/ko active Search and Examination
- 2019-05-30 JP JP2020523071A patent/JP7167144B2/ja active Active
- 2019-05-30 EP EP19814101.2A patent/EP3806042A4/en active Pending
- 2019-05-30 WO PCT/JP2019/021636 patent/WO2019235366A1/ja unknown
- 2019-05-30 CA CA3101091A patent/CA3101091A1/en active Pending
- 2019-05-30 MX MX2020012935A patent/MX2020012935A/es unknown
- 2019-05-30 BR BR112020023939-9A patent/BR112020023939A2/pt unknown
- 2019-05-30 CN CN201980037127.1A patent/CN112219227A/zh active Pending
-
2020
- 2020-12-01 US US17/108,496 patent/US20210082153A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3806042A1 (en) | 2021-04-14 |
CA3101091A1 (en) | 2019-12-12 |
JPWO2019235366A1 (ja) | 2021-06-24 |
JP7167144B2 (ja) | 2022-11-08 |
US20210082153A1 (en) | 2021-03-18 |
CN112219227A (zh) | 2021-01-12 |
EP3806042A4 (en) | 2021-06-23 |
KR20210018254A (ko) | 2021-02-17 |
WO2019235366A1 (ja) | 2019-12-12 |
MX2020012935A (es) | 2021-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3751520A1 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
BR112020024052A2 (pt) | método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais | |
BR112020024802A2 (pt) | método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais | |
BR112020024480A2 (pt) | método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais | |
BR112020023939A2 (pt) | método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais | |
BR112020020109A2 (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 | |
BR112020025049A2 (pt) | método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais | |
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 | |
BR112020024566A2 (pt) | Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais | |
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 | |
WO2020184443A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
BR112021010550A2 (pt) | Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais e dispositivo de decodificação de dados tridimensionais | |
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 | |
US20230283788A1 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
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 | |
JPWO2019235587A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 | |
RU2798751C2 (ru) | Способ кодирования трехмерных данных, способ декодирования трехмерных данных, устройство кодирования трехмерных данных и устройство декодирования трехмерных данных | |
WO2020196765A1 (ja) | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B350 | Update of information on the portal [chapter 15.35 patent gazette] |