BR112019019191A2 - projeções de esfera polar para compactação eficiente de vídeo de 360 graus - Google Patents

projeções de esfera polar para compactação eficiente de vídeo de 360 graus Download PDF

Info

Publication number
BR112019019191A2
BR112019019191A2 BR112019019191A BR112019019191A BR112019019191A2 BR 112019019191 A2 BR112019019191 A2 BR 112019019191A2 BR 112019019191 A BR112019019191 A BR 112019019191A BR 112019019191 A BR112019019191 A BR 112019019191A BR 112019019191 A2 BR112019019191 A2 BR 112019019191A2
Authority
BR
Brazil
Prior art keywords
video
rectangular area
area
video frame
mapping
Prior art date
Application number
BR112019019191A
Other languages
English (en)
Inventor
Van Der Auwera Geert
Karczewicz Marta
Coban Muhammed
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of BR112019019191A2 publication Critical patent/BR112019019191A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/08Projecting images onto non-planar surfaces, e.g. geodetic screens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/12Panospheric to cylindrical image transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/182Methods 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 pixel
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Optics & Photonics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

são fornecidos sistemas e métodos para processamento de dados de vídeo de 360 graus. em diversas implementações, uma representação esférica de um quadro de vídeo de 360 graus pode ser segmentada em uma região de topo, uma região de baixo e uma região do meio. a região do meio pode ser mapeada em uma ou mais áreas retangulares de um quadro de vídeo de saída. a região de topo pode ser mapeada em uma primeira área retangular do quadro de vídeo de saída utilizando um mapeamento que converte um quadrado em um círculo, de modo que os pixels na região circular de topo sejam expandidos para preencher a primeira região retangular. a região de baixo pode ser mapeada em uma segunda área retangular do quadro de vídeo de saída, de modo que os pixels na região circular de baixo sejam expandidos para preencher a segunda região retangular.

Description

PROJEÇÕES DE ESFERA POLAR PARA COMPACTAÇÃO EFICIENTE DE VÍDEO DE 360 GRAUS
FUNDAMENTOS [0001] A realidade virtual (VR) descreve um ambiente tridimensional gerado por computador dentro de um meio aparentemente real ou físico que pode ser interativo. Em geral, um usuário que experimenta um ambiente de realidade virtual pode virar-se para a esquerda ou para a direita, olhar para cima ou para baixo e/ou se mover adiante e retroceder, assim alterando seu ponto de vista do ambiente virtual. 0 vídeo de 360 graus apresentado para o usuário pode alterar-se adequadamente, de modo que a experiência de usuário seja tão integral quanto no mundo real. 0 vídeo de realidade virtual pode ser capturado e renderizado em qualidade verdadeiramente alta, o que potencialmente proporciona uma experiência de realidade virtual autenticamente imersiva.
[0002] Para proporcionar uma visão integral de 360 graus, o vídeo capturado por um sistema de captura de vídeo de 360 graus é tipicamente submetido ao costuramento de imagens. 0 costuramento de imagens, no caso de geração de vídeo de 360 graus, envolve combinar ou mesclar quadros de vídeo a partir de câmeras adjacentes na área onde os quadros de vídeo se sobrepõem ou, de outro modo, se conectariam. O resultado seria um quadro aproximadamente esférico. Semelhante a uma projeção de Mercator, entretanto, os dados mesclados são tipicamente representados em uma forma planar. Por exemplo, os pixels, em um quadro de vídeo mesclado, podem ser mapeados em planos de uma configuração cúbica ou alguma outra
Petição 870190092259, de 16/09/2019, pág. 6/118
2/83 configuração planar tridimensional (como, por exemplo, uma pirâmide, um octaedro, um decaedro etc.). Dispositivos de captura de video e de exibição de video geralmente funcionam em um principio de rasterização - o que significa que um quadro de video é tratado como uma grade de pixels assim, planos quadrados ou retangulares são tipicamente utilizados para representar um ambiente esférico.
[0003] 0 video de 360 graus pode ser codificado para armazenamento e/ou transmissão. Os padrões de codificação de video incluem o Sindicato Internacional de Telecomunicações (ITU) ITU-T H.261, a Organização Internacional de Padronizações/Comissão Internacional de Eletrônica (ISO/IEC), o grupo de Imagens em Movimento (MPEG) MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual, ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), que inclui a Codificação Escalonável de Video (SVC) e a Decodificação de Video de Multi-Vistas (MVC) e o ITU-T H.265 (também conhecido como ISO/IEC MPEG-4 HEVC) com suas extensões.
SUMÁRIO RESUMIDO [0004] Em diversas implementações, são descritas técnicas e sistemas para processamento de dados de video de 360 graus para obter melhor eficiência de codificação. Estas técnicas e sistemas podem incluir utilizar uma projeção esférica segmentada para dividir uma representação esférica de um quadro de video de 360 graus em um polo norte ou região de topo, um polo sul ou região de baixo e uma região do meio ou equatorial. Então, as regiões podem ser mapeadas para um formato retangular bidimensional que pode ser facilitador para manipulação por
Petição 870190092259, de 16/09/2019, pág. 7/118
3/83 dispositivos de codificação. Na geração deste mapeamento, as regiões de polo circular norte e sul da projeção esférica segmentada podem ser expandidas utilizando diversas técnicas para preencher uma região retangular do quadro de vídeo de saída. Ao mapear as regiões polares em todos os cantos de uma região retangular, todos os pixels disponíveis no quadro de vídeo de saída podem incluir dados utilizáveis. Um quadro de vídeo gerado dessa maneira pode ser codificado mais eficientemente do que os quadros de vídeo do vídeo de 360 graus que tenham sido gerados utilizando outros métodos.
[0005] Em diversas implementações, aperfeiçoamentos visuais adicionais podem ser alcançados pela aplicação de um ajustamento de amostragem gradual em determinadas áreas do quadro de vídeo de saída. Por exemplo, qualquer descontinuidade entre uma região retangular, na qual uma região polar foi mapeada, e uma região retangular, na qual uma parte da região equatorial foi mapeada, pode ser reduzida pela aplicação de uma alteração gradual para a localização no quadro de vídeo no qual as amostras são mapeadas. Neste e em outros exemplos, a alteração gradual é aplicada à região retangular para uma região polar dos dados de vídeo esférico.
[0006] De acordo com pelo menos um exemplo, é fornecido um método para codificar dados de vídeo. Em diversas implementações, o método inclui obter dados de vídeo de 360 graus que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo da pluralidade de quadros de vídeo incluindo uma representação esférica de dados de vídeo para o quadro de vídeo. 0 método inclui
Petição 870190092259, de 16/09/2019, pág. 8/118
4/83 adicionalmente segmentar um quadro de video a partir da pluralidade de quadros de video em uma região de topo, uma região do meio e em uma região de baixo, a região de topo incluindo uma primeira área circular da representação esférica, a região de baixo incluindo uma segunda área circular da representação esférica que é oposta à representação esférica da primeira área circular, em que a região do meio inclui uma área da representação esférica não incluída na região de topo ou na região de baixo. 0 método inclui adicionalmente mapear a região de topo em uma primeira área retangular do quadro de vídeo de saída, em que mapear a região de topo inclui expandir os dados de vídeo incluídos na primeira área circular para preencher a primeira área retangular. 0 método inclui adicionalmente mapear a região de baixo em uma segunda área retangular do quadro de vídeo de saída, em que mapear a região de baixo inclui expandir os dados de vídeo incluídos na segunda área circular para preencher a segunda área retangular.
[0007] Em outro exemplo, é fornecido um aparelho que inclui uma memória configurada para armazenar dados de vídeo de 360 graus e um processador. Os dados de vídeo de 360 graus podem incluir uma pluralidade de quadros de vídeo, cada quadro de vídeo da pluralidade de quadros de vídeo inclui uma representação esférica de dados de vídeo para o quadro de vídeo. 0 processador é configurado para e pode segmentar um quadro de vídeo a partir da pluralidade de quadros de vídeo em uma região de topo, uma região do meio e em uma região de baixo, a região de topo incluindo uma primeira área circular da representação esférica, a região de baixo incluindo uma segunda área circular da
Petição 870190092259, de 16/09/2019, pág. 9/118
5/83 representação esférica que é oposta à representação esférica da primeira área circular, em que a região do meio inclui uma área da representação esférica não incluída na região de topo ou na região de baixo. 0 processador é configurado para e pode mapear a região de topo em uma primeira área retangular do quadro de vídeo de saída, em que mapear a região de topo inclui expandir os dados de vídeo incluídos na primeira área circular para preencher a primeira área retangular. 0 processador é configurado para e pode mapear a região de baixo em uma segunda área retangular do quadro de vídeo de saída, em que mapear a região de baixo inclui expandir os dados de vídeos incluídos na segunda área circular para preencher a segunda área retangular.
[0008] Em outro exemplo, é fornecido um meio não transitório legível por computador que tem armazenado nele instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores efetuem operações, que incluem obter dados de vídeo de 360 graus que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo da pluralidade de quadros de vídeo inclui uma representação esférica de dados de vídeo para o quadro de vídeo. As instruções podem adicionalmente fazer com que o um ou mais processadores efetuem operações que incluem segmentar um quadro de vídeo a partir da pluralidade de quadros de vídeo em uma região de topo, uma região do meio e em uma região de baixo, a região de topo incluindo uma primeira área circular da representação esférica, a região de baixo incluindo uma segunda área circular da representação esférica que é oposta à representação
Petição 870190092259, de 16/09/2019, pág. 10/118
6/83 esférica da primeira área circular, em que a região do meio inclui uma área da representação esférica não incluída na região de topo ou na região de baixo. As instruções podem fazer adicionalmente com que o um ou mais processadores efetuem operações que incluem mapear a região de topo em uma primeira área retangular do quadro de vídeo de saída, em que mapear a região de topo inclui os dados de vídeo expandidos incluídos na primeira área circular para preencher a primeira área retangular. As instruções podem fazer adicionalmente com que o um ou mais processadores efetuem operações que incluem mapear a região de baixo em uma segunda área retangular do quadro de vídeo de saída, em que mapear a região de baixo inclui expandir os dados de vídeo incluídos na segunda área circular para preencher a segunda área retangular.
[0009] Em outro exemplo, é fornecido um aparelho que inclui meios para obter dados de vídeo de 360 graus que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo da pluralidade de quadros de vídeo inclui uma representação esférica de dados de vídeo para o quadro de vídeo. 0 aparelho compreende adicionalmente meios para segmentar um quadro de vídeo a partir da pluralidade de quadros de vídeo em uma região de topo, uma região do meio e em uma região de baixo, a região de topo incluindo uma primeira área circular da representação esférica, a região de baixo incluindo uma segunda área circular da representação esférica que é oposta à representação esférica da primeira área circular, em que a região do meio inclui uma área da representação esférica não incluída na região de topo ou na região de baixo. 0 aparelho compreende
Petição 870190092259, de 16/09/2019, pág. 11/118
7/83 adicionalmente meios para mapear a região de topo em uma primeira área retangular do quadro de vídeo de saída, em que mapear a região de topo inclui expandir os dados de vídeos incluídos na primeira área circular para preencher a primeira área retangular. 0 aparelho compreende adicionalmente meios para mapear a região de baixo em uma segunda área retangular do quadro de vídeo de saída, em que mapear a região de baixo inclui expandir os dados de vídeos incluídos na segunda área circular para preencher a segunda área retangular.
[0010] Sob alguns aspectos, o quadro de vídeo é segmentado em uma primeira latitude acima de um equador da representação esférica e uma segunda latitude abaixo do equador, em que a primeira latitude e a segunda latitude são equidistantes do equador, em que a região de topo está acima da primeira latitude e em que a região abaixo está abaixo da segunda latitude.
[0011] Sob alguns aspectos, mapear a região de topo e mapear a região de baixo inclui selecionar uma localização de pixel no quadro de vídeo de saída e determinar um ponto sobre a representação esférica que corresponde à localização de pixel, em que o ponto sobre a representação esférica é determinado utilizando um mapeamento para conversão de um quadrado em um círculo. Estes aspectos incluem adicionalmente a amostragem de um pixel a partir do ponto sobre a representação esférica e situar o pixel amostrado na localização de pixel. Sob alguns aspectos, o mapeamento para converter um quadrado em um círculo minimiza a distorção no quadro de vídeo de saída. Sob alguns aspectos, mapear a região de topo e
Petição 870190092259, de 16/09/2019, pág. 12/118
8/83 mapear a região de baixo inclui adicionalmente ajustar a localização de pixel utilizando uma função de curva gradual. Sob alguns aspectos, a função de curva gradual é utilizada em localizações de pixel em uma área adjacente a uma terceira área retangular no quadro de vídeo. Sob alguns aspectos, a função de curva gradual altera as localizações de pixels menos em direção a uma área do meio da primeira área retangular ou da segunda área retangular e mais em direção a uma área de fora da primeira área retangular ou da segunda área retangular.
[0012] Sol ) alguns aspectos, os métodos,
aparelhos e meios legíveis por computador incluem
adicionalmente mapear a região do meio para uma ou mais
áreas retangulares de um quadro de vídeo de s aída. Sob
alguns aspectos, a região do meio inclui uma vista
esquerda, uma vista de frente e uma vista direita, em que a
vista esquerda é situada no quadro de vídeo de saída
adjacente à vista de frente e em que a vista direita é
situada adjacente à vista de frente.
[0013] Sob alguns aspectos, a região do meio inclui uma vista de trás, em que a região de baixo é situada no quadro de vídeo de saída adjacente à vista de trás, e em que a região de topo é situada adjacente à vista de trás.
[0014] Sob alguns aspectos, mapear a região de topo na primeira área retangular inclui aplicar um ajustamento gradual em uma área onde a primeira área retangular é adjacente a uma terceira área retangular no quadro de vídeo de saída e em que mapear a região de baixo na segunda área retangular inclui aplicar o ajustamento
Petição 870190092259, de 16/09/2019, pág. 13/118
9/83 gradual em uma área onde a segunda área retangular é adjacente a uma quarta área retangular no quadro de video de saída.
[0015] Sob alguns aspectos, o quadro de video de saída tem uma proporção de aspecto de três-por-dois.
[0016] De acordo com pelo menos um exemplo, é fornecido um método para codificar dados de vídeo. Em diversas implementações, o método inclui obter dados de vídeo de 360 graus que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo da pluralidade de quadros de vídeo incluindo uma representação bidimensional de dados de vídeo para o quadro de vídeo. 0 método inclui adicionalmente identificar uma primeira área retangular de um quadro de vídeo a partir da pluralidade de quadros de vídeo. 0 método inclui adicionalmente mapear a primeira área retangular em uma região de topo de uma representação esférica de dados de vídeo para o quadro de vídeo, em que mapear a primeira área retangular inclui dispor os dados de vídeo da primeira área retangular na primeira área circular. 0 método inclui adicionalmente identificar a segunda área retangular do quadro de vídeo. 0 método inclui adicionalmente mapear a segunda área retangular em uma região de baixo da representação esférica, em que a região de baixo compreende uma segunda área circular da representação esférica e em que mapear a segunda área retangular inclui dispor os dados de vídeo da segunda área retangular na segunda área circular.
[0017] Em outro exemplo, é fornecido um aparelho que inclui uma memória configurada para armazenar dados de vídeo de 360 graus e um processador. Os dados de
Petição 870190092259, de 16/09/2019, pág. 14/118
10/83 video de 360 graus podem incluir uma pluralidade de quadros de vídeo, cada quadro de video da pluralidade de quadros de vídeo incluindo uma representação bidimensional de dados de vídeo para o quadro de vídeo. O processador é configurado para e pode identificar uma primeira área retangular de um quadro de vídeo a partir da pluralidade de quadros de vídeo. O processador é configurado para e pode mapear a primeira área retangular em uma região de topo de uma representação esférica de dados de vídeo para o quadro de vídeo, em que a região de topo compreende uma primeira área circular da representação esférica e em que mapear a primeira área retangular inclui dispor os dados de vídeo da primeira área retangular na primeira área circular. O processador é configurado para e pode identificar uma segunda área retangular do quadro de vídeo. O processador é configurado para e pode mapear a segunda área retangular em uma região de baixo da representação esférica, em que a região de baixo compreende uma segunda área circular da representação esférica e em que mapear a segunda área retangular inclui dispor os dados de vídeo da segunda área retangular na segunda área circular.
[0018] Em outro exemplo, é fornecido um meio não transitório legível por computador que tem armazenado nele instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores executem operações, que incluem obter os dados de vídeo de 360 graus, que inclui uma pluralidade de quadros de vídeo, cada quadro de vídeo, a partir da pluralidade de quadros de vídeo, incluindo uma representação bidimensional de dados de vídeo para o quadro de vídeo. As instruções podem
Petição 870190092259, de 16/09/2019, pág. 15/118
11/83 adicionalmente fazer com que o um ou mais processadores efetuem operações, que incluem identificar uma primeira área retangular de um quadro de vídeo a partir da pluralidade de quadros de vídeo. As instruções podem adicionalmente fazer com que o um ou mais processadores efetuem operações, que incluem mapear a primeira área retangular em uma região de topo de uma representação esférica de dados de vídeo para o quadro de vídeo, em que mapear a primeira área retangular inclui dispor os dados de vídeo da primeira área retangular primeira área circular. As instruções podem adicionalmente fazer com que o um ou mais processadores efetuem operações que incluem identificar uma segunda área retangular do quadro de vídeo. As instruções podem adicionalmente fazer com que o um ou mais processadores efetuem operações que incluem mapear a segunda área retangular em uma região de baixo da representação esférica, em que a região de baixo compreende uma segunda área circular da representação esférica e em que mapear a segunda área retangular inclui dispor os dados de vídeo da segunda área retangular na segunda área circular.
[0019] Em outro exemplo, é fornecido um aparelho que inclui meios para obter dados de vídeo de 360 graus que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo da pluralidade de quadros de vídeo incluindo uma representação bidimensional de dados de vídeo para o quadro de vídeo. 0 aparelho compreende adicionalmente meios para identificar uma primeira área retangular de um quadro de vídeo a partir da pluralidade de quadros de vídeo. 0 aparelho compreende adicionalmente
Petição 870190092259, de 16/09/2019, pág. 16/118
12/83 meios para mapear a primeira área retangular em uma região de topo de uma representação esférica de dados de video para o quadro de video, em que a região de topo compreende uma primeira área circular da representação esférica e em que mapear a primeira área retangular inclui dispor os dados de video da primeira área retangular na primeira área circular. 0 aparelho compreende adicionalmente meios para identificar uma segunda área retangular do quadro de video. 0 aparelho compreende adicionalmente meios para mapear a segunda área retangular em uma região de baixo da representação esférica, em que a região de baixo compreende uma segunda área circular da representação esférica e em que mapear a segunda área retangular inclui dispor os dados de video da segunda área retangular na segunda área circular.
[0020] Sob alguns aspectos, a região de topo inclui uma superfície da representação esférica acima de uma primeira latitude da representação esférica, em que a região de baixo inclui uma superfície da representação esférica abaixo de uma segunda latitude da representação esférica, em que a primeira latitude e a segunda latitude são equidistantes de um equador da representação esférica.
[0021] Sob alguns aspectos, mapear a uma ou mais áreas retangulares inclui selecionar um ponto sobre a representação esférica e determinar uma localização de pixel no quadro de vídeo que corresponde ao ponto, em que a localização de pixel é determinada utilizando um mapeamento para converter uma esfera tridimensional para retângulo bidimensional. Estes aspectos incluem adicionalmente a amostragem de um pixel a partir da localização de pixel e
Petição 870190092259, de 16/09/2019, pág. 17/118
13/83 situar o pixel amostrado no ponto.
[0022] Sob alguns aspectos, mapear a primeira área retangular e mapear a segunda área retangular inclui selecionar um ponto sobre a representação esférica e determinar uma localização de pixel no quadro de vídeo que corresponde ao ponto, em que a localização de pixel é determinada utilizando um mapeamento para converter um círculo em um quadrado. Estes aspectos incluem adicionalmente a amostragem de um pixel a partir da localização de pixel e situar o pixel amostrado no ponto. Sob alguns aspectos, o mapeamento para converter um círculo em um quadrado reverte a distorção causada quando os dados de vídeo na primeira área retangular ou na segunda área retangular foram expandidos para preencher a primeira área retangular ou a segunda área retangular. Sob alguns aspectos, mapear a primeira área retangular e mapear a segunda área retangular inclui adicionalmente ajustar a localização de pixel utilizando uma função de curva gradual. Sob alguns aspectos, a função de curva gradual é utilizada na localização de pixel em uma área adjacente a pelo menos uma da uma ou mais áreas retangulares adicionais. Sob alguns aspectos, a função de curva gradual altera as localizações de pixels menos na direção de uma área do meio da primeira área retangular ou da segunda área retangular e mais na direção de uma área de fora da primeira área retangular ou da segunda área retangular.
[0023] Sob alguns aspectos, os métodos, aparelhos e meios legíveis por computador incluem adicionalmente mapear uma ou mais áreas retangulares adicionais do quadro de vídeo em uma região do meio da
Petição 870190092259, de 16/09/2019, pág. 18/118
14/83 representação esférica. Sob alguns aspectos, a uma ou mais áreas retangulares adicionais incluem uma vista esquerda, uma vista de frente e uma vista direita, em que a vista esquerda está localizada adjacente à vista de frente e em que a vista direita é adjacente à vista de frente.
[0024] Sob alguns aspectos, a uma ou mais áreas retangulares adicionais incluem uma vista de trás, em que a primeira área retangular é adjacente à vista de trás e em que a segunda área retangular é adjacente à vista de trás.
[0025] Sob alguns aspectos, mapear a primeira área retangular na região de topo inclui aplicar um ajustamento gradual em uma área onde a primeira área retangular é adjacente a uma terceira área retangular a partir de uma ou mais áreas retangulares adicionais e em que mapear a segunda área retangular na região de baixo inclui aplicar um ajustamento gradual em uma área onde a segunda área retangular é adjacente a uma quarta área retangular, que forma a uma ou mais áreas retangulares adicionais.
[0026] Este sumário não pretende identificar caracter!sticas-chave ou essenciais do objeto reivindicado, nem pretende ser utilizado isoladamente para determinar o alcance do objeto reivindicado. 0 objeto deve ser entendido, à guisa de referência, em relação às partes apropriadas da especificação, a qualquer um ou todos os desenhos, e a cada reivindicação desta patente como um todo.
[0027] 0 precedente, juntamente com outras características e modalidades, se tornará mais evidente em
Petição 870190092259, de 16/09/2019, pág. 19/118
15/83 referência à especificação em seguida, reivindicações e desenhos anexos.
DESCRIÇÃO RESUMIDA DOS DESENHOS [0028] O arquivo de patente ou pedido contém pelo menos um desenho executado em cores. Cópias desta publicação de patente ou pedido de patente com desenho(s) colorido(s) serão fornecidas pelo Escritório mediante solicitação e pagamento da taxa necessária.
[0029] As modalidades ilustrativas da presente revelação são descritas em detalhes abaixo com referência às figuras de desenho seguintes:
[0030] A Figura IA ilustra um quadro de vídeo que inclui uma projeção equirretangular de um quadro de vídeo de 360 graus.
[0031] A Figura 1B ilustra um quadro de vídeo que inclui uma projeção cúbica de mapa de um quadro de vídeo de 360 graus.
[0032] A Figura 2A é um diagrama que ilustra uma projeção esférica segmentada da superfície de uma esfera para um mapeamento vertical.
[0033] A Figura 2B é um diagrama que ilustra um quadro de vídeo exemplar gerado que utiliza uma disposição de 3 x 2 dos mapeamentos que podem ser gerados utilizando a projeção esférica segmentada.
[0034] A Figura 3 é um diagrama que ilustra um mapeamento de um círculo para um quadrado e um quadrado para um círculo exemplar.
[0035] A Figura 4 é um diagrama que ilustra uma saída exemplar para várias técnicas para mapeamento de um quadrado para um círculo e de um círculo para um
Petição 870190092259, de 16/09/2019, pág. 20/118
16/83 quadrado .
[0036] A Figura 5A e a Figura 5B são diagramas que ilustram regiões polares de dados de vídeo esférico exemplares que foram mapeadas utilizando uma projeção olho de peixe angular.
[0037] A Figura 6A e a Figura 6B são diagramas que ilustram regiões polares de dados de vídeo esférico exemplares que foram mapeadas utilizando as técnicas aqui discutidas.
[0038] A Figura 7 ilustra um quadro de vídeo exemplar gerado pelo mapeamento de um quadro de vídeo de 360 graus que utiliza uma projeção esférica segmentada e técnicas aqui discutidas.
[0039] A Figura 8 ilustra um primeiro quadro de vídeo parcial exemplar que foi mapeado sem utilizar a técnica de transição gradual discutida acima, e um segundo quadro de vídeo parcial que foi mapeado de acordo com a técnica de transição gradual.
[0040] A Figura 9 ilustra um gráfico no qual as saídas de uma função foram plotadas.
[0041] A Figura 10 é um diagrama de fluxo que ilustra um processo exemplar para processamento de dados de vídeo de acordo com as técnicas aqui discutidas.
[0042] A Figura 11 é um diagrama de fluxo que ilustra um processo exemplar para processamento de dados de vídeo de acordo com as técnicas aqui discutidas.
[0043] A Figura 12 é um diagrama de blocos que ilustra um dispositivo de codificação exemplar.
[0044] A Figura 13 é um diagrama de blocos que ilustra um dispositivo de decodificação exemplar.
Petição 870190092259, de 16/09/2019, pág. 21/118
17/83
DESCRIÇÃO DETALHADA [0045] Determinados aspectos e modalidades desta revelação são fornecidos abaixo. Alguns destes aspectos e modalidades podem ser aplicados de modo independente e alguns deles podem ser aplicados em combinação, conforme seria evidente para os versados na técnica. Na descrição que se segue, para propósitos explicativos, detalhes específicos são estabelecidos com a finalidade de proporcionar um entendimento completo das modalidades da invenção. Entretanto, será evidente que diversas modalidades podem ser praticadas sem estes detalhes específicos. As figuras e a descrição não pretendem ser restritivas.
[0046] A descrição subsequente somente fornece exemplos e não pretende limitar o alcance, aplicabilidade ou configuração da revelação. Ao invés disso, a descrição subsequente de diversos exemplos proporcionará aos versados na técnica uma descrição que permita implementar qualquer um dos exemplos. Deve ficar entendido que podem ser feitas diversas alterações na função e disposição dos elementos sem afastamento do espírito e alcance da invenção, tal como estabelecido nas reivindicações anexas.
[0047] São dados detalhes específicos na descrição seguinte para fornecer um entendimento completo dos exemplos. Contudo, como será entendido por qualquer um versado na técnica, os exemplos podem ser praticados sem estes detalhes específicos. Por exemplo, circuitos, sistemas, redes, processos e outros componentes podem ser mostrados como componentes em forma de diagrama de blocos com a finalidade de não obscurecer os exemplos em detalhes
Petição 870190092259, de 16/09/2019, pág. 22/118
18/83 desnecessários. Em outros casos, circuitos, processos, algoritmos, estruturas e técnicas bem conhecidos podem ser mostrados sem detalhes desnecessários com a finalidade de evitar o obscurecimento dos exemplos.
[0048] Também, há que se notar que exemplos individuais podem ser descritos como um processo que é retratado como um fluxograma, um diagrama de fluxo, um diagrama de fluxo de dados, um diagrama de estrutura ou um diagrama de blocos. Embora um fluxograma possa descrever as operações como um processo sequencial, muitas das operações podem ser efetuadas em paralelo ou concomitantemente. Além disso, a ordem das operações pode ser redisposta. Um processo é finalizado quando suas operações são completadas, mas pode haver etapas adicionais não incluídas em uma figura. Um processo pode corresponder a um método, uma função, um procedimento, uma sub-rotina, um subprograma, etc. Quando um processo corresponde a uma função, sua conclusão pode corresponder a um retorno da função para a função de chamada ou para a função principal.
[0049] 0 termo meio legível por computador inclui, mas não se limita a, dispositivos de armazenamento portáteis ou não portáteis, dispositivos de armazenamento ótico e diversos outros meios capazes de armazenar, conter ou portar instrução(ões) e/ou dados. Um meio legível por computador pode incluir um meio não transitório no qual os dados podem ser armazenados e que não inclui ondas portadoras e/ou sinais eletrônicos transitórios com propagação sem fio ou sobre conexões cabeadas. Exemplos de um meio não transitório podem incluir, mas não são limitados a, um disco magnético ou fita, meio de
Petição 870190092259, de 16/09/2019, pág. 23/118
19/83 armazenamento ótico tal como disco compacto (CD) ou disco versátil digital (DVD), memória flash, memória ou dispositivos de memória. Um meio legível por computador pode ter armazenado nele código e/ou instruções executáveis por máquina que podem representar um procedimento, uma função, um subprograma, um programa, uma rotina, uma subrotina, um módulo, um pacote de software, uma classe ou qualquer combinação de instruções, estruturas de dados ou instruções de programa. Um segmento de código pode ser acoplado a outro segmento de código ou a um circuito de hardware pela passagem e/ou recepção de informações, dados, argumentos, parâmetros ou conteúdos de memória. Informações, argumentos, parâmetros, dados, etc. podem ser passados, direcionados ou transmitidos através de qualquer meio adequado que inclui compartilhamento de memória, passagem de mensagens, passagem de tokens, transmissão de rede ou semelhantes.
[0050] Al ém do mais, diversos exemplos podem ser implementados por hardware, software, firmware, middleware, microcódigo, linguagens de descrição de hardware ou qualquer combinação deles. Quando implementado em software, firmware, middleware ou microcódigo, o código de programa ou segmentos de código para efetuar as tarefas necessárias (como, por exemplo, um produto de programa de computador) pode ser armazenado em um meio legível por computador ou legível por máquina. Um processador (es) pode(m) executar as tarefas necessárias.
[0051] A realidade virtual (VR) descreve um ambiente tridimensional gerado por computador dentro de um meio aparentemente real ou físico que pode ser interativo.
Petição 870190092259, de 16/09/2019, pág. 24/118
20/83
Em alguns casos, um usuário que experimenta um ambiente de realidade virtual utiliza equipamento eletrônico, tal como um monitor montado na cabeça (HMD) e, opcionalmente, também outros artigos que podem ser utilizados, tais como luvas equipadas com sensores, para interagir com o ambiente virtual. Conforme o usuário se move no mundo real, as imagens renderizadas no ambiente virtual também mudam, dando ao usuário a percepção de que ele está em movimento dentro do ambiente virtual. Em alguns casos, o ambiente virtual inclui o som relacionado com os movimentos do usuário, dando a ele a impressão de que os sons se originam a partir de uma direção especifica ou fonte. O video de realidade virtual pode ser capturado e renderizado em qualidade verdadeiramente alta, o que potencialmente proporciona uma experiência de realidade virtual autenticamente imersiva. Aplicações de realidade virtual incluem jogos, treinamento, educação, videos esportivos e compras on-line, dentre outros.
[0052] 0 video de 360 graus é capturado por video para exibição em um ambiente de realidade virtual. Por exemplo, um quadro de video de 360 graus pode incluir 360 graus totais visíveis a partir de um dado ponto, de modo que o quadro inclua pixels para toda ou parte de uma esfera centralizada sobre o ponto. Dados de vídeo de 360 graus também podem ser referidos como um vídeo esférico, porque o vídeo de 360 graus captura uma visão em todas as direções, de modo que cada quadro de vídeo de 360 graus possa ser visualizado como uma esfera de pixels capturados. Um quadro de vídeo de 360 graus pode ser gerado por computador e pode ser utilizado para apresentar ambientes
Petição 870190092259, de 16/09/2019, pág. 25/118
21/83 ficcionais. Em algumas aplicações, o video a partir do mundo real pode ser utilizado na apresentação de um ambiente de realidade virtual. Nessas aplicações, um usuário pode experimentar outro lugar no mesmo meio onde ele pode experimentar um lugar presente. Por exemplo, um usuário pode experimentar uma volta de caminhada por Berlim enquanto utiliza um sistema de video de 360 graus que está situado em São Francisco.
[0053] Um sistema de video de 360 graus pode incluir um dispositivo de captura de video e um dispositivo de exibição de video, e possivelmente também outros dispositivos intermediários, tais como servidores, armazenamento de dados e equipamento de transmissão de dados. Um dispositivo de captura de video pode incluir um conjunto de câmeras, isto é, um conjunto de múltiplas câmeras, cada uma orientada em uma direção diferente e capturando uma vista diferente. Em diversas aplicações, de duas a seis câmeras podem ser utilizadas para capturar uma vista total de 360 graus centralizada sobre a localização do conjunto de câmeras. Alguns dispositivos de captura de video podem utilizar menos câmeras, tais como, por exemplo, dispositivos de captura de video que capturam primeiramente vistas lado a lado. Um vídeo inclui quadros, onde um quadro é uma imagem parada, eletronicamente codificada, de uma cena. As câmeras capturam um determinado número de quadros por segundo, o que é referido como taxa de quadros de câmera.
[0054] Em alguns casos, para proporcionar uma visão integral de 360 graus, o vídeo capturado por cada uma das câmeras no conjunto de câmeras submete-se ao
Petição 870190092259, de 16/09/2019, pág. 26/118
22/83 costuramento de imagens. 0 costuramento de imagens, no caso de geração de video de 360 graus, envolve combinar ou mesclar quadros de vídeo a partir de câmeras adjacentes na área onde os quadros de vídeo se sobrepõem ou de outro modo se conectariam. O resultado é um quadro aproximadamente esférico de dados de vídeo. Para integrar-se com os sistemas de vídeo existentes, o quadro esférico de dados de vídeo pode ser mapeado para um formato planar. Para produzir um formato equirretangular, podem ser utilizadas técnicas de mapeamento tais como as utilizadas para gerar projeções de Mercator. Como outro exemplo, os pixels em um quadro de vídeo mesclado podem ser mapeados sobre os planos de uma forma cúbica ou alguma outra forma planar tridimensional (como, por exemplo, uma pirâmide, um octaedro, um decaedro etc.). Dispositivos de captura de vídeo e de exibição de vídeo funcionam sobre um princípio de rasterização - o que significa que um quadro de vídeo é tratado como uma grade de pixels - assim, planos quadrados ou retangulares são tipicamente utilizados para representar um ambiente esférico.
[0055] Quadros de vídeo de 360 graus, mapeados para uma representação planar, podem ser codificados e/ou compactados para armazenamento e/ou transmissão. A codificação e/ou compactação pode ser realizada utilizando um codec de vídeo (como, por exemplo, um codec que seja compatível com o padrão de Codificação de Vídeo de Alta Eficácia (HEVC), também conhecido como H.265, ou um codec que seja compatível com o padrão de Codificação Avançada de Vídeo, que também é conhecido como H.264, ou outro padrão de codificação adequado), que resulta em um fluxo de bits
Petição 870190092259, de 16/09/2019, pág. 27/118
23/83 de video codificado e/ou compactado ou grupo de fluxos de bits. A codificação de dados de vídeo que utiliza um codec de vídeo é descrita detalhes adicionais abaixo.
[0056] Em algumas implementações, o fluxo de bits de vídeo codificado pode ser armazenado e/ou encapsulado em um formato de meios ou formato de arquivo. Os fluxos de bits armazenados podem ser transmitidos, por exemplo, através de uma rede, para um dispositivo receptor que pode decodificar e renderizar o vídeo para exibição. Tal dispositivo receptor pode ser aqui referido como um dispositivo de exibição de vídeo. Por exemplo, um sistema de vídeo de 360 graus pode gerar arquivos encapsulados a partir dos dados de vídeo codificados (como, por exemplo, utilizando um formato de arquivo de meios base da Organização Internacional para Padronização (ISO) e/ou formatos de arquivo derivados). Por exemplo, o codec de vídeo pode codificar os dados de vídeo e um mecanismo de encapsulamento pode gerar os arquivos de meios encapsulando os dados de vídeo em um ou mais arquivos de meios de formato ISO. Alternativamente ou adicionalmente, os fluxos de bits armazenados podem ser fornecidos diretamente a partir de um meio de armazenamento para um dispositivo receptor.
[0057] Um dispositivo receptor também pode implementar um codec para decodificar e/ou descompactar um fluxo de bits de vídeo codificado. Nos casos em que os fluxos de bits de vídeo codificados são armazenados e/ou encapsulados em um formato de meios ou arquivo, o dispositivo receptor pode suportar o formato de meios ou arquivo que foi utilizado para empacotar o fluxo de bits de
Petição 870190092259, de 16/09/2019, pág. 28/118
24/83 video em um arquivo (ou arquivos) e pode extrair os dados de video (e possivelmente também de áudio) para gerar os dados de vídeo codificados. Por exemplo, o dispositivo receptor pode efetuar parse nos arquivos de meios com os dados de vídeo encapsulados para gerar os dados de vídeo codificados, e o codec no dispositivo receptor pode decodificar os dados de vídeo codificados.
[0058] 0 dispositivo receptor pode, então, enviar o sinal de vídeo decodificado para um dispositivo de renderização (como, por exemplo, um dispositivo de exibição de vídeo, dispositivo de reprodução ou outro dispositivo de renderização adequado). Dispositivos de renderização incluem, por exemplo, monitores montados na cabeça, televisores de realidade virtual e outros dispositivos de exibição de 80 ou 360 graus. Geralmente, um monitor montado na cabeça é apto para rastrear o movimento da cabeça do usuário e/ou o movimento dos olhos do usuário. 0 monitor montado na cabeça pode utilizar as informações de rastreamento para renderizar a parte de um vídeo de 360 graus gue corresponde à direção na qual o usuário está olhando, para que o usuário experimente o ambiente virtual da mesma maneira que ele experimentaria o mundo real. Um dispositivo de renderização pode renderizar um vídeo na mesma taxa de quadros em que o vídeo foi capturado ou em uma taxa de quadros diferente.
[0059] Projeções e mapeamentos são utilizados para representar superfícies tridimensionais (3-D) em mapas bidimensionais (2-D). Por exemplo, em aplicativos de vídeo de 360 graus, projeções e mapeamentos podem ser utilizados para mapear um quadro de vídeo de 360 graus, que captura
Petição 870190092259, de 16/09/2019, pág. 29/118
25/83 pixels em todas as direções a partir da câmera e pode assim ser visualizado como uma esfera em um quadro de video bidimensional. Exemplos de projeções bidimensionais incluem uma projeção equirretangular (ERP) e uma projeção cúbica de mapa (CMP), dentre outros. A Figura IA ilustra um quadro de vídeo 110 que inclui uma projeção equirretangular de um quadro de vídeo de 360 graus. Uma projeção equirretangular mapeia pontos sobre uma esfera para um mapa bidimensional mapeando linearmente a latitude e a longitude dos pontos sobre a esfera para coordenadas (x, y) no quadro de vídeo 110. A projeção equirretangular é apta para incluir todos os pixels a partir do quadro de vídeo de 360 graus no quadro de vídeo bidimensional 110, assim as transições a partir de uma área do quadro de vídeo 110 para outro são integrais. Transições integrais significam que um quadro de vídeo equirretangular pode ser codificado eficientemente em termos do tamanho do quadro de vídeo codificado. Isso ocorre porque operações, tais como estimativa de movimento e compensação de movimento, produzem melhores resultados quando o movimento entre os quadros de vídeo parece contínuo.
[0060] A Figura IB ilustra um quadro de vídeo 120 que inclui uma projeção cúbica de mapa de um quadro de vídeo de 360 graus. A projeção cúbica de mapa projeta pontos sobre a superfície de uma esfera para pontos sobre planos que são tangentes à superfície da esfera. Isto é, os pixels são ajustados sobre as seis faces de um cubo, onde a altura, a largura e o comprimento do cubo podem ser de tal modo que o cubo se ajuste na esfera. O exemplo da Figura IB é uma disposição de 3 x 2; isto é, três faces do cubo
Petição 870190092259, de 16/09/2019, pág. 30/118
26/83 cruzadas e duas faces do cubo altas. A disposição de 3 x 2 resulta em uma proporção de aspecto que pode ser codificada eficientemente. Por exemplo, menos dados por linha de pixels necessitam ser armazenados do que se fosse utilizado uma disposição tal como a de 1 x 2.
[0061] No quadro de vídeo exemplar 120 da Figura 1B, uma face do cubo, que pode ser considerada uma face de frente dianteira 122, é situada no meio da metade de cima do quadro de vídeo 120. As faces do cubo à direita e à esquerda da face de frente (como, por exemplo, uma face direita 124 e uma face esquerda 126) estão situadas sobre os lados direito e esquerdo, respectivamente, da metade de cima do quadro de vídeo 120. A face do cubo que pode ser considerada a face de trás 128 é rotacionada em -90 graus e situada no centro da metade de baixo do quadro de vídeo 120. A face do cubo que pode ser considerada a mais acima ou de topo 130 é situada à direita da face de trás 128 e é também rotacionada, de modo que a borda da face de topo 130 coincida com a borda da face de trás 128. A face do cubo que pode ser considerada a face de baixo ou inferior 132 é situada à esquerda da face de trás 128, e rotacionada para coincidir com a borda da face de trás 128.
[0062] No exemplo da Figura 1B, os pixels incluídos na face de frente 122 foram selecionados como a vista a ser situada diretamente em frente do espectador. Em outros exemplos, uma parte diferente dos dados de vídeo pode ser selecionada para ser a vista de frente. Adicionalmente, a disposição das faces do cubo, ilustrada no quadro de vídeo exemplar 120 da Figura 1B, é uma disposição exemplar. Outras disposições também são
Petição 870190092259, de 16/09/2019, pág. 31/118
27/83 possíveis .
[0063] Uma projeção cúbica de mapa pode ser mais compacta que uma projeção equirretangular, devido a alguma compactação de dados de pixel que acontece nas bordas das faces do cubo. 0 mapa cúbico também produz menos distorção da imagem, o que pode aperfeiçoar a eficiência da codificação.
[0064] Outra projeção é uma referida como a projeção esférica segmentada (SSP). A projeção esférica segmentada é descrita em Y. Ye, E. Alshina e J. Boyce, Descrições de algoritmo de conversão de formato de projeção e métricas de qualidade de vídeo em 36OLib, JVETE1003, jan. 2017, que é aqui incorporada, à guisa de referência, em sua totalidade e para todos os propósitos. A Figura 2A é um diagrama que ilustra a projeção esférica segmentada da superfície de uma esfera 202 para um mapeamento vertical bidimensional exemplar 210, gerado de acordo com a projeção esférica segmentada. A projeção esférica segmentada divide a esfera em três segmentos: um segmento de polo norte 204, um segmento de polo sul 208 e um segmento equatorial 206. Os segmentos de polo norte e polo sul são aqui também referidos como polos esféricos ou segmentos de polo esférico. No exemplo ilustrado, os três segmentos são divididos em uma latitude de 45 graus norte e 45 graus sul (como, por exemplo, como medidas a partir do centro da esfera 202). Em outros exemplos, os três segmentos podem ser divididos em um grau diferente de latitude.
[0065] No exemplo, o mapeamento bidimensional 210 ilustrado na Figura 2A, a área coberta pelo segmento de
Petição 870190092259, de 16/09/2019, pág. 32/118
28/83 polo norte 204 é mapeada para uma primeira região circular, que será referida como uma vista de topo 214. Similarmente, a área coberta pelo segmento de polo sul 208 é mapeada para uma segunda região circular, a qual será referida como uma vista de baixo 218. Neste exemplo, a vista de baixo 218 é situada no mapeamento 210 próxima a, e abaixo da vista de topo 214. A vista de topo 214 e a vista de baixo 218 são também marcadas como Face 0 e Face 1, respectivamente. O segmento equatorial 206 é dividido em quatro segmentos iguais, e cada segmento é mapeado para uma área quadrada, que são colocados no mapeamento 210 um abaixo do outro, abaixo da vista de baixo 218. Para propósitos deste exemplo, as áreas quadradas para a região equatorial 206, a partir do topo para baixo, serão referidas como: a vista esquerda 216a, a vista de frente 216b, a vista direita 216c e a vista de trás 216d ou Face 2, Face 3, Face 4 e Face 5, respectivamente. Em outros exemplos, as vistas esquerda, direita, de frente e de trás podem ser dispostas em ordens diferentes das descritas aqui. Em outros exemplos, as áreas nas quais o segmento equatorial 206 é mapeado podem não ser quadradas. Por exemplo, quando um ângulo outro que 45 graus é utilizado para delinear as regiões polares, as áreas retangulares que não são quadradas podem ajustar melhor os dados de pixel e podem resultar em menor distorção do que se, neste exemplo, os dados fossem mapeados para áreas quadradas.
[0066] Em um aplicativo de video, os pixels, a partir de cada segmento do polo norte 204 e segmento do polo sul 208, podem ser mapeados para as regiões circulares da vista de topo 214 e da vista de baixo 218,
Petição 870190092259, de 16/09/2019, pág. 33/118
29/83 respectivamente, utilizando uma projeção angular comumente conhecida como projeção olho de peixe. Neste exemplo, o diâmetro das regiões circulares em cada uma das vistas de topo 214 e das vistas de baixo 218 é o mesmo que a borda de cada um dos segmentos equatoriais, devido a cada cobertura de vista de 90 graus de latitude. Cada uma das vistas esquerda 216a, vista de frente 216b, vista direita 216c e vista de trás 216c podem ser geradas utilizando a projeção utilizada para gerar a projeção equirretangular, o que pode resultar em transições relativamente suaves entre estas vistas.
[0067] A Figura 2B é um diagrama que ilustra um quadro de vídeo bidimensional exemplar 220 gerado utilizando uma disposição de 3 x 2 dos mapeamentos que podem ser gerados utilizando a projeção esférica segmentada. No quadro de vídeo exemplar 220, a vista de frente 216b é situada no meio da metade de cima do quadro de vídeo 220. A vista esquerda 216a e a vista direita 216c são situadas à esquerda e à direita, respectivamente, da vista de frente 216b. A vista de trás 216d é rotacionada em -90 graus e situada no meio da metade inferior do quadro de vídeo 220. A vista de topo 212 também é rotacionada de tal modo que a borda esquerda da vista de topo seja alinhada com a borda direita da vista de trás 216d, e situada à direita da vista de trás 216d. A vista de baixo 218 também é rotacionada, de modo que a borda direita da vista de baixo 218 se alinhe com a borda esquerda da vista de trás 216d e seja situada à esquerda da vista de trás 216d. Neste exemplo, alinhar significa que pelo menos alguns pixels a partir de cada vista, que seriam adjacentes na esfera
Petição 870190092259, de 16/09/2019, pág. 34/118
30/83 original 202, sejam adjacentes no quadro de vídeo 220. Neste exemplo, as áreas de canto da vista de topo 212 e da vista de baixo 218, que estão fora da projeção olho de peixe, são preenchidas com uma cor cinza. Em outros exemplos, essas áreas de canto podem ser preenchidas com outra cor.
[0068] A projeção esférica segmentada pode gerar quadros de vídeo que têm melhor eficiência de codificação do que os quadros de vídeo gerados que utilizam a projeção equirretangular ou a projeção cúbica de mapas. Por exemplo, podem resultar em menos distorção e transições mais suaves quando se utiliza a projeção esférica segmentada, ambas as quais podem aperfeiçoar a eficiência de codificação.
[0069] Não obstante, uma ainda melhor eficiência de codificação pode ser alcançada. Por exemplo, nas vistas de topo e de baixo, as áreas de canto não capturam dados de pixel e, assim, adicionam dados a um quadro de vídeo que não são necessários quando da exibição dos conteúdos do quadro de vídeo. Esses dados extras podem, em alguns casos, também resultar em um quadro de vídeo codificado que é maior do que quando uma projeção cúbica de mapa é utilizada, embora fornecendo o mesmo número de pixels ativos.
[0070] A projeção esférica segmentada também introduz alguns novos problemas. Por exemplo, a circunferência das vistas de topo e de baixo é mais curta do que a largura combinada das vistas esquerda, de frente, direita e de trás. Essa diferença pode resultar em um limite visível, quando as vistas são reunidas para
Petição 870190092259, de 16/09/2019, pág. 35/118
31/83 exibição, entre a região de polo norte e a região equatorial, e a região equatorial e a região de polo sul.
[0071] Em diversas implementações, são fornecidos sistemas e métodos para processamento de dados de vídeo de 360 graus, que utilizam uma projeção esférica segmentada, que evitam os problemas discutidos acima. Em diversas implementações, a projeção esférica segmentada pode ser utilizada para mapear um quadro de vídeo de 360 graus para um formato retangular bidimensional, que pode ser mais fácil para manipulação por transmissores e receptores de vídeo. Na geração deste mapeamento, as regiões circulares de polo norte e polo sul da projeção esférica segmentada podem ser expandidas, utilizando diversas técnicas, para preencher uma região retangular do quadro de vídeo de saída. Ao mapear as regiões polares em todos os cantos de uma região retangular, todos os pixels disponíveis no quadro de vídeo de saída podem incluir dados utilizáveis. Por conseguinte, o perímetro das vistas de topo e de baixo pode ser feito igual ao comprimento total das vistas combinadas esquerda, de frente, direita e de trás, reduzindo assim qualquer distorção ou artefatos nos limites nas vistas de topo e de baixo. Além do mais, os pixels adicionais resultantes a partir da expansão das regiões polares podem resultar em amostragem mais densa de pixels nas regiões polares e, assim, uma representação mais precisa nessas áreas.
[0072] Conforme observado acima, a região equatorial da projeção esférica segmentada pode ser mapeada para uma ou mais áreas quadradas ou retangulares do quadro de vídeo de saída utilizando técnicas, tais como aquelas
Petição 870190092259, de 16/09/2019, pág. 36/118
32/83 que podem ser utilizadas para gerar uma projeção equirretangular. A região equatorial também pode ser mapeada utilizando outras projeções, tais como projeções cilíndricas de área igual. A utilização de projeções cilíndricas de área igual é discutida adicionalmente na Patente dos E.U.A. N.° (número de procuração 173550), depositado em, que é aqui incorporado à guisa de referência em sua totalidade.
[0073] Podem ser utilizadas técnicas de mapeamento de círculo-para-quadrado para o mapeamento de regiões polares da projeção de esfera segmentada para áreas quadradas ou retangulares do quadro de vídeo de saída. A Figura 3 é um diagrama que ilustra um exemplo do mapeamento de um círculo 302 para um quadrado 304 e de um quadrado 304 para um círculo 302. Diversas técnicas podem ser utilizadas para realizar estes mapeamentos, algumas dos quais estão descritas em M. Lambers, Mapeamentos entre Esfera, Disco e Quadrado, Jornal de Técnicas de Computação Gráfica, vol. 5, N.° 2, 2016, o qual é aqui incorporado, à guisa de referência, em sua totalidade e para todos os propósitos.
[0074] A Figura 4 é um diagrama que ilustra a saída exemplar para várias técnicas de mapeamento de um quadrado 404 para um círculo e de um círculo 402 para um quadrado. As técnicas ilustradas incluem alongamento radial 412, mapeamento de área igual de Shirley 414, mapeamento de quadracírculo de Fernández-Gausti 416 (que será referido aqui como o mapeamento de quadracírculo), mapeamento de arco elíptico 418 e mapeamento conformacional 420. Estas e outras técnicas podem produzir graus variantes de distorção em diferentes partes do mapeamento de saída. Em um
Petição 870190092259, de 16/09/2019, pág. 37/118
33/83 aplicativo de video, técnicas que resultam na menor quantidade de modificação da imagem original são utilizadas, tais como o mapeamento de quadracirculo 416 ou o mapeamento de arco elíptico 418. A manutenção da maior parte da imagem original, o tanto quanto for possível, pode ser vantajoso para a eficiência de codificação.
[0075]
Não obstante, qualquer uma das técnicas discutidas em Lambers, e muitas outras técnicas, pode ser utilizada para o mapeamento de um círculo para um quadrado. 0 mapeamento de quadracirculo e mapeamentos de arco elíptico serão utilizados como exemplos para ilustrar a utilização da projeção esférica segmentada para o mapeamento de dados de vídeo de 360 graus para um formato retangular bidimensional. Em outros exemplos, outras técnicas de mapeamento de quadrado-para-círculo podem ser utilizadas.
[0076] mapeamento de quadracirculo fornece um mapeamento de quadrado-para-círculo utilizando as seguintes equações:
lí - X ^x2+y2—x2y2 (2) [0077]
Nas equações (1) e (2), (x, y) são coordenadas Cartesianas dentro do quadrado e (u, v) são coordenadas Cartesianas dentro do círculo.
[0078] mapeamento de arco elíptico fornece um mapeamento de quadrado-para-círculo utilizando as seguintes equações:
Petição 870190092259, de 16/09/2019, pág. 38/118
34/83 ______
U — X 1-- (3)
L X2 v = y 11 —~ (4) [0079] Mapear um quadro de video de 360 graus para um formato retangular bidimensional envolve sua conversão, a partir do espaço tridimensional dos dados de vídeo de 360 graus para o espaço bidimensional do quadro de vídeo de saída. A execução dessa conversão pode incluir selecionar uma localização de pixel (m, n) no quadro de vídeo de saída e determinar um ponto (Φ, Θ) sobre os dados de vídeo esférico. Uma amostra de pixel pode ser tomada a partir do ponto designado por (Φ, Θ) e situada no ponto (m, n) no quadro de vídeo de saída.
[0080] Em alguns exemplos, tais como os discutidos acima, as regiões polares dos dados esféricos podem ser mapeadas para uma área retangular do quadro de vídeo de saída. Nestes exemplos, as dimensões do quadrado podem ser denotadas como A x A. Em outros exemplos, o comprimento e a largura da área retangular podem ser diferentes entre si.
[0081] Localizações de pixels em um quadro de vídeo são geralmente dadas em ordem raster, com a posição de pixel de número zero no canto de topo esquerdo do quadro de vídeo. Assim, uma primeira etapa na conversão de um espaço 3-D para um espaço 2-D é renormalizar as coordenadas (m, n) no quadro de vídeo para coordenadas Cartesianas (x, y). Isso pode ser realizado utilizando as seguintes equações:
Petição 870190092259, de 16/09/2019, pág. 39/118
35/83 f1\ x = - (m + -I - 1(5)
A\2/ / 1\.
y = t(«+ ~)-i«>) /4 \2/ [0082] Em um exemplo, as equações (5) e (6) podem ser combinadas com as equações de quadrado-paracírculo, fornecidas pelo mapeamento de quadracirculo, para determinar as coordenadas Cartesianas (u, v) em um circulo:
s - (7) g'x^+y2
A
U = “ SX (8) (9) [0083] Em outro exemplo, as equações (5) e (6) podem ser combinadas com as equações de quadrado-paracírculo fornecidas pelo mapeamento de arco elíptico para determinar (u, v) :
Figure BR112019019191A2_D0001
(10) (11) [0084] A próxima etapa é determinar as coordenadas polares tridimensionais que correspondem a (u, v) , conforme determinado em qualquer um dos exemplos acima, ou utilizar outro método para um mapeamento de quadradopara-círculo. Conforme ilustrado na Figura 2A, as coordenadas polares tridimensionais incluem um raio, um ângulo equatorial Φ (como, por exemplo, um ângulo ao longo
Petição 870190092259, de 16/09/2019, pág. 40/118
36/83 de um equador da esfera a partir de um ponto selecionado para ser grau zero) e um ângulo vertical Θ (como, por exemplo, um ângulo entre o equador e um dos polos) . As coordenadas polares para a região de polo norte (face 0 no exemplo da figura 2A), podem ser determinadas utilizando as seguintes equações:
, .. -ί ΛΑ φ — tan 11 - (12)
XV/
Figure BR112019019191A2_D0002
[0085] As coordenadas polares para a região de
polo sul (face 1 no exemplo da determinadas utilizando as seguintes figura 2A) equações: podem ser
φ = tan’1 β) + (14)
II | Sj C7-7 (15)
[0086] Tanto para a região de polo norte
quanto para a região de polo sul, — v [0087] A Figura 5A e a Figura 5B são diagramas que ilustram exemplos das regiões polares de dados de vídeo esférico que foram mapeadas utilizando uma projeção angular olho de peixe, que também pode ser descrita como um mapeamento circular polar. A Figura 5A ilustra uma vista de baixo 508, obtida por mapeamento da região de polo sul. A Figura 5B ilustra uma vista de topo 504, obtida por mapeamento da região de polo norte.
[0088] Conforme discutido acima, uma projeção olho de peixe resulta nos pixels das regiões da polo norte
Petição 870190092259, de 16/09/2019, pág. 41/118
37/83 e sul ocuparem uma área circular 522, 524 dentro das áreas quadradas 526, 528 nas quais os pixels são mapeados. A projeção é apta para preservar a maioria dos dados a partir dos dados de video esférico, embora algumas perdas possam acontecer devido aos pixels serem distorcidos na forma circular. Adicionalmente, cada uma das regiões quadradas tem áreas de canto 530 onde os pixels são preenchidos com cinza ou algum outro valor ao invés de dados de pixel a partir dos dados de video esférico. Quando codificadas, as áreas de canto 530 podem reduzir a eficiência de codificação devido a terem dados de não-video. Além disso, as áreas de canto 530 adicionam dados desnecessários, uma vez que os dados a partir das áreas de canto 530 serão descartados quando o quadro de video for reunido para exibição.
[0089] A Figura 6A e a Figura 6B são diagramas que ilustram exemplos das regiões polares de dados de vídeo esférico que foram mapeados utilizando as equações discutidas acima. A Figura 6A ilustra uma vista de baixo 608 e a Figura 6B ilustra uma vista de topo 604. A vista de baixo 608 e a vista de topo 604 começam cada uma com os mesmos dados que foram mapeados para as vistas ilustradas na Figura 5A, na Figura 5B. Na Figura 6A e na Figura 6B, entretanto, a aplicação das equações acima resulta nos dados a serem estendidos para se ajustarem às regiões de canto 630 de cada área quadrada 626, 628. Nestes exemplos, nenhum dado desnecessário é adicionado ao quadro de vídeo de saída. Além disso, mais dados de pixels, a partir dos dados de vídeo esférico, podem ser preservados estendendo os dados para as regiões de canto 630, ao invés de deformar
Petição 870190092259, de 16/09/2019, pág. 42/118
38/83 os dados na região circular.
[0090] A Figura 7 ilustra um exemplo de um quadro de video 710 gerado pelo mapeamento de um quadro de video de 360 graus que utiliza uma projeção esférica segmentada e as equações discutidas acima. 0 quadro de video exemplar 710 inclui uma disposição de 3 x 2 das vistas esquerda, de frente, direita, de baixo, de trás e de topo. Na metade de cima do quadro de video 710, a vista esquerda 726, a vista de frente 722 e as vistas direitas 724 estão dispostas lado a lado para formar uma região continua. Na metade de baixo do quadro de video 710, a vista de trás 728 é rotacionada em -90 graus e é situada no meio. Neste exemplo, os dados para a vista de topo 730 são rotacionados 45 graus antes de serem mapeados para a área quadrada à direita da vista de trás 728. A vista de baixo 732 é rotacionada de modo semelhante em 45 graus antes de ser mapeada para a área quadrada à esquerda da vista de trás 728 .
[0091] A disposição da vista de baixo 732, da vista de trás 728 e da vista de topo 730 na metade inferior do quadro de video 710 resulta em uma região quase continua. Transições suaves entre cada vista são desejáveis porque a codificação do quadro de video pode resultar em uma representação codificada mais compacta do que quando as
transições são abruptas. Em outros exemplos, outras
disposições das vistas podem ser utilizadas, tais como uma
disposição de 1 x 6 ou uma disposição de 6 x 1.
Alternativamente ou adicionalmente, em outros exemplos, as vistas de topo e de baixo podem ser situadas no topo ou de baixo do quadro de video 710, sobre a esquerda ou direita,
Petição 870190092259, de 16/09/2019, pág. 43/118
39/83 ou em alguma outra parte do quadro de video 710. Alternativamente ou adicionalmente, outras rotações das vistas de topo e de baixo podem ser aplicadas antes que as vistas de topo e de baixo sejam mapeadas para o quadro de vídeo, para alcançar diferentes regiões quase contínuas.
[0092] A continuidade entre os pixels no quadro de vídeo 710 pode resultar em melhor eficiência de codificação e também pode reduzir a ocorrência de artefatos ou defeitos visíveis quando o quadro de vídeo 710 é projetado para exibição. No quadro de vídeo exemplar 710 da Figura 7, alguma descontinuidade é evidente quando as regiões de canto 750 da vista de topo 730 e da vista de baixo 732 se encontram com a vista de trás 728. Esta descontinuidade pode ser devida aos diferentes métodos que estão sendo utilizados para produzir a vista de trás 728 e as vistas de topo e de baixo e/ou as diferenças na forma dos dados que estão sendo tomados do quadro esférico de vídeo.
[0093] A descontinuidade causada pelas regiões de canto 750 pode ser reduzida ajustando gradual e continuamente a amostragem dos pixels a partir dos dados de vídeo esférico. Tomando, por exemplo, a vista de topo 730, as amostras podem ser tomadas a partir dos dados esféricos de modo gradual a partir da borda adjacente à vista de trás 728 para (neste exemplo) a direita da vista de topo 730. Além disso, o ajuste de amostragem pode ser aplicado mais em direção das bordas de fora da vista de topo 730 (como, por exemplo, para as regiões de canto 750) do que para o meio, onde a descontinuidade com a vista de trás é menos evidente. Os mesmos ajustes podem ser aplicados quando do
Petição 870190092259, de 16/09/2019, pág. 44/118
40/83 mapeamento da vista de baixo 732.
[0094] Em diversas implementações, a amostragem gradual dos pixels inclui o ajuste da conversão de 2-D para 3-D discutida acima. Por exemplo, as coordenadas Cartesianas (x, y) que correspondem a um ponto (m, n) selecionado no quadro de vídeo podem ser determinadas utilizando as seguintes equações:
Figure BR112019019191A2_D0003
[0095] Tal como antes, A é o comprimento do lado da área quadrada no qual os dados de vídeo esférico estão sendo mapeados.
[0096] Para a vista de topo (como, por exemplo, face 0), a coordenada x pode ser ajustada de acordo com as seguintes equações:
x' - 1 4- tanh í —J (18) \ b J x — tan(tan~1 (x') x)/x' (.1 9) [0097] Para a vista de trás (como, por exemplo, face 1), a coordenada x pode ser ajustada de acordo com as seguintes equações:
(V““
----- (20) b / x — tan(tan 1(x') x)/x' (2i) [0098] Nas equações acima, b é um parâmetro que pode ser utilizado para variar a quantidade pela qual a
Petição 870190092259, de 16/09/2019, pág. 45/118
41/83 amostragem de pixel se altera a partir da borda da vista de topo ou de baixo em direção à ao meio da visão. A seleção de um valor para b é discutida mais abaixo. Em alguns exemplos, um valor de 0,2 para b reduz a descontinuidade entre a vista de trás e a vista de topo sem afetar significativamente a amostragem dos pixels na área central da vista de topo.
[0099] Note-se que no exemplo da Figura 7, porque a vista de trás 728 é rotacionada em -90 graus, o eixo x está na direção de cima a baixo e o eixo y na direção da esquerda para a direita.
[0100] Em diversas implementações, a coordenada y não é ajustada, conforme determinado pela equação (17). Além disso, a função de tangente hiperbólica é utilizada como uma função exemplar que produz uma transição gradual entre 0 e 1. Em outros exemplos, outras funções, tais como seno, funções polinomiais ou outras funções que produzem uma transição gradual, podem ser utilizadas.
[0101] Em diversas implementações, o valor de x ajustado e seu valor podem adicionalmente ser utilizados no mapeamento de quadrado-para-círculo discutido acima. A Figura 8 ilustra um exemplo de um primeiro quadro de video parcial 810 que foi mapeado sem utilizar a técnica de transição gradual discutida acima, e um segundo quadro de video parcial 820 que foi mapeado de acordo com a técnica de transição gradual. Neste exemplo, uma vista de topo 830 aparece no topo de cada quadro de video parcial, uma vista de baixo 832 está de baixo dos quadros de video parciais e uma vista de trás 828 está no meio.
Petição 870190092259, de 16/09/2019, pág. 46/118
42/83 [0102] No primeiro quadro de video parcial 810, a título de exemplo, várias descontinuidades 850 são contornadas. Estas descontinuidades 850 ocorrem onde a vista de topo 830 e a vista de baixo 832 se encontram com a vista de trás 828. As descontinuidades 850 aparecem como uma linha horizontal, que pode estar presente quando o quadro de vídeo é apresentado para exibição.
[0103] No segundo quadro de vídeo parcial 820, a área de descontinuidade 852 é também destacada, mas devido à equação da coordenada x ajustada ter sido utilizada para mapear a vista de topo 830 e a vista de baixo 832, a descontinuidade é menos evidente.
[0104] Note-se que, neste exemplo, o eixo geométrico x está na direção horizontal. Note-se também que, neste exemplo, o ajuste à coordenada x só é aplicado quando a vista de topo 830 e a vista de baixo 832 se encontram com a vista de trás 828 e não nas bordas de topo e de baixo do segundo quadro de vídeo parcial 820. Em outros exemplos, o ajuste pode ser aplicado também nas bordas de topo e de baixo do quadro.
[0105] Conforme observado acima, um parâmetro b é utilizado nas equações (18) e (19) para ajustar o grau para o qual a coordenada x altera-se conforme x diminui ou aumenta. Um valor maior para b pode resultar em uma transição mais abrupta a partir, por exemplo, da vista de trás para a vista de topo (resultando em uma descontinuidade possivelmente visível), e um valor menor para b pode resultar em uma transição mais suave. Um valor menor para b, entretanto, pode causar mais pixels em direção ao centro da visão a ser afetada. Limitar a
Petição 870190092259, de 16/09/2019, pág. 47/118
43/83 modificação dos pixels no centro da visão pode ser desejável, porque manter esses pixels o mais próximos possível à orientação dos pixels nos dados de vídeo esférico pode resultar tanto em melhor eficiência de codificação quanto em melhor aparência quando o quadro de vídeo for exibido.
[0106] Como exemplo do efeito de diferentes valores para b, a Figura 9 ilustra um gráfico 900 no qual (x'r y) é plotado de acordo com a equação (18) com valores diferentes de b. Onde a vista de topo se encontra com a vista de trás, y = -1, e a borda da vista de topo que é oposta à vista de trás está em y - 1. Em x' - 0, a amostragem gradual é desabilitada, o que significa, por exemplo, que o mapeamento de arco quadracírculo ou elíptico se aplica. Em x' = 1, acontece a amostragem que coincide matematicamente com a amostragem da borda da vista de trás. A plotagem mais à esquerda no gráfico 900 está para b = 0,2. Cada plotagem sucessiva, movendo-se a partir da esquerda para a direita, aumenta b em 0,1. A plotagem mais à direita está para b = 2,0.
[0107] Como pode ser visto a partir do exemplo ilustrado na Figura 9, à medida que b aumenta, o ajuste de amostragem afeta cada vez mais o mapeamento da vista de topo, até que todos os pixels na vista sejam afetados. Conforme observado anteriormente, modificar amostras na área do meio da visão pode afetar adversamente a eficiência de codificação do quadro de vídeo de saída. Em valores mais baixos de b, entretanto, a alteração para y decai rapidamente, o que resulta no ajustamento sendo limitado a uma determinada área.
Petição 870190092259, de 16/09/2019, pág. 48/118
44/83 [0108] Um quadro de video produzido de acordo com as técnicas discutidas acima pode ser codificado para armazenamento e/ou transmissão. 0 quadro de video pode ser subsequentemente decodificado para exibição. Para exibir o quadro de video, os pixels no quadro de video podem ser mapeados a partir da disposição bidimensional do quadro de video de trás para uma representação tridimensional, por exemplo, como dados esféricos. Os dados esféricos reconstruídos podem então ser exibidos, por exemplo, utilizando um dispositivo de exibição com capacidade de realidade virtual.
[0109] Para reconstruir os dados de vídeo esférico, operações inversas a partir daquelas utilizadas para mapear o quadro de vídeo podem ser aplicadas. Por exemplo, as vistas esquerda, de frente, direita e de trás a partir do quadro de vídeo podem ser mapeadas de volta para a região equatorial da projeção da esfera segmentada utilizando, por exemplo, o inverso da projeção utilizada para gerar uma projeção equirretangular. As vistas de topo e de baixo podem ser mapeadas de volta para as regiões de polo norte e sul pela seleção de um ponto (Φ, Θ) sobre a esfera (como, por exemplo, um ângulo horizontal e um ângulo vertical; o raio será constante) e determinando um ponto correspondente (m, n) no quadro de vídeo. Uma amostragem de pixel a partir do ponto (m, n) pode então ser situada em (Φ, Θ) .
[0110] Nos exemplos que se seguem, os mapeamentos de círculo-para-quadrado fornecidos pelo mapeamento de quadracírculo e pelo mapeamento de arco elíptico serão utilizados como exemplos de técnicas que
Petição 870190092259, de 16/09/2019, pág. 49/118
45/83 podem ser utilizadas para converter os dados de pixel armazenados em uma área quadrada do quadro de vídeo em uma área circular. Em outros exemplos, outras técnicas de mapeamento de círculo-para-quadrado podem ser utilizadas.
[0111] Para a vista de topo (como, por Q ç. Yí] exemplo, face 0), \4'2.1 θ Φ e t Para converter coordenadas polares (Φr Θ) em coordenadas Cartesianas (u, v) , as seguintes equações podem ser utilizadas para a vista de topo:
(—~&}sin φ
U - ——7?---- (22) (7Γ \ —Θ 1cosφ u - ~—Ê--- (23) [0112] Para a vista de baixo (como, por a f π π] u £ ! “ j I (A P (—TC 7Τ1 exemplo, face 1), % 2 e ψ k J . Para converter coordenadas polares (Φr Θ) em coordenadas Cartesianas (u, v) , as seguintes equações podem ser utilizadas para a vista de baixo:
(-+61) sin$
U = —--fc---- (24) (—+0) cos φ
V — '' τΐ (25) [0113] Em seguida, dado um ponto (u, v) , uma localização correspondente (x, y) no vídeo pode ser determinada. Como um primeiro exemplo, o mapeamento de quadracírculo fornece as seguintes equações para efetuar um mapeamento de círculo-para-quadrado:
Petição 870190092259, de 16/09/2019, pág. 50/118
46/83
W — —jú— UZ + V2 - J(u2 ψ ^2)(^2 + v2 Z 42ρ2^ (2(5)
V 2 N v (x,y) = fw w\ ,£ I I p. (-,- if W > 0 XV uJ (u, v), caso contrário (27} [0114] Na equação (26), sgn é a função de sinal.
[0115] Como um segundo exemplo, o mapeamento de arco elíptico fornece as seguintes equações para executar um mapeamento de círculo-para-quadrado:
x — |V2 + u2 — v2 + 2\/2u — |V2 + u2 - v2 - 2V2u (28) y — 15/2 — u2 + v2 + 2>/2v — 17*2 — w2 + v2 — 2y/2v (29) [0116] Po r último, as coordenadas (x, y) podem ser desnormalizadas para o sistema de coordenadas do quadro de vídeo. Conforme observado acima, (x, y) são coordenadas Cartesianas, embora o quadro de vídeo possa utilizar o canto esquerdo de cima como ponto (0, 0) . A conversão para as coordenadas (m, n) do quadro de vídeo pode ser determinada utilizando as seguintes equações:
m - |(x + 1) - 0.5 (30) n = ~(y+ 1)-0.5 (3i) [0117] Uma localização (m, n) determinada utilizando ou o mapeamento de quadracírculo ou o mapeamento de arco elíptico (ou outra técnica) pode ser utilizada para selecionar um pixel a partir do quadro de vídeo. 0 pixel pode então ser mapeado para o ponto (Φ, Θ) sobre a
Petição 870190092259, de 16/09/2019, pág. 51/118
47/83 representação esférica do quadro de vídeo.
[0118] Em diversas implementações, o ajustamento gradual de algumas partes do quadro de vídeo pode ter sido aplicado para reduzir a distorção visível que é causada por pixels não alinhados nos limites entre as vistas. Por exemplo, o ajustamento gradual pode ter sido efetuado utilizando as técnicas discutidas acima. Nestes exemplos, a coordenada x pode ser ajustada antes de converter (x, y) em (m, n) , utilizando-se as seguintes equações:
x' = 1 + tanh f-4—1) (32) \ b / x = tan_1(x'x)/tan_1(x')(33) [0119] Conforme observado anteriormente, um quadro de vídeo gerado que utiliza uma combinação do mapeamento de esfera segmentada e um mapeamento de arco de quadracírculo ou elíptico pode ser codificado mais eficientemente do que um quadro de vídeo gerado utilizando apenas o mapeamento de esfera segmentada. Por exemplo, para o mesmo número de amostras de mapas bidimensionais, o mapeamento de quadracírculo pode superar a projeção esférica segmentada em aproximadamente 1% por condições de teste comuns, conforme descrito em J. Boyce, E. Alshina, A. Abbas, Y. Ye, JVET condições de teste comum e procedimentos de avaliação para vídeo de 360 graus, JVETE1030, o qual é aqui incorporado à guisa de referência, em sua totalidade e para todos os propósitos.
[0120] A Figura 10 é um diagrama de fluxo que ilustra um processo exemplar 1000 para processamento de dados de vídeo de acordo com as técnicas discutidas acima.
Petição 870190092259, de 16/09/2019, pág. 52/118
48/83
Em 1002, o processo 1000 inclui obter dados de vídeo de 360 graus, que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo da pluralidade de quadros de vídeo incluindo uma representação esférica de dados de vídeo para o quadro de vídeo. Em alguns exemplos, os dados de vídeo de 360 graus podem ser obtidos diretamente a partir de um dispositivo de captura de vídeo. Nestes exemplos, a representação esférica pode incluir múltiplas imagens que foram capturadas simultaneamente, tais como múltiplas imagens retangulares ou uma ou mais imagens olho de peixe. Alternativamente ou adicionalmente, os dados de vídeo de 360 graus podem incluir quadros de vídeo nos quais múltiplas imagens foram costuradas juntas pelo dispositivo de captura de vídeo ou outro dispositivo. Em alguns exemplos, os dados de vídeo de 360 graus obtidos em um formato retangular (como, por exemplo, um formato de mapa equatorial ou cúbico) podem ser mapeados para uma representação esférica.
[0121] Em 1004, o processo 1000 inclui segmentar um quadro de vídeo a partir da pluralidade de quadros de vídeo em uma região de topo, uma região do meio e uma região de baixo. A região de topo inclui uma primeira área circular da representação esférica. A região de baixo inclui uma segunda área circular da representação esférica que é oposta à representação esférica da primeira área circular. A região do meio inclui uma área da representação esférica não incluída na região de topo ou na região de baixo. O quadro de vídeo pode ser segmentado em uma primeira latitude acima de um equador da representação esférica e uma segunda latitude abaixo do equador. A
Petição 870190092259, de 16/09/2019, pág. 53/118
49/83 primeira latitude e a segunda latitude podem ser equidistantes do equador. Em alguns exemplos, o ângulo das latitudes é de 45 graus a partir do equador. Em outros exemplos, o ângulo das latitudes é maior ou menor que 45 graus.
[0122] Em algumas implementações, o processo 1000 inclui mapear a região do meio para uma ou mais áreas retangulares de um quadro de vídeo de saída. Mapear a região do meio pode incluir, por exemplo, selecionar uma localização de pixel no quadro de vídeo de saída e determinar um ponto sobre a representação esférica que corresponde à localização de pixel. Neste exemplo, o ponto sobre a representação esférica pode ser determinado utilizando um mapeamento para converter um retângulo bidimensional em uma esfera tridimensional, tal como uma projeção equirretangular. Mapear região do meio pode incluir ainda a amostragem de um pixel no ponto da representação esférica e situar o pixel amostrado na localização de pixel no quadro de vídeo.
[0123] Em 1006, o processo 1000 inclui mapear a região de topo em uma primeira área retangular do quadro de vídeo de saída. Mapear a região de topo pode incluir expandir os dados de vídeo incluídos na primeira área circular para preencher a primeira área retangular, de modo que a primeira área retangular não tenha localizações de pixels que não incluam pixels do quadro de vídeo.
[0124] Em 1008, o processo 1000 inclui mapear
a região de baixo em uma segunda área retangular do quadro
de vídeo de saída . Mapear a região de baixo pode incluir
expandir os dados de vídeo, que incluem a segunda área
Petição 870190092259, de 16/09/2019, pág. 54/118
50/83 circular, para preencher a segunda área retangular.
[0125] Mapear a região de topo e mapear a região de baixo podem incluir, por exemplo, selecionar uma localização de pixel no quadro de vídeo de saída e determinar um ponto sobre a representação esférica que corresponde à localização de pixel. Neste exemplo, o ponto sobre a representação esférica pode ser determinado utilizando um mapeamento para conversão de um quadrado em um círculo, tal como um mapeamento de quadracírculo ou um mapeamento de arco elíptico ou outro mapeamento. Mapear as regiões de topo e de baixo pode incluir ainda a amostragem de um pixel a partir do ponto sobre a representação esférica e situar o pixel amostrado na localização de pixel no quadro de vídeo de saída.
[0126] Em alguns exemplos, o mapeamento para converter um quadrado em um círculo minimiza a distorção no quadro de vídeo de saída. Nestes exemplos, a área central da primeira e segunda áreas retangulares inclui um mapeamento direto da representação esférica para o quadro de vídeo de saída, de tal forma que pequena distorção resulta nesta área.
[0127] Em alguns exemplos, o mapeamento das regiões de topo e de baixo pode incluir adicionalmente ajustar a localização de pixel utilizando uma função de curva gradual. A função de curva gradual pode ser utilizada, por exemplo, em localizações de pixel em uma área adjacente a pelo menos uma das uma ou mais áreas retangulares. Por exemplo, quando a primeira área retangular é adjacente a outra área retangular (como, por exemplo, uma das áreas retangulares para a região do meio),
Petição 870190092259, de 16/09/2019, pág. 55/118
51/83 a função de curva gradual pode ser aplicada. Como outro exemplo, onde a segunda área retangular é adjacente à outra área retangular, a função de curva gradual pode ser aplicada. A aplicação da função de curva gradual pode reduzir a distorção que pode aparecer onde a primeira e a segunda áreas retangulares se encontram com outras áreas retangulares no quadro de vídeo. A função de curva gradual pode alterar as localizações de pixels menos na direção de uma área do meio da primeira área retangular ou da segunda área retangular, e mais na direção de uma área de fora da primeira área retangular ou da segunda área retangular. Exemplos de funções de curva gradual incluem tangente hiperbólica, seno, funções polinomiais e outras funções.
[0128] Em alguns exemplos, a região do meio inclui partes que podem ser designadas como uma vista esquerda, uma de frente e direita. Nestes exemplos, a parte designada como a vista esquerda pode estar situada no quadro de vídeo de saída adjacente à parte designada como vista de frente. Além disso, a parte designada como vista direita está situada adjacente à vista de frente. Nestes exemplos, as vistas esquerda, de frente e direita podem formar uma área contínua no quadro de vídeo de saída, onde o contínuo significa que os pixels que são adjacentes na representação esférica estão situados adjacentes uns aos outros no quadro de vídeo de saída.
[0129] Em alguns exemplos, a região do meio inclui uma parte que pode ser designada como uma vista de trás. Nestes exemplos, a região de baixo pode estar situada no quadro de vídeo de saída adjacente à parte designada como vista de trás, e a região de topo também pode estar
Petição 870190092259, de 16/09/2019, pág. 56/118
52/83 situada adjacente à vista de trás. Nestes exemplos, a região de baixo e a região de topo podem formar uma área no quadro de video de saída que é substancialmente contínua.
[0130] Em alguns exemplos, mapear a região de topo em uma primeira área retangular pode incluir aplicar um ajustamento gradual em uma área onde a primeira área retangular é adjacente a uma área retangular de uma ou mais áreas retangulares. Por exemplo, onde a primeira área retangular é adjacente à outra área retangular, a amostragem de pixels a partir dos dados de vídeo esférico pode ser deslocada para melhor alinhamento com os pixels a partir de outra área retangular. Esse ajustamento gradual pode ser gradualmente diminuído para localizações de pixels que estão mais distantes da borda da primeira área retangular. Em alguns exemplos, o mesmo ajustamento gradual pode ser aplicado à segunda área retangular.
[0131] Em alguns exemplos, o quadro de vídeo de saída tem uma proporção de aspecto de três-por-dois. Uma proporção de aspecto de três-por-dois pode ser codificado mais eficientemente que outras proporções. Em alguns exemplos, o quadro de vídeo de saída pode ser codificado, utilizando, por exemplo, o codec HEVC ou AVC (ou outro codec) para armazenamento e/ou transmissão.
[0132] A Figura 11 é um diagrama de fluxo que ilustra um processo exemplar 1100 para processamento de dados de vídeo de acordo com as técnicas discutidas acima. Em 1102, o processo 1100 inclui obter dados de vídeo de 360 graus, que inclui uma pluralidade de quadros de vídeo, cada quadro de vídeo a partir da pluralidade de quadros de vídeo, que inclui uma representação bidimensional de dados
Petição 870190092259, de 16/09/2019, pág. 57/118
53/83 de video para o quadro de video. Em alguns exemplos, os dados de video de 360 graus podem ser obtidos a partir de um fluxo de bits codificado. O fluxo de bits codificado pode ter sido lido a partir de um local de armazenamento e/ou pode ter sido recebido a partir de uma transmissão. Nestes exemplos, o fluxo de bits pode ser decodificado em quadros de video retangulares.
[0133] Em 1104, o processo 1100 inclui identificar uma primeira área retangular de um quadro de video a partir da pluralidade de quadros de video. Em 1106, o processo 1100 inclui mapear a primeira área retangular em uma região de topo de uma representação esférica de dados de video para o quadro de video. A região de topo pode compreender uma primeira área circular da representação esférica. Mapear a primeira área retangular pode incluir dispor os dados de video da primeira área retangular na primeira área circular.
[0134] Em 1108, o processo 1100 inclui identificar uma segunda área retangular do quadro de videos. Em 1110, o processo 1100 inclui mapear a segunda área retangular em uma região de baixo da representação esférica. A região de baixo pode compreender uma segunda área circular da representação esférica. Mapear a segunda área retangular pode incluir dispor os dados de video da segunda área retangular na segunda área circular.
[0135] A região de topo pode incluir, por exemplo, uma superfície da representação esférica que está acima de uma primeira latitude da representação esférica. Como outro exemplo, a região de baixo pode incluir uma superfície da representação esférica abaixo de uma segunda
Petição 870190092259, de 16/09/2019, pág. 58/118
54/83 latitude da representação esférica. Neste exemplo, a primeira latitude e a segunda latitude podem ser equidistantes de um equador da representação esférica. Em alguns exemplos, as latitudes estão a 45 graus a partir do equador. Em alguns exemplos, as latitudes são graus maiores que ou menores que 45 graus.
[0136] Em alguns exemplos, mapear a primeira área retangular e mapear a segunda área retangular inclui selecionar um ponto sobre a representação esférica e determinar uma localização de pixel no quadro de vídeo que corresponde ao ponto. A localização de pixel pode ser determinada utilizando um mapeamento para converter um círculo em um quadrado, tal como um mapeamento de quadracírculo, um mapeamento de arco elíptico ou outro mapeamento. Esses mapeamentos podem resultar em um círculo sendo compactado ou transformado em um quadrado. Mapear a primeira e segunda áreas retangulares pode incluir adicionalmente a amostragem de um pixel a partir da localização de pixel e situar o pixel amostrado no ponto sobre a representação esférica.
[0137] Em alguns exemplos, o mapeamento para converter um círculo em um quadrado reverte a distorção causada quando os dados de vídeo na primeira área retangular ou na segunda área retangular foram expandidos para preencher a primeira área retangular ou a segunda área retangular. Por exemplo, as primeira e segunda áreas retangulares podem ter sido preenchidas com dados de pixel convertendo uma região circular de uma representação esférica do vídeo de 360 graus em uma região retangular, o que pode resultar em alguma distorção visível dos pixels.
Petição 870190092259, de 16/09/2019, pág. 59/118
55/83
Ao mapear os pixels de uma forma retangular de volta para uma forma circular, a distorção pode ser removida.
[0138] Em alguns exemplos, mapear a primeira área retangular e mapear a segunda área retangular inclui adicionalmente ajustar a localização de pixel utilizando uma função de curva gradual. Por exemplo, a função de curva gradual pode ser utilizada na localização de pixel em uma área adjacente a pelo menos uma das áreas retangulares adicionais. Nestes exemplos, uma transição continua entre pixels adjacentes à primeira ou segunda áreas retangulares e pixels na primeira ou segunda áreas retangulares pode ser preservada quando os pixels são mapeados para a representação esférica. Em alguns exemplos, a função de curva gradual altera as localizações de pixels menos para uma área do meio da primeira área retangular ou da segunda área retangular, e mais na direção de uma área de fora da primeira área retangular ou da segunda área retangular.
[0139] Em algumas implementações, o processo 1100 inclui mapear uma ou mais áreas retangulares adicionais do quadro de video em uma região do meio da representação esférica. Mapear uma ou mais áreas retangulares adicionais pode incluir, por exemplo, selecionar um ponto sobre a representação esférica e determinar uma localização de pixel no quadro de video que corresponde ao ponto. A localização de pixel pode ser determinada utilizando um mapeamento para converter uma esfera tridimensional em um retângulo bidimensional, tal como uma projeção equirretangular, uma projeção cúbica de mapa ou outra projeção. Mapear uma ou mais áreas retangulares adicionais pode incluir adicionalmente a
Petição 870190092259, de 16/09/2019, pág. 60/118
56/83 amostragem de um pixel a partir da localização de pixel e situar o pixel amostrado no ponto sobre a representação esférica.
[0140] Em alguns exemplos, a uma ou mais áreas retangulares adicionais incluem áreas que podem ser designadas como uma vista esquerda, uma vista de frente e uma vista direita. Nestes exemplos, a área designada como a vista esquerda pode estar localizada adjacente à área designada como vista de frente e a área designada como vista direita também pode estar localizada adjacente à vista de frente. Nestes exemplos, as vistas esquerda, de frente e direita podem formar uma área continua no quadro de video.
[0141] Em alguns exemplos, a uma ou mais áreas retangulares adicionais incluem uma área que pode ser designada como uma vista de trás. Nestes exemplos, a primeira área retangular pode ser adjacente à área designada como a vista de trás, e a segunda área retangular também pode ser adjacente à vista de trás. Nestes exemplos, a primeira área retangular, a vista de trás e a segunda área retangular podem formar uma área continua no quadro de video.
[0142] Em alguns exemplos, mapear a primeira área retangular na região de topo pode incluir aplicar um ajustamento gradual em uma área onde a primeira área retangular é adjacente a outra área retangular. Nestes exemplos, as localizações de pixels no quadro de vídeo podem ter sido deslocadas, de modo que é produzida uma transição contínua entre a primeira área retangular e a outra área retangular. Essa transição contínua pode ser
Petição 870190092259, de 16/09/2019, pág. 61/118
57/83 preservada na representação esférica pela aplicação do ajustamento gradual quando os pixels são mapeados a partir do quadro de vídeo para a representação esférica. Um ajustamento gradual semelhante também pode ser aplicado à segunda área retangular.
[0143] Em alguns exemplos, os processos 1000, 1100 podem ser efetuados por um dispositivo de computação ou um aparelho, tal como um dispositivo de codificação de vídeo (como, por exemplo, o dispositivo de codificação 104 e/ou o dispositivo de decodificação 112). Um dispositivo de codificação de vídeo pode incluir, por exemplo, um sistema de codificação de vídeo e/ou um sistema de decodificação de vídeo. Em alguns casos, o dispositivo ou aparelho de computação pode incluir um processador, microprocessador, microcomputador ou outro componente de um dispositivo que é configurado para conduzir as etapas dos processos 1000, 1100. Em alguns exemplos, o dispositivo ou aparelho de computação pode incluir câmera configurada para capturar dados de vídeo (como, por exemplo, uma sequência de vídeo) que inclui quadros de vídeo. Por exemplo, o dispositivo de computação pode incluir um dispositivo de câmera (como, por exemplo, uma câmera IP ou outro tipo de dispositivo de câmera) que pode incluir um codec de vídeo. Em alguns exemplos, uma câmera ou outro dispositivo de captura que captura os dados de vídeo é separado do dispositivo de computação, em cujo caso o dispositivo de computação recebe os dados de vídeo capturados. O dispositivo de computação pode adicionalmente incluir uma interface de rede configurada para comunicar os dados de vídeo. A interface de rede pode ser configurada para comunicar dados com base
Petição 870190092259, de 16/09/2019, pág. 62/118
58/83 em Protocolo Internet (IP).
[0144] Os processos 1000, 1100 são ilustrados como diagramas de fluxo lógico, cuja operação representa uma seguência de operações que podem ser implementadas em hardware, instruções de computador ou uma combinação delas. No contexto de instruções de computador, as operações representam instruções executáveis por computador, armazenadas em um ou mais meios de armazenamento legíveis por computador que, quando executadas por um ou mais processadores, efetuam as operações enumeradas. Geralmente, as instruções executáveis por computador incluem rotinas, programas, objetos, componentes, estruturas de dados e semelhantes, que efetuam funções específicas ou implementam tipos de dados específicos. A ordem na qual as operações são descritas não se destina a ser interpretada como uma limitação, e qualquer número das operações descritas pode ser combinado em qualquer ordem e/ou em paralelo para implementar os processos.
[0145] Além disso, os processos 1000, 1100 podem ser efetuados sob o controle de um ou mais sistemas de computador configurados com instruções executáveis e podem ser implementados como código (como, por exemplo, instruções executáveis, um ou mais programas de computador ou um ou mais aplicativos) coletivamente executados sobre um ou mais processadores, por hardware ou combinações dos mesmos. Conforme referido acima, o código pode ser armazenado em um meio de armazenamento legível por computador ou legível por máquina, por exemplo, na forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio
Petição 870190092259, de 16/09/2019, pág. 63/118
59/83 de armazenamento legível por computador ou legível por máquina pode ser não transitório.
[0146] Os dados de vídeo capturados por uma câmera (como, por exemplo, uma câmera olho de peixe ou outra câmera ou câmeras adequadas) podem ser codificados para reduzir a quantidade de dados necessários para transmissão e armazenamento. Técnicas de codificação podem ser implementadas em um exemplo de sistema de codificação e decodificação de vídeo. Em alguns exemplos, um sistema inclui um dispositivo de origem que fornece dados de vídeo codificados para serem decodificados em um tempo posterior por um dispositivo de destino. Especificamente, o dispositivo de origem fornece os dados de vídeo ao dispositivo de destino através de um meio legível por computador. 0 dispositivo de origem e o dispositivo de destino podem incluir qualquer um de uma ampla gama de dispositivos, que inclui computadores desktop, computadores notebooks (isto é, laptop), computadores tablet, set-top boxes, aparelhos telefônicos tais como os assim chamados telefones inteligentes, os assim chamados pads inteligentes, televisores, câmeras, dispositivos de exibição, tocadores de meios digitais, consoles para jogos de vídeo, dispositivo de fluxo contínuo de vídeo ou semelhantes. Em alguns casos, o dispositivo de origem e o dispositivo de destino podem ser equipados para comunicação sem fio.
[0147] Um sist ema de codificação de vídeo, que inclui um sistema de codificação e/ou um sistema de decodificação, pode ser utilizado para codificar e/ou decodificar dados de vídeo. Um exemplo de sistema de
Petição 870190092259, de 16/09/2019, pág. 64/118
60/83 codificação e decodificação de video inclui um dispositivo de origem que fornece dados de video codificados para serem decodificados posteriormente por um dispositivo de destino. Especificamente, o dispositivo de origem fornece os dados de video para o dispositivo de destino através de um meio legível por computador. O dispositivo de origem e o dispositivo de destino podem incluir qualquer um de uma ampla gama de dispositivos, que inclui computadores desktop, computadores notebooks (isto é, laptop), computadores tablet, set-top boxes, aparelhos telefônicos tais como os assim chamados telefones inteligentes, os assim chamados pads inteligentes, televisores, câmeras, dispositivos de exibição, tocadores de meios digitais, consoles para jogos de vídeo, dispositivo de fluxo contínuo de vídeo ou semelhantes. Em alguns casos, o dispositivo de origem e o dispositivo de destino podem ser equipados para comunicação sem fio.
[0148] 0 dispositivo de destino pode receber os dados de vídeo codificados a serem decodificados através do meio legível por computador. 0 meio legível por computador pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados a partir do dispositivo de origem para o dispositivo de destino. Em um exemplo, o meio legível por computador pode compreender um meio de comunicação para habilitar o dispositivo de origem a transmitir dados de vídeo codificados diretamente para o dispositivo de destino em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitido para o
Petição 870190092259, de 16/09/2019, pág. 65/118
61/83 dispositivo de destino. 0 meio de comunicação pode compreender qualquer meio de comunicação sem fio ou cabeado, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. 0 meio de comunicação pode fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área estendida ou uma rede global, como a Internet. 0 meio de comunicação pode incluir roteadores, comutadores, estações base ou outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de origem para o dispositivo de destino.
[0149] Em alguns exemplos, dados codificados podem ser transmitidos a partir da interface de saída para um dispositivo de armazenamento. Da mesma maneira, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada. 0 dispositivo de armazenamento pode incluir qualquer um de diversos meios de armazenamento de dados distribuídos ou acessados localmente, tais como uma unidade rígida, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou quaisquer outros meios de armazenamento digitais para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que possa armazenar o vídeo codificado gerado pelo dispositivo de origem. 0 dispositivo de destino pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento através de fluxo contínuo ou download. 0 servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e
Petição 870190092259, de 16/09/2019, pág. 66/118
62/83 transmitir esses dados de video codificados para o dispositivo de destino. Servidores de arquivos exemplares incluem um servidor de Web (como, por exemplo, para um sítio de Web) , um servidor FTP, dispositivos de armazenamento anexados à rede (NAS) ou uma unidade de disco local. 0 dispositivo de destino pode acessar os dados de vídeo codificados por meio de qualquer conexão de dados padrão, que inclui uma conexão com a Internet. Isto pode incluir um canal sem fio (como, por exemplo, uma conexão Wi-Fi) uma conexão cabeada (como, por exemplo, 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 a partir do dispositivo de armazenamento pode ser uma transmissão de fluxo contínuo, uma transmissão de download ou uma combinação delas.
[0150] As técnicas desta revelação não se limitam necessariamente a aplicações ou configurações sem fio. As técnicas descritas podem ser aplicadas à codificação de vídeo em suporte de uma variedade de aplicações multimídia, tais como broadcasts de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões de vídeo de fluxo contínuo da Internet, tais como um fluxo contínuo 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 pode ser configurado para suportar transmissão de vídeo de via única ou via dupla para
Petição 870190092259, de 16/09/2019, pág. 67/118
63/83 suportar aplicações tais como fluxo contínuo de vídeo, repetição de vídeo, execução de broadcasts de vídeo e/ou telefonia com vídeo.
[0151] Em um exemplo, o dispositivo de origem inclui uma fonte de vídeo, um codificador de vídeo e uma interface de saída. 0 dispositivo de destino pode incluir uma interface de entrada, um decodificador de vídeo e um dispositivo de exibição. 0 codificador de vídeo do dispositivo fonte pode ser configurado para aplicar as técnicas aqui divulgadas. Em outros exemplos, um dispositivo de origem e um dispositivo de destino podem incluir outros componentes ou disposições. Por exemplo, o dispositivo de origem pode receber dados de vídeo a partir de uma fonte de vídeo externa, tal como uma câmera externa. Da mesma maneira, o dispositivo de destino pode formar interface com um dispositivo de exibição externo, ao invés de incluir um dispositivo de exibição integrado.
[0152] 0 sistema exemplar acima é meramente um exemplo. As técnicas para processamento de dados de vídeo em paralelo podem ser efetuadas por qualquer dispositivo de codificação e/ou decodificação de vídeo digital. Embora geralmente as técnicas desta revelação sejam efetuadas por um dispositivo de codificação de vídeo, as técnicas também podem ser efetuadas por um codificador/decodificador de vídeo, tipicamente referido como um CODEC. Além do mais, as técnicas desta revelação também podem ser efetuadas por um pré-processador de vídeo. 0 dispositivo de origem e o dispositivo de destino são meramente exemplos de tais dispositivos de codificação nos quais o dispositivo de origem gera dados de vídeo codificados para transmissão
Petição 870190092259, de 16/09/2019, pág. 68/118
64/83 para o dispositivo de destino. Em alguns exemplos, os dispositivos de origem e destino podem funcionar de uma maneira substancialmente simétrica, de modo que cada um dos dispositivos inclua componentes de codificação e decodificação de vídeo. Consequentemente, sistemas exemplares podem suportar transmissão de vídeo de uma via ou de dupla via entre dispositivos de vídeo, como, por
exemplo, para transmissão contínua de vídeo, repetição de
vídeo, execução de broadcasts de vídeo, ou telefonia com
vídeo.
[0153] A fonte de vídeo pode incluir um
dispositivo de captura de vídeo, tal como uma câmera de
vídeo, um arquivo de vídeo que contém vídeos previamente captados, e/ou uma interface de alimentação de vídeo para receber vídeo a partir de um provedor de conteúdo de vídeo. Como alternativa adicional, a fonte de vídeo pode gerar dados baseados em computação gráfica como a fonte de vídeo ou uma combinação de vídeos ao vivo, vídeos arquivados e vídeos gerados por computador. Em alguns casos, se a fonte de vídeo for uma câmera de vídeo, o dispositivo de origem e o dispositivo de destino podem formar os chamados telefones com câmera ou telefones com vídeo. Conforme mencionado acima, contudo, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicações sem fio e/ou cabeados. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo. As informações de vídeo codificadas podem ser transmitidas pela interface de saída para em um meio legível por computador.
Petição 870190092259, de 16/09/2019, pág. 69/118
65/83 [0154] Conforme observado, o meio legível por computador pode incluir meios transitórios, tais como um broadcast sem fio ou rede de transmissão cabeado ou meio de armazenamento (isto é, meio de armazenamento não transitório), tal 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 a partir do dispositivo de origem e fornecer os dados de vídeo codificados para o dispositivo de destino, como, por exemplo, através de transmissão de rede. Da mesma maneira, um dispositivo de computação de uma instalação de produção de meios, tal como uma instalação de estampagem de disco, pode receber dados de vídeo codificados a partir do dispositivo de origem e produzir um disco que contém os dados de vídeo codificados. Portanto, o meio legível por computador pode ser entendido como incluindo um ou mais meios legíveis por computador de diversas formas, em diversos exemplos.
[0155] Qualquer versado na técnica compreenderá que os símbolos ou terminologia de menor que (<) e maior que (>), aqui utilizados, podem ser substituídos pelo símbolos de menor ou igual a (<) e maior ou igual a (>), respectivamente, sem afastamento do alcance desta revelação.
[0156] Det alhes específicos de um dispositivo de codificação 104 e um dispositivo de decodificação 112 são mostrados na Figura 12 e Figura 13, respectivamente. A Figura 12 é um diagrama de blocos que ilustra um dispositivo de codificação exemplar 104 que pode
Petição 870190092259, de 16/09/2019, pág. 70/118
66/83 implementar uma ou mais das técnicas descritas nesta revelação. 0 dispositivo de codificação 104 pode, por exemplo, gerar as estruturas de sintaxe aqui descritas (como, por exemplo, as estruturas de sintaxe de um VPS, SPS, PPS ou outros elementos de sintaxe). O dispositivo de codificação 104 pode efetuar codificação de intra-predição e inter-predição de blocos de vídeo dentro de fatias de vídeo. Conforme descrito anteriormente, a intra-codificação depende, pelo menos em parte, da predição espacial para reduzir ou remover a redundância espacial dentro de um dado quadro ou imagem de vídeo. A inter-codificação depende, pelo menos em parte, da predição temporal para reduzir ou remover a redundância temporal dentro dos quadros adjacentes ou em torno de uma sequência de vídeo. O Intramodo (modo I) pode referir-se a qualquer um dos vários modos de compactação com base no espaço. Inter-modos, tais como predição unidirecional (modo P) ou bi-predição (modo B) , podem se referir a qualquer um dos vários modos de compactação com base no tempo.
[0157] O dispositivo de codificação 104 inclui uma unidade de particionamento 35, a unidade de processamento de predição, a unidade de filtro 63, a memória de imagem 64, o somador 50, a unidade de processamento de transformadas 52, a unidade de quantificação 54 e a unidade de codificação por entropia 56. A unidade de processamento de predição 41 inclui a unidade de estimação de movimento 42, a unidade de compensação de movimento 44, e a unidade de processamento de intra-predição 46. Para reconstrução de blocos de vídeo, o dispositivo de codificação 104 também inclui a unidade de
Petição 870190092259, de 16/09/2019, pág. 71/118
67/83 quantificação inversa 58, a unidade de processamento de transformada inversa 60 e o somador 62. A unidade de filtro 63 destina-se a representar um ou mais circuitos de filtros, tal como um filtro de desbloqueio, um filtro de malha adaptativo (ALF) e um filtro de deslocamento adaptativo de amostra (SAO). Embora a unidade de filtro 63 seja mostrada na Figura 12 como sendo um filtro em malha, em outras configurações, a unidade de filtro 63 pode ser implementada como um filtro pós-malha. Um dispositivo de pós-processamento 57 pode efetuar processamento adicional em dados de video codificados gerados pelo dispositivo de codificação 104. As técnicas desta revelação podem, em alguns casos, ser implementadas pelo dispositivo de codificação 104. Em outros casos, não obstante, uma ou mais das técnicas de codificação desta revelação podem ser implementadas pelo dispositivo de pós-processamento 57.
[0158] Conforme mostrado na Figura 12, o dispositivo de codificação 104 recebe dados de video e a unidade de particionamento 35 particiona os dados em blocos de video. O particionamento também pode incluir o particionamento em fatias, segmentos de fatia, justaposições ou outras unidades maiores, bem como o particionamento de blocos de video, como, por exemplo, de acordo com uma estrutura quad-tree de LCUs e CUs. O dispositivo de codificação 104 geralmente mostra os componentes que codificam blocos de video dentro de uma fatia de video a ser codificada. A fatia pode ser dividida em vários blocos de video (e possivelmente em conjuntos de blocos de video chamados como justaposições). A unidade de processamento de predição 41 pode selecionar um de uma
Petição 870190092259, de 16/09/2019, pág. 72/118
68/83 pluralidade de modos de codificação possíveis, tal como um de uma pluralidade de modos de codificação de intrapredição ou um de uma pluralidade de modos de codificação de inter-predição, para o bloco de vídeo atual com base em resultados de erros (como, por exemplo, taxa de codificação e o nível de distorção ou semelhante). A unidade de processamento de predição 41 pode fornecer o bloco intraou inter-codifiçado resultante para o somador 50 para gerar dados de blocos residuais e para o somador 62 para reconstruir o bloco codificado para utilização como uma imagem de referência.
[0159] A unidade de processamento de intrapredição 46 dentro da unidade de processamento de predição 41 pode efetuar a codificação intra-preditiva do bloco de vídeo atual com relação a um ou mais blocos vizinhos no mesmo quadro ou fatia do bloco atual a ser codificado para fornecer compactação espacial. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 dentro da unidade de processamento de predição 41 efetuam codificação inter-preditiva do bloco de vídeo atual com relação a um ou mais blocos preditivos em uma ou mais imagens de referência para fornecer compactação temporal.
[0160] A unidade de estimação de movimento 42 pode ser configurada para determinar o modo de interpredição para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. 0 padrão predeterminado pode designar fatias de vídeo na sequência como fatias P, fatias B ou fatias GPB. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são
Petição 870190092259, de 16/09/2019, pág. 73/118
69/83 mostradas separadamente para fins conceituais. A estimação de movimento, efetuada pela unidade de estimação 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 uma unidade de predição (PU) de um bloco de vídeo dentro de um quadro de vídeo atual ou imagem relativa a um bloco preditivo dentro de uma imagem de referência.
[0161] Um bloco preditivo é um bloco que é estabelecido para se corresponder rigorosamente com a PU do bloco de vídeo a ser codificado em termos de diferença de pixel, que pode ser determinado pela soma da diferença absoluta (SAD), soma da diferença ao quadrado (SSD) ou outras métricas de diferença. Em alguns exemplos, o dispositivo de codificação 104 pode calcular valores para posições de sub-pixel de número inteiro de imagens de referência armazenadas na memória de imagem 64. Por exemplo, o dispositivo de codificação 104 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel ou outras posições de pixel fracionárias da imagem de referência. Portanto, a unidade de estimação de movimento 42 pode efetuar uma busca de movimento com relação às posições de pixel completas e posições de pixel fracionárias e transmitir um vetor de movimento com precisão de pixel fracionária.
[0162] A unidade de estimação de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia inter-codifiçada, comparando a posição da PU com a posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada de
Petição 870190092259, de 16/09/2019, pág. 74/118
70/83 uma primeira lista de imagens de referência (Lista 0) ou de 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 64. A unidade de estimação de movimento 42 envia o vetor de movimento calculado à unidade de codificação por entropia 56 e à unidade de compensação de movimento 44.
[0163] A compensação de movimento, efetuada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela estimação de movimento, efetuando possivelmente interpolações até precisão de subpixel. Ao receber o vetor de movimento para a 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 lista de imagens de referência. O dispositivo de codificação 104 forma um bloco de vídeo residual subtraindo os valores de pixel a partir do bloco preditivo dos valores de pixel do bloco de vídeo atual que está sendo codificado, formando valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco e podem incluir componentes de diferença tanto luma quanto croma. O somador 50 representa o componente ou componentes que efetuam essa operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe associados com os blocos de vídeo e com a fatia de vídeo para utilização pelo dispositivo de decodificação 112 na decodificação dos blocos de vídeo da fatia de vídeo.
[0164] A unidade de processamento de intra
Petição 870190092259, de 16/09/2019, pág. 75/118
71/83 predição 46 pode intra-predizer o bloco atual, como alternativa para inter-predição efetuada pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de processamento de intra-predição 46 pode determinar o modo de intra-predição a ser utilizado para codificar o bloco atual. Em alguns exemplos, a unidade de processamento de intra-predição 46 pode codificar o bloco de árvore utilizando diversos modos de intra-predição, como, por exemplo, durante passagens de codificação separadas e a unidade de processamento de intra-predição 46, (ou a unidade de seleção de modo 40) em alguns exemplos, pode selecionar um modo de intra-predição apropriado a ser utilizado a partir dos modos testados. Por exemplo, a unidade de processamento de intra-predição 46 pode calcular valores de distorção de taxa utilizando uma análise de distorção de taxa para os diversos modos de intra-predição testados e selecionar o modo intra-predição que tem as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa determina geralmente o grau de distorção (ou erro) entre um bloco codificado e um bloco não codificado original, que foi codificado de modo a se produzir o bloco codificado, assim como a taxa de bits (isto é, o número de bits) utilizada para produzir o bloco codificado. A unidade de processamento de intra-predição 46 pode calcular razões a partir das distorções e taxas para os diversos blocos codificados de modo a determinar qual modo de intrapredição apresenta os melhores valores de distorção de taxa para o bloco.
Petição 870190092259, de 16/09/2019, pág. 76/118
72/83 [0165] Em qualquer caso, após selecionar um modo de intra-predição para um bloco, a unidade de processamento de intra-predição 46 pode fornecer informações indicativas do modo de intra-predição selecionado para o bloco à unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar as informações que indicam o modo de intrapredição selecionado. 0 dispositivo de codificação 104 pode incluir no fluxo de bits transmitidos definições de dados de configuração de contextos de codificação para diversos blocos bem como indicações do modo de intra-predição mais provável, uma tabela de índices de modo de intra-predição e uma tabela de índices de modo de intra-predição modificadas para utilização para cada um dos contextos. Os dados de configuração de fluxo de bits 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 palavras-código).
[0166] Após a unidade de processamento de predição 41 gerar o bloco preditivo para o bloco de video atual através de inter-predição ou intra-predição, o dispositivo de codificação 104 forma um bloco de video residual subtraindo o bloco preditivo a partir do bloco de video atual. Os dados de video residuais no bloco residual podem ser incluídos em uma ou mais UTs e aplicados à unidade de processamento de transformadas 52. A unidade de processamento de transformadas 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais utilizando uma transformada, tal como uma transformada de
Petição 870190092259, de 16/09/2019, pág. 77/118
73/83 co-seno discreta (DCT) ou uma transformada conceitualmente semelhante. A unidade de processamento de transformadas 52 pode converter os dados de video residuais a partir de um domínio de pixel para um domínio de transformada, tal como um domínio de frequência.
[0167] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantificação 54. A unidade de quantificação 54 quantifica os coeficientes de transformada para redução adicional da taxa de bits. 0 processo de quantificação pode reduzir a profundidade de bits associada a alguns ou a todos os coeficientes. 0 grau de quantificação pode ser modificado pelo ajuste de um parâmetro de quantificação. Em alguns exemplos, a unidade de quantificação 54 pode efetuar então uma varredura da matriz que inclui os coeficientes de transformada quantificados. Alternativamente, a unidade de codificação por entropia 56 pode efetuar a varredura.
[0168] Após a quantificação, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantificados. Por exemplo, a unidade de codificação por entropia 56 pode efetuar codificação de comprimento variável adaptativa ao contexto (CAVLC) , codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), codificação por entropia com particionamento de intervalos de probabilidade (PIPE) ou outra técnica de codificação por entropia. Seguindo a codificação por entropia pela unidade de codificação por entropia 56, o fluxo de bits codificado
Petição 870190092259, de 16/09/2019, pág. 78/118
74/83 pode ser transmitido para o dispositivo de decodificação 112 ou arquivado para transmissão ou recuperação posterior pelo dispositivo de decodificação 112. A unidade de codificação por entropia 56 pode codificar também por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de video atual que está sendo codificada.
[0169] A unidade de quantificação inversa 58 e a unidade de processamento de transformada inversa 60 aplicam quantificação inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel para utilização posterior como um bloco de referência de uma imagem 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 uma das imagens de referência dentro de uma das listas de imagens de referência. A unidade de compensação de movimento 44 pode também aplicar um ou mais filtros de interpelação ao bloco residual reconstruído de modo a recalcular valores de sub-pixel de número inteiro para utilização na estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensado em movimento produzido pela unidade de compensação de movimento 44 de modo a produzir um bloco de referência para armazenamento na memória de imagens 64. O bloco de referência pode ser utilizado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para interpredizer um bloco em um quadro ou imagem de vídeo subsequente.
Petição 870190092259, de 16/09/2019, pág. 79/118
75/83 [0170] Dest a maneira, o dispositivo de codificação 104 da Figura 12 representa um codificador de vídeo exemplar configurado para gerar sintaxe para um fluxo de bits de vídeo codificado. 0 dispositivo de codificação 104 pode, por exemplo, gerar conjuntos de parâmetros VPS, SPS e PPS conforme descrito acima. O dispositivo de codificação 104 pode efetuar qualquer uma das técnicas aqui descritas, que incluem os processos descritos acima. As técnicas desta revelação foram geralmente descritas com relação ao dispositivo de codificação 104, mas conforme mencionado acima, algumas das técnicas desta revelação podem também ser implementadas pelo dispositivo de pósprocessamento 57.
[0171] A Figura 13 é um diagrama de blocos que ilustra um dispositivo de decodificação exemplar 112. O dispositivo de decodificação 112 inclui uma unidade de decodificação por entropia 80, a unidade de processamento de predição 81, a unidade de quantificação inversa 86, a unidade de processamento de transformação inversa 88, o somador 90, a unidade de filtro 91 e a memória de imagem 92. A unidade de processamento de predição 81 inclui a unidade de compensação de movimento 82 e a unidade de processamento de intra-predição 84. O dispositivo de decodificação 112 pode, em alguns exemplos, efetuar uma passagem de decodificação geralmente recíproca para a passagem de codificação descrita com relação ao dispositivo de codificação 104 da Figura 12.
[0172] Durante o processo de decodificação, o dispositivo de decodificação 112 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma
Petição 870190092259, de 16/09/2019, pág. 80/118
76/83 fatia de vídeo codificada e elementos de sintaxe associados enviados pelo dispositivo de codificação 104. Em algumas modalidades, o dispositivo de decodificação 112 pode receber o fluxo de bits de vídeo codificado a partir do dispositivo de codificação 104. Em algumas modalidades, o dispositivo de decodificação 112 pode receber o fluxo de bits a partir de uma entidade de rede 79, tal como um servidor, um elemento de rede ciente de meios (MANE), um editor de vídeo/emendador ou outro dispositivo gue tal configurado para implementar uma ou mais das técnicas descritas acima. A entidade de rede 79 pode ou pode não incluir o dispositivo de codificação 104. Algumas das técnicas descritas nesta revelação podem ser implementadas pela entidade de rede 79 antes da entidade de rede 79 transmitir o fluxo de bits de vídeo codificado para o dispositivo de decodificação 112. Em alguns sistemas de decodificação de vídeo, a entidade de rede 79 e o dispositivo de decodificação 112 podem ser partes de dispositivos separados, enquanto em outros casos, a funcionalidade descrita com relação à entidade de rede 79 pode ser efetuada pelo mesmo dispositivo que compreende o dispositivo de decodificação 112.
[0173] A unidade de decodificação por entropia 80 do dispositivo de decodificação por entropia 112 decodifica o fluxo de bits para gerar coeficientes quantificados, vetores de movimento e outros elementosde sintaxe. A unidade de decodificação por entropia80 direciona os vetores de movimento e outros elementosde sintaxe para a unidade de processamento de predição 81. O dispositivo de decodificação 112 pode receber os elementos
Petição 870190092259, de 16/09/2019, pág. 81/118
77/83 de sintaxe ao nível de fatia de vídeo e/ou ao nível de bloco de vídeo. A unidade de decodificação por entropia 80 pode processar e efetuar parse tanto nos elementos de sintaxe de comprimento fixo quanto nos elementos de sintaxe de comprimento variável em ou mais conjuntos de parâmetros, tais como um VPS, SPS e PPS.
[0174] Quando a fatia de vídeo é codificada como uma fatia intra-codificada (I), a unidade de processamento de intra-predição 84 da unidade de processamento de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base no modo de intra-predição sinalizado e em dados de blocos designados anteriormente do pacote ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia intercodificada (isto é, B, P ou GPB), a unidade de compensação de movimento 82 da unidade de processamento de predição 81 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe recebido a partir da unidade de decodificação por entropia 80. 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 dispositivo de decodificação 112 pode construir as listas de quadros de referência, Lista 0 e Lista 1 utilizando técnicas de construção predefinidas baseadas nas imagens de referência armazenadas na memória de imagens 92.
[0175] A unidade de compensação de movimento 82 determina as informações de predição para um bloco de vídeo da fatia de vídeo atual, efetuando parse nos vetores de movimento e outros elementos de sintaxe e utiliza as
Petição 870190092259, de 16/09/2019, pág. 82/118
78/83 informações de predição para produzir os blocos preditivos para o bloco de vídeo atual que é decodificado. Por exemplo, a unidade de compensação de movimento 82 pode utilizar um ou mais elementos de sintaxe em um conjunto de parâmetros para determinar um modo de predição (como, por exemplo, intra- ou inter-predição) utilizado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de inter-predição (como, por exemplo, fatia B, fatia P ou fatia GPB) , as informações de construção para uma ou mais listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo inter-codifiçado da fatia, a condição de inter-predição para cada bloco de vídeo inter-codifiçado da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0176] A unidade de compensação de movimento 82 e pode efetuar também interpelação com base em filtros de interpelação. A unidade de compensação de movimento 82 pode utilizar filtros de interpelação como utilizados pelo dispositivo de codificação 104 durante a codificação dos blocos de vídeo para calcular valores interpelados para sub-pixels de número inteiro de blocos de referência. Neste caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpelação utilizados pelo dispositivo de codificação 104 a partir dos elementos de sintaxe recebidos e pode utilizar os filtros de interpelação para produzir blocos preditivos.
[0177] A unidade de quantificação inversa 86 quantifica por inversão, ou desquantifica, os coeficientes de transformada quantificados fornecidos no fluxo de bits e decodificados pela unidade de decodificação por entropia
Petição 870190092259, de 16/09/2019, pág. 83/118
79/83
80. O processo de quantificação inversa pode incluir a utilização de um parâmetro de quantificação calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo de modo a se determinar o grau de quantificação e, da mesma maneira, o grau de quantificação inversa que deve ser aplicado. A unidade de processamento de transformada inversa 88 aplica uma transformada inversa (como, por exemplo, uma DCT inversa ou outra transformada inversa adequada), uma transformada de número inteiro inversa ou um processo de transformada inversa conceitualmente semelhante, aos coeficientes de transformada de modo a produzir blocos residuais no domínio de pixel.
[0178] Após a unidade de compensação de movimento 82 gerar o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe, o dispositivo de decodificação 112 forma um bloco de vídeo decodificado somando os blocos residuais da unidade de processamento de transformação inversa 88 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou componentes que executam esta operação de soma. Se desejado, filtros de malha (ou na malha de codificação ou depois da malha de codificação) podem ser também utilizados para suavizar as transições entre pixels ou senão aperfeiçoar a qualidade de vídeo. A unidade de filtro 91 se destina a representar um ou mais filtros de malha tais como um filtro de desbloqueio, um filtro de malha adaptativo (ALF) e um filtro de deslocamento adaptativo de amostra (SAO). Embora a unidade de filtro 91 seja mostrada na Figura 13 como sendo um
Petição 870190092259, de 16/09/2019, pág. 84/118
80/83 filtro em malha, em outras configurações, a unidade de filtro 91 pode ser implementada como um filtro pós-malha. Os blocos de vídeo decodificados em um dado quadro ou imagem são então armazenados na memória de imagens 92, que armazena imagens de referência utilizadas para compensação de movimento subsequente. A memória de imagem 92 também armazena vídeo decodificado para apresentação posterior em um dispositivo de exibição.
[0179] Na descrição precedente, aspectos do pedido são descritos com referência a modalidades específicas dele, mas os versados na técnica reconhecerão que a invenção não está limitada aos mesmos. Assim, embora as modalidades ilustrativas do pedido tenham sido aqui descritas em detalhes, deve ficar entendido que os conceitos inovadores podem ser de outro modo variadamente incorporados e utilizados, e que as reivindicações anexas se destinam a ser interpretadas de modo a incluírem tais variações, exceto quando limitadas pela técnica anterior. Diversas características e aspectos da invenção acima descritos podem ser utilizados individualmente ou em conjunto. Além disso, as modalidades podem ser utilizadas em qualquer série de ambientes e aplicações além das aqui descritas, sem o afastamento do espírito e alcance mais amplos da especificação. A especificação e os desenhos são, por conseguinte, considerados como ilustrativos ao invés de restritivos. Os métodos foram descritos em uma ordem específica para propósitos ilustrativos. Deve ficar entendido que, em modalidades alternativas, os métodos podem ser efetuados em uma ordem diferente daquela descrita.
Petição 870190092259, de 16/09/2019, pág. 85/118
81/83 [0180] Onde os componentes são descritos como sendo configurados para efetuar determinadas operações, tal configuração pode ser realizada, por exemplo, pelo desenho de circuitos eletrônicos ou outro hardware para efetuar a operação, pela programação de circuitos eletrônicos programáveis (como, por exemplo, microprocessadores ou outros circuitos eletrônicos) para efetuar a operação ou qualquer combinação deles.
[0181] Os diversos blocos lógicos ilustrativos, módulos, circuitos e etapas de algoritmo descritos em conexão com as modalidades aqui reveladas podem ser implementados como hardware eletrônico, software de computador, firmware ou em combinações deles. Para ilustrar claramente esta intercambialidade de hardware e software, foram descritos acima diversos componentes, módulos, circuitos e etapas ilustrativos geralmente em termos da sua funcionalidade. Se tal funcionalidade é implementada como hardware ou software depende da aplicação específica e das restrições de desenho impostas ao sistema como um todo. Os versados na técnica podem implementar a funcionalidade descrita de maneiras variáveis para cada aplicação específica, mas tais decisões de implementação não devem ser interpretadas como provocando um afastamento do alcance da presente revelação.
[0182] As técnicas aqui descritas também podem ser implementadas em hardware eletrônico, software de computador, firmware ou qualquer combinação das deles. Tais técnicas podem ser implementadas em qualquer um de uma diversidade de dispositivos, tais como computadores de propósito geral, conjuntos de dispositivos de comunicação
Petição 870190092259, de 16/09/2019, pág. 86/118
82/83 sem fio ou dispositivos de circuito integrado que têm múltiplas utilizações, que incluem aplicações em conjuntos de dispositivos de comunicação sem fio e outros dispositivos. Quaisquer recursos descritos como módulos ou componentes podem ser implementados juntos em um dispositivo lógico integrado ou separadamente como dispositivos lógicos discretos, mas interoperáveis. Se implementadas em software, as técnicas podem ser efetuadas, pelo menos em parte, por um meio de armazenamento de dados legível por computador que compreende código de programa que inclui instruções que, quando executadas, efetuam um ou mais dos métodos descritos acima. 0 meio de armazenamento de dados legível por computador pode fazer parte de um produto de programa de computador, o qual pode incluir materiais de empacotamento. 0 meio legível por computador pode compreender meio de armazenamento de dados ou memória, tal como memória de acesso aleatório (RAM), como memória de acesso aleatório dinâmica síncrona (SDRAM), memória de somente leitura (ROM), memória de acesso aleatório não volátil (NVRAM) memória de somente leitura programável eletricamente apagável (EEPROM), memória FLASH, meios de armazenamento de dados magnéticos ou óticos e semelhantes. As técnicas, adicionalmente ou alternativamente, podem ser realizadas, pelo menos em parte, por um meio de comunicação legível por computador que porta ou comunica código de programa na forma de instruções ou estruturas de dados e
que pode ser acessado, lido e/ou executado por um
computador , tais [0183] como 0 sinais código propagados do programa ou ondas. pode ser executado
por um processador, que pode incluir um ou mais
Petição 870190092259, de 16/09/2019, pág. 87/118
83/83 processadores, tais como um ou mais processadores de sinais digitais (DSPs), microprocessadores de propósito geral, circuitos integrados específicos de aplicativos (ASICs), arranjos lógicos programáveis de campo (FPGAs) ou outro circuito lógico discreto ou integrado equivalente. Tal processador pode ser configurado para efetuar qualquer uma das técnicas descritas nesta revelação. Um processador de propósito geral pode ser um microprocessador; mas, na alternativa, o processador pode ser qualquer processador convencional, controlador, microcontrolador ou máquina de estado. Um processador pode ser também implementado como uma combinação de dispositivos de computação, como, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo de DSP ou qualquer outra configuração que tal. Por conseguinte, o termo processador, tal como aqui utilizado, pode se referir a qualquer uma das estruturas acima mencionadas, qualquer combinação das estruturas acima mencionadas ou qualquer outra estrutura ou aparelho adequados para a implementação das técnicas aqui descritas. Além disso, sob alguns aspectos, a funcionalidade aqui descrita pode ser fornecida dentro de módulos de software dedicados ou módulos de hardware configurados para codificação e decodificação, ou incorporados em um codificador/decodificador de vídeo (CODEC) combinado.

Claims (29)

  1. REIVINDICAÇÕES
    1. Método para processamento de dados de video, que compreende:
    obter dados de video de 360 graus, que incluem uma pluralidade de quadros de video, cada quadro de video da pluralidade de quadros de video incluindo uma representação esférica de dados de video para o quadro de video;
    segmentar um quadro de video a partir da pluralidade de quadros de video em uma região de topo, uma região do meio e uma região de baixo, a região de topo incluindo uma primeira área circular da representação esférica, a região de baixo incluindo uma segunda área circular da representação esférica que é oposta à representação esférica da primeira área circular, em que a região do meio inclui uma área da representação esférica não incluída na região de topo ou na região de baixo;
    mapear a região de topo em uma primeira área retangular de um quadro de vídeo de saída, em que mapear a região de topo inclui expandir os dados de vídeo incluídos na primeira área circular para preencher a primeira área retangular; e mapear a região de baixo em uma segunda área retangular do quadro de vídeo de saída, em que mapear a região de baixo inclui expandir os dados de vídeo incluídos na segunda área circular para preencher a segunda área retangular.
  2. 2. Método, de acordo com a reivindicação 1, em que o quadro de vídeo é segmentado em uma primeira latitude acima de um equador da representação esférica e uma segunda
    Petição 870190092259, de 16/09/2019, pág. 89/118
    2/12 latitude abaixo do equador, em que a primeira latitude e a segunda latitude são equidistantes do equador, em que região de topo está acima da primeira latitude e em que a região de baixo está abaixo da segunda latitude.
  3. 3. Método, de acordo com a reivindicação 1, em que mapear a região de topo e mapear a região de baixo inclui:
    selecionar uma localização de pixel no quadro de vídeo de saída;
    determinar um ponto sobre a representação esférica que corresponde à localização de pixel, em que o ponto sobre a representação esférica é determinado utilizando um mapeamento para a conversão de um quadrado para um círculo;
    amostragem de um pixel a partir do ponto sobre a representação esférica; e situar o pixel amostrado na localização de pixel.
  4. 4. Método, de acordo com a reivindicação 3, em que mapear para converter um quadrado em um círculo minimiza a distorção no quadro de vídeo de saída.
  5. 5. Método, de acordo com a reivindicação 3, em que mapear a região de topo e mapear a região de baixo também inclui:
    ajustar a localização de pixel utilizando uma função de curva gradual.
  6. 6. Método, de acordo com a reivindicação 5, em que a função de curva gradual é utilizada na localização de pixel em uma área adjacente às áreas retangulares adicionais no quadro de vídeo de saída.
  7. 7. Método, de acordo com a reivindicação 5, em
    Petição 870190092259, de 16/09/2019, pág. 90/118
    3/12 que a função de curva gradual altera as localizações de pixels menos em direção à área do meio da primeira área retangular ou segunda área retangular, e mais em direção à uma área de fora da primeira área retangular ou segunda área retangular.
  8. 8. Método, de acordo com a reivindicação 1, que compreende também:
    mapear a região do meio para uma ou mais áreas retangulares de um quadro de vídeo de saída.
  9. 9. Método, de acordo com a reivindicação 8, em que a região do meio inclui uma vista esquerda, uma vista de frente e uma vista direita, em que a vista esquerda é situada no quadro de vídeo de saída adjacente à vista de frente e em que a vista direita é situada adjacente à vista de frente.
  10. 10. Método, de acordo com a reivindicação 1, em que a região do meio inclui uma vista de trás, em que a região de baixo é situada no quadro de vídeo de saída adjacente à vista de trás, e em que a região de topo é situada adjacente à vista de trás.
  11. 11. Método, de acordo com a reivindicação 1, em que mapear a região de topo na primeira área retangular inclui aplicar um ajustamento gradual em uma área onde a primeira área retangular é adjacente a uma terceira área retangular no quadro de vídeo de saída e em que mapear a região de baixo na segunda área retangular inclui aplicar o ajustamento gradual em uma área onde a segunda área retangular é adjacente a uma quarta área retangular no quadro de vídeo de saída.
  12. 12. Método, de acordo com a reivindicação 1, em
    Petição 870190092259, de 16/09/2019, pág. 91/118
    4/12 que o quadro de video de saída tem uma proporção de aspecto de três-por-dois.
  13. 13. Dispositivo de codificação de vídeo que compreende:
    uma memória configurada para armazenar dados de vídeo de 360 graus que inclui uma pluralidade de quadros de vídeo, cada quadro de vídeo da pluralidade de quadros de vídeo incluindo uma representação esférica de dados de vídeo para o quadro de vídeo; e um processador configurado para:
    segmentar um quadro de vídeo a partir da pluralidade de quadros de vídeo em uma região de topo, uma região do meio e uma região de baixo, a região de topo incluindo uma primeira área circular da representação esférica, a região de baixo incluindo uma segunda área circular da representação esférica que é oposta à representação esférica da primeira área circular, em que a região do meio inclui uma área da representação esférica não incluída na região de topo ou na região de baixo;
    mapear a região de topo em uma primeira área retangular de um quadro de vídeo de saída, em que mapear a região de topo inclui expandir os dados de vídeo incluídos na primeira área circular para preencher a primeira área retangular; e mapear a região de baixo em uma segunda área retangular do quadro de vídeo de saída, em que mapear a região de baixo inclui expandir os dados de vídeo incluídos na segunda área circular para preencher a segunda área retangular.
  14. 14. Meio não transitório legível por computador,
    Petição 870190092259, de 16/09/2019, pág. 92/118
    5/12 que tem armazenado nele instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores executem operações, que incluem:
    obter dados de vídeo de 360 graus, que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo da pluralidade de quadros de vídeo incluindo uma representação esférica de dados de vídeo para o quadro de vídeo;
    segmentar um quadro de vídeo da pluralidade de quadros de vídeo em uma região de topo, uma região do meio e uma região de baixo, a região de topo incluindo uma primeira área circular da representação esférica, a região de baixo incluindo uma segunda área circular da representação esférica que é oposta à representação esférica da primeira área circular, em que a região do meio inclui uma área da representação esférica não incluída na região de topo ou na região de baixo;
    mapear a região de topo em uma primeira área retangular do quadro de vídeo de saída, em que mapear a região de topo inclui expandir os dados de vídeo incluídos na primeira área circular para preencher a primeira área retangular; e mapear a região de baixo em uma segunda área retangular do quadro de vídeo de saída, em que mapear a região de baixo inclui expandir os dados de vídeo incluídos na segunda área circular para preencher a segunda área retangular.
  15. 15. Aparelho, que compreende:
    meios para obter dados de vídeo de 360 graus, que incluem uma pluralidade de quadros de vídeo, cada quadro de
    Petição 870190092259, de 16/09/2019, pág. 93/118
    6/12 video da pluralidade de quadros de video incluindo uma representação esférica de dados de vídeo para o quadro de video;
    meios para segmentar um quadro de vídeo a partir dos quadros de vídeo da pluralidade de quadros de vídeo em uma região de topo, uma região do meio e uma região de baixo, a região de topo incluindo uma primeira área circular da representação esférica, que inclui uma segunda área circular da representação esférica que é oposta à representação esférica da primeira área circular, em que a região do meio inclui uma área da representação esférica não incluída na região de topo ou na região de baixo;
    meios para mapear a região de topo em uma primeira área retangular do quadro de vídeo de saída, em que mapear a região de topo inclui expandir os dados de vídeo incluídos na primeira área circular para preencher a primeira área retangular; e mapear a região de baixo em uma segunda área retangular do quadro de vídeo de saída, em que mapear a região de baixo inclui expandir os dados de vídeo incluídos na segunda área circular para preencher a segunda área retangular.
  16. 16. Método para processar dados de vídeo, que compreende:
    obter dados de vídeo de 360 graus, que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo a partir da pluralidade de quadros de vídeo incluindo uma representação bidimensional de dados de vídeo para o quadro de vídeo;
    identificar uma primeira área retangular de um
    Petição 870190092259, de 16/09/2019, pág. 94/118
    7/12 quadro de video a partir da pluralidade de quadros de video;
    mapear a primeira área retangular em uma região de topo de uma representação esférica de dados de vídeo para o quadro de vídeo, em que a região de topo compreende uma primeira área circular da representação esférica e em que mapear a primeira área retangular inclui dispor os dados de vídeo da primeira área retangular na primeira área circular;
    identificar uma segunda área retangular do quadro de vídeo; e mapear a segunda área retangular em uma região de topo da representação esférica, em que a região de baixo compreende uma segunda área circular da representação esférica e em que mapear a segunda área retangular inclui dispor os dados de vídeo da segunda área retangular na segunda área circular.
    identificar uma segunda área retangular do quadro de vídeo; e mapear a segunda área retangular em uma região de baixo da representação esférica, em que a região de baixo compreende uma segunda área circular da representação esférica e em que mapear a segunda área retangular inclui dispor os dados de vídeo da segunda área retangular na segunda área circular.
  17. 17. Método, de acordo com a reivindicação 16, em que a região de topo inclui uma superfície da representação esférica acima de uma primeira latitude da representação esférica, em que a região de baixo inclui uma superfície da representação esférica abaixo de uma segunda latitude da
    Petição 870190092259, de 16/09/2019, pág. 95/118
    8/12 representação esférica, em que a primeira latitude e a segunda latitude são equidistantes de um equador da representação esférica.
  18. 18. Método, de acordo com a reivindicação 16, em que mapear a primeira área retangular e mapear a segunda área retangular inclui:
    selecionar um ponto sobre a representação esférica;
    determinar uma localização de pixel no quadro de vídeo que corresponde ao ponto, em que a localização de pixel é determinada utilizando um mapeamento para converter um círculo em um quadrado;
    amostragem de um pixel a partir da localização de pixel; e situar o pixel amostrado no ponto.
  19. 19. Método, de acordo com a reivindicação 18, em que o mapeamento para converter um círculo em um quadrado reverte a distorção causada quando os dados de vídeo na primeira área retangular ou na segunda área retangular foram expandidos para preencher a primeira área retangular ou a segunda área retangular.
  20. 20. Método, de acordo com a reivindicação 18, em que mapear a primeira área retangular e mapear a segunda área retangular inclui adicionalmente:
    ajustar a localização de pixel utilizando uma função de curva gradual.
  21. 21. Método, de acordo com a reivindicação 20, em que a função de curva gradual é utilizada em localizações de pixel em uma área adjacente a pelo menos uma de uma ou mais áreas retangulares adicionais.
    Petição 870190092259, de 16/09/2019, pág. 96/118
    9/12
  22. 22. Método, de acordo com a reivindicação 20, em que a função de curva gradual altera as localizações de pixel menos em direção a uma área do meio da primeira área retangular ou segunda área retangular e mais em direção a uma área de fora da primeira área retangular ou segunda área retangular.
  23. 23. Método, de acordo com a reivindicação 16, que compreende também:
    mapear uma ou mais áreas retangulares adicionais do quadro de video em uma região do meio da representação esférica.
  24. 24. Método, de acordo com a reivindicação 23, em que a uma ou mais áreas retangulares adicionais incluem uma vista esquerda, uma vista de frente e uma vista direita, em que a vista esquerda está localizada adjacente à vista de frente e em que a vista direita é adjacente à vista de frente.
  25. 25. Método, de acordo com a reivindicação 16, em que uma ou mais áreas retangulares adicionais do quadro de video incluem uma vista de trás, em que a primeira área retangular é adjacente à vista de trás e em que a segunda área retangular é adjacente à vista de trás.
  26. 26. Método, de acordo com a reivindicação 16, em que mapear a primeira área retangular na região de topo inclui aplicar um ajustamento gradual em uma área onde a primeira área retangular é adjacente a uma terceira área retangular no quadro de vídeo e em que mapear a segunda área retangular na região de baixo inclui aplicar um ajustamento gradual em uma área onde a segunda área retangular é adjacente a uma quarta área retangular no
    Petição 870190092259, de 16/09/2019, pág. 97/118
    10/12 quadro de video.
  27. 27. Dispositivo de codificação de video que compreende :
    uma memória configurada para armazenar dados de vídeo de 360 graus, que inclui uma pluralidade de quadros de vídeo, cada quadro de vídeo, a partir da pluralidade de quadros de vídeo, incluindo uma representação bidimensional de dados de vídeo para o quadro de vídeo; e um processador configurado para:
    identificar uma primeira área retangular de um quadro de vídeo a partir da pluralidade de quadros de vídeo;
    mapear a primeira área retangular em uma região de topo de uma representação esférica de dados de vídeo para o quadro de vídeo, em que a região de topo compreende uma primeira área circular da representação esférica e em que mapear a primeira área retangular inclui dispor os dados de vídeo da primeira área retangular na primeira área circular;
    identificar uma segunda área retangular do quadro de vídeo; e mapear a segunda área retangular em uma região de baixo da representação esférica, em que a região de baixo compreende uma segunda área circular da representação esférica e em que mapear a segunda área retangular inclui dispor os dados de vídeo da segunda área retangular na segunda área circular.
  28. 28. Meio não transitório legível por computador, que tem instruções armazenadas nele que, quando executadas por um ou mais processadores, fazem com que o um ou mais
    Petição 870190092259, de 16/09/2019, pág. 98/118
    11/12 processadores executem operações, que incluem:
    obter dados de vídeo de 360 graus, que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo, a partir da pluralidade de quadros de vídeo, incluindo uma representação bidimensional de dados de vídeo para o quadro de vídeo;
    identificar uma primeira área retangular de um quadro de vídeo a partir da pluralidade de quadros de vídeo;
    mapear a primeira área retangular em uma região de topo de uma representação esférica de dados de vídeo para a quadro de vídeo, em que a região de topo compreende uma primeira área circular da representação esférica e em que mapear a primeira área retangular inclui dispor os dados de vídeo da primeira área retangular na primeira área circular;
    identificar uma segunda área retangular do quadro de vídeo; e mapear a segunda área retangular em uma região de baixo da representação esférica, em que a região de baixo compreende uma segunda área circular da representação esférica e em que mapear a segunda área retangular inclui dispor os dados de vídeo da segunda área retangular na segunda área circular.
  29. 29. Aparelho, que compreende:
    meios para obter dados de vídeo de 360 graus, que incluem uma pluralidade de quadros de vídeo, cada quadro de vídeo, a partir da pluralidade de quadros de vídeo, incluindo uma representação bidimensional de dados de vídeo para o quadro de vídeo;
    Petição 870190092259, de 16/09/2019, pág. 99/118
    12/12 meios para identificar uma primeira área retangular de um quadro de vídeo a partir da pluralidade de quadros de vídeo;
    meios para mapear a primeira área retangular em uma região de topo de uma representação esférica de dados de vídeo para a quadro de vídeo, em que a região de topo compreende uma primeira área circular da representação esférica e em que mapear a primeira área retangular inclui dispor os dados de vídeo da primeira área retangular na primeira área circular;
    meios para identificar uma segunda área retangular do quadro de vídeo; e meios para mapear a segunda área retangular em uma região de baixo da representação esférica, em que a região de baixo compreende uma segunda área circular da representação esférica e em que mapear a segunda área retangular inclui dispor os dados de vídeo da segunda área retangular na segunda área circular.
BR112019019191A 2017-03-22 2018-03-21 projeções de esfera polar para compactação eficiente de vídeo de 360 graus BR112019019191A2 (pt)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762474767P 2017-03-22 2017-03-22
US201762528264P 2017-07-03 2017-07-03
US15/926,957 US10957044B2 (en) 2017-03-22 2018-03-20 Sphere pole projections for efficient compression of 360-degree video
PCT/US2018/023604 WO2018175614A1 (en) 2017-03-22 2018-03-21 Sphere pole projections for efficient compression of 360-degree video

Publications (1)

Publication Number Publication Date
BR112019019191A2 true BR112019019191A2 (pt) 2020-04-22

Family

ID=63581810

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019019191A BR112019019191A2 (pt) 2017-03-22 2018-03-21 projeções de esfera polar para compactação eficiente de vídeo de 360 graus

Country Status (9)

Country Link
US (3) US10957044B2 (pt)
EP (1) EP3603072A1 (pt)
KR (1) KR102646967B1 (pt)
CN (1) CN110463205B (pt)
AU (1) AU2018239451A1 (pt)
BR (1) BR112019019191A2 (pt)
SG (1) SG11201907262QA (pt)
TW (1) TW201840181A (pt)
WO (1) WO2018175614A1 (pt)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US10957044B2 (en) 2017-03-22 2021-03-23 Qualcomm Incorporated Sphere pole projections for efficient compression of 360-degree video
US10839480B2 (en) * 2017-03-22 2020-11-17 Qualcomm Incorporated Sphere equator projection for efficient compression of 360-degree video
US10506196B2 (en) * 2017-04-01 2019-12-10 Intel Corporation 360 neighbor-based quality selector, range adjuster, viewport manager, and motion estimator for graphics
US10587800B2 (en) 2017-04-10 2020-03-10 Intel Corporation Technology to encode 360 degree video content
US10579898B2 (en) * 2017-04-16 2020-03-03 Facebook, Inc. Systems and methods for provisioning content using barrel projection representation
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
EP3425483B1 (en) * 2017-07-07 2024-01-10 Accenture Global Solutions Limited Intelligent object recognizer
US11212438B2 (en) 2018-02-14 2021-12-28 Qualcomm Incorporated Loop filter padding for 360-degree video coding
US10715832B2 (en) * 2018-03-16 2020-07-14 Mediatek Inc. Method and apparatus of block partition for VR360 video coding
CN110349226B (zh) * 2018-04-01 2021-06-01 浙江大学 一种全景图像处理方法及装置
US10771764B2 (en) * 2018-06-22 2020-09-08 Lg Electronics Inc. Method for transmitting 360-degree video, method for receiving 360-degree video, apparatus for transmitting 360-degree video, and apparatus for receiving 360-degree video
US11463671B2 (en) * 2018-07-09 2022-10-04 Lg Electronics Inc. Video transmitting method, video transmitting device, video receiving method and video receiving device
US20200213570A1 (en) * 2019-01-02 2020-07-02 Mediatek Inc. Method for processing projection-based frame that includes at least one projection face and at least one padding region packed in 360-degree virtual reality projection layout
US12020395B2 (en) * 2019-03-15 2024-06-25 STX Financing, LLC Systems and methods for compressing and decompressing a sequence of images
US10614553B1 (en) * 2019-05-17 2020-04-07 National Chiao Tung University Method for spherical camera image stitching
US11816757B1 (en) * 2019-12-11 2023-11-14 Meta Platforms Technologies, Llc Device-side capture of data representative of an artificial reality environment
CN113542203B (zh) * 2020-04-21 2022-06-28 ***通信集团贵州有限公司 一种视频业务dpi识别方法及服务器
CN111666434B (zh) * 2020-05-26 2021-11-02 武汉大学 基于深度全局特征的街景图片检索方法
TWI756956B (zh) 2020-12-01 2022-03-01 財團法人工業技術研究院 用於環景影像的影像處理方法及裝置
US11622100B2 (en) * 2021-02-17 2023-04-04 flexxCOACH VR 360-degree virtual-reality system for dynamic events
US20240040259A1 (en) * 2022-07-26 2024-02-01 KKStream Limited Systems and methods for free-view video streaming
CN115640091B (zh) * 2022-10-28 2023-05-02 合肥通用机械研究院有限公司 一种基于黎曼球面的交互式多样化图案展示控制方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100412694C (zh) * 2005-03-30 2008-08-20 北京大学 一种自动球形全景图的生成方法
JP2007013514A (ja) * 2005-06-30 2007-01-18 Taiji Kajikawa 720°全方位矩形画像モニタリングシステム
KR20150068299A (ko) 2013-12-09 2015-06-19 씨제이씨지브이 주식회사 다면 영상 생성 방법 및 시스템
US9883101B1 (en) * 2014-07-23 2018-01-30 Hoyos Integrity Corporation Providing a real-time via a wireless communication channel associated with a panoramic video capture device
JP6344723B2 (ja) 2015-07-14 2018-06-20 パナソニックIpマネジメント株式会社 映像表示システム、映像表示装置及び映像表示方法
CN105898344A (zh) * 2016-04-12 2016-08-24 乐视控股(北京)有限公司 一种全景视频的播放方法和装置
KR102503342B1 (ko) * 2017-01-10 2023-02-28 삼성전자주식회사 스테레오 스코픽 비디오 콘텐츠를 전송하기 위한 방법 및 장치
CN106803275A (zh) * 2017-02-20 2017-06-06 苏州中科广视文化科技有限公司 基于相机位姿估计和空间采样的2d全景视频生成
US10957044B2 (en) 2017-03-22 2021-03-23 Qualcomm Incorporated Sphere pole projections for efficient compression of 360-degree video

Also Published As

Publication number Publication date
US20180276826A1 (en) 2018-09-27
US20240070871A1 (en) 2024-02-29
KR102646967B1 (ko) 2024-03-13
TW201840181A (zh) 2018-11-01
EP3603072A1 (en) 2020-02-05
US20210166394A1 (en) 2021-06-03
SG11201907262QA (en) 2019-10-30
KR20190128689A (ko) 2019-11-18
AU2018239451A1 (en) 2019-08-29
CN110463205A (zh) 2019-11-15
CN110463205B (zh) 2023-05-09
US11798166B2 (en) 2023-10-24
WO2018175614A1 (en) 2018-09-27
US10957044B2 (en) 2021-03-23

Similar Documents

Publication Publication Date Title
BR112019019191A2 (pt) projeções de esfera polar para compactação eficiente de vídeo de 360 graus
US10839480B2 (en) Sphere equator projection for efficient compression of 360-degree video
US10313664B2 (en) Adjusting field of view of truncated square pyramid projection for 360-degree video
US10915986B2 (en) Adaptive perturbed cube map projection
US10620441B2 (en) Viewport-aware quality metric for 360-degree video
US10319071B2 (en) Truncated square pyramid geometry and frame packing structure for representing virtual reality video content
US10699389B2 (en) Fisheye rendering with lens distortion correction for 360-degree video
TW201911863A (zh) 用於360度視訊寫碼之參考圖推導及動作補償
BR112019010875A2 (pt) sistemas e métodos de sinalização de regiões de interesse
BR112019019339A2 (pt) sinalização de conteúdo de vídeo incluindo fluxos de bits de subimagem para codificação de vídeo

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 5A ANUIDADE.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2715 DE 17-01-2023 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.