BR112020026618A2 - Projetos de sintaxe de alto nível para codificação de nuvem de pontos - Google Patents

Projetos de sintaxe de alto nível para codificação de nuvem de pontos Download PDF

Info

Publication number
BR112020026618A2
BR112020026618A2 BR112020026618-3A BR112020026618A BR112020026618A2 BR 112020026618 A2 BR112020026618 A2 BR 112020026618A2 BR 112020026618 A BR112020026618 A BR 112020026618A BR 112020026618 A2 BR112020026618 A2 BR 112020026618A2
Authority
BR
Brazil
Prior art keywords
video
pcc
bit stream
group
unit
Prior art date
Application number
BR112020026618-3A
Other languages
English (en)
Inventor
Ye-Kui Wang
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112020026618A2 publication Critical patent/BR112020026618A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

projetos de sintaxe de alto nível para codificação de nuvem de pontos. um método de codificação de nuvem de pontos (pcc) implementado por um decodificador de vídeo. o método inclui o recebimento de um fluxo de bits codificado incluindo um grupo de cabeçalhos de quadros, o grupo de cabeçalhos de quadros especificando um perfil e um nível do fluxo de bits codificado, e decodificando o fluxo de bits codificado.

Description

PROJETOS DE SINTAXE DE ALTO NÍVEL PARA CODIFICAÇÃO DE NUVEM DE PONTOS CAMPO TÉCNICO
[0001] A presente divulgação está geralmente relacionada à codificação de nuvem de pontos e está especificamente relacionada à sintaxe de alto nível para codificação de nuvem de pontos.
ANTECEDENTES
[0002] A nuvem de pontos é empregada em uma ampla variedade de aplicações, incluindo indústria de entretenimento, navegação automotiva inteligente, inspeção geoespacial, modelagem tridimensional (3D) de objetos do mundo real, visualização, etc. Considerando a geometria de amostragem não uniforme da nuvem de pontos, representações compactas para armazenamento e transmissão de tais dados são úteis. Em comparação com as outras apresentações 3D, a nuvem de pontos irregulares é mais geral e aplicável para uma gama mais ampla de sensores e estratégias de aquisição de dados. Por exemplo, ao realizar uma apresentação 3D em um mundo de realidade virtual ou renderizações remotas em um ambiente de telepresença, a renderização de figuras virtuais e instruções em tempo real são processadas como um conjunto de dados de nuvem de pontos densos.
RESUMO
[0003] Um primeiro aspecto se refere a um método de codificação de nuvem de pontos (PCC) implementado por um decodificador de vídeo. O método inclui o recebimento de um fluxo de bits codificado, incluindo um grupo de cabeçalhos de quadros, o grupo de cabeçalhos de quadros especificando um perfil e um nível do fluxo de bits codificado; e decodificar o fluxo de bits codificado.
[0004] Um segundo aspecto se refere a um método de codificação de nuvem de pontos (PCC) implementado por um codificador de vídeo. O método inclui a geração de um fluxo de bits codificado incluindo um grupo de cabeçalhos de quadros, o grupo de cabeçalhos de quadros especificando um perfil e um nível do fluxo de bits codificado; e transmitir o fluxo de bits codificado para um decodificador.
[0005] Os métodos fornecem projetos de sintaxe de alto nível que resolvem um ou mais dos problemas associados à codificação de nuvem de pontos, conforme descrito abaixo. Portanto, o processo de codificação de vídeo e o codec de vídeo são aprimorados, mais eficientes e assim por diante.
[0006] Em uma primeira forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal, o grupo de cabeçalhos de quadros é um grupo de quadros de unidade de camada de abstração de rede (NAL).
[0007] Em uma segunda forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, o grupo de cabeçalhos de quadros é configurado para transportar grupo de parâmetros de cabeçalho de quadros.
[0008] Em uma terceira forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, pelo menos uma dentre informações de ocupação, informações de geometria e informações de atributo são incluídas no grupo de parâmetros de cabeçalho de quadros.
[0009] Em uma quarta forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, o grupo de cabeçalhos de quadros especifica o perfil e o nível para decodificar informação auxiliar para um mapa de ocupação.
[0010] Em uma quinta forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, o grupo de cabeçalhos de quadros especifica um processo de reconstrução de nuvem de pontos que utiliza resultados de decodificação de geometria, textura, informação auxiliar e mapa de ocupação.
[0011] Em uma sexta forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, o perfil ou o nível indicam recursos para decodificação de informação auxiliar e componentes do mapa de ocupação.
[0012] Em uma sétima forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, o perfil ou o nível indica os recursos para reconstrução de nuvem de pontos.
[0013] Em uma oitava forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, o perfil é um subconjunto especificado de sintaxe.
[0014] Em uma nona forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, o perfil é um subconjunto especificado de ferramentas de codificação.
[0015] Em uma décima forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, o nível é um conjunto definido de restrições sobre valores que podem ser tomados por elementos de sintaxe e variáveis.
[0016] Em uma décima primeira forma de implementação do método de acordo com o primeiro ou segundo aspecto como tal ou qualquer forma de implementação anterior do primeiro ou segundo aspecto, uma combinação do perfil e do nível para o fluxo de bits codificado representa um recurso de decodificação particular necessário para a decodificação de o fluxo de bits codificado.
[0017] Um terceiro aspecto se refere a um aparelho de codificação que inclui um receptor configurado para receber uma imagem para codificar ou para receber um fluxo de bits para decodificar, um transmissor acoplado ao receptor, o transmissor configurado para transmitir o fluxo de bits para um decodificador ou para transmitir uma imagem decodificada a um visor, uma memória acoplada a pelo menos um do receptor ou transmissor, a memória configurada para armazenar instruções e um processador acoplado à memória, o processador configurado para executar as instruções armazenadas na memória para realizar o método de qualquer um dos aspectos anteriores ou implementações.
[0018] O aparelho de codificação utiliza projetos de sintaxe de alto nível que resolvem um ou mais dos problemas associados à codificação de nuvem de pontos, conforme descrito abaixo. Portanto, o processo de codificação de vídeo e o codec de vídeo são aprimorados, mais eficientes e assim por diante.
[0019] Em uma primeira forma de implementação do aparelho de acordo com o terceiro aspecto como tal, o aparelho inclui ainda um monitor configurado para exibir uma imagem.
[0020] Um quarto aspecto se refere a um sistema que inclui um codificador e um decodificador em comunicação com o codificador. O codificador ou o decodificador inclui o aparelho de codificação de qualquer um dos aspectos ou implementações anteriores.
[0021] O sistema utiliza projetos de sintaxe de alto nível que resolvem um ou mais dos problemas associados à codificação de nuvem de pontos, conforme descrito abaixo. Portanto, o processo de codificação de vídeo e o codec de vídeo são aprimorados, mais eficientes e assim por diante.
[0022] Um quinto aspecto refere-se a um meio de codificação que inclui meios de recepção configurados para receber uma imagem para codificar ou para receber um fluxo de bits para decodificar, meios de transmissão acoplados aos meios de recepção, os meios de transmissão configurados para transmitir o fluxo de bits para um decodificador ou para transmitir uma imagem decodificada para um meio de exibição, meio de armazenamento acoplado a pelo menos um dos meios de recepção ou meio de transmissão, meio de armazenamento configurado para armazenar instruções e meio de processamento acoplado ao meio de armazenamento, meio de processamento configurado para executar as instruções armazenadas nos meios de armazenamento para realizar os métodos em qualquer um dos aspectos ou implementações anteriores.
[0023] Os meios para codificação utilizam projetos de sintaxe de alto nível que resolvem um ou mais dos problemas associados à codificação de nuvem de pontos, conforme descrito abaixo. Portanto, o processo de codificação de vídeo e o codec de vídeo são aprimorados, mais eficientes e assim por diante.
[0024] Para fins de clareza, qualquer uma das modalidades anteriores pode ser combinada com qualquer uma ou mais das outras modalidades anteriores para criar uma nova modalidade dentro do escopo da presente divulgação.
[0025] Estas e outras características serão mais claramente compreendidas a partir da seguinte descrição detalhada, tomada em conjunto com os desenhos e reivindicações anexos.
BREVE DESCRIÇÃO DOS DESENHOS
[0026] Para uma compreensão mais completa desta divulgação, é feita agora referência à seguinte breve descrição, tomada em conexão com os desenhos anexos e a descrição detalhada, em que números de referência semelhantes representam peças semelhantes.
[0027] A FIG. 1 é um diagrama de blocos que ilustra um sistema de codificação de exemplo que pode utilizar técnicas de modelagem de contexto.
[0028] A FIG. 2 um diagrama de blocos que ilustra um codificador de vídeo de exemplo que pode implementar técnicas de modelagem de contexto.
[0029] A FIG. 3 um diagrama de blocos que ilustra um decodificador de vídeo de exemplo que pode implementar técnicas de modelagem de contexto.
[0030] A FIG. 4 é um diagrama esquemático de uma modalidade de uma estrutura de dados compatível com PCC.
[0031] A FIG. 5 é uma modalidade de um método de codificação de nuvem de pontos implementado por um decodificador de vídeo.
[0032] A FIG. 6 é uma modalidade de um método de codificação de nuvem de pontos implementado por um codificador de vídeo.
[0033] A FIG. 7 é um diagrama esquemático de um dispositivo de codificação de vídeo de exemplo.
[0034] A FIG. 8 é um diagrama esquemático de uma modalidade de um meio para codificação.
DESCRIÇÃO DETALHADA
[0035] Deve ser entendido desde o início que, embora uma implementação ilustrativa de uma ou mais modalidades seja fornecida abaixo, os sistemas e / ou métodos divulgados podem ser implementados usando qualquer número de técnicas, sejam atualmente conhecidas ou existentes. A divulgação não deve de forma alguma ser limitada às implementações ilustrativas, desenhos e técnicas ilustradas abaixo, incluindo os projetos e implementações exemplares ilustrados e descritos neste documento, mas pode ser modificada dentro do escopo das reivindicações anexas, juntamente com seu escopo completo de equivalentes.
[0036] Os padrões de codificação de vídeo incluem Setor de Padronização de Telecomunicações da União Internacional de Telecomunicações (ITU-T) H.261, Organização Internacional de Padronização (ISO) / Comissão Eletrotécnica Internacional (IEC) Grupo de Especialistas em Imagens com Movimento(MPEG) -1 Parte 2, ITU-T H. 262 ou ISO / IEC MPEG-2 Parte 2, ITU-T
H.263, ISO / IEC MPEG-4 Parte 2, Codificação de Vídeo Avançada (AVC), também conhecido como ITU-T H.264 ou ISO / IEC MPEG-4 Parte 10 e codificação de vídeo de alta eficiência (HEVC), também conhecido como ITU-T H.265 ou MPEG-H parte 2. AVC inclui extensões como codificação de vídeo escalável (SVC), codificação de vídeo multivisão (MVC) e codificação de vídeo multivisão mais profundidade (MVC + D) e AVC 3D (3D-AVC). HEVC inclui extensões como HEVC escalável (SHVC), HEVC Multivisão (MV-HEVC) e HEVC 3D (3D-HEVC).
[0037] Uma nuvem de pontos é um conjunto de pontos de dados no espaço 3D. Cada ponto de dados consiste em parâmetros que determinam uma posição (por exemplo, X, Y, Z), uma cor (por exemplo, R, G, B ou Y, U, V) e possivelmente outras propriedades como transparência, refletância, tempo de aquisição etc. Normalmente, cada ponto em uma nuvem possui o mesmo número de atributos anexados a ele. As nuvens de pontos podem ser usadas em várias aplicações, como telepresença imersiva 3D em tempo real, visualização de realidade virtual (VR) de conteúdo com paralaxe interativa, transmissão de replay de esportes de ponto de vista livre 3D, sistemas de informação geográfica, patrimônio cultural, navegação autônoma baseada em 3D em grande escala mapas dinâmicos e aplicações automotivas.
[0038] O ISO / IEC do Grupo de Especialistas em Imagens com Movimento (MPEG) começou em 2016 o desenvolvimento de um novo padrão de codec em Codificação em Nuvem de Pontos para dados de nuvem de pontos compactados sem perdas e perdas com eficiência de codificação substancial e robustez para ambientes de rede. O uso deste padrão de codec permite que as nuvens de pontos sejam manipuladas como uma forma de dados de computador e sejam armazenadas em vários meios de armazenamento, transmitidas e recebidas em redes existentes e futuras e distribuídas em canais de transmissão existentes e futuros.
[0039] Recentemente, o trabalho de codificação de nuvem de pontos (PCC) foi classificado em três categorias, PCC categoria 1, PCC categoria 2 e PCC categoria 3, em que dois projetos de trabalho separados estavam sendo desenvolvidos, um para PCC categoria 2 (PCC Cat2) e o outro para as categorias 1 e 3 do PCC (PCC Cat13). O último esboço de trabalho (WD) para PCC Cat2 está incluído no documento de saída MPEG N17534, e o WD mais recente para PCC Cat13 está incluído no documento de saída MPEG N17533.
[0040] A filosofia principal por trás do projeto do codec PCC Cat2 no PCC Cat2 WD é aproveitar os codecs de vídeo existentes para compactar a informação de geometria e textura de uma nuvem de pontos dinâmica, compactando os dados da nuvem de pontos como um conjunto de diferentes sequências de vídeo. Em particular, duas sequências de vídeo, uma representando a informação de geometria dos dados de nuvem de pontos e outra representando a informação de textura, são geradas e compactadas usando codecs de vídeo. Metadados adicionais para interpretar as duas sequências de vídeo, ou seja, um mapa de ocupação e informação do pacote de modificação (“patch”) auxiliar, também são gerados e compactados separadamente.
[0041] Infelizmente, os projetos existentes de PCC têm desvantagens. Por exemplo, unidades de dados pertencentes a uma instância de tempo, ou seja, uma unidade de acesso (AU), não são contíguas na ordem de decodificação. No PCC Cat 2 WD, as unidades de dados de textura, geometria, informação auxiliar, e o mapa de ocupação para cada AU são intercaladas nas unidades do grupo de quadros. Ou seja, os dados de geometria de todos os quadros do grupo estão juntos. O mesmo geralmente é verdadeiro para dados de textura e assim por diante. No PCC Cat 13 WD, as unidades de dados de geometria e os atributos gerais para cada AU são intercalados no nível de todo o fluxo de bits do PCC (por exemplo, o mesmo que no PCC Cat2 WD quando há apenas um grupo de quadros que tem o mesmo comprimento como todo o fluxo de bits do PCC). A intercalação de unidades de dados pertencentes a uma AU causa inerentemente um grande atraso ponta a ponta que é pelo menos igual ao comprimento do grupo de quadros na duração do tempo de apresentação em sistemas de aplicação.
[0042] Outra desvantagem está relacionada ao formato fluxo de bits. O formato de fluxo de bits permite a emulação de um padrão de código inicial como 0x0003 e, portanto, não funciona para transmissão em fluxo de transporte MPEG-2 (TS) onde a prevenção de emulação de código inicial é necessária. Para PCC Cat2, atualmente apenas group_of_frames_geometry_video_payload () e group_of_frames_texture_video_payload () têm prevenção de emulação de código inicial em vigor quando HEVC ou AVC é usado para codificação de componentes de geometria e textura. Para PCC Cat13, a prevenção de emulação de código inicial não está em lugar nenhum no fluxo de bits.
[0043] No PCC Cat2 WD, algumas das informações do codec (por exemplo, qual codec, perfil, nível, etc., do codec) para os fluxos de bits de geometria e textura estão profundamente enterradas nas múltiplas instâncias das estruturas group_of_frames_geometry_video_payload () e group_of_frames_texture_video_payload (). Além disso, algumas das informações como perfil e nível que indicam os recursos para decodificação da informação auxiliar e componentes do mapa de ocupação, bem como para a reconstrução da nuvem de pontos, estão ausentes.
[0044] São divulgados aqui projetos de sintaxe de alto nível que resolvem um ou mais dos problemas acima mencionados associados à codificação de nuvem de pontos. Como será explicado mais completamente abaixo, a presente divulgação utiliza um indicador de tipo em um cabeçalho de unidade de dados (também conhecido como um cabeçalho de camada de acesso à rede (NAL) PCC) para especificar o tipo de conteúdo na carga útil (“payload”) da unidade PCC NAL. Além disso, a presente divulgação utiliza um grupo de cabeçalhos de quadros de unidade NAL para transportar o grupo de parâmetros de cabeçalho de quadros. O grupo de cabeçalhos de quadros de unidade NAL também pode ser usado para sinalizar o perfil e o nível de cada geometria ou fluxo de bits de textura.
[0045] FIG. 1 é um diagrama de blocos que ilustra um sistema de codificação de exemplo 10 que pode utilizar técnicas de codificação de vídeo PCC. Como mostrado na FIG. 1, o sistema de codificação 10 inclui um dispositivo de origem 12 que fornece dados de vídeo codificados para serem decodificados posteriormente por um dispositivo de destino
14. Em particular, o dispositivo de origem 12 pode fornecer os dados de vídeo ao dispositivo de destino 14 através de um meio legível por computador 16. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um de uma ampla gama de dispositivos, incluindo computadores de mesa, notebooks (por exemplo, laptop), computadores tipo tablet, decodificadores, aparelhos de telefone, como os chamados telefones "inteligentes", chamados pastilhas “inteligentes”, televisores, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivo de transmissão em tempo real de vídeo ou semelhantes. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0046] O dispositivo de destino 14 pode receber os dados de vídeo codificados para serem decodificados por meio de meio legível por computador 16. O meio legível por computador 16 pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, o meio legível por computador 16 pode compreender um meio de comunicação para permitir que o dispositivo de origem 12 transmita dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou com fio, como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode fazer parte de uma rede baseada em pacotes, como uma rede de área local, uma rede de área ampla ou uma rede global, como a Internet. O meio de comunicação pode incluir roteadores, switches, estações base ou qualquer outro equipamento que pode ser útil para facilitar a comunicação do dispositivo de origem 12 para o dispositivo de destino 14.
[0047] Em alguns exemplos, os dados codificados podem ser enviados da interface de saída 22 para um dispositivo de armazenamento.
Da mesma forma, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada.
O dispositivo de armazenamento pode incluir qualquer uma de uma variedade de meios de armazenamento de dados distribuídos ou acessados localmente, como um disco rígido, discos Blu-ray, discos de vídeo digital (DVD) s, memórias compactas somente leitura (CD-ROMs), memória flash, memória volátil ou não volátil ou qualquer outro meio de armazenamento digital adequado para armazenar dados de vídeo codificados.
Em outro exemplo, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivo de origem 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento via transmissão em tempo real ou download.
O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destino 14. Os servidores de arquivos de exemplo incluem um servidor da web (por exemplo, para um site), um servidor de protocolo de transferência de arquivos (FTP), dispositivos de armazenamento conectado à rede (NAS) ou uma unidade de disco local.
O dispositivo de destino 14 pode acessar os dados de vídeo codificados por meio de qualquer conexão de dados padrão, incluindo uma conexão com a Internet.
Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, linha de assinante digital
(DSL), modem a cabo, etc.) ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados do dispositivo de armazenamento pode ser uma transmissão de transmissão em tempo real, uma transmissão de download ou uma combinação das mesmas.
[0048] As técnicas desta divulgação não são necessariamente limitadas a aplicações ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo no suporte de qualquer uma de uma variedade de aplicações multimídia, como transmissões de televisão pelo ar, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões de transmissão em tempo real de vídeo da Internet, como transmissão em tempo real adaptativo dinâmico sobre HTTP (DASH), vídeo digital que é codificado em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema de codificação 10 pode ser configurado para suportar transmissão de vídeo unilateral ou bidirecional para suportar aplicações como transmissão em tempo real de vídeo, reprodução de vídeo, transmissão de vídeo e / ou telefonia de vídeo.
[0049] No exemplo da FIG. 1, o dispositivo de origem 12 inclui a fonte de vídeo 18, o codificador de vídeo 20 e a interface de saída 22. O dispositivo de destino 14 inclui interface de entrada 28, decodificador de vídeo 30 e dispositivo de exibição 32. De acordo com esta divulgação, o codificador de vídeo 20 do dispositivo de origem 12 e / ou o decodificador de vídeo 30 do dispositivo de destino 14 podem ser configurados para aplicar as técnicas de codificação de vídeo. Em outros exemplos, um dispositivo de origem e um dispositivo de destino podem incluir outros componentes ou arranjos. Por exemplo, o dispositivo de origem 12 pode receber dados de vídeo de uma fonte de vídeo externa, como uma câmera externa. Da mesma forma, o dispositivo de destino 14 pode interagir com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0050] O sistema de codificação ilustrado 10 da FIG. 1 é apenas um exemplo. As técnicas de codificação de vídeo podem ser realizadas por qualquer dispositivo de codificação e / ou decodificação de vídeo digital. Embora as técnicas desta divulgação geralmente sejam realizadas por um dispositivo de codificação de vídeo, as técnicas também podem ser realizadas por um codificador / decodificador de vídeo, normalmente referido como um "CODEC". Além disso, as técnicas desta divulgação também podem ser realizadas por um pré-processador de vídeo. O codificador de vídeo e / ou o decodificador pode ser uma unidade de processamento gráfico (GPU) ou um dispositivo semelhante.
[0051] O dispositivo de origem 12 e o dispositivo de destino 14 são meramente exemplos de tais dispositivos de codificação em que o dispositivo de origem 12 gera dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 podem operar de maneira substancialmente simétrica, de modo que cada um dos dispositivos de origem e destino 12, 14 inclua codificação de vídeo e componentes de decodificação. Portanto, o sistema de codificação 10 pode suportar transmissão de vídeo unilateral ou bidirecional entre dispositivos de vídeo 12,
14, por exemplo, para transmissão em tempo real de vídeo, reprodução de vídeo, transmissão de vídeo ou telefonia de vídeo.
[0052] A fonte de vídeo 18 do dispositivo de origem 12 pode incluir um dispositivo de captura de vídeo, como uma câmera de vídeo, um arquivo de vídeo contendo vídeo capturado anteriormente e / ou uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo. Como outra alternativa, a fonte de vídeo 18 pode gerar dados baseados em gráficos de computador como o vídeo de origem ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador.
[0053] Em alguns casos, quando a fonte de vídeo 18 é uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar os chamados telefones com câmera ou telefones com vídeo. Conforme mencionado acima, no entanto, as técnicas descritas nesta divulgação podem ser aplicáveis à codificação de vídeo em geral e podem ser aplicadas a aplicações sem fio e / ou com fio. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. A informação de vídeo codificada pode, então, ser emitida pela interface de saída 22 em um meio legível por computador 16.
[0054] O meio legível por computador 16 pode incluir meio transitório, como uma transmissão sem fio ou transmissão de rede com fio, ou meio de armazenamento (isto é, meio de armazenamento não transitório), como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outro meio legível por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificados do dispositivo de origem 12 e fornecer os dados de vídeo codificados ao dispositivo de destino 14, por exemplo, por meio de transmissão de rede. Da mesma forma, um dispositivo de computação de uma instalação de produção média, como uma instalação de estampagem de disco, pode receber dados de vídeo codificados do dispositivo de origem 12 e produzir um disco contendo os dados de vídeo codificados. Portanto, meio legível por computador 16 pode ser entendido como incluindo um ou mais meios legíveis por computador de várias formas, em vários exemplos.
[0055] A interface de entrada 28 do dispositivo de destino 14 recebe informação do meio legível por computador 16. As informações do meio legível por computador 16 podem incluir informação de sintaxe definida pelo codificador de vídeo 20, que também é usado pelo decodificador de vídeo 30, que inclui elementos de sintaxe que descrevem características e / ou processamento de blocos e outras unidades codificadas, por exemplo, grupo de imagens (GOPs). O dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário e pode compreender qualquer um de uma variedade de dispositivos de exibição, como um tubo de raios catódicos (CRT), uma tela de cristal líquido (LCD), uma tela de plasma, um diodo orgânico emissor de luz (OLED) ou outro tipo de dispositivo de exibição.
[0056] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo, como o padrão de codificação de vídeo de alta eficiência (HEVC) atualmente em desenvolvimento, e pode estar em conformidade com o modelo de teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões proprietários ou da indústria, como o padrão H.264 do Setor de Padronização de Telecomunicações da União Internacional de Telecomunicações (ITU-T), alternativamente referido como Grupo de Especialistas em Imagem com Movimento (MPEG) - 4, Parte 10, Codificação de vídeo avançada (AVC), H.265 / HEVC ou extensões de tais padrões. As técnicas desta divulgação, no entanto, não estão limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de codificação de vídeo incluem MPEG-2 e ITU-T H.263. Embora não mostrado na FIG. 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser integrados em um codificador e decodificador de áudio e podem incluir unidades multiplexador-demultiplexador (MUX-DEMUX) apropriadas ou outro hardware e software para lidar com a codificação de áudio e vídeo em um fluxo de dados comum ou fluxos de dados separados. Se aplicável, as unidades MUX- DEMUX podem estar em conformidade com o protocolo multiplexador ITU H.223 ou outros protocolos, como o protocolo de datagrama do usuário (UDP).
[0057] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser implementados como qualquer um de uma variedade de circuitos codificadores adequados, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicação (ASICs), matrizes de portas programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta divulgação. Cada codificador de vídeo 20 e decodificador de vídeo 30 podem ser incluídos em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador / decodificador combinado (CODEC) em um respectivo dispositivo. Um dispositivo incluindo codificador de vídeo 20 e / ou decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e / ou um dispositivo de comunicação sem fio, como um telefone celular.
[0058] FIG. 2 é um diagrama de blocos que ilustra um exemplo de codificador de vídeo 20 que pode implementar técnicas de codificação de vídeo. O codificador de vídeo 20 pode realizar intra e inter codificação de blocos de vídeo dentro de fatias de vídeo. A intra codificação se baseia na predição espacial para reduzir ou remover a redundância espacial no vídeo em um determinado quadro de vídeo ou imagem. A inter codificação depende da predição temporal para reduzir ou remover a redundância temporal no vídeo em quadros ou imagens adjacentes de uma sequência de vídeo. Intra modo (modo I) pode se referir a qualquer um dos vários modos de codificação com base espacial. Inter modos, como predição unidirecional (também conhecido como, predição uni) (modo P) ou bi-predição (também conhecido como predição bi) (modo B), podem se referir a qualquer um dos vários modos de codificação com base temporal.
[0059] Como mostrado na FIG. 2, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo para ser codificado. No exemplo da FIG. 2, o codificador de vídeo 20 inclui a unidade de seleção de modo 40, a memória de quadro de referência 64, o somador 50, a unidade de processamento de transformação 52, a unidade de quantização 54 e a unidade de codificação de entropia 56. A unidade de seleção de modo 40, por sua vez, inclui unidade de compensação de movimento 44, unidade de estimativa de movimento 42, unidade de intra predição (também conhecida como intra predição) 46 e unidade de partição 48. Para reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui unidade de quantização inversa 58, unidade de transformação inversa 60 e somador 62. Um filtro de desbloqueio (não mostrado na FIG. 2) também pode ser incluído para filtrar os limites do bloco para remover artefatos de bloqueio do vídeo reconstruído. Se desejado, o filtro de desbloqueio normalmente filtraria a saída do somador 62. Filtros adicionais (em circuito ou pós-circuito) também podem ser usados além do filtro de desbloqueio. Esses filtros não são mostrados por questões de brevidade, mas, se desejado, podem filtrar a saída do somador 50 (como um filtro dentro de circuito).
[0060] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro ou fatia de vídeo para ser codificado. O quadro ou fatia pode ser dividido em vários blocos de vídeo. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 realizam codificação inter preditiva do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para fornecer predição temporal. A unidade de intra predição 46 pode, alternativamente, realizar a codificação intra preditiva do bloco de vídeo recebido em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco a ser codificado para fornecer predição espacial. O codificador de vídeo 20 pode realizar várias passagens de codificação, por exemplo, para selecionar um modo de codificação apropriado para cada bloco de dados de vídeo.
[0061] Além disso, a unidade de partição 48 pode particionar blocos de dados de vídeo em sub-blocos, com base na avaliação de esquemas de particionamento anteriores em passagens de codificação anteriores. Por exemplo, a unidade de partição 48 pode inicialmente particionar um quadro ou fatia nas maiores unidades de codificação (LCUs) e particionar cada uma das LCUs em unidades de subcodificação (sub-CUs) com base na análise de distorção de taxa (por exemplo, otimização de distorção de taxa) A unidade de seleção de modo 40 pode ainda produzir uma estrutura de dados de árvore quádrupla indicativa de particionamento de uma LCU em sub-CUs. CUs de nó folha da árvore quádrupla podem incluir uma ou mais unidades de predição (PUs) e uma ou mais unidades de transformação (TUs).
[0062] A presente divulgação usa o termo "bloco" para se referir a qualquer um de CU, PU ou TU, no contexto de HEVC, ou estruturas de dados semelhantes no contexto de outros padrões (por exemplo, macroblocos e sub-blocos dos mesmos em H. 264 / AVC). Uma CU inclui um nó de codificação, PUs e TUs associados ao nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e é de forma quadrada. O tamanho da UC pode variar de 8 × 8 pixels até o tamanho do bloco de árvores com um máximo de 64 × 64 pixels ou mais. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados a um CU podem descrever, por exemplo, o particionamento do CU em um ou mais PUs. Os modos de particionamento podem diferir entre se a UC é codificada no modo pular ou direto, no modo intra predição codificado ou no modo inter-predição (também conhecido como inter predição) codificado. Os PUs podem ser particionados para terem formato não quadrado. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, o particionamento da CU em uma ou mais TUs de acordo com uma árvore quádrupla. Uma TU pode ter forma quadrada ou não quadrada (por exemplo, retangular).
[0063] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, por exemplo, com base em resultados de erro, e fornece o bloco intra ou inter codificado resultante para o somador 50 para gerar dados de bloco residual e para o somador 62 para reconstruir o bloco codificado para uso como um quadro de referência. A unidade de seleção de modo 40 também fornece elementos de sintaxe, como vetores de movimento, indicadores intra modo, informação de partição, e outras informações de sintaxe, para a unidade de codificação de entropia 56.
[0064] A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para fins conceituais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que estimam o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de um PU de um bloco de vídeo dentro de um quadro de vídeo atual ou imagem em relação a um bloco preditivo dentro de um quadro de referência (ou outra unidade codificada) em relação ao bloco atual sendo codificado dentro do atual quadro (ou outra unidade codificada). Um bloco preditivo é um bloco que é encontrado para corresponder estreitamente com o bloco a ser codificado, em termos de diferença de pixel, que pode ser determinada pela soma da diferença absoluta (SAD), soma da diferença quadrada (SSD) ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular os valores para posições de pixel subinteiro de imagens de referência armazenadas na memória de quadro de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo pixel ou outras posições de pixel fracionário da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma pesquisa de movimento em relação às posições de pixel completas e posições de pixel fracionárias e produzir um vetor de movimento com precisão de pixel fracionário.
[0065] A unidade de estimativa de movimento 42 calcula um vetor de movimento para um PU de um bloco de vídeo em uma fatia inter codificada comparando a posição do PU com a posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de quadro de referência 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e a unidade de compensação de movimento 44.
[0066] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela unidade de estimativa de movimento 42. Novamente, a unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser funcionalmente integradas, em alguns exemplos. Ao receber o vetor de movimento para o PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de imagens de referência. O somador 50 forma um bloco de vídeo residual subtraindo valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel, conforme discutido abaixo. Em geral, a unidade de estimativa de movimento 42 realiza estimativa de movimento em relação aos componentes luma, e a unidade de compensação de movimento 44 usa vetores de movimento calculados com base nos componentes luma para ambos os componentes croma e componentes luma. A unidade de seleção de modo 40 também pode gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0067] A unidade de intra predição 46 pode intra predizer (“intra predict”) de um bloco atual, como uma alternativa à inter-predição realizada pela unidade de estimativa de movimento 42 e unidade de compensação de movimento 44, como descrito acima. Em particular, a unidade de intra predição 46 pode determinar um modo de intra predição para usar para codificar um bloco atual. Em alguns exemplos, a unidade de intra predição 46 pode codificar um bloco atual usando vários modos de intra predição, por exemplo, durante passagens de codificação separadas, e a unidade de intra predição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um apropriado modo de intra predição para usar a partir dos modos testados.
[0068] Por exemplo, a unidade de intra predição 46 pode calcular os valores de distorção de taxa usando uma análise de distorção de taxa para os vários modos de intra predição testados e selecionar o modo de intra predição com as melhores características de distorção de taxa entre os modos testados. A análise de taxa de distorção geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco original não codificado que foi codificado para produzir o bloco codificado, bem como uma taxa de bits (isto é, um número de bits) usada para produzir o bloco codificado. A unidade de intra predição 46 pode calcular as razões das distorções e taxas para os vários blocos codificados para determinar qual modo de intra predição exibe o melhor valor de distorção de taxa para o bloco.
[0069] Além disso, a unidade de intra predição 46 pode ser configurada para codificar blocos de profundidade de um mapa de profundidade usando um modo de modelagem de profundidade (DMM). A unidade de seleção de modo 40 pode determinar se um modo DMM disponível produz melhores resultados de codificação do que um modo intra predição e os outros modos DMM, por exemplo, usando otimização de taxa de distorção (RDO). Os dados para uma imagem de textura correspondente a um mapa de profundidade podem ser armazenados na memória de quadro de referência 64. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 também podem ser configuradas para prever blocos de profundidade de um mapa de profundidade.
[0070] Depois de selecionar um modo de intra predição para um bloco (por exemplo, um modo de intra predição convencional ou um dos modos de DMM), a unidade de intra predição 46 pode fornecer informação indicativa do modo de intra predição selecionado para o bloco para unidade de codificação de entropia 56 A unidade de codificação de entropia 56 pode codificar a informação que indica o modo intra predição selecionado. O codificador de vídeo 20 pode incluir nos dados de configuração de fluxo de bits transmitidos, que podem incluir uma pluralidade de tabelas de índice de modo intra predição e uma pluralidade de tabelas de índice de modo intra predição modificadas (também referidas como tabelas de mapeamento de palavra-código), definições de contextos de codificação para vários blocos e indicações de um modo de intra predição mais provável, uma tabela de índice de modo de intra predição e uma tabela de índice de modo de intra predição modificada para usar para cada um dos contextos.
[0071] O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo os dados de predição da unidade de seleção de modo 40 do bloco de vídeo original sendo codificado. Somador 50 representa o componente ou componentes que realizam esta operação de subtração.
[0072] A unidade de processamento de transformação 52 aplica uma transformação, como uma transformação discreta de cosseno (DCT) ou uma transformação conceitualmente semelhante, ao bloco residual, produzindo um bloco de vídeo que compreende valores de coeficiente de transformação residual. A unidade de processamento de transformação 52 pode realizar outras transformações que são conceitualmente semelhantes ao DCT. Transformadas em onduleta, transformadas inteiras, transformadas sub-banda ou outros tipos de transformações também podem ser usadas.
[0073] A unidade de processamento de transformação 52 aplica a transformação ao bloco residual, produzindo um bloco de coeficientes de transformação residual. A transformação pode converter a informação residual de um domínio de valor de pixel em um domínio de transformação, como um domínio de frequência. A unidade de processamento de transformação 52 pode enviar os coeficientes de transformação resultantes para a unidade de quantização 54. A unidade de quantização 54 quantifica os coeficientes de transformação para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado ajustando um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma varredura da matriz incluindo os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura.
[0074] Após a quantização, a unidade de codificação de entropia 56 entropia codifica os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação de entropia 56 pode realizar codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto baseada na sintaxe (SBAC), entropia de partição de intervalo de probabilidade (PIPE) ou outra técnica de codificação de entropia. No caso de codificação de entropia baseada em contexto, o contexto pode ser baseado em blocos vizinhos. Seguindo a codificação de entropia pela unidade de codificação de entropia 56, o fluxo de bits codificado pode ser transmitido para outro dispositivo (por exemplo, decodificador de vídeo 30) ou arquivado para posterior transmissão ou recuperação.
[0075] A unidade de quantização inversa 58 e a unidade de transformação inversa 60 aplicam a quantização inversa e a transformação inversa, respectivamente, para reconstruir o bloco residual no domínio do pixel, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando o bloco residual a um bloco preditivo de um dos quadros de memória de quadro de referência 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular valores de pixel subinteiros para uso na estimativa de movimento. Somador 62 adiciona o bloco residual reconstruído ao bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento na memória de quadro de referência 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimativa de movimento 42 e unidade de compensação de movimento 44 como um bloco de referência para inter codificar um bloco em um quadro de vídeo subsequente.
[0076] FIG. 3 é um diagrama de blocos que ilustra um exemplo de decodificador de vídeo 30 que pode implementar técnicas de codificação de vídeo. No exemplo da FIG. 3, o decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 70, unidade de compensação de movimento 72, unidade de intra predição 74, unidade de quantização inversa 76, unidade de transformação inversa 78, memória de quadro de referência 82 e somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca para a passagem de codificação descrita em relação ao codificador de vídeo 20 (FIG. 2). A unidade de compensação de movimento 72 pode gerar dados de predição com base em vetores de movimento recebidos da unidade de decodificação de entropia 70, enquanto a unidade de intra predição 74 pode gerar dados de predição com base em indicadores de modo de intra predição recebidos da unidade de decodificação de entropia 70.
[0077] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados do codificador de vídeo 20. Unidade de decodificação de entropia 70 do decodificador de vídeo 30 entropia decodifica o fluxo de bits para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo intra predição e outros elementos de sintaxe. A unidade de decodificação de entropia 70 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de movimento 72. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e / ou nível de bloco de vídeo.
[0078] Quando a fatia de vídeo é codificada como uma fatia intra codificada (I), a unidade de intra predição 74 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intra predição sinalizado e dados de blocos previamente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia inter codificada (por exemplo, B, P ou GPB), a unidade de compensação de movimento 72 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos de unidade de decodificação de entropia 70. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas na memória de quadros de referência 82.
[0079] A unidade de compensação de movimento 72 determina a informação de predição para um bloco de vídeo da fatia de vídeo atual, analisando os vetores de movimento e outros elementos de sintaxe, e usa a informação de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 72 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra ou inter predição) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de inter-predição (por exemplo, B fatia, fatia P ou fatia GPB), informações de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo inter codificado da fatia, estado de inter-predição para cada bloco de vídeo codificado de a fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0080] A unidade de compensação de movimento 72 também pode realizar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 pode usar filtros de interpolação como usados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para pixels subinteiros de blocos de referência. Neste caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos preditivos.
[0081] Os dados para uma imagem de textura correspondente a um mapa de profundidade podem ser armazenados na memória de quadro de referência 82. A unidade de compensação de movimento 72 também pode ser configurada para inter predizer blocos de profundidade de um mapa de profundidade.
[0082] Mantendo o acima em mente, alguns dos conceitos básicos da presente divulgação são discutidos.
[0083] Para PCC Cat2, para resolver o primeiro problema descrito acima, as unidades de dados pertencentes a uma instância de tempo (por exemplo, uma unidade de acesso) devem ser colocadas contíguas em ordem de decodificação em um fluxo de bits. Uma vez que eles são colocados contíguos em ordem de decodificação no fluxo de bits, a identificação do tipo de cada unidade de dados permite o roteamento de identificação de cada unidade de dados para o componente decodificador correto. O projeto também deve evitar violar o projeto principal por trás do codec PCC Cat2, que é aproveitar os codecs de vídeo existentes para compactar as informações de geometria e textura de uma nuvem de pontos dinâmica.
[0084] Para ser capaz de aproveitar os codecs de vídeo existentes, por exemplo, tomar HEVC como exemplo, para comprimir separadamente as informações de geometria e textura, e ao mesmo tempo ter um único fluxo de bits PCC Cat2 autocontido, os seguintes aspectos devem ser claramente especificados: (1) Extração / construção de um fluxo de bits HEVC em conformidade para o componente de geometria fora do fluxo de bits PCC Cat2; (2) Extração / construção de um fluxo de bits HEVC em conformidade para o componente de textura fora do fluxo de bits PCC Cat2; e (3) Sinalização / indicação do ponto de conformidade, ou seja, perfil, camada e nível, de cada um dos fluxos de bits HEVC em conformidade extraídos para o componente de geometria e textura.
[0085] Para resolver os problemas descritos acima e para atender a todas as restrições mencionadas acima, a presente divulgação fornece dois conjuntos alternativos de métodos relacionados à sintaxe de alto nível do PCC.
[0086] No primeiro conjunto de métodos, há uma sintaxe comum de alto nível para todos os codecs de vídeo que podem ser usados para a codificação do componente de geometria e textura do PCC Cat2. Este conjunto de métodos é resumido a seguir.
[0087] FIG. 4 ilustra uma estrutura de dados 400 compatível com PCC. A estrutura de dados 400 pode representar uma porção de um fluxo de bits gerado por um codificador e recebido por um decodificador. Como mostrado, um cabeçalho de unidade de dados 404 (que pode ser referido como um cabeçalho de unidade PCC NAL) é adicionado para cada unidade de dados 402 (que pode ser referido como uma unidade PCC NAL). Embora uma unidade de dados 402 e um cabeçalho de unidade de dados 404 sejam ilustrados na estrutura de dados 400 da FIG. 4, qualquer número de unidades de dados 402 e cabeçalhos de unidades de dados 404 podem ser incluídos na estrutura de dados 400 em aplicações práticas. De fato, um fluxo de bits incluindo a estrutura de dados 400 pode conter uma sequência de unidades de dados 402, cada uma compreendendo um cabeçalho de unidade de dados 404.
[0088] O cabeçalho de unidade de dados 404 pode compreender, por exemplo, um ou dois bytes. Em uma modalidade, cada unidade de dados 402 é formada como uma unidade PCC NAL. A unidade de dados 402 inclui uma carga útil 406. Em uma modalidade, a unidade de dados 406 também pode incluir uma mensagem de informação de aprimoramento suplementar (SEI), um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, informação de fatia, etc.
[0089] Em uma modalidade, a carga útil 406 da unidade de dados 402 pode ser uma unidade HEVC ou uma unidade AVC NAL. Em uma modalidade, a carga útil 406 pode conter dados para um componente de geometria ou um componente de textura. Em uma modalidade, o componente de geometria é um conjunto de coordenadas cartesianas associadas a um quadro de nuvem de pontos. Em uma modalidade, o componente de textura é um conjunto de valores de amostra de luma de um quadro de nuvem de pontos. Quando HEVC está em uso, a unidade de dados 402 pode ser referida como uma unidade PCC NAL contendo uma unidade HEVC NAL como a carga útil 406. Quando AVC está em uso, a unidade de dados 402 pode ser referida como uma unidade PCC NAL contendo uma unidade AVC NAL como a carga útil 406.
[0090] Em uma modalidade, o cabeçalho de unidade de dados 404 (por exemplo, o cabeçalho de unidade PCC NAL) é projetado como resumido abaixo.
[0091] Primeiro, o cabeçalho de unidade de dados 404 inclui um indicador de tipo. O indicador de tipo pode ser, por exemplo, 5 bits. O indicador de tipo especifica o tipo de conteúdo transportado na carga útil 406. Por exemplo, o indicador de tipo pode especificar que a carga útil 406 contém informações de geometria ou textura.
[0092] Em uma modalidade, algumas das unidades de dados reservadas (que são semelhantes à unidade de dados 402, mas foram reservadas para uso posterior) podem ser usadas para unidades de dados PCC Cat13. Assim, o projeto da presente divulgação também se aplica ao PCC Cat13. Como tal, é possível unificar PCC Cat2 e PCC Cat13 em uma especificação padrão de codec.
[0093] Conforme observado acima, o formato de fluxo de bits atual permite emulações de um padrão de código de início que sinaliza o início de, por exemplo, uma nova unidade NAL ou unidade PCC NAL. O padrão do código inicial pode ser, por exemplo, 0x0003. Como o formato de fluxo de bits atual permite emulações do padrão de código inicial, o código inicial pode ser sinalizado involuntariamente. A presente divulgação fornece sintaxe e semântica da unidade PCC NAL (veja abaixo) para resolver esse problema. A sintaxe e a semântica da unidade PCC NAL aqui descritas garantem a prevenção da emulação do código inicial para cada unidade PCC NAL, independentemente do seu conteúdo. Consequentemente, o último byte do cabeçalho 404 da unidade de dados de um ou dois bytes (por exemplo, o próprio cabeçalho de unidade de dados se for de um byte) é proibido de ser igual a 0x00.
[0094] Além disso, um grupo de cabeçalhos de quadros 408
(também conhecido como um grupo de cabeçalhos de quadros de unidade NAL) é projetado para transportar os grupos de parâmetros de cabeçalho de quadros. Além disso, o grupo de cabeçalhos de quadros de unidade NAL inclui a sinalização de outras informações globais, como, por exemplo, o perfil e o nível de cada geometria ou fluxo de bits de textura. Em uma modalidade, o perfil é um subconjunto especificado da sintaxe ou um subconjunto de ferramentas de codificação. Em uma modalidade, o nível é um conjunto definido de restrições sobre os valores que podem ser assumidos pelos elementos de sintaxe e variáveis. Em uma modalidade, a combinação do perfil e do nível para um fluxo de bits representa um recurso de decodificação particular necessária para a decodificação do fluxo de bits. Além disso, quando perfis e níveis também são definidos para decodificação de informação auxiliar, mapa de ocupação e o processo de reconstrução de nuvem de pontos (que utiliza os resultados de decodificação de geometria, textura, informação auxiliar e mapa de ocupação), esse perfil e nível também são sinalizados no grupo de cabeçalhos de quadros 408. Em uma modalidade, a informação auxiliar de PCC se refere a informação como informação de pacote de modificação e informação de reconstrução local de ponto, que são usadas para a reconstrução do sinal de nuvem de pontos a partir de um fluxo de bits codificado por PCC. Em uma modalidade, o mapa de ocupação do PCC se refere a informações sobre quais partes do espaço 3D são ocupadas por objetos dos quais os valores de textura e outros atributos são amostrados.
[0095] Conforme mostrado pela sintaxe abaixo, as restrições na ordem dos diferentes tipos de unidades de dados 402 (também conhecidas como unidades PCC NAL) são claramente especificadas. Além disso, o início de uma unidade de acesso 410 (que pode conter várias das unidades de dados 402, cabeçalhos de unidades de dados 404, etc.) é claramente especificado.
[0096] Além disso, o processo para extração / construção de cada geometria ou fluxo de bits de textura é claramente especificado na sintaxe e / ou semântica observada abaixo.
[0097] No segundo conjunto de métodos, diferentes sintaxes gerais são usadas para diferentes codecs de vídeo. PCC Cat2 usando HEVC para codificação de geometria e textura é especificado como uma emenda ao HEVC, enquanto PCC Cat2 usando AVC para codificação de geometria e textura é especificado como uma emenda ao AVC. Este conjunto de métodos é resumido a seguir.
[0098] Para PCC Cat2 usando HEVC para codificação de geometria e textura, geometria e textura são consideradas como três camadas separadas (por exemplo, duas camadas para geometria, d0 e d1, e uma camada para textura). Mensagens SEI ou novos tipos de unidades NAL são usadas para o mapa de ocupação e a informação auxiliar. São especificadas duas novas mensagens SEI, uma para o mapa de ocupação e outra para a informação auxiliar. Outra mensagem SEI, em nível de sequência, é especificada para transportar os grupos de parâmetros de cabeçalho de quadros e outras informações globais. Esta mensagem SEI é semelhante ao grupo de cabeçalhos de quadros 408 no primeiro conjunto de métodos.
[0099] Para PCC Cat2 usando AVC para codificação de geometria e textura, geometria e textura são consideradas como três camadas separadas (por exemplo, duas camadas para geometria, d0 e d1, e uma camada para textura). Mensagens SEI ou novos tipos de unidades NAL são usadas para o mapa de ocupação e a informação de pacote de modificação auxiliar. A extração de uma camada não base codificada independentemente e a sinalização do ponto de conformidade (por exemplo, perfil e nível) como um fluxo de bits de camada única são especificadas. São especificados dois novos tipos de mensagens SEI, uma para o mapa de ocupação e outra para a informação auxiliar. Outra mensagem SEI, em nível de sequência, é especificada para transportar os grupos de parâmetros de cabeçalho de quadros e outras informações globais. Esta mensagem SEI é semelhante ao grupo de cabeçalhos de quadros 408 no primeiro conjunto de métodos.
[00100] O primeiro conjunto de métodos observados acima pode ser implementado com base nas definições, abreviações, sintaxe e semântica divulgadas abaixo. Os aspectos que não são especificamente mencionados são os mesmos do último PCC Cat2 WD.
[00101] As seguintes definições se aplicam.
[00102] Fluxo de bits: Uma sequência de bits que forma a representação de quadros de nuvem de pontos codificados e dados associados formando um ou mais CPSs.
[00103] Byte: uma sequência de 8 bits, dentro da qual, quando escritos ou lidos como uma sequência de valores de bits, os bits mais à esquerda e mais à direita representam os bits mais e menos significativos, respectivamente.
[00104] Sequência de PCC codificada (CPS): uma sequência de PCC AUs que compreende, em ordem de decodificação, de uma AU de Imagens de Acesso Aleatório Intra PCC (IRAP), seguida por zero ou mais PCC AUs que não são PCC IRAP AUs, incluindo todas as PCC AUs subsequentes até, mas não incluindo, qualquer
PCC AU subsequente que seja uma PCC IRAP AU.
[00105] Ordem de decodificação: a ordem em que os elementos da sintaxe são processados pelo processo de decodificação.
[00106] Processo de decodificação: o processo especificado nesta especificação (também conhecido como PCC Cat2 WD) que lê um fluxo de bits e deriva quadros de nuvem de pontos decodificados a partir dele.
[00107] Grupo de cabeçalhos de quadros de unidade NAL: Uma unidade PCC NAL que tem PccNalUnitType igual a GOF_HEADER.
[00108] PCC AU: Um conjunto de unidades PCC NAL que estão associadas umas às outras de acordo com uma regra de classificação especificada, são consecutivas na ordem de decodificação e contêm todas as unidades PCC NAL pertencentes a um determinado tempo de apresentação.
[00109] PCC IRAP AU: Um PCC AU que contém um grupo de cabeçalhos de quadros de unidade NAL.
[00110] Unidade PCC NAL: Uma estrutura de sintaxe contendo uma indicação do tipo de dados a seguir e bytes contendo esses dados na forma de um RBSP intercalado conforme necessário com bytes de prevenção de emulação.
[00111] Carga útil de sequência de bytes bruta (RBSP): uma estrutura de sintaxe contendo um número inteiro de bytes que é encapsulado em uma unidade PCC NAL e que está vazia ou tem a forma de uma cadeia de bits de dados (SODB) contendo elementos de sintaxe seguidos por um bit de parada RBSP e zero ou mais bits subsequentes iguais a 0.
[00112] Bit de parada de carga útil de sequência de bytes brutos (RBSP): Um bit igual a 1 presente em um RBSP após um SODB, para o qual a localização da extremidade em um RBSP pode ser identificada pesquisando no final do RBSP pelo bit de parada RBSP, que é o último bit diferente de zero no RBSP.
[00113] SODB: uma sequência de algum número de bits que representam os elementos da sintaxe presentes em um RBSP antes do bit de parada RBSP, onde o bit mais à esquerda é considerado o primeiro e mais significativo bit, e o bit mais à direita é considerado o último e menos significativo bit.
[00114] Elemento de sintaxe: um elemento de dados representado no fluxo de bits.
[00115] Estrutura de sintaxe: Zero ou mais elementos de sintaxe presentes juntos no fluxo de bits em uma ordem especificada.
[00116] AU de vídeo: Uma unidade de acesso por um codec de vídeo específico.
[00117] unidade NAL de vídeo: uma unidade NAL PCC que tem PccNalUnitType igual a GEOMETRY_D0, GEOMETRY_D1 ou TEXTURE_NALU.
[00118] As seguintes abreviações se aplicam: AU Unidade de Acesso; CPS Sequência PCC Codificada; IRAP Ponto de Acesso Aleatório Intra; NAL Camada de abstração de rede; PCC Codificação de nuvem de pontos; RBSP Carga útil de sequência de bytes brutos; SODB Cadeia de bits de dados.
[00119] O seguinte fornece a sintaxe, a semântica e o processo de extração de subfluxo de bits. A este respeito, a sintaxe na cláusula 7.3 do último PCC Cat2 WD é substituída pelo seguinte.
[00120] A sintaxe da unidade PCC NAL é fornecida. Em particular, a sintaxe geral da unidade PCC NAL é a seguinte. pcc_nal_unit (NumBytesInNalUnit) { Descritor pcc_nal_unit_header () NumBytesInRbsp = 0 for(i = 1; i < NumBytesInNalUnit; i++) if (i + 2 <NumBytesInNalUnit && next_bits (24) = = 0x000003) { rbsp_byte [NumBytesInRbsp ++] b (8) rbsp_byte [NumBytesInRbsp ++] b (8) i + = 2 emulation_prevention_three_byte /* f(8) igual a 0x03 */ } else rbsp_byte [NumBytesInRbsp ++] b (8) }
[00121] A sintaxe do cabeçalho de unidade PCC NAL é a seguinte. pcc_nal_unit_header () { Descritor forbidden_zero_bit f (1) pcc_nuh_reserved_zero_2bits f (2) pcc_nal_unit_type_plus1 u (5) }
[00122] As cargas úteis da sequência de bytes brutos, bits finais e sintaxe de alinhamento de bytes são fornecidas. Em particular, a sintaxe do grupo de quadros RBSP é a seguinte. group_of_frames_header_rbsp () { Descritor identified_codec u (8) pcc_profile_level () frame_width u (16)
frame_height u (16) occupancy_resolution u (8) radius_to_smoothing u (8) neighbour_count_smoothing u (8) radius2_boundary_detection u (8) threshold_smoothing u (8) lossless_geometry u (8) lossless_texture u (8) no_attributes u (8) lossless_geometry_444 u (8) absolute_d1_coding u (8) binary_arithmetic_coding u (8) gof_header_extension_flag u (1) if (gof_header_extension_flag) while(more_rbsp_data()) u (1) gof_header_extension_data_flag rbsp_trailing_bits () }
[00123] A sintaxe RBSP do quadro de informação auxiliar é a seguinte. auxiliary_information_frame_rbsp () { Descritor patch_count u (32) occupancy_precision u (8) max_candidate_Count u (8) bit_count_u0 u (8) bit_count_v0 u (8) bit_count_u1 u (8) bit_count_v1 u (8)
bit_count_d1 u (8) occupancy_aux_stream_size u (32) for (i = 0; i < patchCount; i++) { patchList [i].patch_u0 ae(v) patchList [i].patch_v0 ae(v) patchList [i].patch_u1 ae(v) patchList [i].patch_v1 ae(v) patchList [i].patch_d1 ae(v) patchList [i].delta_size_u0 se(v) patchList [i].delta_size_v0 se(v) patchList [i].normal_axis ae(v) } para (i = 0; i <blockCount; i ++) { if (candidatePatches [i].size () == 1) blockToPatch [i] = candidatePatches [i] [0] else { candidate_index ae(v) if (candidate_index == max_candidate_count) blockToPatch [i] = ae(v) patch_index else blockToPatch [i] = candidatePatches [i] [candidate_index] } } rbsp_trailing_bits () }
[00124] A sintaxe RBSP do quadro do mapa de ocupação é a seguinte. occupancy_map_frame_rbsp () { Descritor for (i = 0; i <blockCount; i ++) { if (blockToPatch [i]) { is_full ae(v) if (! is_full) { best_traversal_order_index ae(v) run_count_prefix ae(v) if (run_count_prefix> 0) run_count_suffix ae(v) occupancy ae(v) for (j = 0; j <= runCountMinusTwo+1; j++) run_length_idx ae () } } } rbsp_trailing_bits () }
[00125] A sintaxe de bits finais RBSP na cláusula 7.3.2.11 da especificação HEVC se aplica. Da mesma forma, a sintaxe de alinhamento de bytes na cláusula 7.3.2.12 da especificação HEVC se aplica. O perfil PCC e a sintaxe de nível são os seguintes. pcc_profile_level () { Descritor pcc_profile_idc u (5) pcc_pl_reserved_zero_19bits u (19) pcc_level_idc u (8)
if (identified_codec = = CODEC_HEVC) { hevc_ptl_12bytes_geometry u (96) hevc_ptl_12bytes_texture u (96) } else if(identified_codec = = CODEC_AVC) { avc_pl_3bytes_geometry u (24) avc_pl_3bytes_texture u (24) } }
[00126] A semântica na cláusula 7.4 do PCC Cat2 WD mais recente é substituída pela seguinte e suas subcláusulas.
[00127] Em geral, a semântica associada às estruturas de sintaxe e aos elementos de sintaxe dentro dessas estruturas é especificada nesta subseção. Quando a semântica de um elemento de sintaxe é especificada usando uma tabela ou um conjunto de tabelas, quaisquer valores que não são especificados na (s) tabela (s) não devem estar presentes no fluxo de bits, a menos que especificado de outra forma.
[00128] A semântica da unidade PCC NAL é discutida. Para a semântica geral da unidade NAL do PCC, aplica-se a semântica geral da unidade NAL na cláusula 7.4.2.1 da especificação HEVC. A semântica do cabeçalho de unidade PCC NAL é a seguinte.
[00129] forbidden_zero_bit deve ser igual a 0.
[00130] pcc_nuh_reserved_zero_2bits deve ser igual a 0 em fluxos de bits em conformidade com esta versão desta especificação. Outros valores para pcc_nuh_reserved_zero_2bits são reservados para uso futuro pela ISO / IEC. Os decodificadores devem ignorar o valor de pcc_nuh_reserved_zero_2bits.
[00131] pcc_nal_unit_type_plus1 menos 1 especifica o valor da variável PccNalUnitType, que especifica o tipo de estrutura de dados RBSP contida na unidade PCC NAL conforme especificado na Tabela 1 (veja abaixo). A variável NalUnitType é especificada da seguinte maneira: PccNalUnitType = pcc_category2_nal_unit_type_plus1 - 1 (7-1)
[00132] As unidades PCC NAL que possuem nal_unit_type na faixa de UNSPEC25..UNSPEC30, inclusive, para as quais a semântica não é especificada, não devem afetar o processo de decodificação especificado nesta especificação.
[00133] NOTA 1 - Os tipos de unidade PCC NAL na faixa de UNSPEC25..UNSPEC30 podem ser usados conforme determinado pela aplicação. Nenhum processo de decodificação para esses valores de PccNalUnitType é especificado nesta especificação. Uma vez que diferentes aplicações podem usar esses tipos de unidade PCC NAL para diferentes fins, um cuidado especial deve ser exercido no projeto de codificadores que geram unidades PCC NAL com esses valores PccNalUnitType e no projeto de decodificadores que interpretam o conteúdo das unidades PCC NAL com estes Valores de PccNalUnitType. Esta especificação não define nenhum gerenciamento para esses valores. Esses valores PccNalUnitType só podem ser adequados para uso em contextos nos quais "colisões" de uso (por exemplo, diferentes definições do significado do conteúdo da unidade PCC NAL para o mesmo valor PccNalUnitType) são sem importância, ou não são possíveis, ou são gerenciadas - por exemplo, definido ou gerenciado no aplicativo de controle ou especificação de transporte, ou controlando o ambiente no qual os fluxos de bits são distribuídos.
[00134] Para outros fins que não a determinação da quantidade de dados nas unidades de decodificação do fluxo de bits, os decodificadores devem ignorar (remover do fluxo de bits e descartar) o conteúdo de todas as unidades PCC NAL que usam valores reservados de PccNalUnitType.
[00135] NOTA 2 - Este requisito permite a definição futura de extensões compatíveis com esta especificação. Tabela 1 - códigos de tipo de unidade PCC NAL PccNalUnitT Nome de Conteúdo da unidade PCC NAL e / ype PccNalUnit ou estrutura de sintaxe RBSP Type 0 GOF_HEADER Grupo de cabeçalhos de quadros group_of_frames_header_rbsp () 1 AUX_INFO Quadro de informação auxiliar auxiliary_info_frame_rbsp () 2 OCP_MAP Quadro do mapa de ocupação occupancy_map_frame_rbsp () 3 GEOMETRY_D A carga útil desta unidade PCC 0 NAL contém uma unidade NAL do componente de geometria d0 de acordo com o codec de vídeo identificado.
4 GEOMETRY_D A carga útil desta unidade PCC 1 NAL contém uma unidade NAL do componente geometria d1 pelo codec de vídeo identificado.
5 TEXTURE_NA A carga útil dessa unidade PCC LU NAL contém uma unidade NAL do componente de textura de acordo com o codec de vídeo identificado.
6 a 24 RSV_6..RSV Reservado _24 25,30 UNSPEC25.. Não especificado UNSPEC30
[00136] NOTA 3 - O codec de vídeo identificado (por exemplo, HEVC ou AVC) é indicado no grupo de cabeçalhos de quadros de unidade NAL que está presente no primeiro PCC AU de cada CPS.
[00137] O encapsulamento de um SODB dentro de um RBSP (informativo) é fornecido. A este respeito, aplica-se a cláusula 7.4.2.3 da especificação HEVC.
[00138] A ordem das unidades PCC NAL e associação a AUs e CPSs é fornecida. Em geral, esta cláusula especifica restrições na ordem das unidades PCC NAL no fluxo de bits.
[00139] Qualquer ordem de unidades PCC NAL no fluxo de bits obedecendo a essas restrições é referida no texto como a ordem de decodificação das unidades PCC NAL. Dentro de uma unidade PCC NAL que não é uma unidade NAL de vídeo, a sintaxe na cláusula 7.3 especifica a ordem de decodificação dos elementos de sintaxe. Em uma unidade NAL de vídeo, a sintaxe especificada na especificação do codec de vídeo identificado especifica a ordem de decodificação dos elementos de sintaxe. Os decodificadores são capazes de receber unidades PCC NAL e seus elementos de sintaxe em ordem de decodificação.
[00140] A ordem das unidades PCC NAL e sua associação às AUs do PCC é fornecida.
[00141] Esta cláusula especifica a ordem das unidades PCC NAL e sua associação às AUs do PCC.
[00142] Um PCC AU compreende zero ou um grupo de cabeçalhos de quadros de unidade NAL, uma AU de vídeo de geometria d0, uma AU de vídeo de geometria d1, uma unidade NAL de quadro de informação auxiliar, uma unidade NAL de quadro de mapa de ocupação e uma AU de vídeo de textura, na ordem listados.
[00143] A associação de unidades NAL a uma AU de vídeo e a ordem das unidades NAL em um vídeo AU são especificadas na especificação do codec de vídeo identificado, por exemplo, HEVC ou AVC. O codec de vídeo identificado é indicado na unidade NAL do cabeçalho dos quadros que está presente no primeiro PCC AU de cada CPS.
[00144] O primeiro PCC AU de cada CPS começa com um grupo de cabeçalhos de quadros de unidade NAL e cada grupo de cabeçalhos de quadros de unidade NAL especifica o início de um novo PCC AU.
[00145] Outros PCC AUs começam com a unidade PCC NAL que contém a primeira unidade NAL de uma AU de vídeo de geometria d0. Em outras palavras, a unidade NAL do PCC que contém a primeira unidade NAL de uma AU de vídeo de geometria d0, quando não precedida por um grupo de cabeçalhos de quadros de unidade NAL, inicia uma nova unidade PCC AU.
[00146] A ordem das AUs do PCC e sua associação aos CPSs é fornecida.
[00147] Um fluxo de bits em conformidade com esta especificação consiste em um ou mais CPSs.
[00148] Um CPS consiste em um ou mais AUs de PCC. A ordem das unidades PCC NAL e sua associação aos AUs do PCC é descrita na cláusula 7.4.2.4.2.
[00149] O primeiro PCC AU de um CPS é um PCC IRAP AU.
[00150] As cargas úteis da sequência de bytes brutos, os bits finais e a semântica de alinhamento de bytes são fornecidos. As semânticas RBSP de grupo de cabeçalhos de quadros são as seguintes.
[00151] identified_codec especifica o codec de vídeo identificado usado para codificação dos componentes de geometria e textura, conforme mostrado na Tabela 2. Tabela 2 - Especificação de identified_codec identified Nome do O codec de vídeo _codec identified_codec identificado 0 CODEC_HEVC ISO/IEC IS 23008-2 (HEVC) 1 CODEC_AVC ISO / IEC IS 14496-10 (AVC)
2..63 CODEC_RSV_2..CODEC_R Reservado SV_63
[00152] frame_width indica a largura do quadro, em pixels, dos vídeos de geometria e textura. Deve ser múltiplo de OccupancyResolution.
[00153] frame_height indica a altura do quadro, em pixels, dos vídeos de geometria e textura. Deve ser múltiplo de OccupancyResolution.
[00154] occupancy_resolution indica a resolução horizontal e vertical, em pixels, na qual os pacotes de modificação são compactados nos vídeos de geometria e textura. Deve ser um múltiplo de valor par de occupancyPrecision.
[00155] radius_to_smoothing indica o raio para detectar vizinhos para suavização. O valor de radius_to_smoothing deve estar no intervalo de 0 a 255, inclusive.
[00156] neighbour_count_smoothing indica o número máximo de vizinhos usados para suavização. O valor de neighbour_count_smoothing deve estar no intervalo de 0 a 255, inclusive.
[00157] radius2_boundary_detection indica o raio para a detecção do ponto limite. O valor de radius2_boundary_detection deve estar no intervalo de 0 a 255, inclusive.
[00158] threshold_smoothing indica o limite de suavização. O valor de threshold_smoothing deve estar no intervalo de 0 a 255, inclusive.
[00159] lossless_geometry indica codificação de geometria sem perdas. O valor de lossless_geometry igual a 1 indica que as informações da geometria da nuvem de pontos são codificadas sem perdas. O valor de lossless_geometry igual a 0 indica que as informações da geometria da nuvem de pontos são codificadas de maneira com perdas.
[00160] lossless_texture indica codificação de textura sem perdas. O valor de lossless_texture igual a 1 indica que as informações de textura de nuvem de pontos são codificadas sem perdas. O valor de lossless_texture igual a 0 indica que as informações de textura de nuvem de pontos são codificadas de maneira com perdas.
[00161] no_attributes indica se os atributos são codificados junto com os dados geométricos. O valor de no_attributes igual a 1 indica que o fluxo de bits da nuvem de pontos codificados não contém nenhuma informação de atributos. O valor de no_attributes igual a 0 indica que o fluxo de bits da nuvem de pontos codificados contém informações de atributos.
[00162] lossless_geometry_444 indica se deve usar o formato de vídeo 4: 2: 0 ou 4: 4: 4 para quadros de geometria. O valor de lossless_geometry_444 igual a 1 indica que o vídeo de geometria está codificado no formato 4: 4: 4. O valor de lossless_geometry_444 igual a 0 indica que o vídeo de geometria está codificado no formato 4:2:0.
[00163] absolute_d1_coding indica como as camadas de geometria diferentes da camada mais próxima do plano de projeção são codificadas. absolute_d1_coding igual a 1 indica que os valores reais da geometria são codificados para as camadas da geometria diferentes da camada mais próxima do plano de projeção. absolute_d1_coding igual a 0 indica que as camadas de geometria diferentes da camada mais próxima ao plano de projeção são codificadas diferencialmente.
[00164] bin_arithmetic_coding indica se a codificação aritmética binária é usada. O valor de bin_arithmetic_coding igual a 1 indica que a codificação aritmética binária é usada para todos os elementos de sintaxe. O valor de bin_arithmetic_coding igual a 0 indica que a codificação aritmética não binária é usada para alguns elementos de sintaxe.
[00165] gof_header_extension_flag igual a 0 especifica que nenhum elemento da sintaxe gof_header_extension_data_flag está presente na estrutura da sintaxe RBSP de grupo de cabeçalhos de quadros. gof_header_extension_flag igual a 1 especifica que existem elementos da sintaxe gof_header_extension_data_flag presentes na estrutura da sintaxe RBSP de grupo de cabeçalhos de quadros. Os decodificadores devem ignorar todos os dados que seguem o valor 1 para gof_header_extension_flag em um grupo de cabeçalhos de quadros de unidade NAL.
[00166] gof_header_extension_data_flag pode ter qualquer valor. Sua presença e valor não afetam a conformidade do decodificador. Os decodificadores devem ignorar todos os elementos de sintaxe gof_header_extension_data_flag.
[00167] A semântica RBSP do quadro de informação auxiliar é fornecida.
[00168] patch_count é o número de pacotes de modificação nos vídeos de geometria e textura. Deve ser maior que 0.
[00169] occupancy_precision é a resolução horizontal e vertical, em pixels, da precisão do mapa de ocupação. Isso corresponde ao tamanho do sub-bloco para o qual a ocupação é sinalizada. Para obter a codificação sem perdas do mapa de ocupação, isso deve ser definido para o tamanho 1.
[00170] max_candidate_count especifica o número máximo de candidatos na lista de candidatos de pacote de modificação.
[00171] bit_count_u0 especifica o número de bits para codificação de comprimento fixo de patch_u0.
[00172] bit_count_v0 especifica o número de bits para codificação de comprimento fixo de patch_v0.
[00173] bit_count_u1 especifica o número de bits para codificação de comprimento fixo de patch_u1.
[00174] bit_count_v1 especifica o número de bits para codificação de comprimento fixo de patch_v1.
[00175] bit_count_d1 especifica o número de bits para codificação de comprimento fixo de patch_d1.
[00176] occupancy_aux_stream_size é o número de bytes usados para codificar informação de pacote de modificação e mapa de ocupação.
[00177] Os seguintes elementos de sintaxe são especificados uma vez por pacote de modificação.
[00178] patch_u0 especifica a coordenada x do sub-bloco do canto superior esquerdo de tamanho occupancy_resolution x occupancy_resolution da caixa delimitadora do pacote de modificação. O valor de patch_u0 deve estar na faixa de 0 a frame_width / occupancy_resolution - 1, inclusive.
[00179] patch_v0 especifica a coordenada y do sub-bloco do canto superior esquerdo de tamanho occupancy_resolution x occupancy_resolution da caixa delimitadora do pacote de modificação. O valor de patch_v0 deve estar no intervalo de 0 a frame_height / occupancy_resolution - 1, inclusive.
[00180] patch_u1 especifica a coordenada x mínima da caixa delimitadora 3D de pontos de pacote de modificação. O valor de patch_u1 deve estar na faixa de 0 a frame_width - 1, inclusive.
[00181] patch_v1 é a coordenada y mínima da caixa delimitadora 3D de pontos de pacote de modificação. O valor de patch_v1 deve estar no intervalo de 0 a frameHeight - 1, inclusive.
[00182] patch_d1 especifica a profundidade mínima do pacote de modificação. O valor de patch_d1 deve estar na faixa de 0 a <255?>, Inclusive.
[00183] delta_size_u0 é a diferença de largura do pacote de modificação entre o pacote de modificação atual e o anterior. O valor de delta_size_u0 deve estar no intervalo de <.- 65536.?> A <65535?>, Inclusive.
[00184] delta_size_v0 é a diferença de altura do pacote de modificação entre o pacote de modificação atual e o anterior. O valor de delta_size_v0 deve estar no intervalo de <-65536?.> A <.65535?.>, inclusive.
[00185] normal_axis especifica o índice de projeção do plano. O valor de normal_axis deve estar no intervalo de 0 a 2, inclusive. Os valores normalAxis de 0, 1 e 2 correspondem aos eixos de projeção X, Y e Z, respectivamente.
[00186] Os seguintes elementos de sintaxe são especificados uma vez por bloco.
[00187] candidate_index é o índice da lista de candidatos de pacote de modificação. O valor de candidate_index deve estar no intervalo de 0 a max_candidate_count, inclusive.
[00188] patch_index é um índice para uma lista de pacote de modificação classificada, em ordem de tamanho decrescente, associada a um quadro.
[00189] O grupo de semânticas do mapa de ocupação de quadros é fornecido.
[00190] Os seguintes elementos de sintaxe são fornecidos para blocos não vazios.
[00191] is_full especifica se o bloco de ocupação atual do bloco de tamanho occupancy_resolution × occupancy_resolution está cheio. is_full igual a 1 especifica que o bloco atual está cheio. is_full igual a 0 especifica que o bloco de ocupação atual não está cheio.
[00192] best_traversal_order_index especifica a ordem de varredura para sub-blocos de tamanho occupancy_precision × occupancy_precision no bloco atual occupancy_resolution × occupancy_resolution. O valor de best_traversal_order_index deve estar no intervalo de 0 a 4, inclusive.
[00193] run_count_prefix é usado na derivação da variável runCountMinusTwo.
[00194] run_count_suffix é usado na derivação da variável runCountMinusTwo. Quando não está presente, o valor de run_count_suffix é inferido como igual a 0.
[00195] Quando o valor de blockToPatch para um bloco específico não é igual a zero e o bloco não está cheio, runCountMinusTwo mais 2 representa o número de execuções sinalizadas para um bloco. O valor de runCountMinusTwo deve estar no intervalo de 0 a (occupancy_resolution * occupancy_resolution) - 1, inclusive.
[00196] runCountMinusTwo é derivado da seguinte forma: runCountMinusTwo = (1 << run_count_prefix) - 1 + run_count_suffix (7-85)
[00197] Ocupação especifica o valor de ocupação para o primeiro sub-bloco (de pixels de occupancyPrecision × occupancyPrecision). Ocupação igual a 0 especifica que o primeiro sub-bloco está vazio. Ocupação igual a 1 especifica que o primeiro sub-bloco está ocupado.
[00198] run_length_idx é a indicação da duração da execução. O valor de runLengthIdx deve estar na faixa de 0 a 14, inclusive.
[00199] A variável runLength é derivada de run_length_idx usando a Tabela 3. Tabela 3 - Derivação de runLength de run_length_idx run_length_idx runLength run_length_idx runLength 0 0 8 13 1 1 9 9 2 2 10 6
[00200] NOTA - O mapa de ocupação é compartilhado por vídeo de geometria e textura.
[00201] A semântica de bits finais RBSP na cláusula
7.4.3.11 da especificação HEVC se aplica. A semântica de alinhamento de bytes na cláusula 7.4.3.12 da especificação HEVC também se aplica. O perfil PCC e a semântica de nível são os seguintes.
[00202] pcc_profile_idc indica um perfil com o qual o CPS está em conformidade, conforme especificado no Anexo A. Os fluxos de bits não devem conter valores de pcc_profile_idc além dos especificados no Anexo A. Outros valores de pcc_profile_idc são reservados para uso futuro pela ISO / IEC.
[00203] pcc_pl_reserved_zero_19bits deve ser igual a 0 em fluxos de bits em conformidade com esta versão desta especificação. Outros valores para pcc_pl_reserved_zero_19bits são reservados para uso futuro pela ISO / IEC. Os decodificadores devem ignorar o valor de pcc_pl_reserved_zero_19bits.
[00204] pcc_level_idc indica um nível com o qual o CPS está em conformidade, conforme especificado no Anexo A. Os fluxos de bits não devem conter valores de pcc_level_idc além dos especificados no Anexo A. Outros valores de pcc_level_idc são reservados para uso futuro pela ISO / IEC.
[00205] hevc_ptl_12bytes_geometry deve ser igual ao valor dos 12 bytes de general_profile_idc a general_level_idc, inclusive, no SPS ativo quando um fluxo de bits HEVC de geometria extraído conforme especificado na reivindicação 10 é decodificado por um decodificador HEVC em conformidade.
[00206] hevc_ptl_12bytes_texture deve ser igual ao valor dos 12 bytes de general_profile_idc a general_level_idc, inclusive, no SPS ativo quando um fluxo de bits HEVC de textura extraído conforme especificado na cláusula 10 é decodificado por um decodificador HEVC em conformidade.
[00207] avc_pl_3ytes_geometry deve ser igual ao valor dos 3 bytes de profile_idc a level_idc, inclusive, no SPS ativo quando um fluxo de bits AVC de geometria extraído conforme especificado na cláusula 10 é decodificado por um decodificador AVC em conformidade.
[00208] avc_pl_3ytes_texture deve ser igual ao valor dos 3 bytes de profile_idc a level_idc, inclusive, no SPS ativo quando um fluxo de bits AVC de textura extraído conforme especificado na cláusula 10 é decodificado por um decodificador AVC em conformidade.
[00209] O processo de extração de subfluxo de bits na cláusula 104 do último PCC Cat2 WD é substituído pelo seguinte. Para o processo de extração de subfluxo de bits, as entradas são um fluxo de bits, uma indicação de componente de vídeo de destino da geometria d0, geometria d1 ou componente de textura. A saída desse processo é um subfluxo de bits.
[00210] Em uma modalidade, é um requisito de conformidade do fluxo de bits para o fluxo de bits de entrada que qualquer subfluxo de bits de saída que seja a saída do processo especificado nesta cláusula com um fluxo de bits PCC em conformidade e qualquer valor da indicação do componente de vídeo alvo seja um fluxo de bits de vídeo em conformidade com o codec de vídeo identificado.
[00211] O subfluxo de bits de saída é derivado das seguintes etapas ordenadas.
[00212] Dependendo do valor da indicação do componente de vídeo alvo, o seguinte se aplica.
[00213] Se o componente de geometria d0 for indicado, remover todas as unidades PCC NAL com PccNalUnitType diferente de GEOMETRY_D0.
[00214] Caso contrário, se o componente da geometria d1 for indicado, remova todas as unidades PCC NAL com PccNalUnitType diferente de GEOMETRY_D1.
[00215] Caso contrário (o componente de textura é indicado), remova todas as unidades PCC NAL com PccNalUnitType diferente de TEXTURE_NALU.
[00216] Para cada unidade PCC NAL, remova o primeiro byte.
[00217] Outra modalidade é fornecida abaixo.
[00218] Em outra modalidade do primeiro conjunto de métodos, conforme resumido acima, o cabeçalho de unidade PCC NAL (por exemplo, o cabeçalho de unidade de dados 404 na FIG. 4) é projetado de modo que o codec usado para a codificação dos componentes de geometria e textura pode ser inferido a partir de o tipo de unidade PCC NAL. Por exemplo, o cabeçalho de unidade PCC NAL é projetado conforme resumido abaixo: no cabeçalho de unidade PCC NAL, há um indicador de tipo, por exemplo, 7 bits, que especifica o tipo de conteúdo transportado na carga útil da unidade PCC NAL. O tipo é determinado, por exemplo, de acordo com o seguinte: 0: A carga útil contém uma unidade HEVC NAL;
1: A carga útil contém uma unidade AVC NAL;
2..63: Reservado; 64: Grupo de cabeçalho de quadros de unidade NAL; 65: Unidade NAL de informação auxiliar; 66: Unidade NAL do mapa de ocupação;
67..126: Reservado.
[00219] As unidades PCC NAL com tipo de unidade PCC NAL na faixa de 0 a 63, inclusive, são chamadas de unidades NAL de vídeo.
[00220] É possível usar alguns dos tipos de unidade PCC NAL reservados para unidades de dados PCC Cat13, unificando assim PCC Cat2 e PCC Cat13 em uma especificação padrão.
[00221] FIG. 5 é uma modalidade do método 500 de codificação de nuvem de pontos implementada por um decodificador de vídeo (por exemplo, decodificador de vídeo 30). O método 500 pode ser realizado para resolver um ou mais dos problemas mencionados acima associados à codificação de nuvem de pontos.
[00222] No bloco 502, um fluxo de bits codificado (por exemplo, a estrutura de dados 400) incluindo um grupo de cabeçalhos de quadros (por exemplo, o grupo de cabeçalhos de quadros 408) é recebido. O grupo de cabeçalhos de quadros especifica um perfil e um nível do fluxo de bits codificado.
[00223] No bloco 504, o fluxo de bits codificado é decodificado. O fluxo de bits decodificado pode ser utilizado para gerar uma imagem ou vídeo para exibição a um usuário em um dispositivo de exibição.
[00224] Em uma modalidade, o grupo de cabeçalhos de quadros é um grupo de quadros de unidade de camada de abstração de rede (NAL). Em uma modalidade, o grupo de cabeçalhos de quadros é configurado para transportar grupo de parâmetros de cabeçalho de quadros.
[00225] Em uma modalidade, pelo menos uma das informações de ocupação, informações de geometria e informações de atributo são incluídas no grupo de parâmetros de cabeçalho de quadros. Cada ponto de um sinal PCC, além de ter uma posição 3D, ou seja, atributo espacial, também pode ser associado a uma série de outros atributos, como cor, refletância, normal de superfície, etc.
[00226] Em uma modalidade, o grupo de cabeçalhos de quadros especifica um perfil e um nível para decodificar informação auxiliar para um mapa de ocupação. Em uma modalidade, o grupo de cabeçalhos de quadros especifica um processo de reconstrução de nuvem de pontos que utiliza resultados de decodificação de geometria, textura, informação auxiliar e mapa de ocupação.
[00227] FIG. 6 é uma modalidade do método 600 de codificação de nuvem de pontos implementada por um codificador de vídeo (por exemplo, codificador de vídeo 20). O método 600 pode ser realizado para resolver um ou mais dos problemas acima mencionados associados à codificação de nuvem de pontos.
[00228] No bloco 602, um fluxo de bits codificado (por exemplo, a estrutura de dados 400) incluindo um grupo de cabeçalhos de quadros (por exemplo, o grupo de cabeçalhos de quadros 408) é gerado. O grupo de cabeçalhos de quadros especifica um perfil e um nível do fluxo de bits codificado.
[00229] No bloco 604, o fluxo de bits codificado é transmitido para um decodificador (por exemplo, decodificador de vídeo 30). Uma vez recebido pelo decodificador, o fluxo de bits codificado pode ser decodificado para gerar uma imagem ou vídeo para exibição a um usuário em um dispositivo de exibição.
[00230] Em uma modalidade, o grupo de cabeçalhos de quadros é um grupo de quadros de unidade de camada de abstração de rede (NAL). Em uma modalidade, o grupo de cabeçalhos de quadros é configurado para transportar grupo de parâmetros de cabeçalho de quadros.
[00231] Em uma modalidade, pelo menos uma das informações de ocupação, informações de geometria e informações de atributo são incluídas no grupo de parâmetros de cabeçalho de quadros. Cada ponto de um sinal PCC, além de ter uma posição 3D, ou seja, atributo espacial, também pode ser associado a uma série de outros atributos, como cor, refletância, normal de superfície, etc.
[00232] Em uma modalidade, o grupo de cabeçalhos de quadros especifica um perfil e um nível para decodificar informação auxiliar para um mapa de ocupação. Em uma modalidade, o grupo de cabeçalhos de quadros especifica um processo de reconstrução de nuvem de pontos que utiliza resultados de decodificação de geometria, textura, informação auxiliar e mapa de ocupação.
[00233] FIG. 7 é um diagrama esquemático de um dispositivo de codificação de vídeo 700 (por exemplo, um codificador de vídeo 20, um decodificador de vídeo 30, etc.) de acordo com uma modalidade da divulgação. O dispositivo de codificação de vídeo 700 é adequado para implementar os métodos e processos aqui divulgados. O dispositivo de codificação de vídeo 700 compreende portas de entrada 710 e unidades receptoras (Rx) 720 para receber dados; um processador,
unidade lógica ou unidade de processamento central (CPU) 730 para processar os dados; unidades transmissoras (Tx) 740 e portas de saída 750 para transmitir os dados; e uma memória 760 para armazenar os dados. O dispositivo de codificação de vídeo 700 também pode compreender componentes ótico-para- elétricos (OE) e componentes elétrico-para-óticos (EO) acoplados às portas de entrada 710, as unidades receptoras 720, as unidades transmissoras 740 e as portas de saída 750 para saída ou entrada de sinais óticos ou elétricos.
[00234] O processador 730 é implementado por hardware e software. O processador 730 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador multi-core), matrizes de portas programáveis em campo (FPGAs), circuitos integrados específicos de aplicações (ASICs) e processadores de sinais digitais (DSPs). O processador 730 está em comunicação com as portas de entrada 710, unidades receptoras 720, unidades transmissoras 740, portas de saída 750 e memória 760. O processador 730 compreende um módulo de codificação 770. O módulo de codificação 770 implementa as modalidades divulgadas descritas acima. A inclusão do módulo de codificação 770, portanto, fornece uma melhoria substancial para a funcionalidade do dispositivo de codificação 700 e efetua uma transformação do dispositivo de codificação de vídeo 700 para um estado diferente. Alternativamente, o módulo de codificação 770 é implementado como instruções armazenadas na memória 760 e executadas pelo processador 730.
[00235] O dispositivo de codificação de vídeo 700 também pode incluir dispositivos de entrada e / ou saída (I / O) 780 para comunicar dados para e de um usuário. Os dispositivos de I / O 780 podem incluir dispositivos de saída, como um monitor para exibir dados de vídeo, alto-falantes para saída de dados de áudio, etc. Os dispositivos de I / O 780 também podem incluir dispositivos de entrada, como um teclado, mouse, trackball, etc., e / ou interfaces correspondentes para interagir com tais dispositivos de saída.
[00236] A memória 760 compreende um ou mais discos, unidades de fita e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de fluxo excessivo, para armazenar programas quando tais programas são selecionados para execução e para armazenar instruções e dados que são lidos durante a execução do programa. A memória 760 pode ser volátil e não volátil e pode ser memória somente leitura (ROM), memória de acesso aleatório (RAM), memória endereçável por conteúdo ternário (TCAM) e memória de acesso aleatório estática (SRAM).
[00237] FIG. 8 é um diagrama esquemático de uma modalidade de um meio para codificar 800. Na modalidade, os meios para codificar 800 são implementados em um dispositivo de codificação de vídeo 802 (por exemplo, um codificador de vídeo 20 ou um decodificador de vídeo 30). O dispositivo de codificação de vídeo 802 inclui meios de recepção 801. O meio de recepção 801 está configurado para receber uma imagem para codificar ou para receber um fluxo de bits para decodificar. O dispositivo de codificação de vídeo 802 inclui meios de transmissão 807 acoplados aos meios de recepção 801. O meio de transmissão 807 é configurado para transmitir o fluxo de bits para um decodificador ou para transmitir uma imagem decodificada para um meio de exibição (por exemplo, um dos dispositivos de I / O 780).
[00238] O dispositivo de codificação de vídeo 802 inclui um meio de armazenamento 803. O meio de armazenamento 803 é acoplado a pelo menos um dos meios de recepção 801 ou meios de transmissão 807. O meio de armazenamento 803 está configurado para armazenar instruções. O dispositivo de codificação de vídeo 802 também inclui meios de processamento
805. O meio de processamento 805 é acoplado ao meio de armazenamento 803. O meio de processamento 805 está configurado para executar as instruções armazenadas no meio de armazenamento 803 para realizar os métodos aqui divulgados.
[00239] Embora várias modalidades tenham sido fornecidas na presente divulgação, pode ser entendido que os sistemas e métodos divulgados podem ser incorporados em muitas outras formas específicas sem se afastar do espírito ou escopo da presente divulgação. Os presentes exemplos devem ser considerados ilustrativos e não restritivos, e a intenção não se limita aos detalhes aqui fornecidos. Por exemplo, os vários elementos ou componentes podem ser combinados ou integrados em outro sistema ou certas características podem ser omitidas ou não implementadas.
[00240] Além disso, técnicas, sistemas, subsistemas e métodos descritos e ilustrados nas várias modalidades como discretos ou separados podem ser combinados ou integrados com outros sistemas, componentes, técnicas ou métodos sem se afastar do escopo da presente divulgação. Outros exemplos de mudanças, substituições e alterações são verificáveis por um versado na técnica e podem ser feitos sem se afastar do espírito e do escopo divulgados neste documento.

Claims (17)

REIVINDICAÇÕES
1. Método de codificação de nuvem de pontos (PCC) implementado por um decodificador de vídeo, caracterizado pelo fato de que compreende: receber um fluxo de bits codificado incluindo um grupo de cabeçalhos de quadros, o grupo de cabeçalhos de quadros especificando um perfil e um nível do fluxo de bits codificado; e decodificar o fluxo de bits codificado.
2. Método de codificação de nuvem de pontos (PCC) implementado por um codificador de vídeo, caracterizado pelo fato de que compreende: gerar um fluxo de bits codificado incluindo um grupo de cabeçalhos de quadros, o grupo de cabeçalhos de frames especificando um perfil e um nível do fluxo de bits codificado; e transmitir o fluxo de bits codificado para um decodificador.
3. Método, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o grupo de cabeçalhos de quadros é um grupo de unidade de camada de abstração de rede (NAL) de quadros.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que o grupo de cabeçalhos de quadros é configurado para transportar grupo de parâmetros de cabeçalho de quadros.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que pelo menos um dentre informação de ocupação, informação de geometria, e informação de atributos são incluídos no grupo de parâmetros de cabeçalho de quadros.
6. Método, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que o grupo de cabeçalhos de quadros especifica o perfil e o nível para decodificar informação auxiliar para um mapa de ocupação.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o grupo de cabeçalhos de quadros especifica um processo de reconstrução de nuvem de pontos que utiliza resultados de decodificação de geometria, textura, informação auxiliar, e mapa de ocupação.
8. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o perfil ou o nível indicam recursos para decodificação de informação auxiliar e componentes de mapa de ocupação.
9. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o perfil ou o nível indicam recursos para reconstrução de nuvem de pontos.
10. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o perfil é um subconjunto especificado de sintaxe.
11. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o perfil é um subconjunto especificado de ferramentas de codificação.
12. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o nível é um conjunto definido de restrições sobre os valores que podem ser tomados por elementos e variáveis de sintaxe.
13. Método, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que uma combinação do perfil e do nível para o fluxo de bits codificado representa um recurso de decodificação particular necessária para a decodificação do fluxo de bits codificado.
14. Aparelho de codificação, caracterizado pelo fato de que compreende: um receptor configurado para receber uma imagem para codificar ou para receber um fluxo de bits para decodificar; um transmissor acoplado ao receptor, o transmissor configurado para transmitir o fluxo de bits para um decodificador ou para transmitir uma imagem decodificada para um visor; uma memória acoplada a pelo menos um do receptor ou o transmissor, a memória configurada para armazenar instruções; e um processador acoplado à memória, o processador configurado para executar as instruções armazenadas na memória para realizar o método conforme definido em qualquer uma das reivindicações 1 a 13.
15. Aparelho de codificação, de acordo com a reivindicação 8, caracterizado pelo fato de que compreende ainda um visor configurado para exibir uma imagem.
16. Sistema, caracterizado pelo fato de que compreende: um codificador; e um decodificador em comunicação com o codificador, em que o codificador ou o decodificador inclui o aparelho de codificação conforme na reivindicação 14 ou 15.
17. Meio para codificação, caracterizado pelo fato de que compreende: meios de recebimento configurados para receber uma imagem para codificar ou para receber um fluxo de bits para decodificar;
meios de transmissão acoplados aos meios de recebimento, os meios de transmissão configurados para transmitir o fluxo de bits para um decodificador ou para transmitir uma imagem decodificada para um meio de exibição; meios de armazenamento acoplados a pelo menos um dos meios de recebimento ou meios de transmissão, os meios de armazenamento configurados para armazenar instruções; e meios de processamento acoplados aos meios de armazenamento, os meios de processamento configurados para executar as instruções armazenadas nos meios de armazenamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 13.
BR112020026618-3A 2018-06-26 2019-04-11 Projetos de sintaxe de alto nível para codificação de nuvem de pontos BR112020026618A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862690132P 2018-06-26 2018-06-26
US62/690,132 2018-06-26
PCT/US2019/027066 WO2020005364A1 (en) 2018-06-26 2019-04-11 High-level syntax designs for point cloud coding

Publications (1)

Publication Number Publication Date
BR112020026618A2 true BR112020026618A2 (pt) 2021-03-30

Family

ID=68985126

Family Applications (3)

Application Number Title Priority Date Filing Date
BR112020026618-3A BR112020026618A2 (pt) 2018-06-26 2019-04-11 Projetos de sintaxe de alto nível para codificação de nuvem de pontos
BR112020026646-9A BR112020026646A2 (pt) 2018-06-26 2019-04-11 Projetos de sintaxe de alto nível para codificação de nuvem de pontos
BR112020026591-8A BR112020026591A2 (pt) 2018-06-26 2019-04-11 Projetos de sintaxe de alto nível para codificação de nuvem de pontos

Family Applications After (2)

Application Number Title Priority Date Filing Date
BR112020026646-9A BR112020026646A2 (pt) 2018-06-26 2019-04-11 Projetos de sintaxe de alto nível para codificação de nuvem de pontos
BR112020026591-8A BR112020026591A2 (pt) 2018-06-26 2019-04-11 Projetos de sintaxe de alto nível para codificação de nuvem de pontos

Country Status (8)

Country Link
US (4) US20210112278A1 (pt)
EP (3) EP3804319A4 (pt)
JP (6) JP7111846B2 (pt)
KR (4) KR20230031992A (pt)
CN (4) CN112385221B (pt)
BR (3) BR112020026618A2 (pt)
SG (3) SG11202012940XA (pt)
WO (3) WO2020005365A1 (pt)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US10699444B2 (en) 2017-11-22 2020-06-30 Apple Inc Point cloud occupancy map compression
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
BR112020026735A2 (pt) * 2018-08-08 2021-03-30 Panasonic Intellectual Property Corporation Of America 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
WO2020055869A1 (en) * 2018-09-14 2020-03-19 Futurewei Technologies, Inc. Improved attribute layers and signaling in point cloud coding
US11386524B2 (en) 2018-09-28 2022-07-12 Apple Inc. Point cloud compression image padding
US11367224B2 (en) * 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US11430155B2 (en) 2018-10-05 2022-08-30 Apple Inc. Quantized depths for projection point cloud compression
US11348284B2 (en) 2019-01-08 2022-05-31 Apple Inc. Auxiliary information signaling and reference management for projection-based point cloud compression
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
WO2021068922A1 (en) 2019-10-10 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Deblocking of blocks coded in geometry partition mode
EP4068789A4 (en) * 2020-01-07 2023-01-04 LG Electronics Inc. POINT CLOUD DATA TRANSMITTER DEVICE, POINT CLOUD DATA TRANSMITTER METHOD, POINT CLOUD DATA RECEIVE DEVICE AND POINT CLOUD DATA RECEIVE METHOD
US11593967B2 (en) * 2020-01-08 2023-02-28 Samsung Electronics Co., Ltd. Attribute transfer in V-PCC
US11356706B2 (en) 2020-01-08 2022-06-07 Qualcomm Incorporated Storage and delivery of video data for video coding
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
EP4075797A4 (en) 2020-01-08 2023-05-31 LG Electronics Inc. POINT CLOUD DATA TRANSMITTING DEVICE, POINT CLOUD DATA TRANSMITTING METHOD, POINT CLOUD DATA RECEIVING DEVICE AND POINT CLOUD DATA RECEIVING METHOD
US11475605B2 (en) 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
KR102373833B1 (ko) * 2020-01-09 2022-03-14 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11317117B2 (en) 2020-03-30 2022-04-26 Tencent America LLC Method of coding attributes for point cloud coding
WO2021206333A1 (ko) * 2020-04-11 2021-10-14 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US11816868B2 (en) * 2020-08-14 2023-11-14 Tencent America LLC Coding of multiple-component attributes for point cloud coding
WO2022092886A1 (ko) * 2020-10-30 2022-05-05 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US20220180567A1 (en) 2020-12-04 2022-06-09 Tencent America LLC Method and apparatus for point cloud coding
US20220179082A1 (en) * 2020-12-08 2022-06-09 Argo AI, LLC Methods and system for analyzing dynamic lidar point cloud data
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
WO2023054156A1 (ja) * 2021-09-29 2023-04-06 ソニーグループ株式会社 情報処理装置および方法
WO2023050432A1 (zh) * 2021-09-30 2023-04-06 浙江大学 编解码方法、编码器、解码器以及存储介质
WO2023090614A1 (ko) * 2021-11-19 2023-05-25 현대자동차주식회사 라이다 포인트 클라우드 코딩을 위한 방법 및 장치
WO2023131131A1 (en) * 2022-01-04 2023-07-13 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for point cloud coding
WO2024064043A1 (en) * 2022-09-19 2024-03-28 Innopeak Technology, Inc. Point cloud decoding method, point cloud encoding method, decoder and encoder
WO2024079984A1 (ja) * 2022-10-13 2024-04-18 Kddi株式会社 メッシュ復号装置、メッシュ符号化装置、メッシュ復号方法及びプログラム

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100735359B1 (ko) * 2005-07-04 2007-07-04 삼성전자주식회사 디지털 멀티미디어 방송시스템에서의 데이터 송수신 장치및 방법
US8798148B2 (en) * 2007-06-15 2014-08-05 Physical Optics Corporation Apparatus and method employing pre-ATR-based real-time compression and video frame segmentation
US8204313B2 (en) * 2007-08-30 2012-06-19 Leica Geosystems Ag Rapid, spatial-data viewing and manipulating including data partition and indexing
WO2010002420A1 (en) 2008-07-01 2010-01-07 Thomson Licensing Network abstraction layer (nal)-aware multiplexer
US8971417B2 (en) * 2010-08-19 2015-03-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding multilayer videos
US10244239B2 (en) * 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
CN103119944B (zh) * 2011-05-20 2017-04-12 太阳专利托管公司 用于使用色彩平面间预测对视频进行编码和解码的方法和装置
US20130188013A1 (en) 2011-07-22 2013-07-25 Qualcomm Incorporated Mvc based 3dvc codec supporting inside view motion prediction (ivmp) mode
US20130229485A1 (en) * 2011-08-30 2013-09-05 Nokia Corporation Apparatus, a Method and a Computer Program for Video Coding and Decoding
US9432665B2 (en) * 2011-12-02 2016-08-30 Qualcomm Incorporated Coding least significant bits of picture order count values identifying long-term reference pictures
US10447990B2 (en) * 2012-02-28 2019-10-15 Qualcomm Incorporated Network abstraction layer (NAL) unit header design for three-dimensional video coding
US9762903B2 (en) 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
EP3300365B1 (en) 2012-06-11 2019-09-04 Samsung Electronics Co., Ltd. Encoding and decoding videos sharing sao parameters according to a color component
US9602827B2 (en) 2012-07-02 2017-03-21 Qualcomm Incorporated Video parameter set including an offset syntax element
US20140037005A1 (en) 2012-08-02 2014-02-06 Penne Y. LEE Transcoding video data
US10009619B2 (en) 2012-09-28 2018-06-26 Sony Corporation Image processing device for suppressing deterioration in encoding efficiency
US9615090B2 (en) 2012-12-28 2017-04-04 Qualcomm Incorporated Parsing syntax elements in three-dimensional video coding
US9900609B2 (en) 2013-01-04 2018-02-20 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
TWM487509U (zh) * 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
KR102153539B1 (ko) 2013-09-05 2020-09-08 한국전자통신연구원 영상 처리 장치 및 방법
WO2015043501A1 (en) 2013-09-27 2015-04-02 Qualcomm Incorporated Residual coding for depth intra prediction modes
JP6397421B2 (ja) 2013-10-08 2018-09-26 シャープ株式会社 画像復号装置及び画像符号化装置
GB2531271A (en) 2014-10-14 2016-04-20 Nokia Technologies Oy An apparatus, a method and a computer program for image sequence coding and decoding
US9955159B2 (en) 2014-10-31 2018-04-24 Google Llc Multi-video decoding with input switching
CN104484852A (zh) * 2014-11-19 2015-04-01 温州大学 一种点云曲面的复合几何图像表示方法
GB2539461B (en) 2015-06-16 2020-01-08 Canon Kk Image data encapsulation
US9646410B2 (en) * 2015-06-30 2017-05-09 Microsoft Technology Licensing, Llc Mixed three dimensional scene reconstruction from plural surface models
US10798422B2 (en) * 2015-10-20 2020-10-06 Intel Corporation Method and system of video coding with post-processing indication
WO2017082079A1 (ja) * 2015-11-11 2017-05-18 ソニー株式会社 画像処理装置および画像処理方法
US10482196B2 (en) * 2016-02-26 2019-11-19 Nvidia Corporation Modeling point cloud data using hierarchies of Gaussian mixture models
CN105992008B (zh) * 2016-03-30 2019-08-30 南京邮电大学 一种在多核处理器平台上的多层次多任务并行解码方法
US11025882B2 (en) * 2016-04-25 2021-06-01 HypeVR Live action volumetric video compression/decompression and playback
GB2550604A (en) 2016-05-24 2017-11-29 Canon Kk Method, device, and computer program for encapsulating and parsing timed media data
EP3249921A1 (en) * 2016-05-24 2017-11-29 Thomson Licensing Method, apparatus and stream for immersive video format
US10223810B2 (en) * 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
KR102521272B1 (ko) * 2016-07-08 2023-04-12 브이아이디 스케일, 인크. 지오메트리 투영을 이용한 360도 비디오 코딩
US20180053324A1 (en) * 2016-08-19 2018-02-22 Mitsubishi Electric Research Laboratories, Inc. Method for Predictive Coding of Point Cloud Geometries
US10271069B2 (en) * 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
WO2018083378A1 (en) 2016-11-01 2018-05-11 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US11514613B2 (en) 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US11900639B2 (en) 2018-01-19 2024-02-13 Interdigital Vc Holdings, Inc. Processing a point cloud
US11202086B2 (en) 2018-03-01 2021-12-14 Nokia Technologies Oy Apparatus, a method and a computer program for volumetric video
US10939129B2 (en) * 2018-04-10 2021-03-02 Apple Inc. Point cloud compression

Also Published As

Publication number Publication date
EP3804275B1 (en) 2023-03-01
JP2021530889A (ja) 2021-11-11
KR20210022090A (ko) 2021-03-02
CN112385221B (zh) 2022-08-26
WO2020005365A1 (en) 2020-01-02
US20210112280A1 (en) 2021-04-15
SG11202012942TA (en) 2021-01-28
CN112438047B (zh) 2022-08-09
US11706458B2 (en) 2023-07-18
BR112020026591A2 (pt) 2021-03-23
EP3804320A4 (en) 2021-06-30
CN112438047A (zh) 2021-03-02
JP2022165994A (ja) 2022-11-01
EP3804275A1 (en) 2021-04-14
KR20210022100A (ko) 2021-03-02
US20230328291A1 (en) 2023-10-12
WO2020005363A1 (en) 2020-01-02
JP2021528917A (ja) 2021-10-21
CN115665104A (zh) 2023-01-31
SG11202012937WA (en) 2021-01-28
KR102486256B1 (ko) 2023-01-06
JP2023120197A (ja) 2023-08-29
JP7116199B2 (ja) 2022-08-09
JP7111846B2 (ja) 2022-08-02
JP2022160530A (ja) 2022-10-19
CN112368990A (zh) 2021-02-12
KR102486371B1 (ko) 2023-01-06
WO2020005365A8 (en) 2020-10-08
CN112368990B (zh) 2022-09-23
JP2021529460A (ja) 2021-10-28
CN112385221A (zh) 2021-02-19
SG11202012940XA (en) 2021-01-28
US11856230B2 (en) 2023-12-26
EP3804319A4 (en) 2021-06-30
EP3804275A4 (en) 2021-05-05
US20210112281A1 (en) 2021-04-15
JP7287745B2 (ja) 2023-06-06
EP3804320A1 (en) 2021-04-14
KR20210021072A (ko) 2021-02-24
BR112020026646A2 (pt) 2021-03-23
KR20230031992A (ko) 2023-03-07
WO2020005364A1 (en) 2020-01-02
EP3804319A1 (en) 2021-04-14
US20210112278A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
BR112020026618A2 (pt) Projetos de sintaxe de alto nível para codificação de nuvem de pontos
BR112021004798A2 (pt) suporte de atributo melhorado em codificação de nuvem de pontos
WO2019199415A1 (en) Differential coding method for patch side information
US20210398324A1 (en) Patch Data Unit Coding and Decoding for Point-Cloud Coding
BR112021012649A2 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
KR102562209B1 (ko) 포인트 클라우드 코딩에서의 효율적인 패치 회전
US11973987B2 (en) Efficient patch rotation in point cloud coding