BR112021001468A2 - método para inserir conteúdo de anúncio, sistema de servidor de vídeo operativo, e, mídia legível por computador tangível não transitória - Google Patents

método para inserir conteúdo de anúncio, sistema de servidor de vídeo operativo, e, mídia legível por computador tangível não transitória Download PDF

Info

Publication number
BR112021001468A2
BR112021001468A2 BR112021001468-3A BR112021001468A BR112021001468A2 BR 112021001468 A2 BR112021001468 A2 BR 112021001468A2 BR 112021001468 A BR112021001468 A BR 112021001468A BR 112021001468 A2 BR112021001468 A2 BR 112021001468A2
Authority
BR
Brazil
Prior art keywords
video
tiles
tile
content
frame
Prior art date
Application number
BR112021001468-3A
Other languages
English (en)
Inventor
Chris Phillips
Robert Hammond Forsman
Vishal Changrani
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
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 Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Publication of BR112021001468A2 publication Critical patent/BR112021001468A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • 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/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • H04N13/383Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2668Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • H04N21/8153Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Graphics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Um sistema e método para inserir conteúdo secundário, por exemplo, conteúdo de anúncio, gráficos, imagens, etc., em um ambiente de vídeo imersivo de 360 graus. Quando uma solicitação é recebida a partir de um dispositivo de cliente para reproduzir um ativo de vídeo, uma pluralidade de ladrilhos de vídeo, do ativo de vídeo, é selecionada para ser montada como um quadro de vídeo para entrega ao dispositivo de cliente. Uma porção dos ladrilhos de vídeo é identificada, a qual pode ser substituída por um conjunto correspondente de ladrilhos de conteúdo de anúncio, por exemplo, com base na informação de vetor de foco e/ou uma especificação de metadados de ladrilho que contém a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada um dos ladrilhos do quadro de vídeo. Depois de substituir a porção dos ladrilhos de vídeo identificados, o conjunto correspondente de ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo restantes são montados no quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio em locais selecionados, que são transmitidos para o dispositivo de cliente.

Description

1 / 125 MÉTODO PARA INSERIR CONTEÚDO DE ANÚNCIO, SISTEMA DE SERVIDOR DE VÍDEO OPERATIVO, E, MÍDIA LEGÍVEL POR
COMPUTADOR TANGÍVEL NÃO TRANSITÓRIA CAMPO DA TÉCNICA
[001] A presente descrição refere-se geralmente às redes de comunicação. Mais particularmente, e não a título de qualquer limitação, a presente descrição é direcionada a um sistema e método de inserção de conteúdo de anúncio em transmissão contínua de vídeo imersivo de 360°.
FUNDAMENTOS
[002] A introdução da realidade virtual trouxe novas aplicações para a vanguarda, além de melhorar várias tecnologias existentes. Uma melhoria em relação às tecnologias existentes pode ser vista no caso de vídeo imersivo de 360°, também variadamente denominado vídeo panorâmico, vídeo de 360 graus ou vídeo 360, e similares.
[003] O vídeo de 360 graus oferece ao usuário uma experiência imersiva de “estar lá”. A imersão aumentada de realidade virtual pode facilmente ser aplicada ao vídeo, que provê uma experiência do usuário superior à do vídeo tradicional que é projetado em superfícies planas. A popularidade dos sistemas de vídeo de 360 graus navegáveis também cresceu com o advento de sistemas de captura omnidirecionais e sistemas de exibição interativos, como monitores montados na cabeça (HMDs) ou fones de ouvido. No entanto, os provedores de conteúdo têm se confrontado com ambientes de rede restritos de largura de banda para prover conteúdo de vídeo de 360 graus de forma eficiente, a fim de garantir uma experiência de visualização satisfatória, em virtude dos ativos de vídeo de 360 graus serem vídeos esféricos de ultra-alta resolução, que contêm uma vista omnidirecional das cenas que exigem enormes quantidades de dados.
[004] Os fones de ouvido de vídeo 360 atuais são dispositivos de exibição de resolução de 2K, que cobrem 1K por olho. Para obter a melhor
2 / 125 qualidade no fone de ouvido, uma rede típica exige o envio de um fluxo de vídeo 360 de 8K para o dispositivo. Sabe-se que a compressão de vídeo permite a utilização eficiente de largura de banda em uma rede de transmissão contínua de mídia, o que reduz o número de bits para representar uma imagem. Considerando que os avanços nas tecnologias de compressão de vídeo continuam a crescer rapidamente, várias lacunas permanecem no campo de entrega e exibição de vídeo 360, em relação ao gerenciamento eficiente de largura de banda nas arquiteturas de rede atuais, o que inclui a capacidade de prover conteúdo de anúncio em um ambiente de reprodução de vídeo de 360 graus, o que exige, assim, inovação adicional, conforme será definido abaixo, no presente documento.
SUMÁRIO
[005] A presente descrição de patente é amplamente dirigida para sistemas, métodos, aparelhos, dispositivos, arquitetura de rede e mídia legível por computador não transitória associadas para efetivar experiências de visualização de vídeo imersivas otimizadas de 360°, o que inclui, entre outros, a capacidade de inserir vários tipos de conteúdo secundário, por exemplo, conteúdo de anúncio, gráficos, imagens, etc., em uma sessão de reprodução de vídeo imersiva. Em um aspecto, certas modalidades são direcionadas para esquemas de codificação otimizados que podem ser implementados em um arranjo que envolve a codificação de fluxos de vídeo de fonte em fluxos com codificação de ladrilho que têm diferentes qualidades. Em um aspecto adicional, certas modalidades são direcionadas para a utilização de informação de vetor de foco de usuário na determinação de pesos de ladrilho com base na localização de ladrilhos, em relação a uma janela de visualização de usuário. Em outros aspectos adicionais, as modalidades exemplificativas são direcionadas para a esquemas de seleção de ladrilhos e esquemas de otimização de largura de banda, em que ladrilhos otimizados de largura de banda são selecionados responsivos à informação de vetor de foco e/ou de
3 / 125 especificação de metadados de disponibilidade de ladrilhos que podem ser costurados juntamente com ladrilhos de conteúdo de anúncio em uma sequência de vídeo codificada multiplexada para prover uma experiência de visualização aprimorada, enquanto continua a receber anúncios.
[006] Em uma modalidade exemplificativa, um método para inserir conteúdo de anúncio em um ambiente de vídeo imersivo de 360 graus é descrito. A modalidade reivindicada compreende, entre outros, receber uma solicitação de um dispositivo de cliente para reproduzir um ativo de vídeo imersivo específico, em que cada quadro de vídeo compreende uma matriz de ladrilhos projetados em um ambiente de exibição 3-dimensional (3D), visto por um usuário que opera o dispositivo de cliente. Uma pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico pode ser selecionada para montagem como um quadro de vídeo para entrega ao dispositivo de cliente. Em um arranjo, a pluralidade selecionada de ladrilhos de vídeo do ativo de vídeo imersivo específico pode ser obtida a partir de uma ou mais representações de taxa de bits codificados por ladrilho do ativo de vídeo específico, cada representação de taxa de bits tem uma qualidade de vídeo separada. Uma porção ou um subconjunto dos ladrilhos de vídeo pode ser identificado com capacidade de ser substituído por um conjunto correspondente de ladrilhos de conteúdo de anúncio. Responsivo ao mesmo, o subconjunto identificado dos ladrilhos de vídeo pode ser substituído pelo conjunto correspondente de ladrilhos de conteúdo de anúncio em locais específicos dentro do quadro de vídeo a ser montado. Os ladrilhos de vídeo, bem como os arquivos de conteúdo de anúncio, podem ser providos a um gerador de fluxo para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio, em locais selecionados, após o que o quadro de vídeo montado pode ser transmitido para o dispositivo de cliente. Em uma variação, os ladrilhos de vídeo para substituição podem ser identificados com base em uma especificação de metadados de ladrilho que identifica a informação de
4 / 125 disponibilidade para cada ladrilho de vídeo. Em outra variação, os ladrilhos de vídeo para substituição podem ser identificados com base na informação de vetor de foco recebida do dispositivo de cliente. Ainda, em uma variação adicional, os ladrilhos de vídeo para substituição podem ser identificados com base em uma combinação de informação de vetor de foco e especificação de metadados de ladrilho. Em uma implementação, a informação de disponibilidade de ladrilho (por exemplo, quando um ladrilho pode ficar disponível para substituição por um ladrilho de conteúdo secundário) pode incluir ou se basear em dados de temporização que envolvem menos de uma dentre a informação de timbre de data e hora de apresentação (PTS), informação de timbre de data e hora de decodificação (DTS), informação de referência de relógio de programa (PCR), informação de referência de relógio de sistema (SCR), uma informação de referência de relógio de parede, uma informação de referência de temporização de sistema de posicionamento global (GPS) e uma informação de referência de tempo de execução, no que diz respeito ao ativo de vídeo imersivo específico que está sendo reproduzido.
[007] Em uma variação adicional, a informação vetorial de foco pode ser obtida rastreando-se uma orientação do fone de ouvido do usuário, associado ao dispositivo de cliente para exibir o ativo de vídeo imersivo específico. Em outra variação, a informação de vetor de foco pode ser obtida rastreando-se um movimento dos globos oculares do usuário, em relação às diferentes porções do ambiente de exibição 3D, enquanto o ativo de vídeo imersivo específico está sendo exibido. Independentemente de como os vetores de foco são obtidos, os mesmos podem incluir, sem limitação, vetores de coordenadas cartesianas normalizados/não normalizados, vetores de coordenadas esféricas normalizados/não normalizados ou vetores definidos em um sistema de coordenadas geométricas 3D adequado e similares.
[008] Em outro aspecto, uma modalidade de um sistema de servidor de vídeo operativo, em associação a um ambiente de transmissão contínua de
5 / 125 vídeo imersivo de 360 graus, é descrita, a qual compreende um ou mais processadores e um ou mais módulos de memória persistentes que têm instruções de programa nos mesmos que são configuradas para executar uma modalidade do método de inserção de anúncio anterior, quando executadas pelo(s) processador(es) do sistema.
[009] Em um aspecto adicional, uma modalidade de um dispositivo de cliente operativo, em um ambiente de vídeo imersivo de 360 graus, é descrito, que compreende um ou mais processadores, um reprodutor de mídia que tem controles de usuário e um ou mais módulos de memória persistente que têm instruções de programa nos mesmos, que são configurados para realizar, quando executados pelos processadores, uma modalidade de um método de reprodução de vídeo baseado em dispositivo, conforme apresentado abaixo, no presente documento.
[0010] Em uma implementação exemplificativa, um dispositivo de cliente pode ser configurado para operar com vários tipos de fluxos de bits codificados que têm diferentes qualidades que podem ser geradas com base em pelo menos uma dentre a compressão de codificação de vídeo de alta eficiência (HEVC) H.265, compressão de Video 1 (AV1) de Alliance for Open Media (AOMedia) e compressão H.266, também denominada Codificação Versátil de Vídeo (VVC) ou compressão de Codec de Vídeo Futuro (FVC).
[0011] Em outros aspectos, uma ou mais modalidades de uma mídia legível por computador não transitória ou de mídias distribuídas que contêm instruções de programa executáveis por computador ou de porções de código armazenadas no mesmo são descritas para a realização de uma ou mais modalidades dos métodos da presente invenção, quando executadas por uma entidade de processador de um nó de rede, aparelho, sistema, elemento de rede, dispositivo de assinante e similares, mutatis mutandis. Outras características das várias modalidades são conforme reivindicado nas
6 / 125 reivindicações dependentes.
[0012] As modalidades exemplificativas descritas no presente documento proveem vários benefícios em um ambiente de consumo de mídia imersivo, o que inclui, mas sem limitação, a capacidade de inserir vários tipos de conteúdo de anúncio que não são apenas mais coerentes com o vídeo de 360 graus, mas também são configurados para serem colocados em um quadro de vídeo de modo que não dificultem a experiência imersiva, independentemente do esquema de mapeamento de projeção usado na criação do efeito espacial 3D. Em virtude dos anúncios serem incorporados no vídeo, e não sobrepostos, um esquema de inserção de anúncio exemplificativo da presente invenção é mais resiliente contra o bloqueio de anúncio. Além disso, à medida que os ladrilhos de conteúdo de anúncio são costurados em um quadro multiplexado de acordo com técnicas-padrão de codec de vídeo, não é necessária a reprodução de nenhum decodificador extra, pelos clientes. Além disso, os produtores ou editores de conteúdo podem especificar e controlar certas regiões dentro de um vídeo em que esses anúncios podem ou não ser colocados definindo-se ou configurando-se adequadamente as políticas de inserção.
[0013] Em aspectos adicionais, quadros de vídeo ladrilhados de um ativo de vídeo imersivo de 360° podem ser vantajosamente montados com um subconjunto de ladrilhos otimizados para janelas de visualização de maior qualidade com base na informação de vetor de foco e de largura de banda alocada. Em virtude dos quadros serem seletivamente otimizados para janela de visualização, o transporte de fluxos multiplexados de alta qualidade é possível, mesmo em ambientes com restrição de largura de banda, sem sacrificar a experiência de visualização. As modalidades exemplificativas pode ser vantajosamente configuradas de modo que os ladrilhos de alta qualidade sejam sempre entregues na visualização direta, com qualidades de degradação controladas em várias áreas mais distantes do campo de visão
7 / 125 direto, com a menor qualidade na área que está na direção diametralmente oposta de onde o usuário está procurando. Assim, quando um fluxo é entregue ao dispositivo, o usuário sempre recebe o maior QoE de vídeo na área para onde os mesmos estão olhando diretamente. Além disso, quando o usuário move a cabeça, a alternação de Mid-GOP facilitada por algumas modalidades exemplificativas permite receber ladrilhos de alta qualidade o mais rápido possível, com latência mínima. Com os ladrilhos codificados para atualização gradual, quando um usuário altera seu campo de visão, as modalidades exemplificativas podem reduzir adicionalmente a latência do vídeo, visto que o tamanho do armazenamento temporário de vídeo pode ser minimizado enviando-se vários ladrilhos de alta qualidade na atualização inicial do próximo quadro, para entrega. Ao longo dos próximos vários quadros, uma modalidade exemplificativa aumenta gradualmente a qualidade dos ladrilhos restantes, até que a qualidade dos ladrilhos seja alcançada, com base no campo de visão atual e na largura de banda permitida.
[0014] Os benefícios adicionais e as vantagens das modalidades se tornarão evidentes em vista da seguinte descrição e das Figuras anexas.
BREVE DESCRIÇÃO DOS DESENHOS
[0015] As modalidades da presente descrição são ilustradas a título de exemplo e de limitação, nas Figuras dos desenhos anexos, nas quais as referências semelhantes indicam elementos semelhantes. Deve-se notar que diferentes referências a “uma” (artigo) ou “uma” (número) modalidade, na presente descrição, não são necessariamente para a mesma modalidade, e tais referências podem significar pelo menos uma. Além disso, quando um recurso específico, uma estrutura ou uma característica é descrita junto com uma modalidade, sugere-se que a mesma esteja dentro do conhecimento de uma pessoa versada na técnica para efetuar tal recurso, estrutura ou característica, junto com outras modalidades, quer explicitamente descrito ou não.
[0016] Os desenhos anexos são incorporados e formam uma parte da
8 / 125 especificação para ilustrar uma ou mais modalidades exemplificativas da presente descrição.
Várias vantagens e recursos da descrição serão entendidos a partir da seguinte Descrição Detalhada obtida junto com as reivindicações anexas e em referência às Figuras de desenho anexas, nas quais: a Figura 1 descreve um ambiente de rede exemplificativo generalizado, em que uma ou mais modalidades da presente invenção pode ser praticada para prover o vídeo imersivo de 360° através de uma variedade de configurações de rede; a Figura 2 descreve uma arquitetura de rede exemplificativa que compreende uma porção do ambiente mostrado na Figura 1 para facilitar a codificação de ladrilho otimizada de vídeo imersivo de 360°, de acordo com uma modalidade exemplificativa; a Figura 3 representa um diagrama de blocos de um codificador de ladrilho exemplificativo que pode ser provido como parte de um sistema de preparação e/ou processamento mídia configurado para operar em um arranjo da arquitetura de rede da Figura 2; as Figuras 4A a 4C ilustra quadros de vídeo exemplificativos que contêm uma ou mais fatias e/ou ladrilhos por cada quadro em um arranjo de codificador exemplificativo; a Figura 5 é um fluxograma ilustrativo de vários blocos, etapas e/ou atos de um método de preparação/processamento de mídia que podem ser (re)combinados em um ou mais arranjos, com ou sem blocos, etapas e/ou atos de fluxogramas adicionais da presente descrição, para facilitar a otimização de vídeo imersivo 360°, de acordo com uma ou mais modalidades da presente invenção; a Figura 6 é ilustrativa de vários blocos, etapas e/ou atos de um arranjo de codificação exemplificativo que envolve um esquema de codificação em fases (PE) ou um esquema de codificação de bloco Intra (BIE), que pode ser implementado como parte do método de
9 / 125 preparação/processamento de mídia exemplificativa da Figura 5, de acordo com uma ou mais modalidades de a presente invenção; a Figura 7 é um fluxograma ilustrativo de um esquema de BIE, de acordo com uma modalidade exemplificativa da presente invenção; a Figura 8A é um fluxograma ilustrativo de um processo para configurar um esquema de BIE em um arranjo de codificação de ladrilhos, de acordo com uma modalidade exemplificativa da presente invenção; a Figura 8B é um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais em um esquema de BIE exemplificativo, de acordo com uma modalidade exemplificativa da presente invenção; a Figura 9 é um fluxograma ilustrativo de um esquema de PE, de acordo com uma modalidade exemplificativa da presente invenção; a Figura 10A é um fluxograma ilustrativo de um processo para configurar um esquema de PE em um arranjo de codificação de ladrilhos, de acordo com uma modalidade exemplificativa da presente invenção; a Figura 10B é um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais em um esquema de PE exemplificativo, de acordo com uma modalidade exemplificativa da presente invenção; a Figura 11 descreve uma pluralidade de fluxos de bits codificados que têm diferentes qualidades, gerados por um sistema de codificador de ladrilhos baseado em BIE, em uma modalidade exemplificativa; a Figura 12 retrata uma pluralidade de fluxos de bits codificados que têm fases diferentes para uma representação de taxa de bits específica, gerada por um sistema codificador de ladrilho baseado em PE, em uma modalidade exemplificativa; a Figura 13A é ilustrativa de vários blocos, etapas e/ou atos de um esquema de costura de ladrilho exemplificativo que envolve fluxos de ladrilhos baseados em BIE, de acordo com uma modalidade da presente
10 / 125 invenção; a Figura 13B é ilustrativa de vários blocos, etapas e/ou atos de um esquema de costura de ladrilho exemplificativo que envolve fluxos de ladrilhos baseados em PE, de acordo com uma modalidade da presente invenção; a Figura 13C é um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais, em relação a um esquema de costura de ladrilho exemplificativo, de acordo com uma modalidade da presente invenção; a Figura 14 é ilustrativa de um quadro de vídeo 360° que compreende ladrilhos selecionados dentre fluxos de bits codificados que têm diferentes qualidades ou QPs, de acordo com uma modalidade exemplificativa da presente invenção; as Figuras 15A e 15B são fluxogramas ilustrativos de vários blocos, etapas e/ou atos de um método que pode ser (re)combinado em um ou mais arranjos, com ou sem blocos, etapas e/ou atos de fluxogramas adicionais da presente descrição, para facilitar a seleção otimizada de ladrilho baseada em pesos associados ao foco de usuário, em um ambiente de visualização de vídeo imersivo de 360°, de acordo com uma ou mais modalidades da presente invenção; as Figuras 16A e 16B são ilustrativas de arranjos geométricos exemplificativos para facilitar a determinação da separação angular entre a direção de foco de usuário e as posições do ladrilho em um quadro com codificação de ladrilho; a Figura 16C é ilustrativa de um ambiente de visualização de vídeo imersivo de 360° exemplificativo para fins de uma ou mais modalidades da presente invenção; a Figura 17A é um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais, em relação a um processo de otimização de vídeo imersivo de 360° exemplificativo, de acordo com uma modalidade
11 / 125 exemplificativa da presente invenção; a Figura 17B é um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais, no que diz respeito a outros aspectos de um processo de otimização de vídeo imersivo 360° exemplificativo, de acordo com uma modalidade exemplificativa da presente invenção; a Figura 18A retrata um quadro de vídeo exemplificativo que tem localizações de ladrilhos com diferentes pesos, determinados de acordo com uma modalidade da presente invenção; a Figura 18B retrata um armazenamento temporário de dispositivo exemplificativo com quadros de ladrilhos de janela de visualização com codificação diferente; as Figuras 18C e 18D ilustram espaços de visualização 3D em que as qualidades do ladrilho são distribuídas com base na direção de foco de usuário; a Figura 19 é um fluxograma ilustrativo de vários blocos, etapas e/ou atos de um processo de seleção de ladrilhos e otimização de largura de banda que podem ser (re)combinados em um ou mais arranjos de um método de preparação/processamento de mídia, com ou sem blocos, etapas e/ou atos de fluxogramas adicionais da presente descrição, de acordo com uma ou mais modalidades da presente invenção; a Figura 20 é um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais, em relação a um processo de seleção de ladrilhos e de otimização de largura de banda exemplificativo, de acordo com uma modalidade da presente invenção; as Figuras 21A e 21B são fluxogramas ilustrativos de blocos, etapas e/ou atos adicionais, no que diz respeito a aspectos adicionais de um processo de seleção de ladrilhos e de otimização de largura de banda, de acordo com uma modalidade exemplificativa da presente invenção; a Figura 22 é ilustrativa de uma configuração de modelo de
12 / 125 armazenamento temporário de transmissão para uso de um arranjo de seleção de ladrilhos e de otimização de largura de banda, de acordo com uma modalidade exemplificativa da presente invenção; a Figura 23 descreve um arranjo em que um dispositivo de UE pode ser configurado para realizar certos aspectos de otimização de vídeo imersiva de 360°, para fins de uma modalidade da presente descrição de patente; a Figura 24 descreve um diagrama de blocos de um aparelho que pode ser (re)configurado e/ou (re)arranjado como uma plataforma, um nó ou um elemento para efetuar um ou mais aspectos de processamento, preparação e otimização de vídeo imersivo de 360°, de acordo com uma modalidade da presente invenção; a Figura 25 representa um diagrama de blocos de um dispositivo de UE exemplificativo com detalhes adicionais, para fins de uma modalidade da presente descrição de patente; as Figuras 26A a 26C retratam fluxogramas ilustrativos de vários blocos, etapas e/ou atos relativos à inserção de conteúdo de anúncio em um ativo de vídeo imersivo de 360° durante a reprodução, de acordo com uma ou mais modalidades da presente invenção; a Figura 27 descreve metadados de ladrilho ou uma especificação de manifesto exemplificativa operativa para indicar a disponibilidade de inserção de anúncio para ladrilhos em um quadro de vídeo, de acordo com uma modalidade da presente invenção; as Figuras 28A a 28C retratam cenários de exibição exemplificativos, no que diz respeito à inserção de conteúdo de anúncio em um ambiente de vídeo imersivo de 360°, de acordo com uma modalidade da presente invenção; a Figura 29 descreve um sistema para facilitar a inserção de anúncio em um ambiente de vídeo imersivo de 360°; e
13 / 125 a Figura 30 é um fluxograma de vários blocos, etapas e/ou atos relativos à inserção de conteúdo de anúncio em um ativo de vídeo imersivo de 360° durante a reprodução, de acordo com outras modalidades da presente invenção.
DESCRIÇÃO DETALHADA
[0017] Na descrição, no presente documento, para as modalidades da presente invenção, numerosos detalhes específicos são providos, tais como exemplos de componentes e/ou métodos, para prover uma compreensão completa das modalidades da presente invenção. Uma pessoa versada na técnica relevante reconhecerá, no entanto, que uma modalidade da invenção pode ser praticada sem um ou mais dos detalhes específicos, ou com outros aparelhos, sistemas, montagens, métodos, componentes, materiais, partes e/ou similares. Em outros casos, as estruturas, os materiais ou as operações bem conhecidas não são especificamente mostradas ou descritas em detalhes para evitar obscurecer aspectos de modalidades da presente invenção. Consequentemente, será reconhecido por uma pessoa versada na técnica que as modalidades da presente descrição podem ser praticadas sem tais componentes específicos. Deve-se adicionalmente reconhecer que aqueles técnicos no assunto, com o auxílio da Descrição Detalhada, no presente documento apresentado, e tendo como referência os desenhos anexos, poderão produzir e usar uma ou mais modalidades, sem experimentação indevida.
[0018] Além disso, termos como “acoplado” e “conectado”, juntamente com seus derivados, podem ser usados na descrição, reivindicações a seguir, ou em ambas. Deve entender-se que esses termos não são necessariamente destinados como sinônimos um para o outro. “Acoplado” pode ser usado para indicar que dois ou mais elementos, que podem ou não estar em contato físico ou elétrico direto entre si, cooperam ou interagem entre si. “Conectado” pode ser usado para indicar o estabelecimento de
14 / 125 comunicação, isto é, uma relação comunicativa, entre dois ou mais elementos que são acoplados entre si. Além disso, em uma ou mais modalidades exemplificativas, no presente documento apresentado, de um modo geral, um elemento, componente ou módulo pode ser configurado para realizar uma função, se o elemento puder ser programado para realizar ou, de outro modo, estiver estruturalmente disposto para executar essa função.
[0019] Conforme usado no presente documento, um elemento de rede, nó ou subsistema pode ser compreendido por um ou mais equipamentos de rede de serviço, o que inclui hardware e software, que se interconecta comunicativamente outros equipamentos em uma rede (por exemplo, outros elementos de rede, estações finais, etc.), e é adaptado para hospedar um ou mais aplicativos ou serviços, seja em um ambiente virtualizado/não virtualizado, no que diz respeito a uma pluralidade de assinantes e nós de equipamentos de usuário associados (UE) que são operacionais para receber/consumir conteúdo em uma rede de distribuição de mídia em que ativos de conteúdo de mídia podem ser distribuídos e entregues com uso de mecanismos baseados em fluxo ou em arquivo. Como tal, alguns elementos de rede podem ser dispostos em um ambiente de rede de rádio sem fio, ao passo que outros elementos de rede podem ser dispostos em uma infraestrutura pública de rede comutada por pacotes, o que inclui ou, de outro modo, envolve infraestrutura de rede de entrega de conteúdo adequada (CDN) que pode incluir CDNs públicas, privadas ou mistas. Além disso, os elementos de rede adequados, o que inclui uma ou mais modalidades no presente documento apresentado, podem envolver infraestruturas terrestres e/ou de entrega de banda larga por satélite, por exemplo, uma arquitetura de rede de linha de assinante digital (DSL), uma arquitetura de Sistema de Terminação de Modem a Cabo (CMTS) em conformidade com a Especificação de Interface de Serviço De Cabo Através de Dados (DOCSIS), arquitetura de rede de vídeo digital comutado (SDV), uma arquitetura de rede
15 / 125 híbrida de Fibra-Coaxial (HFC), uma arquitetura de rede de acesso via satélite adequada ou uma arquitetura de rede de acesso sem fio de banda larga através de conectividade por celular e/ou Wi-Fi.
Consequentemente, alguns elementos de rede podem compreender “vários elementos de rede de serviços” que proveem suporte para várias funções baseadas em rede (por exemplo, gerenciamento de políticas de entrega de preparação de mídia A/V imersiva de 360°, controle de sessão, reforço de políticas de QoS, gerenciamento de programação de largura de banda, gerenciamento de políticas de prioridade de provedor de conteúdo, gerenciamento de políticas de transmissão contínua e similares), além de prover suporte para vários serviços de aplicativos (por exemplo, aplicativos de dados e multimídia, o que inclui ativos de vídeo imersivos de 360° (também chamados de ativos de vídeo de 360 graus, ou simplesmente ativos de vídeo 360) em diferentes qualidades ou definições). As estações finais de assinante ou dispositivos clientes exemplificativos podem incluir vários dispositivos, vinculados ou não, que podem consumir ou entregar ativos de conteúdo de mídia com uso de transmissão contínua e/ou tecnologias de transferência por download baseadas em arquivos, que podem envolver algum tipo de adaptação de taxa em certas modalidades.
Os dispositivos cliente ou dispositivos de UE ilustrativos podem, por isso, incluir qualquer dispositivo configurado para executar, entre outros, um ou mais aplicativos de cliente para receber, gravar, armazenar e/ou decodificar/renderizar conteúdo de vídeo 360, mídia ao vivo e/ou mídia estática/sob demanda, que pode incluir mídia de Realidade Virtual (VR), mídia de Realidade Aumentada (AR), mídia de Realidade Mista (MR), de um ou mais provedores de conteúdo, por exemplo, através de uma rede de acesso de banda larga, com uso de HTTP, HTTPS, RTP e similares.
Assim, tais dispositivos de clientes podem incluir STBs baseados em IP de próxima geração, TVs em rede, gravadores de vídeo pessoais/digitais (PVR/DVRs), projetores de mídia em rede, computadores do tipo laptop portáteis,
16 / 125 computadores do tipo netbook, computadores do tipo palm top, computadores do tipo tablet, telefones do tipo smartphone, telefones de multimídia/vídeo, equipamentos de usuário móvel/sem fio, reprodutores de mídia portáteis, sistemas ou consoles de jogos portáteis (como o Wii®, Play Station 3®, etc.), que operam em conjunto com dispositivos de exibição 3D e similares, que podem acessar ou consumir conteúdos de 360 graus providos através de uma rede de distribuição de mídia adequada, em que um esquema de largura de banda e qualidade de experiência (QoE) pode ser provido de acordo com uma ou mais modalidades apresentadas no presente documento.
[0020] Uma ou mais modalidades da presente descrição de patente pode ser implementada com uso de diferentes combinações de software, firmware e/ou hardware. Assim, uma ou mais dentre as técnicas mostradas nas Figuras (por exemplo, fluxogramas) podem ser implementadas com uso de código e dados armazenados, e executadas em um ou mais nós ou dispositivos eletrônicos (por exemplo, um dispositivo de cliente assinante ou uma estação final, um elemento de rede, etc.). Esses dispositivos eletrônicos podem armazenar e comunicar (internamente e/ou com outros dispositivos eletrônicos através de uma rede) códigos e dados com uso de suportes legíveis por computador, tais como suportes de armazenamento não transitórios legíveis por computador (por exemplo, discos magnéticos, discos ópticos, memória de acesso aleatório, memória somente leitura, dispositivos de memória flash, memória de mudança de fase, etc.), mídias de transmissão transitórias legíveis por computador (por exemplo, sinais elétricos, ópticos, acústicos ou outros sinais propagados — como ondas portadoras, sinais infravermelhos, sinais digitais), etc. Além disso, esses elementos de rede geralmente podem incluir um conjunto de um ou mais processadores acoplados a um ou mais outros componentes, como um ou mais dispositivos de armazenamento (por exemplo, mídia de armazenamento não transitória legível por máquina), bem como banco(s) de dados de armazenamento,
17 / 125 dispositivos de entrada/saída do usuário (por exemplo, um teclado, uma tela sensível ao toque, um dispositivo de apontamento e/ou um monitor), e conexões de rede para efetuar a sinalização e/ou transmissão de mídia ao portador. O acoplamento do conjunto de processadores e outros componentes pode ser normalmente através de um ou mais barramentos e pontes (também denominados controladores de barramento), arranjados em qualquer arquitetura conhecida (por exemplo, multiprocessamento simétrico/compartilhado) ou até então arquiteturas desconhecidas. Assim, o dispositivo de armazenamento ou componente de um determinado dispositivo eletrônico ou elemento de rede pode ser configurado para armazenar códigos e/ou dados para execução em um ou mais processadores desse elemento, nó ou dispositivo eletrônico para efeitos de implementação de uma ou mais técnicas da presente descrição.
[0021] Referindo-se agora aos desenhos e, mais particularmente, à Figura 1 representada nos mesmos, trata-se de um ambiente de rede exemplificativo generalizado 100, em que uma ou mais modalidades da presente invenção pode ser praticada para prover vídeo imersivo distribuído ao longo de uma variedade de configurações para consumo por uma ou mais dispositivos de visualização. Um sistema de fonte/captura de vídeo exemplificativo 102 é ilustrativo de qualquer arranjo configurado para gravar, gerar, ler, decodificar, prover ou, de outro modo, obter mídia que seja renderizável para visualização em 360°, em inúmeros ambientes de dispositivo de cliente, que podem incluir dispositivos vinculados ou não, peças autônomas de equipamento, equipamentos de propriedades de assinantes, equipamentos de jogos e/ou equipamentos que operam em combinação(ões) emparelhada(s) com dispositivos de exibição 3D, etc., que operam com uma variedade de tecnologias de acesso/conexão, conforme observado em outras partes do presente pedido de patente. A título de ilustração, computadores/monitores 144, que podem estar associados a
18 / 125 monitores montados na cabeça (HMDs) ou fones de ouvido 142, que, por sua vez, também podem estar associados a dispositivos portáteis, como computadores do tipo tablet, telefones do tipo smartphone, telefones do tipo phablet, dispositivos de jogos, etc., mostrados coletivamente como dispositivos 140, e similares, geralmente mostrados como dispositivos de cliente 138, podem ser configurados para decodificar e renderizar vários tipos de conteúdo de vídeo 360°, que podem ser codificados e ter otimização de largura de banda, de acordo com os preceitos da presente invenção, conforme será definido em detalhes adicionais mais abaixo.
Em uma modalidade, o sistema de captura/ fonte de imersivo de vídeo de 360° 102 pode incluir uma ou mais câmeras de alta definição (por exemplo, de 4K, 8K, etc.), o que inclui câmeras omnidirecionais ou panorâmicas, etc., ou um armazenamento de vídeo que pode ser configurado para prover fluxos de vídeo de fonte de várias maneiras.
Dependendo da configuração e nível de integração, no que diz respeito ao pré-processamento de vídeo, os fluxos de saída da fonte/ captura de vídeo imersiva de 360° exemplificativa 102 podem ser providos como fluxos compatíveis com uma ou mais interfaces, Interface multimídia de alta definição (HDMI), Interface Digital Em Série (SDI), SDI de alta definição (HD-SDI), ou outros formatos, que podem incluir fluxos não costurados ou costurados, com ou sem mapeamento de projeção, e com ou sem codificação de vídeo de fonte.
Por exemplo, os fluxos de fonte não costurados, sem mapeamento de projeção 104A, podem ser providos a um costurador de vídeo 106 que combina fluxos que cobrem ângulos sobrepostos em um fluxo costurado 108. Em outra modalidade, os fluxos de fonte de vídeo podem compreender fluxos de HDMI/SDI/HD-DSI costurados 104B.
Além disso, pode haver outro processamento de vídeo capturado que pode envolver a correção de lente.
Quando os fluxos não são mapeados por projeção, um sistema de mapeamento de projeção 110 fica operacional para gerar um fluxo mapeado por projeção 114, a partir de fluxos costurados 104B/108, com uso
19 / 125 de um esquema de projeção de mapa adequado, por exemplo, uma projeção esférica de imagem que inclui, sem limitação, projeção equirretangular, projeção em Mapa de Cubo, projeção de Mapa de Cubo Equiangular (EAC), projeção da pirâmide, projeção do tipo olho de peixe, etc.
Em uma modalidade adicional, os fluxos de vídeo podem incluir fluxos costurados e mapeados por projeção 104C que podem ser providos a um módulo de codificação de vídeo de fonte 112 operativo para efetuar um ou mais esquemas de codificação ou compressão, dependendo da implementação, por exemplo, o que inclui, sem limitação, H.264 ou Codificação de Vídeo Avançada (MPEG-4 AVC), Codificação de vídeo de alta eficiência (HEVC) ou H.265 (MPEG-H Parte 2), H.262 (MPEG-2), H.264 (MPEG-4, Parte 2), Vídeo 1 (AV1) de Alliance For Open Mídia (AOMedia), H.266, Codificação de Vídeo Versátil (VVC), Codificação de Vídeo Futura (FVC), etc., em que alguns dos esquemas podem ou não incluir codificação de ladrilho e /ou pode ou não transcodificar a taxa de bits adaptável (ABR). Em um arranjo, os fluxos mapeados por projeção do sistema de mapeamento de projeção 110 também podem ser providos ao sistema de codificador 112 para efetuar a compressão de vídeo apropriada.
Dependendo da configuração e do nível de integração, em relação ao pré-processamento na preparação de mídia, um codificador/transcodificador de ladrilhos 120 é vantajosamente provido, de acordo com os preceitos da presente invenção, para processar fluxos de vídeo não compactados recebidos do sistema de mapeamento de projeção 110 (fluxos de vídeo 114), fluxos de vídeo compactados recebidos do sistema de codificador 112 (fluxos de vídeo 116), ou fluxos de vídeo 104C, a partir do sistema de fonte/ captura de vídeo 102. Conforme será apresentado em detalhes adicionais abaixo, o codificador/transcodificador de ladrilhos 120, cuja funcionalidade pode ser integrada ao sistema de codificador 112 e/ou o sistema de mapeamento de projeção 110, em algumas modalidades, é operacional para gerar fluxos codificados de múltiplas representações de taxa
20 / 125 de bits de um fluxo de vídeo de entrada correspondente a um ativo ou programa de vídeo imersivo de 360°, em que cada representação de taxa de bits que tem um certo nível de qualidade de vídeo pode ser codificada para conter quadros com ladrilhos, quadros e/ou dados de fatia adequadamente modificados para facilitar a distribuição de vídeo de 360° com otimização de largura de banda. Um empacotador de ladrilhos 122 é operativo para empacotar os fluxos codificados do codificador/transcodificador 120 para armazenamento 124 e provisão de arquivos de manifesto associados 126 que descrevem agrupamentos de ladrilho, localizações de ladrilho, tipos de mídia e características relacionadas dos fluxos codificados. Conforme será adicionalmente apresentado abaixo, um sistema 132 de seleção de ladrilhos e geração de fluxo é operativo para selecionar ladrilhos apropriados responsivos para controlar entradas e gerar um fluxo de saída de vídeo multiplexado que pode ser entregue por um servidor de entrega 134 associado a uma rede de acesso 136 que serve aos dispositivos de visualização 138. Em uma implementação exemplificativa, a entrega dos fluxos de vídeo multiplexados aos usuários finais pode ser efetuada com base em vários protocolos, por exemplo, HTTP/S, HTTP/S em partes, RTP/RTCP, etc., em uma variedade de infraestruturas de rede, conforme observado em outros lugares, no presente pedido de patente.
[0022] As pessoas versadas na técnica reconhecerão que o ambiente de rede exemplificativo generalizado 100 pode ser implementado em uma arquitetura hierárquica de rede, com vários aspectos de captura e preparação de mídia, o que inclui, por exemplo, costura de fluxo de fonte, mapeamento de projeção, compressão de mídia de fonte, codificação/transcodificação ladrilhada/ABR, empacotamento, etc., bem como processos de distribuição/carregamento e nó de borda que ocorrem em diferentes porções de rede dispostas a diferentes níveis hierárquicos, envolvendo um ou mais operadores, redes de entrega de conteúdo (CDNs), redes de borda e similares.
21 / 125 Além disso, em algumas implementações, pelo menos alguns dos aparelhos e processos anteriores podem ser baseados em nuvem. Em alguns arranjos, uma CDN pode ser um grande sistema distribuído de servidores implantados em vários centros de dados conectados à Internet ou outra rede de comunicações pública/privada. Uma CDN pode ser uma rede gerenciada ou não gerenciada e também pode ser uma federação de redes gerenciadas ou não gerenciadas.
[0023] Uma modalidade exemplificativa de um sistema de servidor/fonte de mídia associado operativamente dentro do ambiente de rede exemplificativo acima pode, por isso, ser configurado, por exemplo, como um headend global, para aceitar o conteúdo de mídia de fontes ao vivo e/ou fontes de arquivos estáticos, por exemplo, provedores de conteúdo on- line, como Hulu®, Netflix®, YouTube® ou Amazon® Prime, bem como catálogo VOD ou provedores de conteúdo ou estúdios como, por exemplo, Disney, Warner, Sony, etc. O conteúdo de mídia de fontes ao vivo pode incluir programação ao vivo capturada em relação a qualquer tipo de evento, por exemplo, eventos esportivos/entretenimentos/jogos, concertos, programas de TV ao vivo, fontes de difusão de notícias ao vivo, como, por exemplo, emissoras nacionais (por exemplo, NBC, ABC, etc.), bem como canais de emissoras a cabo como Canais Time Warner da CNN, ESPN, CNBC, etc., e emissoras locais, etc., o que inclui quaisquer inserções de mídia secundárias, como canais de mídia de anúncio.
[0024] Sem limitação, uma arquitetura de rede 200 exemplificativa (que pode formar uma porção do ambiente mostrado na Figura 1) é representada na Figura 2 para facilitar a codificação de ladrilhos otimizada de vídeo imersivo, de acordo com uma modalidade da presente invenção. Um fluxo de entrada de mídia 202 é ilustrativo de um fluxo de vídeo correspondente a um ativo de vídeo 360° que pode ser adequadamente costurado, mapeado por projeção e/ou codificado, conforme apresentado na Figura 1, que pode ser distribuído, carregado ou provido, de outro modo, a um
22 / 125 servidor de origem CDN 204 associado a uma rede de entrega de conteúdo de operador 206. Em geral, o fluxo de entrada de mídia 202 pode incluir um fluxo correspondente a menos de um conteúdo de TV ao vivo, conteúdo de IPTV, conteúdo de TV deslocado por tempo (TS), conteúdo de TV deslocado por lugar (PS), conteúdo de jogos, conteúdo de vídeo sob demanda (VOD), conteúdo VR/AR/MR, conteúdo de gravador de vídeo digital em rede (NDVR) e similares, ou qualquer conteúdo que seja (pré-)processado para uma experiência de visualização de 360 graus.
Um servidor de borda de CDN 208 acoplado à CDN 206 pode ser configurado para receber o(s) fluxo(s) de mídia carregado(s) 202 correspondente(s) aos respectivos ativos de vídeo, que pode(m) ser armazenado(s) em base(s) de dados adequada(s) (não mostrada(s) especificamente). Um codificador de ladrilhos 210, que pode ser configurado para operar em conformidade com um esquema-padrão de codec (por exemplo, HEVC, AV1, etc.) é operacional para gerar uma pluralidade de fluxos de taxa de bits adaptativa de ladrilhos 212, em que cada fluxo pode incluir blocos de uma resolução específica, taxa de bits e tamanhos de pixels (dependendo das razões). A título de ilustração, os fluxos 212 podem incluir um ou mais fluxos de 32K (30.730 pixels horizontais x 17.280 pixels verticais), fluxos de 16K (15.360 pixels horizontais x 8.640 pixels verticais), um ou mais fluxos de 8K (7.680 pixels horizontais x 4.320 pixels verticais), um ou mais fluxos de 4K (3.840 pixels horizontais x 2.160 pixels verticais), um ou mais fluxos de HD (1.920 pixels horizontais x 1.080 pixels verticais), um ou mais fluxos de 720p (1.280 pixels horizontais x 720 pixels verticais), etc., em que os fluxos de resolução mais alta podem ser codificados em faixas de taxa de bits mais altas, enquanto os fluxos de resolução mais baixa podem ser codificados em faixas de taxa de bits mais baixas.
Por exemplo, os fluxos de 32K podem ser codificados na faixa de 800 a 1.000 Mbits/s (ou Mbps), fluxos de 16K podem ser codificados na faixa de 200 a 300 Mbps, fluxos de 8K podem ser codificados na faixa de 80 a 100 Mbps, e assim por diante, para
23 / 125 fluxos de 720p codificados na faixa de 1,2 a 3 Mbps. Além disso, os fluxos de taxa de bits adaptativa de ladrilhos 212, também denominados fluxos de bits codificados por ladrilho, podem incluir quadros que têm um número adequado de ladrilhos por quadro, por exemplo, 128 ladrilhos para 4K, dependendo do esquema que está sendo empregado.
[0025] Em um arranjo, o codificador de ladrilhos 210 pode ser configurado para gerar fluxos de bits codificados em ladrilho como uma pluralidade de fluxos codificados por fase para cada representação de taxa de bits do fluxo de entrada de mídia 202, em que cada fluxo codificado por fase, para uma representação de taxa de bits específica, é provido com um quadro especializado em um localização específica na estrutura de Grupo de Imagens (GOP) do fluxo, dependendo da fase, conforme será definido em detalhes adicionais mais abaixo. Esse esquema de codificação pode ser denominado esquema de codificação em fases (PE), no que diz respeito a certas modalidades da presente invenção. Em outro arranjo, codificador ladrilhado 210 pode ser configurado para gerar um par de fluxos de bits codificados por ladrilhos, por exemplo, um primeiro e um segundo fluxo de bits codificado por ladrilho, para cada representação de taxa de bits do fluxo de entrada de mídia 202, em que um primeiro fluxo de bits codificado pode compreender um fluxo de bits normal ou padrão codificado por ladrilho gerado de acordo com um esquema de codificação conhecido ou até agora desconhecido, e um segundo fluxo de bits codificado pode ser codificado de modo que um quadro especializado seja provido em cada local, em uma estrutura de GOP, conforme será adicionalmente apresentado mais abaixo. Esse esquema de codificação pode ser denominado esquema de Codificação de Bloco Intra (BIE) ou Codificação de Tudo Intra (AIE), no que diz respeito a certas modalidades da presente invenção.
[0026] Independentemente de se o esquema de codificação de PE ou esquema de codificação de BIE é usado, um empacotador 214 é operativo
24 / 125 para empacotar os fluxos de bits codificados por ladrilho 212 e gerar arquivos de manifesto adequados que descrevem características de agrupamentos de ladrilhos por quadro para cada fluxo de bits codificado por ladrilho, por exemplo, localização de ladrilho, informação de cabeçalho de fatia, vários tipos de metadados, o que inclui o tempo de imagem, informação de espaço de cor, informação paramétrica de vídeo, etc., que pode ser armazenada em uma instalação de armazenamento de mídia empacotada adequada 240, juntamente com fluxo adequado de manifesto 241. Um nó de borda de rede 216 que inclui um sistema de otimização de vídeo 215, que compreende uma pluralidade de módulos ou subsistemas, é operativo em associação com um sistema de apoio de vídeo 238 para efetuar uma sessão de vídeo imersiva de 360°, com um dispositivo de propriedade 236 de propriedades de assinante 234, que é servido por um tubo de largura de banda gerenciado 232, efetuado através de uma rede de acesso adequada (por exemplo, uma porção de rede de DSL/DOCSIS que tem uma infraestrutura adequada que pode incluir, por exemplo, roteadores, elementos de DSLAM/CMTS, etc., ou elementos de rede de acesso de rádio 3G/4G/5G adequados, o que inclui infraestrutura sem fios fixa em determinadas implementações, e similares), geralmente representadas por nó ou elemento 230.
[0027] Em um arranjo, o sistema de otimização de vídeo 215 pode incluir um subsistema de seleção de ladrilho 218 que é responsivo operativo às políticas de otimização de largura de banda e gerenciamento de QoE, bem como informação de vetor de foco do usuário, entre outros, para prover ladrilhos 220 selecionados dentre fluxos de bits de qualidade de vídeo diferentes para um subsistema de ladrilho combinando e de geração de fluxo
222. Os quadros de vídeo multiplexados com ladrilhos de diferentes fluxos de bits 224 podem ser providos a um serviço de entrega 226 para facilitar a transmissão de fluxo de ladrilho multiplexado 228 para a infraestrutura a jusante 230. Em geral, quando uma solicitação de usuário 250, para uma
25 / 125 sessão de vídeo imersiva de 360°, é gerada, a mesma é processada pelo sistema de apoio de vídeo 238 e encaminhada para o sistema de otimização de vídeo 215 através de uma mensagem 252, a fim de obter uma ID de ° sessão e a informação de localização associada às mídias de 360 solicitadas.
Responsivo a uma mensagem de resposta 251 do sistema de otimização de vídeo 215, o sistema de apoio de vídeo 238 é operacional para prover uma resposta 248 que inclui informação de URL apropriada para a mídia e uma ID de sessão para o dispositivo solicitante 236. A informação de foco de usuário (que pode ser uma configuração-padrão inicialmente) e a informação de ID de sessão associada podem ser providas ao elemento de infraestrutura 230 como uma mensagem 246, que pode ser propagada para o sistema de otimização de vídeo 215 como mensagem 254. Além disso, o elemento 230 da infraestrutura é operativo para prover uma mensagem de alocação de largura de banda dinâmica 254 que inclui a informação de ID de sessão para o sistema de otimização de vídeo 215 em um processo relacionado ou separado.
Conforme observado anteriormente, o subsistema de seleção de ladrilho 218 pode ser configurado para operar em resposta a mensagens de controle, em relação à alocação de largura de banda, a informação de vetor de foco de usuário, ou a ambas, para selecionar ladrilhos com diferentes qualidades de vídeo, que podem ser combinados ou costurados em quadros, a fim de gerar um fluxo de saída de vídeo codificado em ladrilho multiplexado.
Em um arranjo, o subsistema de ladrilho combinando e de geração de fluxo 222 pode ser provido como parte do sistema de otimização de vídeo 215 durante a entrega de fluxo de vídeo.
Em outro arranjo, a costura do ladrilho pode ser efetuada durante a reprodução no lado do cliente (por exemplo, no dispositivo do cliente 236 ou em algum outro equipamento local associado ao mesmo) em vez de no lado do servidor.
Nesse arranjo, uma funcionalidade de costura do lado do cliente é operativa para receber os ladrilhos selecionados e executar a costura
26 / 125 necessária, a fim de gerar um fluxo costurado para ser decodificado e renderizado. Várias modalidades, em relação aos processos anteriores, subsistemas e componentes, serão apresentadas em detalhes adicionais nas seguintes seções.
[0028] A Figura 3 descreve um diagrama de blocos de um codificador de ladrilho exemplificativo 300 que pode ser provido como parte de um sistema de preparação e/ou processamento de mídia configurado para funcionar dentro de um arranjo da arquitetura de rede da Figura 2. Sem limitação, o codificador de ladrilho exemplificativo 300 será apresentado abaixo, que pode ser configurado para efetuar um esquema de codificação de PE ou um esquema de codificação de BIE para gerar fluxos de vídeo de múltiplas taxas de bits, com qualidades diferentes, em relação a cada ativo de mídia, sendo compatível com os esquemas-padrão de codec conhecidos ou, até então, desconhecidos, como, por exemplo, H.265, H.266, VVC, AV1, etc., que são compatíveis com codificação de ladrilho. Em geral, em uma modalidade, um quadro especializado (ou, de algum modo sinônimo, uma imagem) é gerado, que é codificado como uma imagem ou um quadro codificado por previsão (P) (isto é, que tem um cabeçalho que identifica o mesmo como um P-quadro), mas contém apenas blocos ou unidades de codificação que são codificados como blocos ou unidades intracodificadas (isto é, I-blocos). Em outra modalidade, um quadro especializado pode compreender um quadro identificado como um quadro bipreditivo (B), mas contém apenas I-blocos. Para efeitos do presente pedido de patente, esses quadros especializados são denominados quadros de “bloco intra” ou quadros “X”, em que os dados de imagem de mídia de todos os blocos são forçados a ser codificados como intracodificados (isto é, nenhuma estimativa ou previsão temporal).
[0029] Para fins de modalidades exemplificativas no presente documento, uma estrutura de GOP é um grupo de imagens sucessivas em um
27 / 125 fluxo de vídeo codificado, que especifica a ordem em que intra- e interquadros são dispostos. Cada fluxo de vídeo codificado compreende GOPs sucessivos, a partir dos quais os quadros visíveis podem ser gerados. Geralmente, uma estrutura de GOP pode conter os seguintes tipos de imagem: (1) I-Imagem ou I-quadro (imagem intracodificada) — uma imagem codificada independentemente de todas as outras imagens. Cada GOP começa (em ordem de decodificação) com esse tipo de imagem. (2) P-imagem ou P- quadro (imagem codificada preditiva) - contém informação de diferença compensada por movimento, em relação às imagens previamente decodificadas. Em projetos mais antigos, como MEPG-1, H.262/MPEG-2 e H.263, cada imagem P só pode referenciar uma imagem, e essa imagem deve preceder a imagem P na ordem de exibição, bem como em ordem de decodificação, e deve ser uma imagem I ou P. Essas restrições não se aplicam aos padrões mais recentes, como, por exemplo, H.264/MPEG-4 AVC, H.265/HEVC, etc. (3) B-imagem ou B-quadro (imagem codificada bipreditiva ou imagem codificada bidirecionalmente preditiva) — que contém informação de diferença do quadro I ou P anterior e seguinte, dentro de uma GOP, e contém informação de diferença compensada por movimento, em relação às imagens previamente decodificadas. Em projetos mais antigos, como MPEG-1 e H.262/MPEG-2, cada B-imagem só pode referenciar duas imagens, a que precede a imagem B em ordem de exibição e a que a segue, e todas as imagens referenciadas devem ser imagens I ou P. Essas restrições não se aplicam aos padrões mais recentes, como, por exemplo, H.264/MPEG- 4 AVC, H.265/HEVC, etc. (4) D-imagem ou D-quadro (imagem com codificação direta DC) — servem como uma representação de acesso rápido de uma imagem para perda de robustez ou encaminhamento rápido em certos tipos de vídeo (por exemplo, vídeo MPEG-1).
[0030] Em geral, um I-quadro indica o início de um GOP. Posteriormente, vários quadros P e B podem seguir. Os I-quadros contêm a
28 / 125 imagem completa e não exigem nenhuma informação adicional para reconstruir os mesmos. Normalmente, os codificadores usam estruturas de GOP que fazem com que cada I-quadro seja um “ponto de acesso aleatório limpo”, de modo que a decodificação possa começar de forma limpa em um I- quadro e quaisquer erros dentro da estrutura de GOP sejam corrigidos após o processamento de um I-quadro correto. A estrutura de GOP é frequentemente referida por dois números, por exemplo, M=3, N=12. O primeiro número informa a distância entre dois quadros de âncora (I ou P). O segundo informa a distância entre duas imagens completas (I-quadros), que é o tamanho de GOP. Para o exemplo M=3, N=12, a estrutura de GOP é {IBBPBBPBBPBBI}. Em vez do parâmetro M, a contagem máxima de B- quadros entre dois quadros de âncora consecutivos pode ser usada. Por exemplo, em uma sequência com padrão {IBBBBPBBPBBBBI}, o tamanho de GOP é igual a 15 (comprimento entre dois quadros I), e a distância entre dois quadros de âncora (valor M) é 5 (comprimento entre quadros I e P ou comprimento entre dois quadros P consecutivos).
[0031] Embora um GOP típico comece com um I-quadro, algumas modalidades no presente documento proveem uma estrutura em que um GOP pode começar com um X-quadro em vez, além de colocar os X-quadros em locais específicos ou substituir os quadros P e/ou B na estrutura de GOP, conforme será apresentado em detalhes adicionais mais abaixo.
[0032] As pessoas versadas na técnica reconhecerão que, dependendo da implementação do codec, uma imagem ou quadro pode ser dividida de várias maneiras, em diferentes níveis de granularidade, por exemplo, para facilitar, a saber, eficiência de codificação, processamento paralelo, etc. Em um arranjo, um quadro pode ser fracionado em um número de unidades de árvore de codificação (CTUs), cada uma contém um certo número de blocos de árvore de codificação luma (CTBs) e CTBs croma, que, por sua vez, podem compreender múltiplos blocos de codificação (CBs). Um quadro pode
29 / 125 ser dividido em uma ou mais fatias, sendo cada uma região espacialmente distinta de um quadro que pode ser codificado separadamente de qualquer outra região no mesmo quadro e identificado com um cabeçalho de fatia. Em geral, as fatias são autônomas e contêm uma sequência de CTUs que são processadas na ordem de uma varredura do tipo raster, em que as fatias podem ser codificadas como I-fatias, P-fatias ou B-fatias, semelhantes aos I- quadros, P-quadros ou B-quadros, respectivamente. Em um arranjo, as fatias podem ser usadas para efetuar a ressincronização para minimizar as perdas de dados e podem conter um número variável de CTUs por fatia, dependendo da atividade em uma cena de vídeo. A Figura 4A ilustra um quadro de vídeo exemplificativo 400A que contém uma pluralidade de fatias 402-1 a 402-N, em que uma fatia exemplificativa 402-N contém um número de CTUs 404.
[0033] Além de fatias, um esquema de codificação também pode definir um número de ladrilhos por quadro, que também podem ser configurados para serem regiões decodificáveis retangulares ou quadradas autônomas e independentes de uma imagem, com base em fracionamento vertical e horizontal, para formar uma grade, a fim de facilitar o processamento paralelo nos estágios de codificação e decodificação. Em uma variante, os ladrilhos autônomos e independentes decodificáveis podem usar previsão temporal a partir dos ladrilhos colocalizados de imagens ou quadros previamente codificados. Vários blocos podem compartilhar informação de cabeçalho ao estar contido na mesma fatia, em que um bloco pode incluir um certo número de CTUs. Não é uma exigência que cada ladrilho inclua o mesmo número de CTUs. Consequentemente, em um arranjo, os ladrilhos de um quadro podem ter tamanhos diferentes. Se um quadro contiver uma única fatia, os blocos do quadro terão, por isso, a mesma informação de cabeçalho de imagem e de cabeçalho de fatia. Em outro arranjo, um quadro pode incluir uma ou mais fatias, cada fatia contém um ou mais ladrilhos, e cada ladrilho, por sua vez, contém uma ou mais CTUs. A Figura 4B ilustra um quadro de
30 / 125 vídeo exemplificativo 400B que contém uma pluralidade de CTUs, organizado em uma matriz ou um arranjo de ladrilhos 406-1 a 406-N, em que cada ladrilho é mostrado como um quadrado com 4 CTUs 408 em uma configuração 2x2. A título de ilustração adicional, um quadro de vídeo de 4K exemplificativo 400C, de acordo com HEVC, é mostrado na Figura 4C, que pode compreender uma matriz de 3840 pixels horizontais por 2.160 pixels verticais, que é fracionado em 16 colunas e 8 linhas, o que resulta em 128 peças. Conforme observado anteriormente, esses ladrilhos podem não ser necessariamente dimensionados igualmente dentro do quadro 400C.
[0034] Para fins do presente pedido de patente, em virtude dos quadros de vídeo poderem ser fracionados de várias maneiras e em diferentes níveis, os termos “unidade de árvore de codificação”, “bloco de árvore de codificação”, “unidade de codificação”, “bloco macro”, ou “bloco”, ou termos de importação similar, serão geralmente tratados como uma unidade abstrata de codificação que pode ser aplicada, no que diz respeito a um ladrilho, a uma fatia e/ou quadro, sem limitação a qualquer padrão ou tecnologia de compressão de vídeo específica.
[0035] Voltando à Figura 3, o codificador de ladrilho exemplificativo 300 pode ser configurado em relação a um esquema baseado em PE ou BIE para gerar um X-quadro, em que o mesmo é codificado como um P- ou B- quadro que tem o cabeçalho correspondente, mas com fatias e/ou ladrilhos individuais que são intracodificados, isto é, como I-fatias e/ou I-ladrilhos, que compreendem apenas I- blocos. Em outras palavras, os X-quadros podem ter informação de cabeçalho de um P- ou B-quadro (ou P-fatia ou B-fatia, se apenas uma fatia por quadro for provida), mas todos os dados de imagem de mídia são intracodificados como dados de um I-quadro. Os quadros restantes de uma sequência de vídeo podem ser codificados normalmente de acordo com um esquema conhecido ou, até então, desconhecido, conforme observado anteriormente. Consequentemente, um controle geral do codificador 306 pode
31 / 125 ser configurado para selecionar entre os esquemas de PE e BIE 308, 310 para prover sinais e/ou parâmetros de controle adequados aos componentes e estruturas restantes de uma porção de interface inicial 302 do codificador de ladrilhos, de modo a forçar a codificação dos quadros especiais, conforme necessário, de acordo com uma implementação específica dos esquemas de PE ou BIE, no que diz respeito a um ou mais sinais de vídeo de entrada 304. Em geral, cada imagem em um esquema de PE é codificada como um I- quadro regular (por exemplo, para a primeira imagem em uma sequência) ou como um X-quadro para as imagens de entrada que correspondem à fase/ao período, e como P- ou B-quadros regulares para todas as outras imagens da sequência de vídeo, conforme será descrito em detalhes adicionais abaixo.
No que diz respeito ao esquema de BIE, pode ser provida uma sequência codificada por BIE, em que os X-quadros são providos para todos os P- e B- quadros de uma estrutura de GOP da sequência.
Consequentemente, um bloco de seleção intra/inter 312 é configurado de modo que a estimativa/previsão intraimagem 316 esteja sempre ativa e seja usada para todos os blocos de uma imagem.
Da mesma forma, a compensação de movimento e a estimativa 318 podem ser desativadas, uma vez que todos os blocos são intracodificados para um X-quadro.
Os blocos restantes que compreendem transformação, escalonamento e quantização 314, transformação inversa 320, controle do filtro 322, filtragem de deslocamento adaptativo de amostra (SAO) e desbloqueio 324, armazenamento temporário de imagem decodificada 326, podem permanecer não afetados em uma modalidade exemplificativa, dependendo da implementação de codificador de ladrilho.
Os dados de controle geral 328, dados de coeficientes de transformação quantizados 330, dados de predição intra e controle de filtro 332 e dados de movimento 334 podem ser providos a um formatador de cabeçalho e codificador de entropia 336 (por exemplo, um mecanismo motor de codificação aritmética binária adaptável ao contexto (CABAC)) para gerar um ou mais fluxos de bits
32 / 125 codificados 338 correspondentes a cada representação de taxa de bits do ativo de vídeo. Conforme observado anteriormente, os fluxos de bits codificados 338 podem ser providos a um empacotador de ladrilhos (não mostrado nessa Figura 3) para embalagem e geração de manifestos para facilitar o (pré- )provisionamento dos ativos em locais apropriados da rede a jusante.
[0036] A Figura 6 é ilustrativa de vários blocos, etapas e/ou atos de um arranjo de codificação exemplificativo 600 que envolve um esquema de PE ou um esquema de BIE que pode ser implementado como parte de uma preparação/um processamento de mídia exemplificativo, de acordo com uma modalidade da presente invenção. No bloco 604, um fluxo de fonte de vídeo 602 é recebido, que pode ser não codificado, codificado, costurado, mapeado por projeção ou pré-processado, conforme descrito anteriormente. No bloco 606, uma determinação pode ser feita em que PE ou BIE é selecionado. Um seletor de modo em um sistema codificador de ladrilho, por exemplo, codificador de ladrilho 300 na Figura 3, pode ser configurado adequadamente em resposta. Ao selecionar PE, o fluxo de fonte de vídeo 602 pode ser codificado/transcodificado em uma pluralidade de fluxos com diferentes qualidades e/ou taxas de bits, cada um é codificado com ladrilhos, conforme apresentado no bloco 608. Cada fluxo de qualidade ou taxa de bits é codificada por fases para gerar uma pluralidade de fluxos de PE 610. A título de ilustração, o número de referência 614-1 se refere à informação de qualidade relacionada a um conjunto de fluxos codificados por fase 612-1, com fases correspondentes 615-1 a 615-P (dependendo de onde um X-quadro é colocado na estrutura de GOP, em que P é o tamanho de GOP), todos os fluxos de PE com uma configuração de Parâmetro de Quantização (QP) de 30 e/ou uma taxa de bits de cerca de 7,0 Mbits/s, o que pode ser indicativo de uma extremidade inferior de qualidade. De forma similar, o número de referência 614-N se refere à informação de qualidade relativa a um conjunto de fluxos codificados por fase 612-N com fases correspondentes 615-1 a 615-
33 / 125 P, todos com uma configuração de QP de 16 e/ou uma taxa de bits de cerca de 105,6 Mbits/s, o que pode ser indicativo de uma extremidade superior de qualidade.
[0037] Se BIE (também denominado Codificação de tudo Intra, conforme observado em outro lugar, no presente pedido de patente) for selecionado, o fluxo de fonte de vídeo 602 pode ser codificado/transcodificado em uma pluralidade de fluxos com diferentes qualidades e/ou taxas de bits (Bloco 616). Em uma modalidade exemplificativa, cada um dos fluxos pode ser codificado por ladrilho com uso de um esquema-padrão de codificação(por exemplo, HEVC, AV1, etc.) para gerar fluxos normais ou regulares codificados em ladrilho 618. Da mesma forma que a discussão acima, em relação aos fluxos de ladrilhos em fases 610, o número de referência 622-1 se refere, a título de ilustração, à informação de qualidade relativa a um fluxo regular codificado por ladrilho 620-1 com uma configuração de QP de 30 e/ou uma taxa de bits de cerca de 7,0 Mbits/s, o que pode ser indicativo de uma extremidade de qualidade inferior. Da mesma forma, o número de referência 622-N se refere à informação de qualidade relativa a um fluxo regular com codificação de ladrilho 620-N com que tem valor de ajuste de QP de 16 e/ou uma taxa de bits de cerca de 105,6 Mbits/s, o que pode ser indicativo de um fluxo de qualidade superior.
[0038] Além disso, o fluxo de fonte de vídeo 602 também é codificado/transcodificado em uma pluralidade de fluxos com qualidades e/ou taxas de bits correspondentes (Bloco 617), em que cada fluxo é codificado por ladrilho de modo que todos os quadros da sua estrutura de GOP sejam providos como X-quadros. A título de ilustração, o número de referência 632 se refere a uma pluralidade de fluxos com codificação de BIE e ladrilhados, em que a informação de qualidade 636-1 que tem uma configuração de QP de 30 e/ou uma taxa de bits de cerca de 7,0 Mbits/s (também, às vezes, abreviado como Mbs ou Mb/s) se refere a um fluxo ladrilhado com codificação de BIE
34 / 125 de qualidade inferior 634-1, enquanto a informação de qualidade 636-N de ajuste de QP de 16 e/ou uma taxa de bits de cerca de 105,6 Mbits/s se refere a um fluxo ladrilhado com codificação de BIE de qualidade superior 634-N.
[0039] As pessoas versadas na técnica reconhecerão, através de uma referência ao presente documento, que, quando um codificador é configurado com um QP de destino, a taxa de bits de um fluxo de bits codificado é um pouco média ao longo do fluxo de bits. Por exemplo, se um QP de 10 for direcionado em um esquema de codificação de fonte, é possível que uma taxa de bits baixa possa ser vista em áreas sem movimento (por exemplo, resultando em 4 Mbs). Em áreas de alta movimentação, é possível que a taxa de bits possa disparar até 200 Mbs. Assim, em um esquema de codificação exemplificativo que visa QPs específicos, conforme apresentado no exposto acima, as taxas de bits dos fluxos de saída podem ser variáveis ao longo de uma faixa. Consequentemente, deve ser reconhecido que as taxas de bits mostradas em associação aos QPs dos fluxos de PE ou BIE, na Figura 6, geralmente são indicativas de taxas de bits médias ao longo do tempo. Conforme será observado mais abaixo, quando os QPs são direcionados em um esquema de codificação (com taxas de bits correspondentemente variadas), certas modalidades da presente invenção relativa à seleção ladrilho podem ser configuradas para selecionar ladrilhos e encaixar os mesmos de acordo com uma taxa de bits global alocada em relação a uma determinada sessão de vídeo imersiva de 360 graus. Em uma modalidade adicional ou alternativa, um codificador exemplificativo pode ser configurado para gerar fluxos de bits codificados com taxas-alvo de bits específicas, em vez de QPs- alvo. Em tal arranjo, enquanto um fluxo de bits de saída pode manter uma taxa de bits específica, no entanto, os valores de QP podem variar. Uma modalidade de seleção ladrilho pode, por isso, selecionar ladrilhos com base em qualidades de vídeo que podem ser controlados por diferentes parâmetros de codificação e configurações e encaixados, consequentemente, para
35 / 125 otimizar a largura de banda alocada. Para efeitos do presente pedido de patente, os termos “qualidade”, “qualidade de vídeo” e os termos de importação similar, em relação a fluxos de bits codificados ou representações de taxa de bits, podem ser amplamente relacionados e/ou baseados em QPs, taxas de bits, outros indícios. Assim, as modalidades relativas à codificação de PE/BIE, seleção de ladrilhos, costura e similares, apresentadas no presente documento com base em QPs direcionados também são igualmente aplicáveis a fluxos de bits que têm taxas-alvo de bits, mutatis mutandis.
[0040] Consequentemente, deve ser entendido, pelo leitor, que, embora certos exemplos e porções da descrição, dentro desta descrição, sejam providos como assumindo o uso de um valor de quantização fixa (QP) por fluxo, os fluxos, na prática, podem conter valores de QP que variem entre imagens e dentro de uma imagem, conforme observado acima. Um codificador, de acordo com uma modalidade da presente invenção, pode controlar a sua taxa de bits de saída por meio de um controle de taxa ou similares, e, assim, alterar o valor de QP entre as imagens. Um codificador também pode codificar imagens dentro de um fluxo com uso de valores de QP variáveis para otimizar a qualidade visual do fluxo. Dentro de uma imagem, o valor de QP pode mudar entre blocos, por exemplo, com uso de mecanismos de quantização adaptativa para otimizar a qualidade visual, conforme conhecido na técnica. O uso de “QP” em frases dentro desta descrição, como por exemplo, mas sem limitação, “codificado com esse QP”, “vídeo de diferentes valores de QP”, “vídeos gerados com diferentes valores de QP”, “fluxo com um valor de QP de N”, “valor de QP do fluxo de vídeo”, deve ser entendido como uma forma de caracterizar fluxos de modo que um fluxo associado a um valor de QP menor seja de taxa de bits mais alta e maior qualidade do que um associado a um valor de QP mais alto, e não que o QP seja mantido estático para cada bloco em um fluxo.
[0041] Deve ser adicionalmente reconhecido que a codificação de
36 / 125 taxa de bits adaptativa e a codificação de ladrilhos de ativos de mídia podem ser integradas dentro de um aparelho, como parte de um sistema de preparação de conteúdo, em uma modalidade exemplificativa, de modo que vários tipos de codificação e/ou transcodificação possam ocorrer em diferentes sequências e/ou em processos paralelos. Além disso, as funcionalidades adicionais, como mapeamento de projeções, costura de fluxo de fonte, empacotamento, etc., também podem ser combinadas ou integradas, de outro modo, os esquemas de codificação /transcodificação de ladrilhos do presente pedido de patente, dependendo da aplicação.
[0042] A Figura 5 é um fluxograma ilustrativo de vários blocos, várias etapas e/ou vários atos de um método 500 que pode ser (re)combinado em um ou mais arranjos, com ou sem blocos, etapas e/ou atos de fluxogramas adicionais da presente descrição, para facilitar o vídeo imersivo de 360° otimizado, de acordo com uma ou mais modalidades da presente invenção. No bloco 502, várias operações relativas à captura de mídia e pré- processamento de um fluxo de entrada de mídia, para vídeo imersivo, por exemplo, costura de fluxo de fonte, codificação, mapeamento de projeção, etc. podem ser efetuadas. No bloco 504, a codificação/ transcodificação de taxa de bits adaptativa do fluxo de entrada de mídia pré-processado em múltiplas representações de taxa de bits ou fluxos com diferentes qualidades de vídeo (por exemplo, com valores de QP variáveis) pode ser efetuada em associação a um esquema de codificação ladrilhado. Conforme observado anteriormente, um processo de codificação baseado em PE (Bloco 506B) ou um processo de codificação baseado em BIE (Bloco 506A) pode ser configurado para gerar a saída de fluxo de bits codificada. Deve-se observar que os processos dos Blocos 504 e 506A/B podem ser executados como operações de codificação única, de modo que a codificação/ transcodificação de taxa de bits amigavelmente adaptativa do Bloco 504 seja feita com uso de um esquema de PE (Bloco 506A) ou um esquema de BIE (Bloco 506B) com
37 / 125 uso de um único processo de codificação. Depois disso, os fluxos de bits codificados podem ser empacotados (Bloco 508) e distribuídos para locais de borda de rede apropriados (Bloco 510) para entrega e consumo por clientes que usem equipamentos de usuário final adequados. Quando uma solicitação do usuário para um determinado ativo de mídia é recebida e processada, um processo de seleção de ladrilho baseado em entradas de controle, por exemplo, condições de transmissão, alocação de largura de banda e/ou entrada de vetor de foco, etc., pode ser efetuado para selecionar blocos de diferentes representações de taxa de bits (isto é, qualidades diferentes) do ativo de mídia (Bloco 512). Um processo de geração de fluxo pode ser efetuado para costurar os ladrilhos selecionados em quadros, como um fluxo de vídeo de saída a ser entregue ao dispositivo de cliente solicitante (Bloco 514).
[0043] As pessoas versadas na técnica reconhecerão que pelo menos uma porção das etapas, atos ou operações anteriores podem incluir preparação de mídia e (pré)-provisionamento, em relação a um ou mais ativos de vídeo imersivos de 360° distribuídos em um ambiente ou uma arquitetura de rede ilustrada nas Figuras 1 e 2 descritas acima. Voltando à Figura 7, os detalhes adicionais sobre um esquema de BIE 700, de acordo com uma modalidade exemplificativa da presente invenção, são apresentados. Nos blocos 702 e 704, um fluxo de entrada de mídia relativo a um ativo de vídeo imersivo de 360° é recebido e processado para gerar múltiplas representações de taxa de bits com qualidades diferentes/separadas, por exemplo, cada qualidade de vídeo relacionada ou controlada por um valor QP direcionado correspondente usado para cada representação de taxa de bits e/ou taxa de bits direcionada, ou outros indícios da respectiva qualidade. Cada representação de taxa de bits é codificada em um primeiro fluxo de bits codificado que compreende uma pluralidade de quadros com uma estrutura de GOP específica, em que cada GOP começa com um I-quadro seguido por um conjunto de quadros que incluem pelo menos um P-quadro ou B-quadro (Bloco 706). Além disso, cada
38 / 125 representação de taxa de bits é codificada em um segundo fluxo de bits codificado que compreende uma pluralidade de quadros com uma estrutura de GOP que tem um tamanho coextensivo com o tamanho da estrutura de GOP do primeiro fluxo de bits codificado, em que cada GOP do segundo fluxo de bits codificado começa com um I-quadro seguido por uma pluralidade de X- quadros, cada X-quadro é codificado com um cabeçalho de fatia/imagem de um P- ou B-quadro e que compreende apenas dados de imagem de mídia intracodificados (isto é, similar a um I-quadro do GOP), conforme apresentado no Bloco 708. Conforme observado anteriormente, o primeiro fluxo de bits codificado e o segundo fluxo de bits codificado podem ser codificados como respectivos fluxos codificados por ladrilho com uso de qualquer esquema de compressão compatível com ladrilho, em que cada quadro do fluxo de bits codificado por ladrilho compreende um arranjo de ladrilhos organizados em pelo menos uma fatia por quadro, cada ladrilho compreende uma porção dos dados de mídia do quadro formado como um número de unidades, blocos ou árvores de codificação. Uma pessoa versada na técnica reconhecerá que, em uma implementação, os processos dos blocos 704 e 706 podem ser realizados em um único processo de codificação, conforme observado anteriormente, em relação aos blocos 504 e 506A/B da Figura 5. Por exemplo, na prática, uma única codificação/ transcodificação de processo seria desejável para minimizar a complexidade computacional e minimizar as degradações introduzidas pela codificação em tandem ou em cascata.
[0044] A Figura 11 descreve uma pluralidade de fluxos de bits codificados 1100 com diferentes qualidades ou QPs gerados por um sistema de codificador de ladrilhos baseado em BIE, em uma modalidade exemplificativa. Os números de referência 1102-1 a 1102-N se referem a N fluxos ou representações de taxa de bits com qualidades ou QPs correspondentes. Um fluxo de ladrilhos normalmente codificado 1104A
39 / 125 correspondente a uma representação de taxa de bits específica, por exemplo, QP-N 1102-N, é ilustrado com uma estrutura de GOP 1106A que tem quatro quadros, começando com um I-quadro seguido por três P-quadros. O fluxo com codificação de BIE correspondente 1104B tem uma estrutura de GOP 1106B, que também é ilustrada com quatro quadros, começando com um I- quadro, mas seguida por três X-quadros.
[0045] A Figura 8A é um fluxograma ilustrativo de um processo 800A para configurar um esquema de BIE em um arranjo de codificação de ladrilhos, de acordo com uma modalidade exemplificativa da presente invenção. Sem limitação, o processo exemplificativo 800A será descrito em referência à configuração de um esquema HEVC para realizar BIE com base na modificação de determinados parâmetros, embora outros esquemas também possam ser aplicados para fins no presente documento.
[0046] Em geral, uma modalidade de um método de configuração de BIE pode ser configurado para receber ou obter, como entrada, um fluxo de vídeo de fonte para vídeo imersivo de 360˚ e uma lista de qualidades de vídeo de saída (por exemplo, uma lista de valores de QP, tais como {QP1=16, QP2=18, QP3=20, QP4=22, QP5=24, QP6=26, QP7=28, QP8=30, ou outro indício baseado em taxas de bits segmentadas}). Assim, sem limitação, para cada qualidade de vídeo de saída (por exemplo, cada valor de QP), dois fluxos de vídeo podem ser codificados - um vídeo de HEVC regular/padrão com esse QP ou essa qualidade, e um vídeo HEVC de Bloco Intra com esse QP/essa qualidade - conforme observado anteriormente. A fim de que se tenha capacidade, em um momento posterior, (por exemplo, pouco antes da decodificação), de costurar ladrilhos de diferentes qualidades para o mesmo fluxo de bits, a fase de codificação de uma modalidade provê que todos os fluxos de vídeo tenham a mesma base_qp (definida abaixo), enquanto a diferença real entre os vídeos de diferentes valores QP pode ser efetuada por meio de qp_delta (definido
40 / 125 abaixo) a partir da base de QP. Por exemplo, uma configuração de base_qp = 22 pode ser configurada, em que os valores paramétricos de base_qp = 22 e qp_delta = -6 possam ser usados para alcançar QP=16. Em geral, esses dois parâmetros se referem à definição da qualidade (QP) de um fluxo de vídeo. Deve ser lembrado que todos os vídeos gerados com os diferentes valores de qp precisam ter a mesma base_qp, enquanto diferentes valores de QP podem ser alcançados com uso de qp_delta da base_qp. Essa exigência pode ser imposta com base em um exemplo de tempo específico. Isto é, se as imagens em um fluxo de bits forem numeradas, então quaisquer duas imagens de dois fluxos de bits que sejam usadas como entrada para costura, com os mesmos números, devem usar o mesmo valor de base_qp em um arranjo. Para fins da presente invenção, a “base_qp” pode ser descrita da seguinte forma: o iésimo quadro (para cada i = 1 a N, em que N é o número total de quadros em uma sequência de vídeo), em todas as versões codificadas ou representações de taxa de bits do mesmo vídeo, terá o mesmo valor de QP de fatia. Em outras palavras, o QP de fatia é a base_qp. Embora o QP de fatia possa ser definido como o mesmo valor em todos os fluxos gerados, o mesmo pode variar ao longo do tempo. Para fins da presente invenção, o parâmetro de delta_qp pode ser descrito da seguinte forma: atribuindo-se um determinado qp_delta, o primeiro bloco, em cada bloco que sinaliza QP, é configurado para sinalizar o delta_qp (essa quantidade de variância do QP de base). Pode-se observar que pode haver uma incompatibilidade de desbloqueio após a costura em algumas modalidades.
[0047] Outro parâmetro que pode ser definido para fins da presente invenção é o ROI (Região de Interesse), que determina uma área de um quadro em que os ladrilhos podem ser codificados de forma independente, de modo que o subconjunto do fluxo de bits correspondente à ROI possa ser facilmente extraído e reconstituído em outro fluxo de bits. Conforme observado acima, a fim costurar posteriormente vídeos de diferentes QPs, é
41 / 125 desejável utilizar a funcionalidade de base_qp e delta_qp. Isso é suportado, por exemplo, ao usar a funcionalidade de codificação de ROI de HEVC em uma implementação ilustrativa. Consequentemente, ao codificar com ROI em uma modalidade, o parâmetro de base_qp, para os cabeçalhos de QP de fatia, pode ser definido, além de definir uma grade de ROI (independentemente definida a partir da grade/do arranjo dos ladrilhos de um quadro), de modo que a área da grade na iésima linha e na jésima coluna, na grade de ROI, obtenha seu próprio delta_qp. Geralmente, isso permite que uma modalidade atribua um delta_qp diferente a diferentes áreas da grade de ROI, ao passo que os valores de delta_qp seletivos podem ser usados para fins da presente invenção. Por exemplo, para alcançar um determinado QP desejado (isto é, QP = 16), a base_qp pode ser definida (isto é, base_qp = 22) com uso do parâmetro de qp regular e, em seguida, com uso da grade de ROI, a todas as áreas direcionadas, pode ser atribuído um delta_qp de -6, conseguindo, assim, efetivamente, um QP de 16 para todos os ladrilhos na grade de ROI.
[0048] Em uma modalidade, o conteúdo em diferentes qualidades podem ser codificados com uso da mesma base_qp (QP de fatia) para um quadro específico. Para cada qualidade desse quadro, um QP desejado específico pode ser definido, em que os elementos de sintaxe de delta_qp podem ser usados para que todos os blocos (ou, alternativamente, tantos blocos quanto possível ou desejado) desse quadro sejam codificados com o QP desejado. Os aspectos adicionais de um esquema de configuração de BIE baseado em HEVC podem ser apresentados da seguinte forma.
[0049] O codificador pode ser definido para usar codificação em ladrilho. Durante a configuração, isso pode ser efetuado definindo-se um sinalizador apropriado para a codificação de ladrilhos, bem como a configuração de uma estrutura de grade específica do ladrilho (por exemplo, conforme mostrado na Figura 4C). A título de ilustração, o codificador pode
42 / 125 ser configurado para prover uma estrutura de grade de 16x8 de ladrilhos, o que resulta em 128 ladrilhos em cada quadro, para uma entrada de vídeo de 4K.
[0050] O codificador pode ser configurado para desativar a previsão de vetores de movimento temporal. Embora um esquema de BIE exemplificativo não use MVs (vetores de movimento), as configurações de previsão de vetor de movimento temporal (TMVP) podem precisar ser idênticas entre os fluxos para permitir a costura em um momento posterior. Essa configuração é opcional, na medida em que uma modalidade de BIE pode ser praticada sem desabilitar TMVP.
[0051] Além disso, muitos outros elementos dos cabeçalhos de fatia podem ser configurados para serem idênticos através dos fluxos. Por exemplo, elementos como o número de imagens de referência a ser usado, o conjunto de imagens de referência, quais imagens de referência usar para L0, o Conjunto de Parâmetros de Imagem (PPS) para uso, a contagem de ordem de imagem, parâmetros de SAO, etc. Além disso, também é necessário que a ordem de decodificação seja a mesma para todos os fluxos de bits que devem ser usados como entrada para a comutação de fluxo de bits. As pessoas versadas na técnica reconhecerão, após referência no presente documento, que uma variedade de elementos de cabeçalho de fatia pode ser configurada, consequentemente, em uma implementação exemplificativa de BIE.
[0052] Visto que uma fatia usa uma única palavra de código de id de PPS para identificar o que PPS usar, e o PPS faz referência a um único conjunto de parâmetros de sequência (SPS), todas as codificações podem ser feitas com uso de valores de identificação de PPS e SPS idênticos, em uma modalidade exemplificativa. Da mesma forma, muitos elementos de sintaxe nos SPSs e PPSs também podem ser configurados para serem idênticos para as múltiplas codificações. Embora não seja uma exigência necessária, uma modalidade exemplificativa de BIE pode, por isso, ser configurada de modo
43 / 125 que as codificações sejam efetuadas com uso de SPSs e PPSs idênticos. No entanto, é estritamente necessário que alguns elementos do SPS e PPS sejam idênticos em determinados arranjos.
[0053] Voltando à Figura 8A, o processo de configuração de BIE exemplificativo 800A pode se iniciar com a inicialização de um seletor de modo de um codificador, para selecionar o BIE para codificar um fluxo de vídeo de entrada, conforme apresentado acima, no presente documento (Bloco 802). No bloco 804, o codificador pode ser configurado para usar ladrilhos em uma grade ou um arranjo específico de arranjo para cada quadro. No bloco 806, o parâmetro de base_qp pode ser escrito em todos os cabeçalhos de QP de fatia dos fluxos codificados. Para codificar fluxos em diferentes qualidades (embora tenha a mesma base_qp), um parâmetro qp_delta pode ser configurado, conforme descrito acima, em relação a cada fluxo baseado em QPs de destino (Bloco 808). Por exemplo, para alcançar um QP de destino de 22 para um fluxo específico, um qp_delta de —10 pode ser configurado em que a base_qp é 32. No que foi observado anteriormente, é necessário que todas as imagens, com o mesmo número de imagem a ser usado como uma entrada para costura, usem o mesmo valor de base_qp. Assim, em uma modalidade, não é uma exigência necessária definir o mesmo parâmetro de base_qp em todos os cabeçalhos de fluxo. A previsão de vetor de movimento espacial pode ser configurada de modo que seja restrita somente dentro do bloco (Bloco 810). Isto é, os vetores de movimento não estão autorizados a atravessar os limites de ladrilho em uma modalidade exemplificativa (isto é, é permitida apenas a previsão intraladrilho). Isso significa que os vetores de movimento são definidos de modo que nenhuma amostra, fora dos limites de qualquer ladrilho colocalizado, seja lida durante a interpolação de compensação de movimento dos blocos dentro de um ladrilho. Uma grade de ROI pode ser configurada para o codificador de modo que use a informação de qp_delta para codificar um fluxo específico, em relação a uma região
44 / 125 específica dos quadros (Bloco 812). Além disso, o TMVP pode igualmente ser desabilitado (Bloco 814) em um processo de configuração de BIE exemplificativo, conforme apresentado acima.
[0054] Deve-se observar que, enquanto o processo de configuração de BIE anterior 800A usa certos parâmetros, as modalidades adicionais ou alternativas podem ser praticadas quando um esquema de BIE puder ser configurado para utilizar outros parâmetros, além e/ou em vez dos parâmetros exemplificados no fluxograma da Figura 8A.
[0055] A Figura 8B é um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais em um esquema de BIE 800B exemplificativo, de acordo com uma modalidade da presente invenção. Em geral, durante a codificação ladrilhada baseada em BIE, um codificador pode ser configurado para tomar várias decisões. Durante a codificação de ladrilhos que fazem parte de um P- quadro, o codificador decide se um bloco específico deve ou não ser codificado com uso de qualquer vetor de movimento e depender do quadro anterior, ou se deve ser codificado no modo “intra”, em que o ladrilho é autônomo e não depende de nenhum quadro anterior (isto é, não usa previsão de nenhum quadro anterior). Conforme observado anteriormente, durante a codificação de P-quadros no BIE, o codificador é forçado a codificar todos os blocos com uso de modos intra. No Bloco 834, uma entrada de vídeo 832 é recebida para codificação. No Bloco 836, um codificador de ladrilhos é configurado para implementar um processo de BIE, conforme apresentado acima. Para cada quadro da entrada de vídeo, um processo iterativo pode ser implementado para tomar decisões de codificação adequadas em uma base quadro a quadro, que começa com uma determinação sobre se a sequência de vídeo chegou ao seu fim (Bloco 838). Se o fim não for atingido (isto é, se permanecerem quadros na sequência de vídeo que exige processamento), um próximo quadro será obtido (Bloco 840). Se o quadro for determinado como um primeiro quadro de uma estrutura de GOP (Bloco 842), o mesmo será
45 / 125 codificado como um I-quadro regular (Bloco 854) e o fluxo de processo retornará para a obtenção de um próximo quadro (Bloco 840). Caso contrário, o mesmo será codificado como um P-quadro (Bloco 844). Para cada fatia do P-quadro, o mesmo é codificado ou provido com um cabeçalho de P-fatia (Bloco 846). Para cada bloco ou qualquer outra unidade de codificação adequada da P-fatia, o codificador é configurado para codificar os dados de imagem no modo intra (Bloco 848). Depois disso, o fluxo do processo retorna para determinar se todos os quadros foram processados (Bloco 838). Em caso afirmativo, a codificação da sequência de vídeo é finalizada (Bloco 850), que pode ser provida como fluxo de bits ladrilhado com BIE para uma entidade a jusante (por exemplo, um sistema de empacotamento), conforme apresentado no bloco 852. Um arranjo alternativo, B-quadros podem ser usados em vez de P-quadros para a geração de X-quadros, conforme observado em outros lugares no pedido de patente. Consequentemente, os Blocos 844, 846 e podem ser adequadamente modificados para suportar esse arranjo.
[0056] Em uma modalidade adicional da presente invenção, os X- quadros podem ser usados uma vez em cada GOP (em vez de várias vezes, como no BIE), com base em um esquema de PE, conforme observado anteriormente. Essencialmente, a codificação ladrilhada baseada em PE envolve um processo e um aparelho para gerar um fluxo em que todos os quadros tenham cabeçalhos de P-fatia, exceto para o primeiro quadro que é um I-quadro, enquanto periodicamente há um X-quadro (isto é, BIE-quadro ou AIE-quadro), em que todos os blocos são intracodificados, mas os cabeçalhos de fatia são de P-fatias (ou B-fatias, em que os B-quadros também são codificados em uma sequência). Em geral, todas as fatias de quaisquer duas imagens que devem ser potencialmente usadas como entradas para costura precisam ter o mesmo tipo de fatia, fatia de qp, bem como uma série de outras configurações no cabeçalho de fatia e no PPS. Em contraste com o esquema de BIE apresentado acima, em que todos os quadros de um GOP são
46 / 125 X-quadros, exceto para o primeiro, uma modalidade de um esquema de PE é configurada para prover X-quadros apenas em locais de quadros selecionados, dependendo de dois parâmetros: período (que é o tamanho do GOP, isto é, o número de quadros no GOP) e fase (que é um inteiro na faixa {0 a [period- 1]}. Os locais de quadros em que os X-quadros aparecem em um esquema de PE podem ser determinados da seguinte forma. Permitir que N seja o número total de quadros em um fluxo. O primeiro quadro é codificado como um I- quadro. Para um quadro na iésima posição, 2≤i≤n, o mesmo é codificado como um P-quadro regular, se {i Mod (período) ≠ fase}; e, caso contrário (isto é, {i Mod (período) = fase}), o quadro é codificado como um X-quadro (com cabeçalhos de P-fatia e todos os blocos codificados no modo intra, independentemente dos quadros anteriores). Deve-se observar que um esquema de PE exemplificativo pode prover tantos fluxos codificados por fase para cada representação de qualidade/taxa de bits da entrada de mídia quanto há locais de quadros em um GOP (isto é, tamanho de GOP).
[0057] Ao usar cabeçalhos de P- ou B-fatia, em vez de cabeçalhos de I-fatia em X-quadros, para fins da presente invenção, várias vantagens podem ser realizadas em uma modalidade exemplificativa, o que inclui, mas sem limitação, facilitar a comutação de Mid-GOP em um ambiente de visualização do usuário. Presume-se que o usuário esteja assistindo a um programa de vídeo imersivo de 360° ou conteúdo em que o campo de visão com foco direto (FoV) está em alta qualidade (isto é, menor QP) e o usuário mova a cabeça no meio do GOP. O usuário, agora, vê um vídeo de baixa qualidade (QP superior) em seu novo campo de visão ou em sua nova janela de visualização. O servidor pode enviar um i-quadro de alta qualidade (QP baixo) no início do próximo GOP, mas isso introduz uma latência significativa, pois levaria tempo até que o i-quadro de alta qualidade do próximo GOP, para a janela de visualização, fosse apresentado. É desejável receber ou obter um I-quadro do novo campo de visão que seja codificado em alta qualidade o mais rápido
47 / 125 possível, enquanto estiver no meio do GOP. Mas não é viável apenas colocar um I-quadro como se estivesse no meio do GOP, em um ambiente de visualização de vídeo imersivo convencional. Ao gerar um X-quadro (isto é, quadro com codificação de Bloco Intra ou quadro com codificação Tudo Intra) e ao transmitir o mesmo no meio do GOP (em qualquer local de quadro, em uma estrutura de GOP, por exemplo), uma modalidade da presente invenção, por isso, tem efetivamente capacidade de atualizar a qualidade do campo de visão similar ao efeito, se um quadro I for apresentado no meio do GOP com ladrilhos de alta qualidade. Ao prover cabeçalhos de P-fatia em quadros com codificação de IA ou bicodificados (isto é, quadros de AIE/BIE ou X-quadros), uma modalidade da presente invenção permite, por isso, que um quadro com dados de alta qualidade, em uma região de interesse (ROI) de FoV, seja usado no meio do GOP.
[0058] Além disso, em um esquema de codificação de ladrilho, em que um quadro é fracionado em ladrilhos e fatias, uma modalidade da presente invenção que envolve X-quadros permite misturar ladrilhos em um único quadro comprimido de saída, em que alguns ladrilhos podem usar previsão espacial ou temporal (isto é, previsão interimagem) e alguns ladrilhos podem usar apenas previsão espacial (por exemplo, que compreende apenas blocos intracodificados). Os ladrilhos que consistem em blocos intracodificados podem apenas se originar a partir de um X-quadro. No contexto do presente pedido de patente, os termos “mistura”, “multiplexação”, “costura”, “fatiamento” ou termos de importação similar, no que diz respeito à geração de fluxo de saída, podem se referir aos meios e métodos para concatenar um ladrilho comprimido (por exemplo, ladrilho A) com outro ladrilho comprimido (por exemplo, ladrilho B), para formar uma parte do fluxo de bits que representa um único quadro de saída, em que o ladrilho A e o ladrilho B podem se originar a partir de codificações separadas do conteúdo, que serão definidas em detalhes adicionais abaixo.
48 / 125
[0059] Uma das vantagens de um esquema de PE diz respeito à superação da questão do descompasso, que pode estar presente em um esquema de BIE (isto é, eliminação ou redução do descompasso). Deve ser reconhecido que, enquanto o BIE permite a substituição de um P-quadro da janela de visualização anterior por um X-quadro da nova janela de visualização, os seguintes quadros são P-quadros regulares da nova janela de visualização, que são codificados com previsões feitas para quadros anteriores. Assim, quando um P-quadro é substituído por um X-quadro e, em seguida, um quadro a seguir usa esse X-quadro para previsão, em vez dos quadros originais do fluxo de bits regular, há um potencial para descompasso, em que os erros de previsão podem se acumular. Por outro lado, na codificação em fases, o fluxo gerado usa o X-quadro na posição = <phase> + i* <period> para a previsão dos seguintes P-quadros e, por isso, a situação em que um P-quadro usa, para previsão, um quadro diferente do quadro usado durante a codificação é evitada. Por isso, não há erro de previsão apresentado devido à previsão de um quadro diferente do quadro gerado durante a codificação e, consequentemente, qualquer descompasso potencial devido a esses tipos de erro de previsão é evitado. No entanto, o esquema de PE pode exigir uma quantidade maior de armazenamento, visto que o armazenamento dos P-quadros que seguem os X-quadros no GOP é necessário.
[0060] Além disso, uma modalidade de um esquema de PE pode ser vantajosamente utilizada para facilitar a atualização gradual dos quadros, em que a menor latência é alcançada durante a reprodução selecionando-se apenas um subconjunto dos ladrilhos para atualizar a sua qualidade e enviar seus ladrilhos codificados em fase apropriada. Embora, em uma modalidade de um esquema de BIE, um P-quadro seja substituído por um X-quadro, em um esquema de otimização de quadro de atualização gradual, os fluxos codificados por PE podem ser usados para substituir ladrilhos selecionados pelos ladrilhos correspondentes obtidos a partir do fluxo codificado por PE
49 / 125 apropriado. Por outro lado, em outra modalidade, um esquema de BIE pode também vantajosamente operar em uma base de ladrilho por ladrilho. No que diz respeito a uma modalidade baseada em PE, consequentemente, se o período for P e número do quadro for X, pode-se obter a fase correspondente pela seguinte equação: Fase = {X Mod P}. Assim, durante a entrega ou reprodução de uma sequência de vídeo codificada, deve-se presumir que um determinado ladrilho T é selecionado para atualização para qualidade q de QP no X-quadro, então pode-se substituir o ladrilho selecionado (no X-quadro e nos seguintes quadros, até a próxima atualização/regressão de T ou mudança de janela de visualização) pelo ladrilho T, a partir do fluxo com a fase que satisfaz a seguinte relação: Fase = {X Mod P} em QP = q. Depois disso, os ladrilhos colocalizados nos quadros seguintes ao X-quadro, que pertencem ao mesmo GOP, são substituídos pelos ladrilhos colocalizados correspondentes do mesmo fluxo com codificação de PE. Deve ser reconhecido que as vantagens de se concatenar os ladrilhos de diferentes fluxos, quando um usuário muda a direção de foco, são similares ao cenário apresentado acima, em que o usuário muda seu foco durante o Mid-GOP. Os QPs de fatia idêntica são usados para alternar/substituir os ladrilhos em virtude de, se dois ladrilhos de entrada fossem codificados com QP real diferente e fossem codificados com uma única fatia por imagem, então, se o QP de fatia diferisse, não seria possível que os QPs de ladrilhos no fluxo de saída estivessem corretos, sem reescrita de baixo nível do fluxo. Os detalhes adicionais sobre a otimização de quadro de atualização gradual e seleção de ladrilhos apresentados adicionalmente abaixo, em referência às modalidades adicionais do presente pedido de patente.
[0061] Uma desvantagem em potencial, em relação ao PE, pode ser que o mesmo exige mais armazenamento, uma vez que um fluxo de entrada é codificado em muitas fases, o que potencialmente resulta em tantos fluxos quanto o tamanho de GOP (em vez de apenas dois fluxos, como no BIE). Essa
50 / 125 desvantagem pode ser negociada contra a vantagem da latência reduzida sem descompasso em uma implementação exemplificativa. Para resposta de mudança de qualidade mais rápida, o número de fases pode ser definido igual ao tamanho do GOP, isto é, o período P, mas uma modalidade exemplificativa pode prover uma troca, de usar menos fases e consumir menos armazenamento, enquanto a latência da atualização de qualidade pode ser maior, uma vez que as atualizações de ladrilho apenas será feita na próxima fase.
[0062] A Figura 9 é um fluxograma ilustrativo de um esquema de PE 900, de acordo com uma modalidade exemplificativa da presente invenção. No Bloco 902, um fluxo de entrada de mídia correspondente a um ativo de vídeo imersivo de 360˚ pode ser recebido. Como antes, uma pluralidade de representações de taxa de bits do fluxo de entrada de mídia pode ser gerada, cada representação de taxa de bits com uma qualidade de vídeo separada, por exemplo, relacionada ou controlada por um valor de QP direcionado correspondente, usado para a representação da taxa de bits e/ou taxa de bits direcionada, ou outros índices de qualidade (Bloco 904). Cada representação de taxa de bits controlada por um QP correspondente é codificada em uma pluralidade de fluxos de bits codificados por fase, cada fluxo de bits codificado por fase pertence a uma representação de taxa de bits específica que compreende um número (N) de quadros com uma estrutura de GOP específica, com um tamanho (p) de GOP, em que o número da pluralidade de fluxos de bits codificados em fase é igual ao tamanho de GOP. Em um arranjo, o tamanho de GOP, isto é, p>1. Para cada pésimo de fluxo de bits codificado por fase, N quadros são codificados da seguinte forma: (i) pelo menos um primeiro quadro é codificado como um quadro intracodificado (I); e (ii) um quadro, em uma posição de quadro i, para 2<i<N, que satisfaz a relação {i Mod (tamanho de GOP)} = p, é codificado como um X-quadro, com um cabeçalho de fatia de um P-quadro e que compreende blocos de
51 / 125 apenas dados de imagem de mídia intracodificados (isto é, similares a um I- quadro). Caso contrário, esse quadro é codificado como um P-quadro regular com dados de mídia de um quadro codificado por previsão com um cabeçalho de P-fatia (Bloco 906). Em algum arranjo, os P-quadros também podem conter dados intracodificados. Quando B-quadros também são codificados em uma modalidade, um X-quadro, em vez de um B-quadro regular, pode ser provido igual ao processo anterior. Conforme observado anteriormente, no que diz respeito à Figuras 5 e 7, as operações apresentadas nos Blocos 904 e 906 podem ser combinadas para serem executadas em um único processo de codificação, por uma questão de eficiência computacional em uma modalidade exemplificativa.
[0063] Em uma modalidade adicional ou alternativa de um esquema de PE, um fluxo de bits codificado em fases pode ter um quadro diferente de um I-quadro como um primeiro quadro da sequência de vídeo codificada, que pode ser alcançado por configurações apropriadas em um codificador, de acordo com os preceitos no presente documento. Por exemplo, o primeiro quadro pode ser um X-quadro (ou algum outro não I-quadro). Todos os outros quadros da sequência codificada podem conter quadros previstos (P/B- quadros) e X-quadros em locais adequados com base na fase.
[0064] A Figura 12 descreve uma pluralidade de fluxos de bits codificados 1200 que têm fases diferentes para uma representação de taxa de bits específica gerada por um sistema de codificador ladrilhado baseado em PE, em uma modalidade exemplificativa. A título de ilustração, um fluxo de QP-N 1202-N, que tem um valor de QP de 22, é codificado ou provido como quatro fluxos codificados por fase 1204-1 a 1204-4, devido ao uso de um tamanho de GOP de quatro quadros nesse exemplo. Para cada fluxo de PE 1204-1 a 1204-4, o primeiro quadro é codificado como um I-quadro 1206-1 a 1206-4. O restante dos quadros, em cada fluxo de PE, é codificado como P- ou X-quadros baseados na relação de fase e posição apresentada acima.
52 / 125
[0065] Voltando à Figura 10A, é representado na mesma um fluxograma ilustrativo de um processo 1000A para configurar um esquema de PE em um arranjo de codificação de ladrilhos, de acordo com uma modalidade exemplificativa da presente invenção. No Bloco 1002, um codificador pode ser inicializado para selecionar um esquema de PE, em relação a um fluxo de entrada de mídia correspondente a um ativo de vídeo imersivo de 360˚. No Bloco 1008, os parâmetros de período e fase são obtidos ou, de outro modo, configurados, em que o período é igual ao tamanho de GOP (Bloco 1004), e uma fase é igual ou inferior ao tamanho de GOP (Bloco 1006). No Bloco 1010, o codificador pode ser configurado para usar a codificação de ladrilho para gerar ladrilhos em um determinado arranjo de grade/arranjo por quadro. Da mesma forma que um processo de configuração de BIE apresentado anteriormente, um parâmetro de base_qp pode ser escrito em cabeçalhos de QP de fatia dos fluxos codificados (Bloco 1012). No que foi observado anteriormente, é necessário que todas as imagens, com o mesmo número de imagem a ser usado como uma entrada para costura, usem o mesmo valor de base_qp. Assim, não é uma exigência necessária em uma modalidade exemplificativa definir o mesmo parâmetro de base_qp em todos os cabeçalhos de fluxo. Para facilitar os fluxos codificados em diferentes qualidades (embora tenham a mesma base_qp), um parâmetro de qp_delta pode ser configurado conforme descrito acima, em relação a cada fluxo baseado em QPs de destino (Bloco 1014). Como anteriormente, em um processo de configuração de BIE exemplificativo, um qp_delta de -10 pode ser configurado, em que a base_qp é 32 para conseguir um QP de destino de 22 para um fluxo específico. A previsão de vetor de movimento espacial pode ser configurada de modo que seja restrita somente dentro do ladrilho (Bloco 1016). Isto é, os vetores de movimento não podem atravessar os limites do ladrilho em uma modalidade exemplificativa (isto é, apenas a previsão intraladrilho é permitida, e nenhuma previsão ou seleção de contexto inter,
53 / 125 através de um limite de ladrilho, é permitida). Isso significa que os vetores de movimento são definidos de modo que nenhuma amostra, fora dos limites de qualquer ladrilho colocalizado, seja lida durante a interpolação de compensação de movimento dos blocos dentro de um ladrilho. Uma grade de ROI pode ser configurada para o codificador, de modo que o mesmo use a informação de qp_delta para codificar um fluxo específico, em relação a uma região específica dos quadros (Bloco 1018). Além disso, o TMVP pode igualmente ser desabilitado (Bloco 1020) em um processo de configuração de PE exemplificativo, conforme observado acima.
[0066] Deve-se observar que um processo de configuração de PE exemplificativo é aproximadamente similar a um processo de configuração de BIE em uma modalidade, que pode ser realizado para cada fluxo “em fases”, dependendo do tamanho de GOP. Além disso, análogo a um processo de configuração de BIE 800A, que usa certos parâmetros, as modalidades adicionais ou alternativas de um processo de configuração de PE podem envolver outros parâmetros, além e/ou em vez dos parâmetros exemplificados no fluxograma da Figura 10A.
[0067] A Figura 10B é um fluxograma ilustrativo de blocos, etapas e/ou atos em uma implementação exemplificativa de PE, de acordo com uma modalidade da presente invenção. Em geral, um codificador pode ser configurado para efetuar diversas decisões durante a codificação ladrilhada baseada em PE para gerar um X-quadro somente em locais de quadro específicos de cada fluxo codificado por fase. No Bloco 1034, uma entrada de vídeo 1032 é recebida para codificação. No Bloco 1040, um codificador de ladrilhos é configurado para implementar um processo de PE baseado em um período (Bloco 1036) e fase (Bloco 1038), conforme apresentado acima. Para cada fluxo, o primeiro quadro é codificado como um I-quadro (Bloco 1042). Depois disso, um processo iterativo pode ser implementado para efetuar decisões de codificação adequadas em uma base quadro a quadro, que começa
54 / 125 com uma determinação sobre se a sequência de vídeo chegou ao seu fim (Bloco 1044). Se o fim não foi atingido (isto é, há quadros na sequência de vídeo que exigem processamento), um índice de quadros (i) é aumentado (Bloco 1046) e um próximo quadro é obtido e denotado como um iésimo quadro (Bloco 1048). Uma determinação é feita se a relação modular {i Mod (período) = fase} for satisfeita. Se assim for, o quadro é codificado como um X-quadro, conforme apresentado nos Blocos 1054, 1056 e 1058. Caso contrário, o mesmo é codificado como um P-quadro regular (Bloco 1052). Depois disso, o fluxo de processo retorna para determinar se todos os quadros do fluxo de vídeo foram processados (Bloco 1044). Se assim for, o fluxo do processo continua, para finalizar a codificação do fluxo de vídeo (Bloco 1060), que pode ser provido como fluxo de bits ladrilhado por PE para uma entidade a jusante (por exemplo, um sistema de empacotamento), conforme apresentado no Bloco 1062.
[0068] Conforme observado anteriormente, um esquema de codificação ladrilhada baseada em PE facilita um processo de otimização de atualização gradual durante a entrega de vídeo 360˚, que será apresentado detalhes adicionais abaixo. Uma modalidade de codificação em fases também pode ser usada durante a reprodução em que um costurador em execução no lado do servidor ou no lado do cliente pode ser usado para combinar os ladrilhos de diferentes qualidades. Assim, em cada quadro do vídeo que está sendo reproduzido, cada ladrilho tem uma qualidade atual, que pode corresponder ao valor de QP, taxa-alvo de bits ou outros indícios do fluxo de vídeo do qual o bloco foi retirado. Quando a largura de banda é suficientemente grande, ou quando o usuário move a cabeça e a janela de visualização muda, seria desejável atualizar a qualidade (por exemplo, diminuir o QP) de alguns ladrilhos (os ladrilhos na nova janela de visualização, por exemplo). Além disso, para reduzir a latência por meio de redução do uso do armazenamento temporário no lado de decodificador, uma
55 / 125 modalidade da presente invenção prevê que toda a janela de visualização não possa ser atualizada de uma só vez, mas, sim, ser atualizada gradualmente, por meio de atualização gradual, apenas atualizando-se alguns ladrilhos em cada quadro, o que mantém o armazenamento temporário de decodificador pequeno, e então, reduz a latência. Conforme será descrito em detalhes adicionais mais abaixo, um instrumento de otimização de largura de banda exemplificativo pode ser configurado para efetuar um processo para determinar qual ladrilho atualizar a cada momento, com base na largura de banda, na janela de visualização e/ou na utilização atual do armazenamento temporário. Além disso, esse processo também pode ser configurado para determinar um nível de qualidade (isto é, qual QP) para o qual um ladrilho deve ser atualizado.
[0069] Por exemplo, deve-se presumir que durante a reprodução, um aparelho de seleção de ladrilhos (descrito adicionalmente em detalhes abaixo) determina a atualização no iésimo quadro, ladrilho T para qualidade de QP = q. Essa determinação pode ser provida como uma entrada de controle para um módulo de costura de ladrilhos, que recupera, recebe ou, de outra modo, obtém o ladrilho T do iésimo quadro do fluxo de vídeo que foi codificado com qualidade de QP = base_qp + delta_qp = q, com uso de codificação em fases, em que a fase é determinada pela relação modular: {fase = i Mod (período)}. Então, até a próxima vez que o processo de seleção de ladrilho decidir alterar a qualidade desse ladrilho, o ladrilho T é retirado do mesmo fluxo (isto é, o fluxo codificado em fases com qualidade QP = q e com a mesma fase). Assim, será reconhecido que uma vantagem adicional do esquema de PE, além da capacidade de realizar uma atualização gradual de ladrilhos durante as atualizações, é a melhor qualidade de vídeo. No geral, a codificação em fases fornece um QoE melhor do que um esquema de BIE, em que os X- quadros são substituídos sem fases, o que pode resultar no descompasso, e resultar em valores de pico mais baixos de sinal para ruído (PSNR), o que
56 / 125 resulta, assim, em um fluxo de QoE mais baixo para o restante do GOP. Conforme observado anteriormente, uma desvantagem potencial da codificação em fases é a exigência de vários fluxos que podem resultar em significativa sobrecarga de processamento de codificação e espaço de armazenamento.
[0070] As modalidades exemplificativas, a respeito de como costurar fluxos de bits codificados por ladrilho com uso de esquemas de PE ou BIE, serão definidas abaixo. Conforme observado anteriormente, as modalidades de costura de ladrilho podem ser implementadas em um servidor durante a fase de entrega de fluxo ou no lado do cliente, para reprodução. Em geral, as modalidades exemplificativas para ladrilhos de costura envolvem a utilização de fluxos de bits de diferentes qualidades (por exemplo, com base em diferentes QPs, taxas de bits direcionadas, ou outros indícios), bem como garantem que não haja compatibilidade, em relação a várias partes de dados paramétricos relativos às imagens de vídeo, por exemplo, Conjunto de Parâmetros de Vídeo (VPS), Conjunto de Parâmetros de Sequência (SPS), Conjunto de Parâmetros de Imagem (PPS), Informação Suplementar de Aprimoramento (SEI), etc., entre os fluxos de bits, a partir dos quais os ladrilhos podem ser selecionados. Em geral, a estrutura do ladrilho deve ser preferencialmente constante ao longo do tempo para facilitar a costura, o que, por sua vez, está relacionado a processos de codificação de ladrilhos realizados por um codificador da presente invenção. Um módulo de costurador de fluxo de bits é operacional, em resposta a uma entrada que compreende uma lista de ladrilhos de diferentes fluxos codificados por ladrilho, que podem ser combinados para gerar um novo fluxo de bits de saída, em que os ladrilhos mais próximos da janela de visualização têm uma qualidade mais alta, em comparação com os ladrilhos mais distantes da janela de visualização. Além disso, uma modalidade exemplificativa para realizar a combinação de ladrilho e a multiplexação de fluxo, de acordo com os
57 / 125 preceitos da presente invenção, pode ser configurada, de modo que a geração de fluxo de saída ainda permaneça em conformidade com os padrões de codec conhecidos, tais como MPEG HEVC/ITU-T/ISO23008 parte 2/especificações de H.265, bem como os padrões emergentes, como AV1, H.266, VVC e similares.
[0071] Para costurar fluxos codificados por BIE, os ladrilhos dos fluxos regulares podem ser usados por padrão para fatiar (por exemplo, até que alguma entrada de controle seja provida, com base no foco do usuário ou na alocação de largura de banda). Os únicos casos em que os ladrilhos dos fluxos codificados por BIE são obtidos é quando a janela de visualização mudou (o que exige, assim, que os X-quadros, que são quadros com cabeçalhos de P-fatia que podem se encaixar no meio do GOP diferente dos ladrilhos, sejam intracodificados assim que a nova janela de visualização puder ser apresentada) ou quando um otimização da largura de banda determina a atualização da qualidade do ladrilho (caso em que o quadro de bloco Intra, com os cabeçalhos de P-fatia, contém o ladrilho com a qualidade superior atualizada).
[0072] A Figura 13A é ilustrativa de vários blocos, etapas e/ou atos de um esquema de costura de ladrilho exemplificativo 1300A, que envolve fluxos de ladrilhos codificado por BIE, de acordo com algumas modalidades exemplificativas da presente invenção. No Bloco 1302, um costurador de fluxo de bits de BIE recebe fluxos de bits de entrada de diferentes QPs, um primeiro conjunto compreende fluxos regulares codificados por ladrilho e um segundo conjunto compreende fluxos codificados por ladrilhos de BIE. Conforme observado acima, os fluxos em modalidades exemplificativas são de movimento restrito e têm a mesma base_qp para cada quadro N, como o QP de base em qualquer outro quadro N. Um módulo de seleção de ladrilho provê uma lista de ladrilhos com diferentes QPs (Bloco 1306), que faz parte da entrada geral, em relação à descrição e à informação paramétrica para cada
58 / 125 ladrilho e fluxo de bits QP específico, a partir do qual o ladrilho deve ser recuperado ou obtido (Bloco 1304). Um processo de costura de ladrilhos pode ser efetuado em uma base de ladrilho a ladrilho, conforme apresentado no Bloco 1308. Se a janela de visualização e/ou o ladrilho de QP tiver mudado (Bloco 1310), o ladrilho é retirado de um fluxo codificado por BIE com o QP apropriado e costurado no quadro (Bloco 1312). Caso contrário, o ladrilho é retirado de um fluxo regular codificado por ladrilhos e, consequentemente, costurado (Bloco 1314). Depois de todos os ladrilhos serem costurados em um quadro (em um arranjo de grade predeterminado), o quadro costurado com diferentes qualidades de ladrilhos pode ser provido como saída (Bloco 1316). Se os quadros de vídeo adicionais permanecerem para processamento (por exemplo, codificação e costura), o fluxo do processo poderá continuar.
[0073] A título de ilustração, deve-se considerar um cenário de costura de fluxo de bloco intra, no qual há pelo menos três fluxos: (1) um fluxo regular de qualidade mais baixa (por exemplo, definição de QP de 30); (2) um fluxo regular de maior qualidade (por exemplo, definição de QP de 22); e (3) um fluxo de BIE (Tudo Intra) de maior qualidade. Em geral, quando a janela de visualização muda, a qualidade de alguns ladrilhos pode aumentar. Isso é feito no Bloco 1312, o que significa que, por exemplo, um ladrilho na posição A que, em imagens anteriores, foi tirado do fluxo (1), agora é retirado do fluxo (3). Na imagem seguinte, o ladrilho na posição A deve ser retirado do fluxo (2), se o ladrilho ainda estiver dentro da janela de visualização. Se o ladrilho não estiver mais dentro da janela de visualização, o ladrilho de posição A pode ser retirado do fluxo (1). Mais particularmente, pode ser adicionalmente dependente da informação de vetor de foco. Em outras palavras, não é apenas se o ladrilho na posição A estiver na janela de visualização ou não; em vez disso, é onde o ladrilho está localizado em um esquema de determinação foco para peso usado para a seleção de ladrilhos (descrito em detalhes adicionais abaixo). Assim, deve ser entendido que os
59 / 125 ladrilhos dentro da janela de visualização que depende de onde os mesmos estão localizados pode ser atualizado ou rebaixado, com base no quão distante o ladrilho está da linha direta de visão, em uma modalidade exemplificativa da presente invenção.
[0074] De forma similar, um esquema de costura de ladrilhos 1300B exemplificativo, que envolve fluxos de ladrilhos baseados em PE, é ilustrado na Figura 13B. Um costurador de fluxo de bits de PE é operativo para receber fluxos de bits de entrada de diferentes QPs, cada um codificado em uma pluralidade de fluxos de bits codificados por fases (Bloco 1332). Um módulo de seleção de ladrilho provê uma lista de ladrilhos com diferentes QPs (Bloco 1336), que faz parte da entrada geral, em relação à descrição e informação paramétrica para cada ladrilho e o fluxo de bits de QP específico, a partir do qual o ladrilho deve ser recuperado ou obtido (Bloco 1334). Um processo de costura de ladrilho similar à costura de ladrilho de BIE pode ser efetuado em uma base de ladrilho a ladrilho, conforme apresentado no Bloco 1338. Se a janela de visualização e/ou o ladrilho de QP tiver/tiverem mudado, de modo que seja necessário mudar a qualidade de um ladrilho atual (Bloco 1340), o bloco será retirado de um fluxo codificado por PE que tem o QP apropriado baseado em uma relação modular de fase a quadro e costurado no quadro (Bloco 1342). Por exemplo, se o QP de ladrilho, no quadro I, mudar para QP = q, o ladrilho do fluxo, cuja fase é igual a {i Mod (período)} e QP = q, é obtido e costurado no local apropriado de uma grade de ladrilho. Caso contrário, o ladrilho é retirado do mesmo fluxo de bits, a partir do qual foi retirado no quadro anterior, e, consequentemente, costurado (Bloco 1344). Depois de todos os ladrilhos serem costurados em um quadro (em um arranjo de grade predeterminado), o quadro costurado com diferentes qualidades de ladrilhos pode ser provido como saída (Bloco 1346). Além disso, se os quadros de vídeo adicionais permanecerem para processamento (por exemplo, codificação e costura), o fluxo do processo poderá continuar.
60 / 125
[0075] Independentemente dos ladrilhos de fluxos de bits codificados por bieE ou fluxos de bits codificados por PE serem costurados, uma modalidade exemplificativa de costura pode envolver a obtenção de ladrilhos de diferentes fluxos com cabeçalhos de fatia compatíveis, além de outra informação paramétrica, conforme apresentado anteriormente. Em geral, o tipo de fatia (isto é, I/P/B-fatia), o QP de fatia e outros campos ou parâmetros que podem afetar o processo de decodificação CABAC podem ser monitorados para garantir a compatibilidade e conformidade. Além disso, algumas modalidades, como as modalidades exemplificativas apresentadas nas Figuras 13A/13B, podem exigir que a interprevisão seja feita com uso apenas da imagem previamente decodificada.
[0076] Voltando à Figura 13C, é mostrado na mesma um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais, em relação a um esquema de costura, fatiamento de ladrilho exemplificativo, de acordo com uma modalidade exemplificativa da presente invenção. No Bloco 1362, ladrilhos de diferentes QPs, para o quadro atual (a ser costurado), são obtidos como entrada. Os dados dos ladrilhos (seja dos fluxos de BIE ou dos fluxos de PE) selecionados com base em um processo de seleção de ladrilho são copiados em uma memória (Bloco 1364). No Bloco 1366, o processo de fatiamento se inicia com um cabeçalho de fatia de protótipo que pode incluir um campo de cabeçalho, um campo de deslocamento, etc. (Bloco 1368). Para um índice de ladrilho (i), um entry_point_offset [i] pode ser determinado a partir dos tamanhos de ladrilho (Bloco 1368). Os bits necessários para o maior valor de entry_point_offset [i] são determinados (Bloco 1370). O cabeçalho da fatia pode ser ajustado com um novo comprimento de Deslocamento de Ponto de Entrada (EPO), com base no maior valor de deslocamento de todos os índices de ladrilho, conforme determinado anteriormente (Bloco 1372). No Bloco 1374, o campo de EPO é escrito no cabeçalho da fatia. Depois disso, os ladrilhos são concatenados em conjunto, após o cabeçalho de fatia (Bloco
61 / 125 1376), gerando, assim, um fluxo de bits de saída do quadro costurado (Bloco 1378).
[0077] As pessoas versadas na técnica reconhecerão que, a fim de fatiar os ladrilhos, os mesmos precisam ser recuperados a partir de fluxos de bits de fonte específica responsivos a um processo de seleção de ladrilhos. Para facilitar a recuperação eficiente, uma modalidade de fatiamento pode envolver a provisão de um cache de ponteiro de ladrilho mapeado por memória, que permite uma referência mais rápida de arquivos analisados correspondentes aos ladrilhos, em que um formato de arquivo é otimizado para ser mapeado de memória, em vez de ser analisado em RAM. Abaixo está um formato de arquivo exemplificativo para fins de uma modalidade de fatiamento exemplificativa: formato de arquivo: u (16) magiclen; s (magiclen) magic_string; repetição {//cada iteração é um grupo u (32) nrec; para (i=0; i<nrec; i++) { //por quadro u (64) rec_end_relative [i]; } //rec_end_relative [i] é relativo ao deslocamento do arquivo representado por este comentário. //rec_end_abs [i] = this_offset + rec_end_relative [i] para (i=0; i<nrec; i++) { //esta iteração é por quadro //prefixos são unidades de NAL que aparecem antes da Fatia na unidade de acesso u (32) n_prefixos; para (j=0; j<prefixos; j++) { u (64) prefix_start_abs [i] [j]; u (64) prefix_len [i] [j]; } //a fatia u (64) slice_start_abs [i]; u (64) slice_len [i]; u (32) n_tiles; para (j=0; j<n_tiles; j++) { u (64) tile_start_abs [i] [j]; u (64) tile_len [i] [j]; } //sufixos são unidades de NAL que aparecem após a Fatia na unidade de acesso u (32) n_sufixos; para (j=0; j<n_sufixos; j++) { u (64) suffix_start_abs [i] [j]; u (64) suffix_len [i] [j]; }
62 / 125 } } magic_string é “TPTCACHE1 [ii[][il[]llil[]il[]]]”
[0078] Referindo-se à Figura 14, é mostrado na mesma um quadro de vídeo de 360° exemplificativo 1400 que compreende ladrilhos selecionados e fatiados a partir de fluxos de bits codificados com diferentes qualidades ou QPs, de acordo com uma modalidade da presente invenção. A título de ilustração, o quadro de vídeo 1400 é formado a partir de 128 ladrilhos (16 colunas por 8 linhas) de uma entrada de vídeo de 4K, mostrada em formato desembrulhado (isto é, não projetado em um espaço esférico 3D), em que um campo 1402 que pode corresponder a uma ROI do quadro 1400, com base na janela de visualização ou na localização de vetor de foco. De acordo com os preceitos contidos no presente documento, a ROI 1402 pode ser formada a partir de fatiamento de ladrilhos de alta qualidade (isto é, ladrilhos selecionados dentre fluxos de bits codificados com baixo QPs, por exemplo, QP-16 a 105,6 Mbps, e concatenados em um processo de costura). As regiões ou os campos dispostos próximos/adjacentes à ROI 1402 podem ter ladrilhos de qualidade média (por exemplo, campo 1404). Por outro lado, campos ou regiões distalmente dispostos a partir da ROI 1402, por exemplo, aqueles mais distantes da janela de visualização, podem ser formados a partir de ladrilhos de menor qualidade, como exemplificado pelas regiões 1406 e 1408.
[0079] Para facilitar o controle de seleção de ladrilhos com base no foco, as modalidades adicionais da presente invenção envolvem monitoramento, em que um usuário está vendo em um programa de vídeo imersivo de 360° (isto é, janela de visualização do usuário) e determinando os pesos de ladrilho apropriados com base no foco do usuário. Em geral, um vetor de foco (GV) pode ser devolvido pelo dispositivo de usuário/cliente definindo-se uma direção de foco em um espaço imersivo 3D que exibe o vídeo 360˚, por exemplo, em que o fone de ouvido é apontado. Em outras modalidades, o movimento do globo ocular do usuário pode ser rastreado para fins semelhantes. Conforme será observado abaixo, os ladrilhos de um quadro
63 / 125 de ladrilhos também têm vetores de direção (que não dependem do foco do usuário), com base em como o quadro é mapeado em um ambiente de exibição 3D. Um produto de ponto (também conhecido como um produto escalar ou produto interno) de vetor de ladrilho e vetor de foco pode ser calculado para determinar a separação angular entre a direção de foco e a direção da parte central de qualquer ladrilho de um quadro, que pode ser provido a um módulo de função de ponderação para determinar pesos de ladrilhos correspondentes.
[0080] As Figuras 15A e 15B são fluxogramas ilustrativos de vários blocos, etapas e/ou atos de um esquema de controle de foco que podem ser (re)combinados em um ou mais arranjos, com ou sem blocos, etapas e/ou atos de fluxogramas adicionais da presente descrição, para facilitar a seleção otimizada de ladrilhos, de acordo com um ou mais modalidades da presente invenção. O processo 1500A envolve receber um vetor de foco de um dispositivo de cliente que opera para exibir um ativo de vídeo imersivo de 360° para um usuário, em que cada quadro de vídeo compreende uma matriz de ladrilhos projetados em um ambiente de exibição tridimensional (3D), visualizado pelo usuário, em que o usuário está imerso, o vetor de foco define uma direção de foco no ambiente de exibição 3D, em que o usuário está visualizando em qualquer momento específico (Bloco 1502). Em uma modalidade, a informação de vetor de foco pode compreender a informação (x, y, z) em um sistema de coordenadas cartesianas em 3D, que pode ser associado ao ambiente de exibição. Em outra modalidade, a informação de vetor de foco pode incluir informação (ρ, θ, φ) em um sistema de coordenadas esféricas 3D, com base em um mapeamento de projeção equirretangular. Em outra modalidade, um vetor de foco 3D pode ser normalizado (para obter um vetor direcional de unidade e comprimento). As pessoas versadas na técnica reconhecerão, por isso, que a informação de GV pode ser provida de várias maneiras, dependendo da modelagem geométrica, do mapeamento de
64 / 125 projeção, da metodologia computacional, etc., usada em uma implementação específica. No Bloco 1504, pode-se determinar qual é a separação angular entre o vetor de foco e um vetor direcional associado a cada local do ladrilho correspondente respectivamente à matriz de ladrilhos no ambiente de exibição 3D, que novamente pode ser dependente da modelagem geométrica específica, do mapeamento de projeção, da metodologia computacional e similares. No Bloco 1506, responsivo às separações angulares, uma pluralidade de pesos de ladrilhos é determinada como correspondente à matriz de ladrilhos para uso na seleção de ladrilhos de diferentes qualidades de taxa de bits (QPs) do ativo de vídeo imersivo 360°, para montar um quadro de vídeo a ser entregue ao dispositivo de cliente. Em geral, aos ladrilhos (ou, mais amplamente, posições ou locais de ladrilho), próximos ou dentro de uma distância angular arbitrária do vetor de foco, podem ser atribuídos valores mais elevados, ao passo que, aos ladrilhos que estão diretamente opostos ao vetor de foco (isto é, 180° ou π radianos), podem ser atribuídos valores de peso menores, os ladrilhos restantes no meio (nas direções horizontal e vertical) recebem valores de peso variados entre os valores máximo e mínimo, de acordo com qualquer relação matemática adequada (por exemplo, linear, quadrática, etc.).
[0081] O processo 1500B apresenta detalhes adicionais, no que diz respeito à efetivação de controle com base no foco, em uma modalidade exemplificativa. No Bloco 1522, os pesos de ladrilhos podem ser determinados em função de um cosseno de uma separação angular entre o vetor de foco e o vetor direcional correspondente a uma localização de ladrilho, em uma projeção espacial 3D adequada de um quadro de vídeo 2D do ativo de vídeo imersivo 360°. No Bloco 1524, os pesos de ladrilho podem ser providos como uma entrada, junto com uma entrada dinâmica de alocação de largura de banda, a uma seleção do ladrilho e ao processo de otimização da largura de banda, que é descrito em um lugar adicional no presente pedido de
65 / 125 patente.
[0082] Em uma modalidade exemplificativa, dependendo de onde o ladrilho está localizado, em relação ao vetor de foco, uma determinação é feita em relação à quantidade de largura de banda está alocada para essa localização de ladrilho correspondente ao peso. Onde o vetor de foco eo vetor direcional de ladrilho são indicados por vetores, seu produto de ponto pode ser determinado da seguinte forma:
[0083] Após a normalização, isto é, se [ ] = foco/|foco|, então |a| = 1. Da mesma forma, atribuindo-se [ ] = tile_direction/|tile_direction|, |b| = 1. Consequentemente, ao normalizar, a relação acima simplifica para:
[0084] Em vez de mapear cos (θ) de volta para θ, para determinar um peso, uma modalidade da presente invenção envolve definir uma função matemática para mapeamento de cos (θ) para um peso da seguinte forma: x = cos (θ); e f (x) = {x+1} se x≥ 0 e f (x) = [α {x+1}] se x<0, em que α = um fator de escala, por exemplo, 0,1. Assim, se a separação angular entre um vetor de foco e vetor direcional de ladrilho for 0°, cos (θ) = 1 e f (x) = 2. Da mesma forma, para um ladrilho que está a 60° ou 300° do vetor de foco, cos (θ) = 0,5, e o valor f (x) correspondente é 1,5. Em uma projeção equirretangular de um quadro 3D, o ângulo exatamente oposto ao local em que o usuário está olhando é 180°, o que produz cos (θ) = -1,0, obtendo-se, assim, um valor e f(x) de peso de 0, independentemente do fator de escala. Por conseguinte, uma modalidade exemplificativa pode prover um fator de escala adequado, com base no quanto as qualidades de ladrilho podem variar suave ou rapidamente, em relação a uma direção de foco dentro de um quadro.
[0085] A Figura 16A ilustra um arranjo geométrico de unidade circular exemplificativo 1600A para facilitar a determinação da separação
66 / 125 angular entre a direção de foco de usuário e as posições de ladrilho. A localização de usuário 1602 é definida como o centro de um corte transversal de unidade circular de um espaço esférico 3D. Ao fazer referência ao foco de usuário, ao longo de um primeiro eixo geométrico referencial (por exemplo, eixo geométrico X) 1604, diferentes deslocamentos angulares, para localizações de ladrilhos, podem ser determinados, conforme apresentado acima. A título de ilustração, os algarismos de referência 1606 e 1608 se referem a dois vetores direcionais de ladrilhos que estão a 30°e 60° de distância da direção de foco 1604. Em geral, as localizações de ladrilhos que se aproximam de +90° outro valor aproximado (por exemplo, algarismos de referência 1610A/1610B), em relação à direção de foco 1604, conotam a visão periférica de um usuário médio a distante, e um fator de escala ponderado pode ser utilizado, de modo que os ladrilhos em tais regiões e além possam ser alocados em uma redução mais rápida na largura de banda (isto é, menor qualidade). Em uma localização vetorial direcional 1614, os ladrilhos têm +180° de distância da direção de foco 1604.
[0086] Em uma modalidade exemplificativa, em vez de deslocamentos angulares reais, os valores do cosseno correspondentes a diferentes localizações podem ser providos em referência à direção de foco. Por exemplo, se um vetor de direção do ladrilho é de 90° ou 270 ° do vetor de foco, x = 0,0 pode ser alimentado para a função de ponderação, que produz um peso de 1,0. Da mesma forma, para um vetor de direção de ladrilho ter 330° de distância, x = 0,866 é provido à função de ponderação, o que produz, assim, um valor de peso de 1,866. Como outro exemplo, se o vetor de direção de ladrilho tiver 120° de distância, x = -0,5, é provido para a função de ponderação, o que produz, assim, um valor de peso de 0,05 (presumindo α = 0,1), que é o mesmo, se a direção do ladrilho fosse de 240° de distância do vetor de foco).
[0087] Além disso, tanto a informação de vetor de foco quanto a
67 / 125 informação de vetor de direção de ladrilho podem ser convertidas em informação de coordenadas de ladrilho apropriada, em relação à grade de ladrilhos usada na codificação de ladrilhos, durante a preparação de mídia, para facilitar a identificação de ladrilhos por linhas e colunas, que podem ser inseridas junto com a informação de peso para um processo de seleção de ladrilhos e de otimização de largura de banda. Uma pessoa versada na técnica vai reconhecer que a determinação de informação de coordenadas de ladrilho depende do mapeamento de projeção usado em uma modalidade exemplificativa. A Figura 16B ilustra um esquema de mapeamento de projeção equirretangular, o que resulta em um ambiente de exibição esférico 1600B, em que os ladrilhos formam a superfície. Uma implementação exemplificativa provê a colocação de um polo norte 1605 na direção de {0,1,0} e um polo sul 1607 na direção oposta, ao passo que as bordas esquerda e direita de um quadro de ladrilhos estão na direção de {0,0,1} e o centro da imagem (isto é, a armação de ladrilhos) está na direção de [0,0, -1}. Em uma implementação exemplificativa que envolve tamanhos de ladrilhos uniformes, uma modalidade da presente invenção provê um aparelho e método para determinar a localização de um ladrilho 1609 que tem um vetor direcional 1611, que pode ser configurado para calcular tx (o índice de coluna de ladrilho) e t y (o índice de linha de ladrilho) para um determinado arranjo de grade de nx (o número de colunas de ladrilhos) e ny (o número de linhas de ladrilhos) da seguinte forma, em que θ é o ângulo polar e φ é o ângulo azimutal do sistema de coordenadas esféricas:
[0088] Quando a codificação tiver tamanhos de ladrilhos não
68 / 125 uniformes, as equações anteriores podem ser modificadas com base, por exemplo, em áreas de pixel de ladrilhos individuais, etc. A título de ilustração, com uso de (i) como o índice de ladrilho para a borda esquerda da coluna de ladrilho i, (j) como o índice de ladrilho para a borda superior da linha ladrilho j, w é o número de colunas de pixels, e h é o número de linhas de pixel, uma modalidade da presente invenção pode ser configurada para determinar o seguinte, em que tanto x i quanto yj envolvem um operador de “chão” para arredondar (isto é, a parte fracionada é removida), em relação ao uso de uma unidade exemplificativa de codificação ou tamanho de bloco (por exemplo, 64 pixels):
[0089] A Figura 16C é ilustrativa de um ambiente de visualização de vídeo imersivo de 360° exemplificativo 1600C para fins de uma ou mais modalidades da presente invenção. Um nó ou uma porta de propriedades (GW) 1642 associado às propriedades de assinante 1640 é servido por um tubo de entrega 1644 para prover conteúdo de mídia imersivo. Em um arranjo, esse conteúdo de mídia imersivo pode ser apresentado em um espaço virtual panorâmico 3D, visualizado em um fone de ouvido adequado, usado pelo assinante/usuário. Uma UE exemplificativa pode incluir um CPE 1646 servido pela GW 1642, como um console de jogos, computador do tipo laptop ou um telefone do tipo smartphone, por exemplo, que executa um ou mais aplicativos de jogos ou mídia para prover sinais adequados para um ou mais dispositivos, como um dispositivo de exibição 1636 montado na cabeça de
69 / 125 um usuário 1628 ou na cabeça de um usuário 1628. Os exemplos adicionais de tais dispositivos podem incluir viseiras, óculos de proteção, capacetes com fio/sem fio, máscaras, etc., que podem exibir ou efetuar um espaço de visualização imersivo em torno do usuário. Em um arranjo de dispositivo de exibição exemplificativo, talvez haja instrumentação adicional, como um giroscópio, acelerômetro e um magnetômetro, etc., para facilitar o rastreamento da cabeça, isto é, quando o usuário 1628 mover a cabeça, o campo de visão em torno do espaço simulado poderá, consequentemente, mover-se, juntamente com uma porção do espaço que é contemplado (isto é, a janela de visualização) pelo usuário. Assim, em um fone de ouvido de rastreamento de cabeça, o cone de visão ou campo de visão, bem como a janela de visualização do usuário se move ao redor, enquanto o usuário olha para cima, para baixo e se move de lado a lado ou inclina sua cabeça. Um sistema exemplificativo pode incluir o assim chamado arranjo 6DoF (seis graus de liberdade) que pode plotar a cabeça do usuário, em termos de eixos geométricos X, Y e Z, para medir os movimentos de cabeça, também conhecidos como horizontal, vertical e de rotação, que podem ser usados para rastrear o ponto de visualização do usuário, dentro do espaço de visualização panorâmica 3D simulado.
[0090] A título de ilustração, o CPE 1646 pode ser incorporado como uma plataforma 1648, o que inclui um ou mais processadores 1656, memória volátil e não volátil/persistente 1654, interfaces de entrada/saída (I/O) 1660 (por exemplo, telas sensíveis ao toque, controladores de jogos, luvas de rastreamento manual, etc.), bem como uma ou mais aplicativos de mídia/jogos de 360 graus 1638, que podem efetuar um espaço de visualização virtual 3D ou “tela” 1620 para o usuário 1628 que usa o monitor montado na cabeça (HMD) 1636. Em um arranjo exemplificativo, o HMD 1636 pode ser acoplado sem fio ao CPE 1646 através da interface sem fio 1642. Uma pluralidade de armazenamentos temporários de decodificador 1645 pode ser
70 / 125 provida como parte de uma plataforma de CPE exemplificativa 1646/1648 correspondente a um ou mais canais de conteúdo de vídeo imersivos 360° disponíveis para o usuário 1628.
[0091] O CPE 1634 adicional com capacidade de mídia 3D (por exemplo, um computador do tipo tablet, computador do tipo phablet ou computador do tipo smartphone, etc.) também podem ser provido separada ou opcionalmente. O aparelho de CPE exemplificativo 1646/1634 que opera em conjunto ou separadamente, junto com o HMD 1636, pode ser operativo para efetuar o espaço de visualização virtual 3D 1620, que é um ambiente imersivo no qual o usuário 1628 pode mover seu ponto de vista em total 360°, em um de um plano vertical, um plano horizontal, ou em ambos os planos, definidos no ambiente 3D, em que a janela de visualização 1624, consequentemente, muda. Em um arranjo adicional ou alternativo, o aparelho de CPE 1646/1634 que funciona em conjunto com o HMD 1636 pode ser operativo para efetuar um espaço de visualização virtual 3D 1620 que pode ser parcialmente imersivo, pois é inferior a 360° ao longo de qualquer um dos eixos geométricos.
[0092] Um módulo de detecção de movimento e foco 1662 é operativo para detectar um movimento em um ponto de vista ou direção de foco de usuário/assinante 1628, em relação ao espaço de visualização virtual 3D 1620, e prover uma saída de vetor de foco adequada para um nó de serviço, à medida que o assinante 1628 muda seu foco dentro do espaço de visualização 1620. Em uma modalidade, um módulo de ponderação de ladrilho pode ser configurado para operar em um nó de otimização de vídeo 360° (por exemplo, nó 216 na Figura 2) para determinar pesos apropriados de ladrilho com base na informação de vetor de foco. Em outra modalidade, a ponderação ladrilho pode ser realizada localmente no aparelho 1646/1634 e/ou em HMD 1636 exemplificativo.
[0093] A Figura 17A é um fluxograma ilustrativo de blocos, etapas
71 / 125 e/ou atos adicionais, em relação a um processo de otimização de vídeo imersivo de 360° exemplificativo, de acordo com uma modalidade exemplificativa da presente invenção.
Em particular, o processo 1700A exemplifica o processamento do lado do cliente, no que diz respeito à detecção de foco/movimento em uma implementação.
No Bloco 1702, um usuário inicia uma sessão de vídeo 360°, após o que um dispositivo de cliente envia uma solicitação para um nó de apoio (por exemplo, nó 238, na Figura 2), em relação a um ativo de vídeo 360° solicitado (Bloco 1704). No bloco 1706, o nó de apoio responde com uma URL para o ativo solicitado e provê uma ID de sessão de vídeo para o cliente.
Responsivo a isso, o dispositivo de cliente começa a receber o ativo de vídeo codificado por meio de transmissão contínua, a partir da localização identificada na URL, que um reprodutor de dispositivo, do dispositivo de cliente, decodifica e renderiza em um ambiente imersivo 3D (Bloco 1710). Além disso, o dispositivo de cliente pode começar a monitorar ou rastrear o movimento da cabeça/ocular do usuário que opera o dispositivo de cliente junto com a sessão de vídeo 360° em curso (Bloco 1708). Responsivo à detecção de que um movimento é detectado (Bloco 1712), a informação de vetor de foco, em relação a uma janela de visualização atual, é provido a um nó de otimização de vídeo 360° (por exemplo, nó 216 na Figura 2), que utiliza a informação de vetor de foco em combinação com outra informação em um processo de otimização de largura de banda e de seleção de ladrilhos (Bloco 1714). Em uma modalidade, a informação de vetor de foco pode ser gerada até que o usuário tenha parado de reproduzir o vídeo e/ou nenhum movimento de cabeça/ocular seja detectado (por exemplo, durante um período de tempo), conforme ilustrado em uma repetição iterativa que envolve blocos de decisão 1712 e 1716. Em uma modalidade, os vetores de foco podem ser gerados a uma frequência predeterminada (por exemplo, 40 vezes por segundo). Conforme será observado abaixo, nem todos os vetores de foco podem ser utilizados em um processo de otimização de
72 / 125 largura de banda e de seleção de ladrilhos, que pode ser configurado para ser acionado somente quando houver uma necessidade de modificação de qualidade de ladrilho, por exemplo, atualização ou regressão. Quando o usuário para de reproduzir o ativo de vídeo, a solicitação/mensagem de terminação de sessão apropriada pode ser gerada para o servidor de entrega (Bloco 1718), após o que o fluxo de processo pode terminar (Bloco 1720).
[0094] Abaixo é apresentada uma lista de vetores de foco providos por um dispositivo de cliente em uma implementação exemplificativa, em uma janela de tempo configurável: 0,3203731,0,1810199,0,9298348 0,3201844,0,1811305,0,9298784 0,3201652,0,1811581,0,9298795 0,3201838,0,1811286,0,9298789 0,3201413,0,1811444,0,9298905 -0,02325181,-0,6079658,0,7936227 -0,01977778,-0,6028962,0,7975745 -0,01794935,-0,6024268,0,7979723 -0,01342396,-0,6015137,0,7987497 -0,01229509,-0,6009697,0,7991772 -0,0120346,-0,5997405,0,8001041 -0,01373066,-0,6005607,0,7994613 -0,01506477,-0,5993657,0,8003336 -0,01094525,-0,5975212,0,8017784 -0,009084027,-0,5964078,0,8026301 -0,008858532,-0,5953203,0,8034396 -0,00746176,-0,5926894,0,8053966 -0,007450074,-0,5930958,0,8050975 -0,01072073,-0,5926897,0,8053595 -0,01269324,-0,5921446,0,8057318 -0,01323339,-0,5883871,0,8084711 -0,01338883,-0,586729,0,8096727 -0,01282388,-0,5847392,0,81112 -0,01634659,-0,5839438,0,8116295 -0,02636183,-0,5821166,0,8126778 -0,02774585,-0,5801842,0,8140126 -0,0245801,-0,5784537,0,8153448 -0,02183155,-0,5797198,0,8145235 -0,02022467,-0,5769228,0,8165482 -0,9961338,0,007874234,0,0874956 -0,9719607,-0,02848928,0,2334113 -0,9855442,-0,0176625,0,1684957 -0,9825167,-0,0296559,0,1837972 -0,9824995,-0,03729712,0,182493 -0,982159,-0,03973407,0,1838061 -0,9689301,-0,02837855,0,2457015 -0,8717358,-0,01528142,0,4897378 -0,4374043,-0,01084228,0,8991996 0,2052692,0,0161775,0,9785718 0,6165089,-0,005071477,0,7873316 0,7826833,-0,01918624,0,6221244 0,778906,-0,0795427,0,6220759
73 / 125 0,7230754,-0,0673095,0,6874819 0,6768191,-0,06240646,0,7334994 0,5633906,-0,0747445,0,8228027
[0095] Em um formato não normalizado, os GVs exemplificativos em um sistema de coordenadas cartesianas podem incluir valores (x, y, z) como [3,5,1]; [10,4,1], etc. Em um sistema de coordenadas esféricas normalizadas, os valores de GV podem incluir conjuntos de ângulos como, por exemplo, (59,04°, 80,27 °), em que r = raio foi normalizado, θ = inclinação polar e φ = ângulo azimute. Independentemente do formato, enquanto a informação de vetor de foco pode ser provida ou, de outro modo, obtida em frequências configuráveis, períodos de tempo, etc., nem todos os vetores de foco podem precisar ser utilizados em um processo de determinação de peso de ladrilho. Por exemplo, os pesos de ladrilho podem ser determinados e utilizados apenas em resposta à ativação de uma seleção de ladrilho e processo de otimização de largura de banda, conforme observado anteriormente, no que diz respeito a certas modalidades. Por conseguinte, a informação de vetor de foco não usada pode ser descartada periodicamente em tais modalidades.
[0096] A Figura 17B é um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais, em relação a outros aspectos de um processo de otimização de vídeo imersivo exemplificativo 360° de acordo com uma modalidade exemplificativa da presente invenção. Em particular, o processo 1700B ilustra o processamento do lado de servidor, no que diz respeito à determinação de peso de ladrilho, com base na detecção de foco/ movimento e na utilização de pesos de ladrilho na otimização da largura de banda e seleção de ladrilho, a saber, em uma implementação exemplificativa. No Bloco 1742, um nó de apoio de vídeo recebe uma solicitação de usuário para iniciar uma sessão, após o que uma solicitação de configuração de sessão pode ser gerada para um sistema de otimização de vídeo 360° (Bloco 1744). Responsivo à obtenção de informação apropriada, por exemplo, ID de sessão, URL de manifesto de sessão, etc., o apoio provê a informação necessária para um dispositivo de cliente para começar o ativo de vídeo solicitado (Bloco
74 / 125
1746). Uma otimização de largura de banda e módulo de gerenciamento QoE com funcionalidade de seleção de ladrilhos (também conhecido como módulo de BWA-TS, em algumas modalidades) é operacional para obter, recuperar, ler e/ou processar o manifesto associado ao ativo de vídeo solicitado em todas as representações de codificação (Bloco 1748). No bloco 1750, o módulo BWA-TS também pode ser configurado para receber notificações de largura de banda dinâmica da infraestrutura de rede de entrega (por exemplo, DSLAM/CMTS em uma modalidade exemplificativa), em relação à sessão de vídeo de dispositivo de cliente.
No Bloco 1752, o módulo de BWA-TS é operativo para extrair ladrilhos específicos a partir dos fluxos ou representações de codificação de ladrilhos.
No Bloco 1754, o módulo de BWA-TS é operativo para receber entradas de controle (Blocos 1756, 1758), em relação à alocação de largura de banda para a sessão de vídeo imersiva de 360°, bem como qualquer informação de vetor de foco.
Conforme observado anteriormente, se a entrada de vetor de foco não estiver disponível inicialmente, um valor-padrão pode ser usado, que pode ser configurável com base no tipo de conteúdo, na política de provedor de conteúdo, no tipo de dispositivo de cliente e nas capacidades, etc.
Responsivo às entradas de controle, a funcionalidade de BWA-TS é operativa para gerar ou indicar um conjunto selecionado de ladrilhos com base na largura de banda e nos pesos de ladrilho (Bloco 1754). Uma combinação/ um fatiamento de ladrilho e funcionalidade de geração de fluxo (também denominado módulo de TC-SG em algumas modalidades) é operativo para receber o conjunto de ladrilhos selecionado (Bloco 1760), que pode ser concatenado, conforme apresentado no presente documento cima.
Assim, em uma implementação, um cabeçalho de fatia de vídeo é concatenado com blocos selecionados e adequadamente modificado para incluir deslocamentos de ponto de entrada aplicáveis (Bloco 1762). Para fins de costura de ladrilhos, certas operações podem ser realizadas em um nível de unidade de acesso de Camada de Abstração de Rede (NAL),
75 / 125 em que os dados de vídeo codificados são organizados em várias unidades de NAL, em uma hierarquia de ladrilhos. Uma unidade de acesso de NAL, que é efetivamente um pacote que contém um número inteiro de bytes, pode ser tratada como uma subestrutura lógica de um fluxo elementar formado por fluxos binários de áudio/vídeo e comprimido para facilitar o acesso à manipulação de fluxo de bits. Em uma implementação, a mesma é a menor organização de dados que é possível ser atribuída em um sistema de sincronização que envolve compressão de camada, em que as operações de decodificação MPEG podem ser feitas, levando em conta que essa consistência entre a informação paramétrica de vídeo (por exemplo, redundância espacial/temporal, etc. ) é mantida.
[0097] Continuando em referência à Figura 17B, no Bloco 1764, o módulo TC-SG é provido com um segmento de dados para um quadro/imagem que compreende ladrilhos combinados, que podem ser conteinerizados em um formato de contêiner adequado, por exemplo, contêiner de formato de Fluxo de Transporte MPEG-2 (M2TS; também denominado MP2TS, às vezes), formato de contêiner de parte 14 de MPEG 4 (MP 4) ou formato de contêiner de Formato de Arquivo de Mídia de Base ISO (ISOBMFF), e similares (Bloco 1766). Um servidor de entrega pode ser configurado para entregar a imagem/quadro multiplexado ao dispositivo de cliente através de uma rede adequada (Bloco 1768). Conforme apresentado na modalidade da Figura 17B, as operações que compreendem BWA-TS, TC-SG e serviço de entrega do processo 1700B podem continuar a ocorrer até que o soquete de comunicações de entrega seja fechado ou cronometrado (Bloco 1770). Depois disso, a sessão de vídeo 360° com o dispositivo de cliente pode ser encerrada (Bloco 1772).
[0098] Em uma modalidade exemplificativa, a alocação de largura de banda para uma sessão de vídeo imersiva 360° exemplificativa pode ser de 19 Mb/s. O vídeo pode ser codificado com vídeo 360 completo com uso de uma
76 / 125 grade de 128 blocos, que cobrem taxas de bits que variam de uma alta de 105,6 Mb/s, com um valor de QP de 16, a uma baixa de 7 Mb/s, com um valor de QP de 30. Os ladrilhos de maior qualidade são direcionados ao campo de visão direto de usuário. A qualidade dos ladrilhos se degrada (isto é, os valores de QP aumentam) proporcionalmente à distância do campo de visão direto de usuário. A funcionalidade do BWA-TS garante que a largura de banda geral da sessão de vídeo 360 não se exceda. A seleção de ladrilho é baseada na taxa de bits de cada ladrilho. Em um exemplo, quando o usuário está olhando para um céu nublado em uma cena, a maioria dos ladrilhos providos nessa janela de visualização são de qualidade relativamente alta. O conteúdo dos ladrilhos, ao olhar para cima em tal cenário, é relativamente estático (isto é, muito pouco movimento) e, portanto, não são dedicados tantos bits às áreas de baixo movimento, pelo codificador. Isso resulta na capacidade de mostrar ladrilhos a partir da codificação de vídeo da mais alta qualidade, com um valor de QP de 16. Quando a alocação de largura de banda para o vídeo 360 é reduzida (por exemplo, de 19 Mb/s para 7 Mb/s), a qualidade dos ladrilhos também é reduzida. No exemplo acima, os ladrilhos da mais alta qualidade no campo de visão direto podem ter uma taxa de bits de 22,4 Mb/s, com um valor de QP de 22.
[0099] A Figura 18A ilustra um quadro ponderado de ladrilho 1800A que compreende a matriz de ladrilhos de 16 por 8, em que cada ladrilho é atribuído um peso baseado um vetor de foco de {0,783, 0,396, -0,481} provido por um dispositivo de cliente, em uma implementação exemplificativa. O número de referência 1802 se refere a uma janela de visualização associada ao foco, em que os ladrilhos recebem valores mais elevados, de acordo com os preceitos da presente invenção. Uma pessoa versada na técnica reconhecerá que, à medida que a janela de visualização muda, a região de ladrilhos com valores mais altos também muda concomitantemente. Em um espaço de exibição de vídeo imersivo de 360°
77 / 125 baseado em projeção equirretangular, a região de ladrilhos com valores mais altos, por isso, também se move ao redor, por exemplo, para as regiões polares, se o usuário estiver focando diretamente acima ou abaixo, ou para o equador, se o usuário estiver focando diretamente no meio de uma imagem. A título de ilustração, a Figura 18C retrata uma exibição imersiva 3D ou um espaço de visualização 1800C, em que os ladrilhos da mais alta qualidade estão perto da região do Polo Norte 1852, quando o usuário está focando diretamente acima, com os ladrilhos de qualidade progressivamente mais baixos, formando a porção restante do espaço imersivo, em que os ladrilhos de menor qualidade estão localizados perto da região do Polo Sul 1854. Da mesma forma, a Figura 18D descreve uma exibição imersiva 3D ou um espaço de visualização 1800D, em que os ladrilhos de maior qualidade estão perto da região do Polo Sul 1854, quando o usuário está focando diretamente abaixo, com os ladrilhos de qualidade progressivamente mais baixos, que se estendem em direção ao Polo Norte 1852.
[00100] A Figura 18B ilustra um armazenamento temporário de quadro de dispositivo 1800B em uma modalidade exemplificativa. Três quadros consecutivos 1822A a 1822C, no armazenamento temporário, são ilustrados, cada um com um cabeçalho de P-fatia, mas compreendendo diferentes conjuntos de ladrilhos em uma janela de visualização 1820, com base na visualização do fone de ouvido. Considerando que um quadro atual 1822A tem todos os I-ladrilhos em sua janela de visualização 1820, os seguintes quadros são mostrados com janelas de visualização 1820 que têm P-ladrilhos.
[00101] Conforme observado no presente documento acima, um aspecto da funcionalidade de um módulo de BWA-TS é garantir que a largura de banda geral de uma sessão de vídeo imersiva de 360° exemplificativa não exceda uma alocação designada de largura de banda (por exemplo, com base em políticas de operadores de rede, políticas de provedor de conteúdo, políticas de assinante/ dispositivos, ou qualquer combinação dos mesmos),
78 / 125 enquanto ainda maximiza a qualidade e a experiência de visualização. A seleção de ladrilho otimizada com qualidades de taxa de bits adequadas pode, por isso, ser configurada responsiva ao campo de visão de um usuário, alocação/limitação de largura de banda, taxas de bits por ladrilho, bem como um modelo de armazenamento temporário de transmissão, de modo que os ladrilhos na linha direta de visão tenham a melhor qualidade possível, com qualidades decrescentes, afastando-se ainda mais do foco direto.
[00102] A Figura 19 é um fluxograma ilustrativo de vários blocos, etapas e/ou atos de um processo de BWA-TS 1900 que podem ser (re)combinados em um ou mais arranjos, com ou sem blocos, etapas e/ou atos de fluxogramas adicionais da presente descrição, de acordo com uma ou mais modalidades da presente invenção. Conforme apresentado no Bloco 1902, o processo 1900 pode começar ou ser responsivo à recepção, recuperação ou obtenção de um ou mais arquivos de manifesto de fluxo providos por um empacotador de ativos de vídeo 360° (por exemplo, empacotador 214, na Figura 2), em relação a uma pluralidade de fluxos codificados por ladrilho que podem ser gerados de acordo com um esquema de BIE ou PE. Em geral, os arquivos de manifesto podem incluir informação ou dados que descrevem várias características de agrupamentos de ladrilho por quadro, o que inclui URLs de localização, taxas de bits, tipo de fatia/bloco, tipo de mídia, etc., para cada fluxo de bits codificado por ladrilho correspondente a uma representação específica dentre uma pluralidade de representações de taxa de bits de um fluxo de entrada de mídia. Em um arranjo, os manifestos podem ser organizados de forma hierárquica, isto é, com certos manifestos para descrever fluxos de bits codificados em geral, enquanto outros manifestos são providos para descrever ladrilhos individuais em um fluxo. Conforme apresentado passim, no presente pedido de patente, cada fluxo é uma representação de taxa de bits específica da mídia de fonte, com uma qualidade de vídeo, por exemplo, relacionada ou controlada por um QP correspondente
79 / 125 usado para a representação de taxa de bits, e/ou taxa de bits direcionada, ou outro indício, em que cada quadro de um fluxo de bits codificado por ladrilho compreende um arranjo de ladrilhos organizados em pelo menos uma fatia por quadro, em que uma pluralidade de quadros forma uma estrutura de GOP do fluxo de bits codificado por ladrilho.
No Bloco 1904, o processo 1900 continua a receber, recuperar ou obter informação de vetor de foco, e responsivo ao mesmo, determina pesos de ladrilhos correspondentes a um arranjo de ladrilhos que formam um quadro, por exemplo, com base no vetor de foco ou por configurações de padrão.
No Bloco 1906, o processo 1900 passa a receber, recuperar ou obter pesos variantes correspondentes à pluralidade de representações de taxa de bits ou fluxos de bits codificados por ladrilho associados do fluxo de entrada de mídia.
Em um arranjo, os pesos variantes podem ser definidos como uma propriedade baseada em políticas dos fluxos em que, às representações de fluxo de maior qualidade (isto é, variantes), são concedidas uma prioridade ou um peso maior, que pode ser usado em cálculos adicionais que envolvam seleções de empacotamento de mochila com base em peso.
No Bloco 1908, é feita uma determinação, com relação a um valor métrico de adequação, em função de um peso de variante e um peso de ladrilho para cada combinação de ladrilho/tupla de GOP de um conjunto de quadros, através de uma estrutura de GOP, para cada um dos fluxos de bits codificados por ladrilho.
No Bloco 1910, o processo 1900 continua até a seleção de ladrilhos com diferentes qualidades de taxa de bits a partir de fluxos de bits codificados por ladrilho correspondentes, para montar um quadro, que responde, pelo menos em parte, aos valores métricos de adequação, em que as qualidades de taxa de bits dos ladrilhos selecionados são otimizadas para satisfazer um modelo de armazenamento temporário de transmissão, a fim de transmitir um fluxo de saída de vídeo multiplexado.
Depois disso, uma lista dos ladrilhos selecionados pode ser provida a um costurador ladrilho para gerar um quadro que contém os ladrilhos
80 / 125 selecionados como parte do fluxo de saída de vídeo multiplexado (Bloco 1912). Em que a costura de ladrilho é realizada em uma modalidade de lado de dispositivo, os ladrilhos selecionados podem ser providos para o dispositivo de cliente em uma modalidade exemplificativa, conforme observado em outro lugar no presente pedido de patente.
[00103] Um manifesto de nível de fluxo exemplificativo, para fins de uma modalidade da presente invenção, é ilustrado abaixo: <? xml version=“1.0”? > <TiledMediaDefinition> <TileGroup> <Representation tiles=“128” columns=“16” rows=“8” height=“2160” id=“1” mimeType=“video/H265” width=“3840” QP=“16”> <URL>Race360-105Mbs.hevc </URL> </Representation> <Representation tiles=“128” columns=“16” rows=“8” height=“2160” id=“2” mimeType=“video/H265” width=“3840” QP=“18”> <URL>Race360-64_6MBS.hevc </URL> </Representation> <Representation tiles=“128” columns=“16” rows=“8” height=“2160” id=“3” mimeType=“video/H265” width=“3840” QP=“20”> <URL>Race360-39mbs.hevc </URL> </Representation> <Representation tiles=“128” columns=“16” rows=“8” height=“2160” id=“4” mimeType=“video/H265” width=“3840” QP=“22”> <URL>Race360-24_4MBS.hevc </URL> </Representation> <Representation tiles=“128” columns=“16” rows=“8” height=“2160” id=“5” mimeType=“video/H265” width=“3840” QP=“24”> <URL>Race360-16_2MBS.hevc </URL> </Representation> <Representation tiles=“128” columns=“16” rows=“8” height=“2160” id=“6” mimeType=“video/H265” width=“3840” QP=“26”> <URL>Race360-11_4mbs.hevc </URL> </Representation> <Representation tiles=“128” columns=“16” rows=“8” height=“2160” id=“7” mimeType=“video/H265” width=“3840” QP=“28”> <URL>Race360-8_6MBS.hevc </URL> </Representation> <Representation tiles=“128” columns=“16” rows=“8” height=“2160” id=“8” mimeType=“video/H265” width=“3840” QP=“30”> <URL>Race360-7mbs.hevc </URL> </Representation> </TileGroup> </TiledMediaDefinition>
[00104] Um manifesto de nível inferior exemplificativo baseado em DASH-MPD, para fins de uma modalidade da presente invenção que envolve fluxos codificados de várias fases, é ilustrado abaixo: <? xml version=“1.0” Encoding=“UTF-8”? > - <MPD xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns=“urn:mpeg:dash:schema:mpd:2011”
81 / 125 xsi:schemaLocation=“urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd” type=“static” mediaPresentationDuration=“PT654S” minBufferTime=“PT2S” profiles=“urn:mpeg:dash:profile:isoff-on-demand:2011”> - <Period tag=“batman-plain”> - <AdaptationSet mimeType=“audio/mpegts”> - <Representation> <BaseURL>batman-audio.com.br </BaseURL> </Representation> </AdaptationSet> - <AdaptationSet mimeType=“video/mp4” framePeriod=“1/24”> - <Representation label=“batman qp 16 @ 38.0” weight=“37.99” graphNote=“16”> <BaseURL phase=“0” label=“batman phase 0 qp 16”>Arquivo batman-phase-0- qp16.mp4 </BaseURL> <BaseURL phase=“1” label=“batman phase 1 qp 16”>batman-phase-1- qp16.mp4</BaseURL> <BaseURL phase=“2” label=“batman phase 2 qp 16”>batman-phase-2- qp16.mp4</BaseURL> <BaseURL phase=“3” label=“batman phase 3 qp 16”>batman-phase-3- qp16.mp4</BaseURL> <BaseURL phase=“4” label=“batman phase 4 qp 16”>batman-phase-4- qp16.mp4</BaseURL> <BaseURL phase=“5” label=“batman phase 5 qp 16”>batman-phase-5- qp16.mp4</BaseURL> <BaseURL phase=“6” label=“batman phase 6 qp 16”>batman-phase-6- qp16.mp4</BaseURL> <BaseURL phase=“7” label=“batman phase 7 qp 16”>batman-phase-7- qp16.mp4</BaseURL> <BaseURL phase=“8” label=“batman phase 8 qp 16”>batman-phase-8- qp16.mp4</BaseURL> <BaseURL phase=“9” label=“batman phase 9 qp 16”>batman-phase-9- qp16.mp4</BaseURL> <BaseURL phase=“10” label=“batman phase 10 qp 16”>batman-phase-10- qp16.mp4</BaseURL> <BaseURL phase=“11” label=“batman phase 11 qp 16”>batman-phase-11- qp16.mp4</BaseURL> <BaseURL phase=“12” label=“batman phase 12 qp 16”>batman-phase-12- qp16.mp4</BaseURL> <BaseURL phase=“13” label=“batman phase 13 qp 16”>batman-phase-13- qp16.mp4</BaseURL> <BaseURL phase=“14” label=“batman phase 14 qp 16”>batman-phase-14- qp16.mp4</BaseURL> </Representation> _ <Representation label=“batman qp 18 @ 28.9” weight=“28.88” graphNote=“18”> <BaseURL phase=“0” label=“batman phase 0 qp 18”>batman-phase-0- qp18.mp4</BaseURL> <BaseURL phase=“1” label=“batman phase 1 qp 18”>batman-phase-1- qp18.mp4</BaseURL> <BaseURL phase=“2” label=“batman phase 2 qp 18”>batman-phase-2- qp18.mp4</BaseURL> <BaseURL phase=“3” label=“batman phase 3 qp 18”>batman-phase-3- qp18.mp4</BaseURL> <BaseURL phase=“4” label=“batman phase 4 qp 18”>batman-phase-4- qp18.mp4</BaseURL> <BaseURL phase=“5” label=“batman phase 5 qp 18”>batman-phase-5- qp18.mp4</BaseURL> <BaseURL phase=“6” label=“batman phase 6 qp 18”>batman-phase-6- qp18.mp4</BaseURL> <BaseURL phase=“7” label=“batman phase 7 qp 18”>batman-phase-7- qp18.mp4</BaseURL>
82 / 125 <BaseURL phase=“8” label=“batman phase 8 qp 18”>batman-phase-8- qp18.mp4</BaseURL> <BaseURL phase=“9” label=“batman phase 9 qp 18”>batman-phase-9- qp18.mp4</BaseURL> <BaseURL phase=“10” label=“batman phase 10 qp 18”>batman-phase-10- qp18.mp4</BaseURL> <BaseURL phase=“11” label=“batman phase 11 qp 18”>batman-phase-11- qp18.mp4</BaseURL> <BaseURL phase=“12” label=“batman phase 12 qp 18”>batman-phase-12- qp18.mp4</BaseURL> <BaseURL phase=“13” label=“batman phase 13 qp 18”>batman-phase-13- qp18.mp4</BaseURL> <BaseURL phase=“14” label=“batman phase 14 qp 18”>batman-phase-14- qp18.mp4</BaseURL> </Representation> … </Representation> </AdaptationSet> </Period> </MPD>
[00105] A Figura 20 é um fluxograma ilustrativo de blocos, etapas e/ou atos adicionais, em relação a um processo de seleção de ladrilhos e de otimização de largura de banda exemplificativo, de acordo com uma modalidade da presente invenção. Em um arranjo, uma otimização combinatória de mochila pode ser usada para seleção e otimização de ladrilhos, com base nas entradas que compreendem vetores de foco, alocação/limitação de largura de banda, pesos de fluxo, etc., conforme apontado anteriormente. No Bloco 2002, o processo 2000 em execução, em um servidor ou nó associado, com otimização de vídeo se inicia ou é responsivo à recepção de uma solicitação para uma sessão de vídeo imersiva de 360°. No Bloco 2004, o processo 2000 continua a recuperar ou, de outro modo, a obter definições de manifesto de fluxo de ladrilhos, de modo a ter capacidade de determinar todos os aspectos de características de vídeo, com base na inspeção e processamento em nível profundo, a fim de extrair os ladrilhos necessários, o que pode ser efetuado por meio de análise dos manifestos de fluxo (Bloco 2006). Um modelo de grade é determinado para cada fluxo, por exemplo, colunas e linhas por quadro (Bloco 2008). Em uma variação exemplificativa, o processo 2000 pode se registrar com um nó de gerenciamento e de orquestração de rede para receber mensagens de notificação relativas à largura de banda alocada/determinada para a sessão
83 / 125 solicitada (Bloco 2010). Se uma alocação de largura de banda for recebida (Bloco 2012), uma determinação adicional pode ser feita, se a informação de vetor de foco for recebida (Bloco 2014). Depois disso, os pesos ladrilho são determinados com base na informação de vetor de foco (Bloco 2016). A seleção de ladrilhos pode ser realizada como um processo de otimização de mochila responsivo à notificação de alocação de largura de banda disponível (Bloco 2018). No Bloco 2020, os ladrilhos selecionados são providos a um processo de costura de ladrilho (em execução no servidor ou no dispositivo de cliente).
[00106] As Figuras 21A e 21B são fluxogramas ilustrativos de blocos, etapas e/ou atos adicionais, em relação a outros aspectos de um processo de seleção de ladrilhos e de otimização de largura de banda, de acordo com uma modalidade exemplificativa da presente invenção. Em particular, o processo 2100A, mostrado na Figura 21A, exemplifica um processo de otimização de mochila relativamente mais simples, que pode ser computacionalmente mais dispendioso, o que pode resultar em cerca de 1 segundo para o fatiamento de ladrilhos. No Bloco 2102, os ladrilhos são inicializados com uma qualidade mais baixa. Uma métrica de adequação pode ser determinada como uma razão entre um peso variante de fluxo e um peso de ladrilho, que pode ser provido em relação a todas as tuplas <tile, GOP> ou combinações (Bloco 2104). É feita uma determinação, no que diz respeito à modernização da tupla <tile, GOP> que tem a menor adequação (isto é, a maioria das inadequações), conforme apresentado no bloco 2108. É feita uma determinação da possibilidade de um modelo de armazenamento temporário de transmissão ser violado ou satisfeito (Bloco 2110). Se o modelo de armazenamento temporário não for satisfeito (isto é, violado), essa combinação de ladrilho/GOP pode ser desqualificada para atualizações, e o fluxo de processo volta a considerar a próxima combinação de ladrilho/GOP para atualização, conforme apresentado no Bloco 2112. Se o modelo de armazenamento
84 / 125 temporário não for violado, a combinação Ladrilho/GOP será atualizada em qualidade (Bloco 2114). O processo anterior pode ser realizado iterativamente, até que não haja combinações de ladrilho/GOP não desqualificadas de menos do que a qualidade máxima (Bloco 2116). Se não houver nenhuma, o processo 2100A é concluído enviando-se ladrilhos selecionados para um processo de geração de fluxo de multiplexação de ladrilho, conforme apresentado no Bloco 2118.
[00107] Voltando à Figura 21B, é mostrado um processo de otimização e seleção de ladrilho com otimização de desempenho 2100B, o que, em algumas implementações, pode resultar em uma seção de ladrilho mais rápida, resultando em tempos de fatiamento de ladrilhos em torno de 10 milissegundos ou mais. De um modo geral, um fator de penalidade pode ser imposto, em relação às atualizações de i-ladrilho (que são mais dispendiosas do que as atualizações de P-ladrilho, à medida que os i-ladrilhos empacotam mais dados) e uma sequência de atualização “naïve” pode preceder inicialmente, em que as atualizações de ladrilho não são verificadas, em relação ao modelo de armazenamento temporário de transmissão, independentemente de se as atualizações estão em conformidade com uma métrica de adequação. Além disso, como os ladrilhos na ROI/janela de visualização são atualizados primeiro, e o restante dos ladrilhos de um quadro é atualizado posteriormente, uma modalidade exemplificativa pode fatorar em uma penalidade com base em onde a posição de ladrilho está. Por exemplo, se a posição de ladrilho estiver próxima à do vetor de foco, a penalidade associada a essa posição pode ser menor. Além disso, a penalidade também pode estar relacionada com a posição de ladrilho como um equilíbrio entre a qualidade/tipo do ladrilho a ser atualizado versus onde o mesmo está no quadro. Os efeitos de um fator de penalidade ou combinação podem ser incorporados ao processo de otimização, modulando adequadamente a métrica de adequação usada na sequência de atualização naïve em uma
85 / 125 modalidade exemplificativa.
[00108] Da mesma maneira que a modalidade da Figura 21A, os ladrilhos de todas as codificações de vídeo são inicializados com uma qualidade mais baixa (Bloco 2132). Uma métrica de adequação pode ser determinada como uma razão entre um peso de variante de fluxo e um peso de ladrilho, multiplicado por um fator de penalidade, que pode ser provido em relação a todas as tuplas <tile, GOP> ou combinações (Bloco 2136). No Bloco 2134, uma estrutura de pilha (por exemplo, como um grande agrupamento de memória) pode ser configurada para conter valores de adequação para todas as tuplas <tile, GOP>. No Bloco 2138, um ladrilho menos adequado é puxado da pilha e gravado em uma sequência ou um processo de atualização naïve. Se a qualidade do ladrilho puder ser mais atualizada (Bloco 2140), a mesma será executada, e uma métrica de adequação para o ladrilho atualizada será determinada (Bloco 2142). O processo anterior pode ser executado em uma repetição iterativa, até que a pilha esteja vazia e todos os ladrilhos que podem ser atualizados tenham sido atualizados (Bloco 2144). Uma sequência de busca binária pode ser efetivada na sequência naïve para encontrar um último estado válido que obedeça a um determinado modelo de armazenamento temporário de transmissão (Bloco 2146), que pode ser usado como um estado de ladrilho inicial (Bloco 2148). Uma nova pilha de atualização pode ser configurada para conter os estados de ladrilho/GOP (Bloco 2150). Uma combinação de ladrilho/GOP menos adequada é extraída da pilha (Bloco 2152) e validada, em relação ao modelo de armazenamento temporário de transmissão (Bloco 2154). Se o ladrilho/GOP puxado não puder satisfazer o modelo de armazenamento temporário, o mesmo será desqualificado a partir de futuras atualizações (Bloco 2158). Caso contrário, uma determinação é feita, se o mesmo puder ser mais atualizado (Bloco 2156). Em caso afirmativo, um valor de adequação para a combinação ladrilho/GOP atualizado, que satisfaça o modelo de
86 / 125 armazenamento temporário de transmissão, é determinado (Bloco 2160). As operações anteriores são iterativamente realizadas, até que a nova pilha de atualização esteja vazia, conforme apresentado no Bloco 2162. Em caso afirmativo, o processo 2100B é concluído enviando-se ladrilhos selecionados para um processo de geração de fluxo e multiplexação de ladrilho, conforme apresentado no Bloco 2164.
[00109] Os processos de otimização exemplificativos, apresentados no presente documento, facilitam vantajosamente a atualização gradual de quadros, quando uma janela de exibição ou largura de banda é alterada, o que permite, assim, a capacidade de minimizar a latência na qualidade crescente, com base no campo de visão de um usuário e, ao mesmo tempo, não sobrecarregar a largura de banda. Tipicamente, ao tentar realizar as alterações de qualidade em todos os ladrilhos ao mesmo tempo, vários problemas podem ser encontrados, devido ao resultado da alteração dos P-ladrilhos para I- ladrilhos ao mesmo tempo, que são dispendiosos, em termos de taxa de bits codificados. Por outro lado, realizar essa substituição por um armazenamento temporário mínimo de cliente pode provocar muito atraso na entrega das I- fatias/quadros.
[00110] Em uma modalidade exemplificativa que emprega atualização gradual, os fluxos de vídeo não têm I-quadros (exceto para o I-quadro inicial ou quaisquer outros quadros especiais, como os quadros de Atualização de Decodificação Instantânea, ou de IDR). Em vez disso, um fluxo de vídeo tem I-blocos ou I-ladrilhos que podem ser distribuídos ao longo de uma sequência de tempo, de modo que qualquer ponto específico na tela obtenha um I-bloco em intervalos regulares, por exemplo, por meio de fluxos codificados por fase, conforme descrito em detalhes nas seções anteriores do presente pedido de patente. Assim, em tal cenário, não há quadro em que todos os pixels sejam atualizados por I-blocos. Ao realizar a otimização de atualização gradual, as modalidades exemplificativas da presente invenção podem ser
87 / 125 vantajosamente configuradas para nivelar os tamanhos de quadro (isto é, em termos da quantidade de dados de imagem codificados) e reduzir as consequências de largura de banda de injetar um I-quadro para atualizar a qualidade dos ladrilhos que entram no FoV ou na janela de visualização. Considerando que um esquema de PE pode permitir atualizações antecipadas seletivas de um ladrilho em uma sequência de tempo/quadro, o mesmo pode impor certo custo de largura de banda (por exemplo, devido ao fato de ter vários I-ladrilhos em um quadro, o que pode provocar um aumento na largura de banda necessária para esse intervalo de tempo correspondente ao transporte desse quadro de vídeo). No entanto, uma modalidade exemplificativa que envolve PE pode ser configurada de modo que a vantagem de ter um nível mais estável de bytes/quadro exceda tais custos.
[00111] Ao longo do tempo em uma sequência de quadros, uma modalidade baseada em PE pode permitir a manipulação das fases dos vários ladrilhos ao redor, até que os I-ladrilhos sejam distribuídos uniformemente na hora novamente. Essa capacidade pode ser configurada para ser dependente do usuário e/ou conteúdo, em relação à quando essa redistribuição ocorre, pois exige que o usuário mantenha seu campo de visão estável por tempo suficiente para que ocorra. A fim de escolher ladrilhos para preencher a largura de banda, uma modalidade exemplificativa pode envolver a modelagem dos tamanhos de bytes de quadros estirando-se 3 GOPs para o futuro (essa escolha é arbitrária) e realizando-se as atualizações iniciais hipotéticas (HER) com base no modelo de armazenamento temporário (por exemplo, com 3 GOPs em um cenário de olhar adiante). Com base nas modalidades apresentadas nas Figuras 21A e 21B, pode-se observar que tal processo começa escolhendo-se o fluxo de qualidade mínima para todos os ladrilhos e, em seguida, considera cada GOP de ladrilho, tanto para o quadro atual quanto para quadros futuros, e avalia se a atualização que GOP irá violar quaisquer restrições de largura de banda (que são uma combinação de
88 / 125 considerações de tamanhos de quadros individuais e de armazenamento temporário). Se for considerada a atualização de uma combinação atual de ladrilho e GOP (em oposição à futura) acima da qualidade de um I-quadro já entregue, uma modalidade da presente invenção pode realinhar temporalmente esse ladrilho para começar com um I-quadro (que pode afetar o restante dos quadros em uma janela de fatiamento). Uma vez obtida a lista de possíveis atualizações, as mesmas podem ser ponderadas de acordo com a qualidade e a posição do ladrilho no FoV (para que os ladrilhos próximos ao centro de visão sejam favorecidos para atualizações). Em uma implementação, a etapa de atualização anterior pode ser repetida até que as restrições de armazenamento temporário impossibilitem mais atualizações.
[00112] Deve ser reconhecido que um processo de atualização exemplificativo pode se mover no tempo e no espaço, dependendo da modelagem de GOP de olhar adiante. Em um arranjo, cada ladrilho pode ter um horizonte de 3 a 4 GOPs, que podem, cada um, ser atualizados à medida que o processo é iterado, em que futuras atualizações de GOP são para potenciais melhorias futuras para atualizações antecipadas que cubram 3 a 4 GOPs no futuro.
[00113] Ao considerar uma implementação baseada em HERs, algumas métricas potenciais podem ser identificadas e/ou empregadas para obter uma troca adequada: (i) momento vazio, (ii) nível máximo de armazenamento temporário e (iii) nível de armazenamento temporário final, entre outros. Em uma implementação exemplificativa, o nível máximo de armazenamento temporário pode ser ponderado como um critério principal para as atualizações de HER, em que a largura de banda adequada pode ser liberada até permitir atualizações de qualidade de ladrilho-GOP.
[00114] Conforme apresentado na modalidade da Figura 21B, uma vez que o fim é alcançado nas iterações de atualização, uma fatia/um quadro pode ser multiplexado com uso de um conjunto de ladrilhos, em que o tamanho do
89 / 125 byte da fatia/fatia multiplexada pode ser calculado, e seu efeito sobre o armazenamento temporário de transmissão pode ser registrado, de modo que a próxima fatia/quadro seja restrita com precisão, de acordo com o modelo de armazenamento temporário de transmissão fornecido. Quando, na próxima vez, um quadro for fatiado (por exemplo, o foco de usuário tiver mudado, fazendo com que sejam feitos ajustes), o processo de otimização da mochila poderá ser repetido, em que um quadro extra é modelado, em relação à operação anterior, que pode validar e/ou ajustar o processo de mochila/otimização.
[00115] As pessoas versadas na técnica reconhecerão que uma estrutura de memória de pilha empregada na modalidade da Figura 21B é particularmente vantajosa para manter o controle de ladrilhos atualizáveis, em virtude de o recálculo da pontuação das atualizações de Ladrilho-GOP, em cada iteração, poder ser evitado. Conforme observado anteriormente, uma métrica de adequação é definida para marcar ladrilhos, a qual é usada na escolha de qual ladrilho atualizar, em que os parâmetros como variant_weight, tile_weight e a penalidade são providos em uma relação matemática adequada para capturar um cenário de atualização desejável. Como tal, o parâmetro variant_weight pode ser definido como uma propriedade de um fluxo codificado, e variantes de fluxo de qualidade superior (com QPs mais baixos) têm um variant_weight mais alto. Alguns variant_weights exemplificativos são {1/QP}, {100-QP}, ou um valor definido nos exemplos de manifesto apresentados acima, ou podem ser a taxa de bits de todo o fluxo. O tile_weight também pode ser provido, em função da posição do ladrilho, em relação ao foco, conforme apresentado acima. Em geral, aos ladrilhos no FoV direto do usuário ou na ROI/janela de visualização, podem ser concedidos tile_weights mais altos. A formulação de métrica de adequação exemplificativa apresentada nas modalidades das Figuras 21A/B é configurada de modo que, à medida que a qualidade do fluxo
90 / 125 aumenta, o valor de adequação também aumente, e os ladrilhos mais próximos ao vetor foco tenham menor adequação do que os ladrilhos da mesma qualidade mais distantes do vetor de foco (que configura o processo de otimização para atualizar os ladrilhos mais próximos do vetor de foco, antes de atualizar os ladrilhos distantes do vetor de foco).
[00116] Além disso, as modalidades exemplificativas também incluem um fator de penalidade na pontuação dos ladrilhos, para um processo de atualização, conforme observado acima. Em um arranjo, uma penalidade pode ser imposta quando uma atualização precoce com um i-ladrilho é necessária, em que um ladrilho no GOP atual deve ser atualizado além da qualidade que tinha na fatia/no quadro anterior. Tal penalidade tem o efeito de aumentar a adequação desse ladrilho, o que atrasa a atualização em relação a outros ladrilhos na pilha. Isso permite atualizações de ladrilho, quando o foco tiver mudado o suficiente, mas adia atualizações precoces em casos marginais.
[00117] Será evidente para uma pessoa versada na técnica que as formulações adicionais/alternativas também podem ser usadas para pontuar as atualizações de ladrilhos em algumas variações, dentro do escopo da presente invenção.
[00118] A Figura 22 é ilustrativa de um processo de modelo de armazenamento temporário de transmissão para uso em uma seleção de ladrilhos e arranjo de otimização de largura de banda, de acordo com uma modalidade exemplificativa da presente invenção. Em geral, um modelo de armazenamento temporário de transmissão pode ser configurado para estar junto com uma taxa de quadros que depende da implementação (por exemplo, 30 fps, 60 fps, etc.), em que uma variação temporal de como os dados são adicionados e transmitidos para fora de um armazenamento temporário pode ser parametrizada para determinar se e quando pode haver uma sobrecarga (isto é, uma violação). No modelo de armazenamento temporário de transmissão exemplificativo 2200, b0está começando o nível de
91 / 125 armazenamento temporário, bi é o tamanho do armazenamento temporário, antes de adicionar uma unidade de acesso ou unidade de NAL, ni é o tamanho da unidade de acesso/NAL e ai é o tamanho do armazenamento temporário, após a adição de uma unidade de acesso/NAL, em que ai= bi+ ni, para i ≥ 1. Ao presumir uma taxa de transmissão de r e Δt = 1/taxa de quadros, obtém-se a seguinte relação:
[00119] Um parâmetro de buffer_size pode ser definido da seguinte forma:
[00120] De acordo com o modelo anterior, se Max (ai)> buffer_size, o mesmo pode ser indicado como uma condição de sobrecarga de armazenamento temporário. Assim, como ni diferentes estão sendo adicionados de acordo com um processo de atualização de ladrilho, o nível de ponto final de armazenamento temporário pode ser verificado, em relação a um tamanho de armazenamento temporário calculado para garantir que nenhuma violação de armazenamento temporário seja engendrada no processo de atualização.
[00121] Voltando à Figura 23, é representado na mesma um arranjo 2300, em que um dispositivo de UE de cliente pode ser configurado para executar certos aspectos da otimização de vídeo imersivo de 360° para fins de uma modalidade da presente descrição de patente. O usuário 2310 que tem um dispositivo de exibição 360° adequado é operativo com um dispositivo de UE 2302 conectado, que inclui um módulo de cliente de otimização de vídeo 2306 e um reprodutor conectado 2308, dispostos para gerar sinais de reprodução adequados para o dispositivo de exibição. Em uma modalidade, o reprodutor 2308 pode compreender um leitor de HEVC ou AV1 configurado com decodificador de vídeo apropriado 2314, renderizador de exibição 2316, decodificador de áudio 2318 e renderizador de som 2320. Da mesma maneira
92 / 125 que em uma modalidade exemplificativa apresentada no presente documento acima, um módulo de rastreamento de foco 2312 pode ser provido com o dispositivo de UE 2302 conectado, que pode ser configurado para consumir conteúdo de vídeo imersivo de 360° entregue pela Internet 2304, em um ambiente de transmissão contínua de ABR.
[00122] O módulo de otimização do cliente 2306 inclui preferencialmente um módulo de interface de vídeo imersivo de 360° 2321, que compreende um analisador de manifesto 2328, um ladrilho de vídeo e uma ferramenta de transferência por download de fluxo de áudio 2330, um módulo de estimativa de largura de banda 2326 e um módulo de seleção de ladrilhos 2324, que pode ser configurado para operar de maneira similar à das modalidades apresentadas no presente documento acima, com modificações adequadas centradas no dispositivo, mutatis mutandis. Uma solicitação de ladrilho/áudio HEVC 2344 pode ser gerada para uma localização de rede, por exemplo, uma rede de provedor de conteúdo ou um armazenamento baseado em nuvem, através da Internet 2304, com base em um manifesto 2340, em relação a um conteúdo específico. Os ladrilhos de vídeo solicitados e os dados de áudio podem ser recebidos através do caminho 2342. A informação de vetor de foco provida ao módulo de interface de vídeo imersivo 2321 do módulo de rastreamento de foco 2312 (por exemplo, por meio do caminho 2322) pode ser utilizada juntamente com a estimativa de largura de banda na seleção de ladrilhos por quadro, que pode ser provida através de um caminho de sinal de vídeo 2331, para um armazenamento temporário de vídeo dinamicamente alocado 2332. Da mesma forma, os segmentos de áudio correspondentes podem ser providos a um armazenamento temporário de áudio 2336 através de um caminho de sinal de áudio 2338. Os ladrilhos de diferentes qualidades podem ser providos a um combinador de ladrilhos 2334, que gera um fluxo de vídeo codificado multiplexado 2346 para o decodificador de vídeo do reprodutor 2314. O fluxo de áudio codificado 2348
93 / 125 pode ser gerado a partir do armazenamento temporário de áudio 2336 para o decodificador de áudio 2318. Os dados de áudio e vídeo decodificados providos aos respectivos renderizadores 2320, 2316 do reprodutor 2308 são renderizados adequadamente para exibição/apresentação em um ambiente imersivo efetuado pelo dispositivo de exibição do usuário, de maneira essencialmente similar à das modalidades exemplificativas apresentadas anteriormente.
[00123] A Figura 24 descreve um diagrama de blocos de um aparelho implementado por computador que pode ser (re)configurado e/ou (re)arranjado como uma plataforma, nó ou elemento para efetuar um ou mais aspectos do processamento de vídeo imersivo de 360°, preparação e otimização de seleção de ladrilhos, de acordo com uma modalidade da presente invenção. Dependendo da implementação e/ou da arquitetura de rede, os aparelhos 2400 podem ser configurados ou, de outro modo, integrados aos diferentes arranjos adequados para a operação em um ou mais níveis hierárquicos de um ambiente exemplificativo (por exemplo, conforme mostrado nas Figuras 1 e 2). Um ou mais processadores 2402 podem ser providos como parte de uma arquitetura de computação adequada para o controle de chamadas excessivas do aparelho 2400, em que o(s) processador(es) 2402 pode(m) ser configurado(s) para executar várias instruções de programa armazenadas em módulos ou blocos de memória adequados, por exemplo, memória persistente 2408, o que inclui módulos ou blocos adicionais específicos para preparação de mídia, pré-processamento, codificação de ladrilho baseada em BIE/PE, o que inclui codificação/ transcodificação de taxa de bits adaptativa, seleção de ladrilho otimizada e otimização de largura de banda, empacotamento de mídia ladrilhado, costura de ladrilhos, etc. conforme descrito em detalhes no presente documento acima. Por exemplo, esses módulos podem incluir codificador de PE/BIE baseado em ladrilho 2404, codificador/transcodificador de ABR 2406,
94 / 125 módulo 2413 de processamento de peso de ladrilho e de processamento de GV, módulo de seleção e de otimização de ladrilho 2416, empacotador e gerador de manifesto 2410, mapeador de projeção 2418 e similares. Além disso, um banco de dados de mídia empacotado 2419 pode ser provido em uma modalidade exemplificativa, dependendo da implementação do aparelho
2400. Assim, várias interfaces de rede, por exemplo, I/F 2414-1 a 2414-L, operativas para efetuar comunicações com elementos de infraestrutura de rede, o que inclui elementos de apoio de vídeo, entidades de DRM, servidores de origem, nós controladores de cliente, nós de mídia de fonte, nós de gerenciamento e bancos de dados de cache, bem como interfaces 2412-1 a 2412-K para a realização de sessões de comunicação com um ou mais nós a jusante, por exemplo, o que inclui servidores de entrega, elementos de DSLAM/CMTS, elementos de infraestrutura de RAN, nós de porta de propriedades, etc., podem ser providas como parte do aparelho 2400, dependendo do nível hierárquico da rede e/ou da integração.
[00124] A Figura 25 descreve um diagrama de blocos de um dispositivo exemplificativo de cliente de UE ou de uma estação de assinante 2500 configurada para a realização de vários processos ao lado do cliente, de acordo com uma ou mais modalidades da presente descrição de patente. O dispositivo de cliente 2500 é geralmente representativo de vários dispositivos de visualização, ilustrados em uma ou mais Figuras descritas acima, e pode incluir componentes e subsistemas apropriados de hardware/software configurados para realizar qualquer um dos processos do lado do dispositivo (individualmente ou em qualquer combinação dos mesmos), com respeito à geração de solicitações de mídia, geração de vetor de foco, seleção de ladrilhos e estimativa de largura de banda, entre outros, o que depende da implementação. Um ou mais microcontroladores/processadores 2502 são providos ao controle geral do dispositivo de cliente 2500 e à execução de várias instruções de programa armazenadas, incorporadas em um ou mais
95 / 125 módulos de memória persistente que podem fazer parte de um subsistema de memória 2511 do dispositivo 2500. Por exemplo, os aplicativos de cliente de vídeo imersivos de 360° 2513A que incluem aplicativos de VR podem ser operativos com um avaliador de largura de banda 2513B e seletor de ladrilho associado 2513C, que pode ser provido como parte do subsistema de memória
2511. Um analisador manifesto 2517 pode ser provido para facilitar a geração de solicitações de mídia para locais apropriados. O complexo de controlador/processador denominado pelo número de referência 2502 também pode ser representativo de outros módulos de processamento especializados, tais como processadores de gráfico, processadores de vídeo, processadores de sinal digital (DSPs) e similares, que operam em associação a interfaces de vídeo e áudio adequadas (não especificamente mostradas). As interfaces de rede adequadas, como módulos de I/F de rede 2504 e 2506 que envolvem ou operam com sintonizadores, demoduladores, decodificadores, decodificadores/desmultiplexadores de MPEG/H.264/H.265/AV1, podem ser incluídas para processamento e interface com IPTV e outros sinais de conteúdo recebidos através de uma rede de DSL/CMTS 2598 ou por rede de satélite 2596. Quando um STB é configurado como um dispositivo ou aplicativo de cliente exemplificativo, os demoduladores adequados também podem ser incluídos. Um ou mais reprodutores de mídia 2514 podem ser providos para operar em conjunto com os outros subsistemas do dispositivo de cliente 2500, por exemplo, interface de usuário 2520, que pode ser adicionalmente configurada com subsistemas adicionais para facilitar o controle de usuário sobre a reprodução de mídia, o que inclui solicitações de alteração de canal e de quaisquer operações em modo de reversão ou avanço. Por exemplo, as funções de controle de cliente/usuário podem incluir pausa, retomada, encaminhamento rápido, rebobinamento, busca, marcação de livro, etc., em relação a um ativo de vídeo imersivo de 360 graus que está sendo reproduzido. Os reprodutores de mídia exemplificativos podem ser
96 / 125 configurados para operar com uma ou mais funcionalidades de codificador/decodificador de A/V (codec) com base em padrões ou especificações desconhecidas, ou conhecidas no presente documento.
[00125] Outras I/O ou interfaces, como uma interface de exibição imersiva 2515, a interface de tela sensível ao toque ou teclado 2520, as portas de USB/HDMI 2518, a Ethernet de I/F 2508 e as interfaces de conectividade sem fio de curto alcance e de área ampla 2512 também podem ser providas, dependendo da configuração do dispositivo. Vários sensores de detecção de movimento e rastreamento de foco 2516 também podem ser incluídos, alguns dos quais podem incluir giroscópios, acelerômetros, sensores de posição, etc. Uma unidade de disco rígido (HDD) ou um sistema de DVR local 2510 pode ser incluído em uma implementação exemplificativa para armazenamento local de vários ativos de programa. Um bloco de fonte de alimentação adequado 2522 pode incluir conversão de energia de CA/CC para prover energia ao dispositivo 2500. Deve ser reconhecido que a arquitetura de energia real para o dispositivo 2500 pode variar de acordo com a plataforma de hardware usada, por exemplo, dependendo do núcleo de SoC (System-on- chip), da memória, da interface inicial analógica, dos componentes e interfaces de cadeia de sinal analógico usadas na plataforma específica, e similares.
[00126] Em outros aspectos da presente invenção, as modalidades são apresentadas abaixo relacionadas à inserção de vários tipos de conteúdo secundário, por exemplo, conteúdo patrocinado de terceiros e conteúdo de anúncio, o que inclui imagens estáticas, clipes de vídeo, imagens de texto gráfico, etc., coletivamente denominados conteúdo publicitário ou “conteúdo de anúncio” para resumir, em um ambiente de reprodução de vídeo imersivo de 360 graus, de forma simbiótica e perfeita. Em particular, as modalidades são descritas onde um ou mais dentre os seguintes problemas da técnica são vantajosamente superados. Por exemplo, nas atuais tecnologias de
97 / 125 transmissão contínua de vídeo que envolvem conteúdo secundário, a inserção de anúncios geralmente degrada a experiência imersiva do vídeo original, especialmente se o conteúdo secundário que está sendo inserido não for um vídeo de 360 graus. Mesmo que o conteúdo do anúncio fosse um vídeo de 360 graus, o usuário normalmente estaria assistindo ao vídeo com uso de uma unidade de HMD e seria obrigado a assistir ao conteúdo do anúncio de perto, perdendo potencialmente toda a impressão de estar imerso em outro mundo, isto é, a experiência virtual de exibição 3D, que o vídeo original poderia ter construído até aquele momento. Além disso, a inserção de anúncios geralmente ocorre na parte inferior do quadro de vídeo, que pode cobrir ou bloquear regiões de interesse no vídeo original (mesmo que o conteúdo do anúncio sobreposto seja um pouco transparente) e, por isso, também destruir a sensação imersiva de 360 graus do ativo de vídeo que está sendo reproduzido.
[00127] Amplamente, as modalidades no presente documento podem ser vantajosamente configuradas para alavancar um esquema de codificação baseado em ladrilho exemplificativo, apresentado em detalhes no presente documento acima, em que um quadro de vídeo a ser montado a partir de uma pluralidade de ladrilhos pode ser manipulado ou analisado de outra forma, antes da costura, multiplexação de ladrilho, para identificar alguns dentre os ladrilhos que podem ser substituído por conteúdo secundário ou anúncio que também é codificado/transcodificado em ladrilhos. Em uma modalidade, a determinação de quais ladrilhos de vídeo usar para substituição de conteúdo de anúncios pode se basear em uma seleção fixa feita pelo criador de conteúdo ou editor antecipadamente. Em outra modalidade, a seleção de ladrilho de vídeo, para substituição de anúncio, pode ser realizada dinamicamente com base na informação de vetor de foco, que é relatada de volta pelo dispositivo de cliente, como o vídeo imersivo de 360 graus que está em reprodução. Em uma outra modalidade, uma combinação de ambos os esquemas pode ser implementada para selecionar uma porção dos ladrilhos de
98 / 125 vídeo de um quadro para substituição por ladrilhos de conteúdo de anúncio. Detalhes adicionais sobre as modalidades anteriores são apresentados abaixo.
[00128] Conforme observado anteriormente, em referência à codificação baseada em ladrilhos de vídeo de fonte, um quadro de vídeo de 360° pode ser fracionado em um arranjo retangular ou em grade de blocos ou ladrilhos que podem ser codificados/decodificados de forma independente e, até mesmo, permitir o acesso aleatório às regiões específicas. A título de referência, um quadro de vídeo que compreende uma matriz de 16 por 8 de 128 ladrilhos foi mostrado na Figura 4C, em relação a um quadro de ativos de vídeo de 4K 400C, em que os ladrilhos podem ou não ser espaçados uniformemente, conforme observado anteriormente. Além disso, em uma modalidade da presente descrição, os ladrilhos podem ser selecionados dentre fluxos baseados em BIE ou fluxos de bits baseados em PE, conforme descrito em detalhes, no que diz respeito a uma série de Figuras de Desenho, por exemplo, as Figuras 5 a 12. Em uma implementação, cada ladrilho de conteúdo de anúncio pode ser codificado primeiro como um i-ladrilho, para ser incluído em um quadro de BIE (isto é, X-quadro com um cabeçalho de P- fatia e composto por blocos de dados intracodificados (por exemplo, i- ladrilhos ou I-blocos), ou no primeiro quadro I de um GOP. Posteriormente, o anúncio, para o qual um i-ladrilho já foi incluído no quadro anterior, pode ser enviado como um P-ladrilho nas P-fatias baseadas em BIE. Conforme observado acima, essa técnica de codificação permite mudanças no GOP intermediário, nos quadros, mesmo aqueles que incluem ladrilhos de conteúdo de anúncio. Consequentemente, vários tipos de ladrilhos de conteúdo secundário podem ser GOP intermediário adicionado, removido ou atualizado em uma sequência de vídeo. As pessoas versadas na técnica reconhecerão, mediante referência ao presente documento, que esse recurso provê fidelidade muito alta a uma política de conteúdo de anúncios que pode ser configurada com base em políticas de provedor de conteúdo e/ou políticas de operador de
99 / 125 rede. Uma implementação de inserção de anúncios, de acordo com uma modalidade, pode ser configurada de modo que a entrega de anúncios individuais possa ser satisfeita dentro de uma tolerância ou exigência de tempo apertado, por exemplo, os horários de início e término de um anúncio sejam encontrados dentro de uma faixa de 1 segundo, em um cenário ilustrativo. Por exemplo, se a política de conteúdo do anúncio exigir que um anúncio baseado em blocos comece em 2 minutos e 3 segundos (00:2. 00:03) após o início do vídeo e terminar em 2 minutos e 4 segundos (00:2. 00:04), uma modalidade da presente invenção pode aderir a essa janela de tempo de anúncio, dentro de alguns milissegundos em cada extremidade (isto é, uma pequena fração de variância no tempo de início e/ou no tempo de término).
[00129] Para ilustrar os conceitos inventivos relativos à inserção de anúncios, de acordo com os preceitos da presente descrição, agora é feita referência às Figuras 28A a 28C, que retratam cenários de exibição exemplificativos, no que diz respeito à inserção de conteúdo de anúncio em um ambiente de vídeo imersivo de 360°. Em particular, a Figura 28A mostra um quadro exemplificativo 2800A desembrulhado a partir de um ativo de vídeo imersivo de 360°, que ilustra um arranjo retangular de ladrilhos de vídeo que são numerados individualmente, por exemplo, 128 ladrilhos, ou, de outro modo, identificados de forma exclusiva. Deve-se imaginar que um objeto, por exemplo, um avião 2803, no vídeo, voe da esquerda para a direita e esteja atualmente no centro e forme o objeto de interesse. Uma região 2802A ao redor do objeto 2803 pode incluir qualquer formato (por exemplo, uma região circular, uma região elíptica, uma região quadrada, etc.) que possa ser indicativo do FOV direto do usuário ou visor, dependendo da unidade de exibição. A título de ilustração, os ladrilhos que estão dentro da região 2802A, ou pelo menos na sua periferia, por exemplo, ladrilhos 7, 8, 9, 10, 22, 23, etc., por isso, formam uma região de interesse para efeitos de análise e/ou determinação de quais ladrilhos, na mesma, podem estar disponíveis ou ser
100 / 125 substituídos para a inserção de ladrilhos de conteúdo secundário, de acordo com uma modalidade exemplificativa. Os ladrilhos de vídeo fora da região serão embrulhados em torno do FoV de usuário (ou formarão uma área de exibição que precisa ser panorâmica, antes de se tornar visível para o usuário). Assim, alguns dos ladrilhos de vídeo do quadro podem estar além da visão periférica do usuário, e alguns podem até compreender a área diretamente atrás do foco de usuário, quando o mesmo estiver olhando na direção do objeto de interesse, por exemplo, avião 2903. No quadro de vídeo exemplificativo 2800A, a região de interesse ou a parte em que a coisa mais interessante está acontecendo fica, por isso, perto das proximidades imediatas ou ao redor do avião. Por outro lado, os ladrilhos perto da periferia inferior do FoV, como os ladrilhos 87, 88, 89, 90, 104, 105, podem servir como locais para um ou mais anúncios que são diretamente visíveis para o usuário (uma vez que os mesmos se enquadram no FoV ou em sua periferia). Além disso, os ladrilhos de vídeo restantes fora do FoV também podem servir como locais para anúncios que serão visíveis, se o usuário olhar ao redor durante a cena. Em uma modalidade, os ladrilhos ou outras regiões de quadros de vídeo que contêm pouca ou baixa ação ou movimento, por exemplo, áreas estáticas, podem ser analisados e/ou determinados de modo a marcar certos locais de ladrilhos como sendo adequados para substituição por conteúdo secundário/anúncio.
[00130] A Figura 28B descreve um quadro de vídeo 2800B que é o mesmo quadro 2800A descrito acima, mas serve para demonstrar uma inserção de anúncios exemplificativa baseada em localização de ladrilho na mesma, em que um ou mais ladrilhos são substituídos por ladrilhos de conteúdo de anúncio. Em uma modalidade, um objeto de conteúdo de anúncio, que pode incluir uma imagem estática, um logotipo ou slogan, ou parte de um clipe de vídeo secundário, pode formar um único bloco. Em outra modalidade, os objetos de conteúdo de anúncio podem ocupar uma série de
101 / 125 ladrilhos contíguos. Dependendo do quanto o “estado real” está disponível na região que inclui FoV 2802B, os anúncios de ladrilho único (por exemplo, anúncios menores) ou anúncios de vários ladrilhos (por exemplo, anúncios maiores) podem ser colocados dentro da linha de visão de usuário. Da mesma forma, as regiões fora do FoV 2802B também podem incluir locais de ladrilho que podem ser substituídos por ladrilhos de conteúdo de anúncios. A título de ilustração, os ladrilhos contíguos 98, 99 e 100 são substituídos por um objeto de anúncio de vários ladrilhos, designado AD-1A. Da mesma forma, um segundo conjunto de ladrilhos contíguos 109, 110 e 111 é substituído por outro objeto de anúncio de vários ladrilhos, designado AD-1B. Como uma ilustração adicional, os objetos de anúncio de ladrilho único AD-2A, AD-2B e AD-2C são colocados em locais correspondentes aos ladrilhos 54, 59 e 88, com ladrilhos 54 e 59 que se encontram na borda do FoV 2802B, ao passo que o ladrilho 88 que se encontra completamente dentro FoV 2802B, mas distante do objeto de interesse, por exemplo, avião 2803.
[00131] A Figura 28C descreve um quadro de vídeo exemplificativo 2800C que vem mais tarde em uma sequência de vídeos, à medida que a reprodução avança no tempo, o que demonstra a natureza dinâmica da inserção de anúncios, de acordo com os preceitos da presente descrição. Visto que o objeto de interesse 2803 se moveu para a direita, o FoV 2802C correspondente também se moveu, o que resulta em um conjunto diferente de locais de ladrilhos dentro do FoV 2802C que é adequado para substituição de anúncios. A título de ilustração, o ladrilho 94 que se encontra inteiramente no FoV 2802C é substituído por um objeto de anúncio AD-3A, e o ladrilho 96 que se encontra na borda do FoV 2802C é substituído por um objeto de anúncio AD-3B. Alguns dos ladrilhos que estavam indisponíveis para inserção de anúncios no FoV 2802B anterior estão, agora, disponíveis para inserção de anúncios, por exemplo, ladrilhos 40, 41, 56 e 57. O ladrilho 54 que se encontrava no limite do FoV 2802B anterior continua disponível para
102 / 125 inserção de anúncios, agora, mostrando um objeto de anúncio denominado AD-4A.
[00132] Uma pessoa versada na técnica reconhecerá que não é necessário ter diferentes objetos de anúncio sendo colocados nos quadros de vídeo, à medida que a reprodução progride no tempo. Em algumas modalidades, ao passo que alguns objetos de anúncio podem persistir em uma porção do tempo de execução de um ativo de vídeo, outros objetos de anúncio podem ser configurados para serem mais efêmeros, por exemplo, dependendo das políticas de provedor de conteúdo de vídeo/anúncio, políticas de operador de rede, perfis de assinantes e similares. Além disso, alguns objetos de anúncio podem ser contextualizados, em relação ao conteúdo do vídeo que está sendo reproduzido, bem como personalizado e/ou direcionado para os usuários, com base em preferências, demografia, etc.
[00133] Estará evidente que escolher os ladrilhos de vídeo certos para substituição é fundamental para manter uma boa qualidade de experiência, quando um determinado ativo de vídeo imersivo de 360° está sendo assistido. Conforme observado anteriormente, em um ambiente típico de reprodução de vídeo imersivo de 360°, geralmente há um pequeno número de áreas de um quadro onde a maior parte da ação está ocorrendo, por exemplo, regiões de interesse, que podem variar dependendo de para onde o espectador está olhando. Embora um espectador possa olhar em torno do espaço de exibição de vídeo imersivo de 360°, a qualquer momento existem áreas nas quais o espectador estaria focando mais. Consequentemente, embora seja imperativo não substituir ladrilhos que estão no centro de uma região de interesse em uma cena com anúncios, que podem variar, dependendo da informação de vetor de foco, muitas outras regiões na cena de 360° podem servir como bons locais para inserção de anúncios (isto é, locais de ladrilhos elegíveis).
[00134] De acordo com os preceitos da presente descrição, vários esquemas de elegibilidade de ladrilhos podem ser providos para identificar
103 / 125 quais dos ladrilhos de vídeo de um quadro de 360° podem ser substituídos por conteúdo secundário/anúncio.
A título de ilustração, as seguintes modalidades exemplificam três esquemas, sem limitação, para efeitos do presente pedido de patente.
Em uma modalidade, um provedor de conteúdo pode prover uma especificação de metadados de ladrilho que especifica, para cada ladrilho, um arranjo de horários de início e fim, em relação a uma referência de tempo conhecida, por exemplo, o tempo de execução de um ativo de vídeo, sobre quando o ladrilho pode ser substituído por um ladrilho de conteúdo de anúncio.
Referindo-se agora à Figura 27, é mostrada na mesma uma especificação de metadados ladrilho exemplificativa 2700, que, em uma modalidade, pode ser gerada como parte dos processos de preparação de mídia e de embalagem, apresentados no presente documento, em referência à Figuras 1 e 2 acima, que ilustram as janelas de tempo de elegibilidade de inserção de anúncios específicos do ladrilho para cada um de uma pluralidade de ladrilhos de um quadro de vídeo (por exemplo, em uma base de ladrilho a ladrilho). Conforme ilustrado, os 128 ladrilhos 2702-1 a 2702-128, com a respectiva informação de identificação de ladrilho 2704, são mostrados, cada um com uma linha correspondente da janela de tempo de elegibilidade 2705-1 a 2705-128, designada coletivamente como informação de temporização de disponibilidade de anúncios 2706. Em um cenário exemplificativo de um ativo de vídeo com um tempo de execução de 5 minutos, cada arranjo ou linha de janela de tempo de elegibilidade 2705-1 a 2705-128 identifica uma pluralidade de janelas de tempo para um determinado valor de ID de ladrilho como um conjunto de tuplas de horários de início e término dentro do período de 5 minutos, em que o local de ladrilho pode ser usado para inserção de anúncio.
Em um exemplo, aos ladrilhos de um quadro, podem ser atribuídas IDs únicas, em sequência, da esquerda para a direita e de cima para baixo, da grade do ladrilho que forma o quadro.
A título de ilustração, o ladrilho 1 é provido com um arranjo de janela de tempo de elegibilidade 2705-1 que
104 / 125 compreende três janelas de tempo 2708-1, 2708-2 e 2708-3, cada uma com um respectivo horário de início e fim. A janela de temporização 2708-1 especifica que o ladrilho 1 pode ser usado para a substituição de 1,0 segundo no vídeo até o tempo = 3,0 segundos. Da mesma forma, a janela de tempo 2708-2 especifica que o ladrilho 1 pode ser usado novamente em 3 minutos no vídeo por mais 5 segundos, e a janela de tempo 2708-3 especifica que o ladrilho 1 pode ser usado mais uma vez em 4 minutos no vídeo por mais 6 segundos, para substituição. Por outro lado, o ladrilho 128 pode ser usado durante todo o vídeo de 5 minutos para inserção de anúncios, conforme indicado pelo arranjo de janela de tempo de qualidade/disponibilidade de entrada única 2705-128.
[00135] As pessoas versadas na técnica reconhecerão, após referência ao presente documento, que, embora a especificação de metadados de ladrilho acima 2700 ilustre dados de temporização de disponibilidade de anúncio com base na informação de tempo de execução de vídeo, as modalidades adicionais/alternativas podem ser baseadas em outros tipos de dados de temporização, como, por exemplo, informação de timbre de data e hora de apresentação (PTS), informação de data/hora de decodificação (DTS), informação de referência de relógio de programa (PCR), informação de referência de relógio de sistema (SCR), informação de referência de relógio de parede e/ou informação de referência de temporização do Sistema de Posicionamento Global (GPS), etc.
[00136] Em outra modalidade, em vez de usar uma especificação fixa de metadados, a seleção de elegibilidade pode ser determinada dinamicamente com base na informação de vetor de foco relatada pelo dispositivo de cliente, que foi descrita no presente documento, acima, em detalhes, em referência a um número de Figuras de Desenho, por exemplo, Figuras 15A a 15B às Figuras 16A a 16C. Conforme apresentado anteriormente, a informação de vetor de foco tridimensional (normalizada ou não normalizada) pode ser
105 / 125 usada para determinar, ou de outro modo, definir um FoV e, consequentemente, identificar quais ladrilhos se enquadram completamente dentro do FoV. Um subconjunto dos ladrilhos pertencentes ao FOV e que não contêm um ou mais objetos de interesse dentro do FOV pode ser selecionado para substituição por conteúdo secundário/anúncio. As pessoas versadas na técnica reconhecerão que a vantagem na seleção de ladrilhos com base em informação de vetor de foco é que, ao contrário da técnica de especificação de metadados fixos, os mesmos não exigem janelas de tempo fixas a priori em uma base de ladrilho a ladrilho e, por isso, podem ser usados para eventos ao vivo. À medida que o usuário olha ao redor, os anúncios podem ser reorganizados, mas podem aparecer brevemente no centro do FoV, se houver mudanças repentinas no foco. Por outro lado, uma modalidade com base na especificação de metadados fixos, que é mais adequada para conteúdo imersivo de VOD/MOD de 360°, no que diz respeito a facilitar a inserção de anúncios durante o tempo de execução, pode ser configurada para evitar tal situação, o que define, com precisão, as janelas de tempo aplicáveis.
[00137] Outra modalidade da presente invenção pode compreender uma combinação de tanto as especificações de metadados fixas quanto a informação de vetor de foco. Em uma implementação exemplificativa, os ladrilhos de vídeo podem ser inicialmente selecionados com base na informação de vetor de foco, mas, depois, filtrados de acordo com a especificação de metadados de ladrilho, de modo a não substituir inadvertidamente os ladrilhos em uma região de interesse. No entanto, outra modalidade pode envolver mais análise de dados de pixels em uma base de ladrilho a ladrilho, quer separadamente ou em combinação com qualquer um dos esquemas anteriores, para adicionalmente refinar a elegibilidade de ladrilho para substituição de anúncios.
[00138] As Figuras 26A a 26C retratam fluxogramas ilustrativos de vários blocos, etapas e/ou atos relativos à inserção de conteúdo de anúncio em
106 / 125 um ativo de vídeo imersivo de 360°, durante a reprodução, que podem ser combinados, de acordo com uma ou mais modalidades da presente invenção, junto com pelo menos uma porção dos preceitos anteriores. O processo 2600A da Figura 26A se inicia com o recebimento de uma solicitação de um dispositivo de cliente para reproduzir um ativo de vídeo imersivo específico, conforme apresentado no Bloco 2602. Conforme observado anteriormente, cada quadro de vídeo do ativo de vídeo pode incluir uma matriz de ladrilhos projetados em um ambiente de exibição tridimensional (3D) visualizado por um usuário que opera o dispositivo de cliente. No Bloco 2604, uma pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico é selecionada para ser montada como um quadro de vídeo para entrega ao dispositivo de cliente. Conforme descrito anteriormente em detalhes, a pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico pode ser selecionada dentre uma ou mais representações de taxa de bits codificados por ladrilho do ativo de vídeo específico, com base em codificação baseada em PE ou em BIE, em que cada representação de taxa de bits tem uma qualidade de vídeo separada que é controlada por um valor de parâmetro de quantização (QP) usado para cada representação de taxa de bits. No Bloco 2606, uma porção dos ladrilhos de vídeo é identificada, a qual podem ser substituída por um conjunto correspondente de ladrilhos de conteúdo de anúncio, que podem ser gerados, codificados e/ou transcodificados a partir de arquivos de fonte apropriados de imagens estáticas, clipes de vídeo, etc. No Bloco 2608, a porção dos ladrilhos de vídeo identificados como elegíveis para substituição pode ser substituída pelo conjunto correspondente de ladrilhos de conteúdo de anúncio. No Bloco 2610, o quadro de vídeo completo é multiplexado e montado, que inclui os ladrilhos de conteúdo de anúncio, em locais selecionados, que são transmitidos, em seguida, ao dispositivo de cliente.
[00139] O processo 2600B da Figura 26B apresenta blocos, etapas e/ou
107 / 125 atos adicionais que podem ser combinados dentro do processo 2600A descrito acima. No Bloco 2622, uma especificação de metadados de ladrilho pode ser obtida, acessada ou, de outro modo, analisada, que identifica informação de temporização de disponibilidade de inserção de anúncios, em relação a cada uma das pluralidades de ladrilhos de vídeo do quadro de vídeo. Responsiva à informação de temporização de disponibilidade de inserção de anúncios, a porção dos ladrilhos de vídeo elegíveis para substituir pelos ladrilhos de conteúdo de anúncio é selecionada ou, de outro modo, identificada (Bloco 2624). No Bloco 2626, os arquivos de conteúdo de anúncios adequados são obtidos para substituição e multiplexação pelo restante dos ladrilhos de vídeo, que são providos a um processo de costura e geração de fluxo de ladrilhos (Bloco 2628). No Bloco 2630, o fluxo de processo pode continuar, dependendo de se quadros de vídeo adicionais precisam ser processados durante o tempo de execução do ativo de vídeo.
[00140] O processo 2600C da Figura 26C apresenta blocos, etapas e/ou atos adicionais que podem ser combinados dentro do processo 2600A descrito acima. No Bloco 2642, um vetor de foco, a partir do dispositivo de cliente, é obtido em relação ao ativo de vídeo imersivo específico, o vetor de foco define um campo de visão (FoV) no ambiente de exibição 3D, em relação ao local no qual o usuário está visualizando, em referência a um quadro de vídeo projetado. Responsiva ao vetor de foco, a porção dos ladrilhos de vídeo elegíveis para substituir pelos ladrilhos de conteúdo de anúncio pode ser selecionada ou, de outro modo, identificada (Bloco 2644). Da mesma maneira que o processo 2600B, os arquivos de conteúdo de anúncios adequados são obtidos para substituição e multiplexação pelo restante dos ladrilhos de vídeo, que são providos a um processo de costura de ladrilho e geração de fluxo (Blocos 2646 e 2648). No Bloco 2650, o fluxo de processo pode continuar, dependendo de se quadros de vídeo adicionais precisam ser processados durante o tempo de execução do ativo de vídeo.
108 / 125
[00141] A Figura 30 é um fluxograma de vários blocos, etapas e/ou atos, em relação à inserção de conteúdo de anúncio em um ativo de vídeo imersivo de 360°, durante a reprodução, de acordo com um processo de combinação 3000 da presente invenção, em uma modalidade exemplificativa. Da mesma forma que o bloco 2602, no processo 2600A acima, o processo 3000 se inicia com o recebimento de uma solicitação a partir do dispositivo de cliente, em relação a um ativo de vídeo imersivo de 360 graus específico (Bloco 3002). No Bloco 3004, um vetor de foco é recebido a partir do dispositivo de cliente. No Bloco 3006, uma pluralidade de ladrilhos de vídeo (por exemplo, 128 ladrilhos em um quadro de vídeo de 4K) do ativo de vídeo solicitado é selecionada para ser montada em um quadro de vídeo para entrega ao dispositivo de cliente. No Bloco 3008, vários conjuntos ou grupos de ladrilhos relativos ao FoV, com base no vetor de foco, são identificados ou, de outro modo, determinados. Por exemplo, um primeiro conjunto (Conjunto A) de ladrilhos pode incluir ladrilhos que se encontram inteiramente no FoV, um segundo conjunto (Conjunto B) de ladrilhos pode incluir ladrilhos que estão parcialmente no FoV (isto é, ladrilhos que se encontram na borda do FoV) e um terceiro conjunto (Conjunto C) de ladrilhos que se encontram fora do FoV. No Bloco 3010, uma decisão ou determinação é tomada sobre se uma especificação de metadados de ladrilho está disponível para o ativo de vídeo solicitado. Se assim for, os ladrilhos identificados como indisponíveis para inserção de anúncios por tempo de execução de vídeo atual serão removidos da análise de elegibilidade adicional (Bloco 3012). Caso contrário, todos os grupos de ladrilhos identificados no Bloco 3008 podem ser considerados para a elegibilidade de inserção de anúncios. Assim, uma seleção filtrada dos ladrilhos dos Conjuntos A a C, ou uma seleção completa de ladrilhos dos Conjuntos A a C, pode ser considerada para elegibilidade de substituição, com base na configuração da política de conteúdo de anúncio, atividade de imagem de ladrilho, configuração de política de provedor de conteúdo etc.
109 / 125 Responsivo à análise de elegibilidade, um certo número de ladrilhos de cada conjunto pode ser identificado e/ou obtido para substituição e pode ser substituído conforme apresentado no Bloco 3014. Por exemplo, “x” número de ladrilhos no Conjunto A, “y” número de ladrilhos no Conjunto B e “z” número de ladrilhos no Conjunto C podem ser substituídos por ladrilhos de conteúdo de anúncio correspondentes, conforme descrito anteriormente. Depois disso, no bloco 3016, os ladrilhos de conteúdo de anúncios selecionados e os ladrilhos de vídeo restantes podem ser providos a um gerador de fluxo para montagem em um quadro com uso de qualquer um dos esquemas de costura e geração de fluxo de ladrilhos apresentados anteriormente na presente descrição de patente. Subsequentemente, o quadro montado é entregue ao dispositivo de cliente (Bloco 3018). Uma determinação pode ser feita se há mais quadros na sequência de vídeo do ativo de vídeo solicitado (Bloco 3020). Em caso afirmativo, o fluxo do processo retorna ao Bloco 3004 para continuar recebendo informação de vetor de foco subsequente. Caso contrário, o processo 3000 é encerrado (Bloco 3022).
[00142] A Figura 29 descreve um sistema ou aparelho que pode ser implementado em uma porção de rede de vídeo imersiva de 360° 2900 para facilitar a inserção de propaganda, de acordo com uma modalidade da presente invenção. As pessoas versadas na técnica reconhecerão que a porção de rede 2900 é aproximadamente semelhante às porções das arquiteturas de rede mostradas na Figuras 1 e 2. Um nó de rede ou elemento 2902 pode ser configurado como um servidor de vídeo operativo em conjunto com uma funcionalidade de apoio e/ou funcionalidade de otimização de vídeo 360°, conforme apresentado na porção de rede da Figura 2. O servidor de vídeo 2902 é adicionalmente operativo para interagir com os repositórios apropriados de ativos de vídeo de 360° 2922 (que podem incluir diferentes representações de taxa de bits de mídia codificada por ladrilho, com
110 / 125 qualidades variáveis e especificações de metadados de ladrilho, quando providas), bem como infraestrutura de servidor de entrega adequada (não especificamente mostrada nessa Figura) para facilitar o controle de configuração da sessão de vídeo, entrega ao portador, processamento de vetor de foco, etc. em uma plataforma implementada por computador semelhante ao aparelho 2400 mostrado na Figura 24. Por conseguinte, os módulos adequados, como gerenciador de ativos, que incluem seletor de ladrilho de vídeo 2904, seletor de ladrilho de conteúdo de anúncio 2906, gerador de multiplexação/ fluxo de ladrilho 2907, gerenciador de sessão 2908 e processador de foco 2910, podem ser configurados para operar sob controle do processador para facilitar a lógica de elegibilidade de substituição de ladrilho de vídeo, lógica de inserção de conteúdo de anúncio, recuperação de conteúdo de anúncio, etc., de acordo com as modalidades apresentadas no presente documento, em que um ou mais dispositivos de cliente 2812A, 2812B são operativos, em relação à solicitação dos respectivos ativos de vídeo de 360 graus, para serem exibidos em conjunto com as unidades de exibição adequadas associadas aos mesmos.
[00143] Conforme observado anteriormente, o conteúdo secundário/anúncio pode incluir vários tipos de ativos digitais, o que inclui, entre outros, imagens estáticas, caixas de texto de gráfico, clipes de vídeo curtos, etc., que podem ou não ser codificados por ladrilhos. Um servidor de anúncios 2918 pode ser provido com funcionalidade de codificação/transcodificação adequada para gerar ladrilhos de conteúdo de anúncios em um formato adequado compatível com o esquema de codificação de ladrilho usado para gerar ativos de vídeo 360°. Assim, da mesma maneira que os esquemas de codificação apresentados acima, em relação à preparação de mídia de fonte, os ladrilhos de conteúdo de anúncios podem ser gerados com uso de pelo menos uma dentre a compressão de HEVC H.265, a compressão de AV1, a compressão de Codificação Versátil de Vídeo (VVC)
111 / 125 H.266 e/ou a compressão de Codec Futuro de Vídeo (FVC). O módulo de seleção de blocos de anúncios 2906 é operativo para recuperar ou obter ladrilhos de conteúdo de anúncios adequados através da interface 2920 do servidor de anúncios 2918 em tempos de execução apropriados, em relação a uma ou mais sessões de vídeo em curso de 360 graus. O gerador de fluxo/ multiplexação de ladrilho 2907 é configurado para montar os ladrilhos de ativos de vídeo solicitados e ladrilhos de conteúdo de anúncios selecionados em quadros multiplexados que podem ser entregues aos respectivos espectadores sob controle apropriado do gerenciador de sessão. Por conseguinte, a título de ilustração, cada dispositivo de cliente 2912A/2912B é operativo para iniciar uma sessão de vídeo e receber o fluxo de vídeo 360° correspondente nas respectivas sessões 2914A/2914B, que podem incluir ladrilhos de conteúdo de anúncio que podem ser personalizados, contextualizados e personalizados, em relação à combinação de usuário/ativo. Da mesma forma, a respectiva informação de vetor de foco 2916A/2916B pode ser provida, pelos dispositivos de cliente 2912A/2912B, ao módulo de processamento de foco 2910.
[00144] Com base no exposto, as pessoas versadas na técnica reconhecerão que as modalidades no presente documento proveem vantajosamente um esquema de inserção de anúncios, em que os objetos de conteúdo de anúncios exibidos não são apenas mais coerentes com o vídeo de 360 graus, mas também são configurados para serem colocados em um quadro de vídeo de modo que os mesmos não dificultem a experiência de imersão, independentemente do esquema de mapeamento de projeção usado na criação do efeito espacial 3D. Além disso, os anúncios são incorporados ao vídeo e não sobrepostos, tornando o esquema de inserção de anúncios resiliente contra o bloqueio de anúncios. Visto que os ladrilhos de conteúdo de anúncios são costurados em um quadro multiplexado de acordo com técnicas de padrão de codec de vídeo, nenhum decodificador extra é
112 / 125 necessário para reprodução pelos clientes. Além disso, os produtores ou editores de conteúdo podem restringir regiões críticas dentro de um vídeo, onde esses anúncios não podem ser colocados, e não bloquear nenhuma região de interesse definindo-se ou configurando-se adequadamente as políticas de inserção. Por outro lado, as políticas de inserção de anúncios podem ser particularmente definidas, que descrevem qual(is) anúncio(s) mostrar, em que momento preciso, que podem ser implementadas estritamente com uma precisão de alguns milissegundos, uma vez que os anúncios podem ser adicionados ou removidos durante a metade do Gop de uma sequência de vídeo.
[00145] Uma pessoa versada na técnica reconhecerá adicionalmente que vários aparelhos e sistemas, no que diz respeito às modalidades anteriores, bem como as infraestruturas de rede subjacentes apresentadas acima podem ser arquitetadas em um ambiente virtualizado, de acordo com uma arquitetura de virtualização de função de rede (NFV), em modalidades adicionais ou alternativas da presente descrição de patente. Por exemplo, vários recursos físicos, bancos de dados, serviços, aplicativos e funções executados dentro de uma rede de transmissão contínua exemplificativa do presente pedido, o que inclui infraestrutura de processamento de mídia de fonte, conteinerização de mídia, codificação e empacotamento de ladrilho de PE/BIE, etc., apresentados no presente documento acima, podem ser providos como dispositivos, máquinas ou funções virtuais, em que os recursos e aplicativos são virtualizados em funções de rede virtual (VNFs) adequadas ou elementos de rede virtual (VNs), através de uma camada de virtualização adequada. Os recursos que compreendem recursos computacionais, recursos de memória e recursos de infraestrutura de rede são virtualizados em recursos virtuais correspondentes, em que os recursos de computação virtual, recursos de memória virtual e recursos de rede virtual são coletivamente operativos para suportar uma camada de VNF, cujo gerenciamento geral e a
113 / 125 funcionalidade de orquestração podem ser suportados por um gerenciador de infraestrutura virtualizado (VIM) em conjunto com um gerenciador de VNF e um orquestrador de NFV. Um componente de Sistema de Suporte Operacional (OSS) e/ou Sistema de Suporte Empresarial (BSS) pode normalmente ser provido para lidar com funcionalidades de nível de rede, como gerenciamento de rede, gerenciamento de falhas, gerenciamento de configuração, gerenciamento de serviços e gerenciamento de assinantes, etc., que podem fazer interface com a camada de VNF e Componentes de orquestração de NFV, através de interfaces adequadas.
[00146] Além disso, pelo menos uma porção de uma arquitetura de rede exemplificativa, descrita no presente documento, pode ser virtualizada, conforme apresentado acima, e em que a arquitetada em um ambiente de computação em nuvem compreende um agrupamento compartilhado de recursos virtuais configuráveis. Várias peças de hardware/software associadas à codificação e empacotamento de ladrilhos de PE/BIE, otimização de largura de banda e seleção de ladrilhos, multiplexação e conteinerização de ladrilhos, e similares, podem ser implementadas em uma arquitetura orientada a serviços, por exemplo, Software como Serviço (SaaS), Plataforma como Serviço (PaaS), infraestrutura como um Serviço (IaaS) etc., com múltiplas entidades provendo características diferentes de uma modalidade exemplificativa da presente invenção, em que uma ou mais camadas de ambientes virtualizados podem ser representadas em hardware comercial fora da prateleira (COTS). As pessoas versadas na técnica também reconhecerão que esse ambiente de computação em nuvem pode incluir uma ou mais nuvens privadas, nuvens públicas, nuvens híbridas, nuvens comunitárias, nuvens distribuídas, múltiplas nuvens e internuvens (por exemplo, “nuvem de nuvens”) e similares.
[00147] Na descrição acima de várias modalidades da presente descrição, deve ser entendido que a terminologia no presente documento
114 / 125 utilizada tem a finalidade de descrever modalidades específicas apenas, e não se destina a ser limitante da invenção. A menos que definido de outro modo, todos os termos (o que inclui termos técnicos e científicos), usados no presente documento, têm o mesmo significado que o comumente entendido por um técnico no assunto a que esta invenção pertence. Será adicionalmente entendido que termos, como os definidos em dicionários comumente usados, devem ser interpretados como tendo um significado consistente com seu significado no contexto deste relatório descritivo e da técnica relevante, e não podem ser interpretados em um sentido idealizado ou excessivamente formal expressamente definido no presente documento.
[00148] Pelo menos algumas modalidades exemplificativas são descritas no presente documento em referência a diagramas de blocos e/ou ilustrações de fluxogramas de métodos implementados por computador, aparelhos (sistemas e/ou dispositivos) e/ou produtos de programas de computador. Entende-se que um bloco dos diagramas de blocos e/ou as ilustrações de fluxograma, e combinações de blocos nos diagramas de blocos e/ou ilustrações de fluxogramas, podem ser implementados por instruções de programa de computador que são realizadas por um ou mais circuitos de computador. Tais instruções de programa de computação podem ser providas a um circuito de processador de um circuito de computador de uso geral, circuito de computador para fins especiais e/ou outro circuito de processamento de dados programável para produzir uma máquina, de modo que as instruções que são executadas através do processador do computador e/ou outros aparelhos programáveis de processamento de dados, transístores de transformação e de controle, valores armazenados em locais de memória e outros componentes de hardware, dentro desses circuitos, para implementar as funções/atos especificados nos diagramas de blocos e/ou blocos de fluxograma, criando, assim, meios (funcionalidade) e/ou estrutura para a execução das funções/atos especificados nos diagrama(s) de blocos e/ou
115 / 125 bloco(s) de fluxograma. Além disso, as instruções do programa de computação também podem ser armazenadas em uma mídia tangível legível por computador que possa orientar um computador ou outro aparelho de processamento de dados programáveis para funcionar de uma maneira específica, de modo que as instruções armazenadas na mídia legível por computador produzam um artigo de fabricação, o que inclui instruções que aplicam as funções/atos especificados nos diagramas de blocos e/ou blocos de fluxograma ou blocos.
[00149] Conforme apontado anteriormente, a mídia tangível e não transitória legível por computador pode incluir um sistema, aparelho ou dispositivo de armazenamento de dados eletrônico, magnético, óptico, eletromagnético ou semicondutor. Os exemplos mais específicos da mídia legível por computador incluem o seguinte: um disquete de computador portátil, um circuito de memória de acesso aleatório (RAM), um circuito de memória somente leitura (ROM), um circuito de memória somente leitura programável apagável (EPROM ou memória Flash), uma memória somente leitura de disco compacto portátil (CD-ROM) e uma memória somente leitura de disco de vídeo digital portátil (DVD/Blu-ray). As instruções do programa de computação também podem ser carregadas ou, de outra forma, transferidas por download para um computador e/ou outro aparelho de processamento de dados programáveis para fazer com que uma série de etapas operacionais sejam executadas no computador e/ou em outros aparelhos programáveis, para produzir um processo implementado por computador. Assim, as modalidades da presente invenção podem ser incorporadas em hardware e/ou em software (o que inclui firmware, software residente, microcódigo, etc.) que é executado em um processador ou controlador, que podem ser coletivamente denominados “conjunto de circuitos”, “um módulo” ou variantes dos mesmos. Além disso, uma unidade de processamento exemplificativa pode incluir, a título de ilustração, um processador de uso
116 / 125 geral, um processador de propósito especial, um processador convencional, um processador de sinal digital (DSP), uma pluralidade de microprocessadores, um ou mais microprocessadores em associação a um núcleo de DSP, um controlador, um microcontrolador, Circuitos Integrados de Aplicação Específica (ASICs), Circuitos de Arranjo de Porta Programável por Campo (FPGA), qualquer outro tipo de circuito integrado (IC), e/ou uma máquina de estado. Conforme pode ser reconhecido, uma unidade de processador exemplificativa pode empregar processamento distribuído em certas modalidades.
[00150] Além disso, em pelo menos algumas implementações adicionais ou alternativas, as funções/atos descritos nos blocos podem ocorrer fora da ordem mostrada nos fluxogramas. Por exemplo, dois blocos mostrados em sucessão podem, de fato, ser executados de forma substancialmente simultânea, ou os blocos podem, por vezes, ser executados na ordem inversa, dependendo da funcionalidade/atos envolvidos. Além disso, a funcionalidade de um determinado bloco dos fluxogramas e/ou diagramas de blocos pode ser separada em múltiplos blocos, e/ou a funcionalidade de dois ou mais blocos dos fluxogramas e/ou diagramas de blocos pode ser, pelo menos, parcialmente integrada. Além disso, embora alguns dos diagramas incluam setas em caminhos de comunicação para mostrar uma direção primária de comunicação, deve-se entender que a comunicação pode ocorrer na direção oposta, em relação às setas retratadas. Finalmente, outros blocos podem ser adicionados/inseridos entre os blocos que são ilustrados.
[00151] Por conseguinte, deve-se entender claramente que a ordem ou sequência dos atos, das etapas, das funções, dos componentes ou dos blocos ilustrados em qualquer um dos fluxogramas, representados nas Figuras de desenho da presente descrição, pode ser modificada, alterada, substituída, personalizada ou, de outro modo, reorganizada dentro de um determinado
117 / 125 fluxograma, o que inclui exclusão ou omissão de um ato, etapa, função, componente ou bloco específico. Além disso, os atos, as etapas, as funções, os componentes ou os blocos ilustrados em um determinado fluxograma podem ser intermisturados ou, de outro modo, interarranjados ou reorganizados com atos, etapas, funções, componentes ou blocos ilustrados em outro fluxograma, a fim de efetuar variações, modificações e configurações, em relação a um ou mais processos, para fins de prática dos preceitos da presente descrição de patentes.
[00152] Embora várias modalidades tenham sido mostradas e descritas em detalhes, as reivindicações não se limitam a nenhuma modalidade ou exemplo específico. Nenhuma Descrição Detalhada acima deve ser lida como implicando que qualquer componente, elemento, etapa, ato ou função específica seja essencial, de modo que deva ser incluída no âmbito das reivindicações. A referência a um elemento no singular não se destina a significar “um e apenas um”, a menos que explicitamente declarado, mas sim “um ou mais”. Todos os equivalentes estruturais e funcionais aos elementos das modalidades acima descritas, que são conhecidos pelos técnicos no assunto, são expressamente incorporados ao presente documento, a título de referência, e se destinam a ser abrangidos pelas reivindicações presentes. Consequentemente, aquelas pessoas versadas na técnica reconhecerão que as modalidades exemplificativas, descritas no presente documento, podem ser praticadas com várias modificações e alterações, dentro do espírito e âmbito das reivindicações anexas abaixo. MODALIDADES SELECIONADAS:
[00153] 1. Método (2600A) para inserir conteúdo de anúncio em um ambiente de vídeo imersivo de 360 graus, o método compreende: receber (2602) uma solicitação a partir de um dispositivo de cliente para reproduzir um ativo de vídeo imersivo específico, em que cada quadro de vídeo compreende uma matriz de ladrilhos projetados em um
118 / 125 ambiente de exibição tridimensional, 3D, visualizado por um usuário que opera o dispositivo de cliente; selecionar (2604) uma pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico a ser montado como um quadro de vídeo para entrega ao dispositivo de cliente; identificar (2606) uma porção dos ladrilhos de vídeo que podem ser substituídos por um conjunto correspondente de ladrilhos de conteúdo de anúncio; substituir (2608) a porção dos ladrilhos de vídeo pelo conjunto correspondente de ladrilhos de conteúdo de anúncio; e montar (2610) o quadro de vídeo que inclui os ladrilhos de conteúdo de anúncio em locais selecionados e que transmite o quadro de vídeo montado para o dispositivo de cliente.
[00154] 2. O método, conforme recitado na modalidade 1, que compreende adicionalmente: obter (2622) uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma das pluralidades de ladrilhos de vídeo do quadro de vídeo; responsivo à informação de temporização de disponibilidade de inserção de anúncio, identificar (2624) a porção dos ladrilhos de vídeo para substituição pelos ladrilhos de conteúdo de anúncio; e prover (2628) os ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo para um gerador de fluxo multiplexado, a fim de montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
[00155] 3. O método, conforme recitado na modalidade 1, que compreende adicionalmente: obter (2642) um vetor de foco a partir do dispositivo de cliente, em relação ao ativo de vídeo imersivo específico, o vetor de foco
119 / 125 define um campo de visão, FoV, no ambiente de exibição 3D, em relação ao local no qual o usuário está visualizando, em referência a um quadro de vídeo projetado; responsivo ao vetor de foco, identificar (2644) a porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e prover (2648) os ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
[00156] 4. O método, conforme recitado na modalidade 3, que compreende adicionalmente: determinar (3010) se está disponível uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre a pluralidade de ladrilhos de vídeo do quadro de vídeo; em caso afirmativo, remover (3012) os ladrilhos de vídeo identificados como indisponíveis a partir da porção dos ladrilhos de vídeo responsivos à especificação de metadados de ladrilho para obter um subconjunto de ladrilhos de vídeo como elegíveis para substituição; e obter (3014) uma pluralidade de ladrilhos de conteúdo de anúncio correspondente ao subconjunto de ladrilhos de vídeo determinado como elegível para substituição; e prover (3016) a pluralidade de ladrilhos de conteúdo de anúncio e o subconjunto de ladrilhos de vídeo para o gerador de fluxo multiplexado para a montagem do quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
[00157] 5. O método, conforme recitado na modalidade 1, em que a porção de ladrilhos de vídeo identificados para substituição pelos ladrilhos de conteúdo de anúncio é identificada responsiva para determinar os ladrilhos de vídeo do quadro de vídeo que têm baixa atividade.
120 / 125
[00158] 6. O método, conforme recitado na modalidade 5, em que se determina que um subconjunto dos ladrilhos de vídeo que têm baixa atividade seja localizado dentro de um campo de visão, FoV, de uma unidade de exibição associada ao dispositivo de cliente.
[00159] 7. O método, conforme recitado na modalidade 1, em que a pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico é selecionada dentre uma ou mais representações de taxa de bits codificados em ladrilho do ativo de vídeo específico, cada representação de taxa de bits tem uma qualidade de vídeo separada.
[00160] 8. O método, conforme recitado na modalidade 1, em que os ladrilhos de conteúdo de anúncio são gerados a partir de uma ou mais imagens estáticas de conteúdo de anúncio.
[00161] 9. O método, conforme recitado na modalidade 1, em que os ladrilhos de conteúdo de anúncio são gerados a partir de uma ou mais sequências de vídeo de conteúdo de anúncio.
[00162] 10. Um sistema de servidor de vídeo operativo em associação a um ambiente de vídeo imersivo de 360 graus, o sistema compreende: um ou mais processadores; e um ou mais módulos de memória persistentes que têm instruções de programa armazenadas nos mesmos que, quando executados por um ou mais processadores, realizam os seguintes atos em associação a um ou mais módulos: receber uma solicitação a partir de um dispositivo de cliente para a reprodução de um ativo de vídeo imersivo específico, em que cada quadro de vídeo compreende uma matriz de ladrilhos projetados em um ambiente de exibição tridimensional, 3D, visualizado por um usuário que opera o dispositivo de cliente; selecionar uma pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico a ser montado como um quadro de vídeo para
121 / 125 entrega ao dispositivo de cliente; identificar uma porção dos ladrilhos de vídeo que podem ser substituídos por um conjunto correspondente de ladrilhos de conteúdo de anúncio; substituir a porção dos ladrilhos de vídeo pelo conjunto correspondente de ladrilhos de conteúdo de anúncio; e montar o quadro vídeo que inclui os ladrilhos de conteúdo de anúncio em locais selecionados e transmitir o quadro vídeo montado para o dispositivo de cliente.
[00163] 11. O sistema, conforme recitado na modalidade 10, em que as instruções de programa compreendem adicionalmente instruções para a realização dos seguintes atos: obter uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre a pluralidade de ladrilhos de vídeo do quadro de vídeo; responsivo à informação de temporização de disponibilidade de inserção de anúncio, identificar a porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e prover os ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
[00164] 12. O sistema, conforme recitado na modalidade 10, em que as instruções de programa compreendem adicionalmente instruções para a realização de seguintes atos: obter um vetor de foco a partir do dispositivo de cliente, em relação ao ativo de vídeo imersivo específico, o vetor de foco define um campo de visão, FoV, no ambiente de exibição 3D, em relação ao qual o usuário está visualizando, em referência a um quadro de vídeo projetado;
122 / 125 responsivo ao vetor de foco, identificar a porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e prover os ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
[00165] 13. O sistema, conforme recitado na modalidade 12, em que as instruções do programa compreendem adicionalmente instruções para a realização de seguintes atos: determinar se uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre as pluralidades de ladrilhos de vídeo do quadro de vídeo, está disponível; em caso afirmativo, remover os ladrilhos de vídeo identificados como indisponíveis da porção dos ladrilhos de vídeo responsivos à especificação de metadados de ladrilho para obter um subconjunto de ladrilhos de vídeo como elegível para substituição; e obter uma pluralidade de ladrilhos de conteúdo de anúncio correspondente ao subconjunto de ladrilhos de vídeo determinado para ser elegível para substituição; e prover a pluralidade de ladrilhos de conteúdo de anúncio e o subconjunto de ladrilhos de vídeo ao gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
[00166] 14. O sistema, conforme recitado na modalidade 10, em que a porção de ladrilhos de vídeo identificados para substituição por ladrilhos de conteúdo de anúncio é identificada responsiva para determinar ladrilhos de vídeo do quadro de vídeo que tem baixa atividade.
[00167] 15. O sistema, conforme recitado na modalidade 14, em que se determina que um subconjunto dos ladrilhos de vídeo que têm baixa atividade seja localizado dentro de um campo de visão, FoV, de uma unidade de
123 / 125 exibição associada ao dispositivo de cliente.
[00168] 16. O sistema, conforme recitado na modalidade 10, em que a pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico é selecionada dentre uma ou mais representações de taxa de bits codificados por ladrilho do ativo de vídeo específico, cada representação de taxa de bits tem uma qualidade de vídeo separada.
[00169] 17. O sistema, conforme recitado na modalidade 10, em que os ladrilhos de conteúdo de anúncio são gerados a partir de uma ou mais imagens estáticas de conteúdo de anúncio.
[00170] 18. O sistema, conforme recitado na modalidade 10, em que os ladrilhos de conteúdo de anúncio são gerados a partir de uma ou mais sequências de vídeo de conteúdo de anúncio.
[00171] 19. Uma mídia legível por computador tangível não transitório que tem instruções de programa armazenadas na mesma, que efetua, quando executado por um ou mais processadores de um elemento de rede, um processo para inserção de conteúdo de anúncio em um ambiente de vídeo imersivo de 360 graus, a mídia legível por computador tangível não transitória compreende: uma porção de código para processar uma solicitação a partir de um dispositivo de cliente para reproduzir um ativo de vídeo imersivo específico, em que cada quadro de vídeo compreende uma matriz de ladrilhos projetados em um ambiente de exibição tridimensional, 3D, visualizado por um usuário que opera o dispositivo de cliente; uma porção de código para selecionar uma pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico a ser montado como um quadro de vídeo para entrega ao dispositivo de cliente; uma porção de código para identificar uma porção dos ladrilhos de vídeo que podem ser substituídos por um conjunto correspondente de ladrilhos de conteúdo de anúncio;
124 / 125 uma porção de código para substituir a porção dos ladrilhos de vídeo pelo conjunto correspondente de ladrilhos de conteúdo de anúncio; e uma porção de código para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio em locais selecionados, e transmitir o quadro de vídeo montado para o dispositivo de cliente.
[00172] 20. A mídia legível por computador tangível não transitório, conforme recitada na modalidade 19, em que as instruções de programa compreendem adicionalmente instruções para realizar:
[00173] obtenção de uma especificação de metadados ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre a pluralidade de ladrilhos de vídeo do quadro de vídeo; responsivo à informação de temporização de disponibilidade de inserção de anúncio, identificação da porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e provisão dos ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
[00174] 21. A mídia legível por computador tangível não transitório, conforme recitada na modalidade 19, em que as instruções de programa compreendem adicionalmente instruções para realizar: obtenção de um vetor de foco a partir do dispositivo de cliente, em relação ao ativo de vídeo imersivo específico, o vetor de foco define um campo de visão, FoV, no ambiente de exibição 3D, em relação ao qual o usuário está visualizando, em referência a um quadro de vídeo projetado; responsivo ao vetor de foco, identificação da porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e provisão dos ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo,
125 / 125 o que inclui os ladrilhos de conteúdo de anúncio.
[00175] 22. A mídia legível por computador tangível não transitório, conforme recitada na modalidade 21, em que as instruções de programa compreendem adicionalmente instruções para realizar: determinação da possibilidade de uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre a pluralidade de ladrilhos de vídeo do quadro de vídeo, estar disponível; em caso afirmativo, a remoção de ladrilhos de vídeo identificados como indisponíveis a partir da porção dos ladrilhos de vídeo responsivos à especificação de metadados de ladrilho para obter um subconjunto de ladrilhos de vídeo como elegível para substituição; e obtenção de uma pluralidade de ladrilhos de conteúdo de anúncio correspondente ao subconjunto de ladrilhos de vídeo determinado como elegível para substituição; e provisão da pluralidade de ladrilhos de conteúdo de anúncio e o subconjunto de ladrilhos de vídeo para o gerador de fluxo multiplexado para a montagem do quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.

Claims (22)

REIVINDICAÇÕES
1. Método (2600A) para inserir conteúdo de anúncio em um ambiente de vídeo imersivo de 360 graus, o método caracterizado pelo fato de que compreende: receber (2602) uma solicitação a partir de um dispositivo de cliente para reproduzir um ativo de vídeo imersivo específico, em que cada quadro de vídeo compreende uma matriz de ladrilhos projetados em um ambiente de exibição tridimensional, 3D, visualizado por um usuário que opera o dispositivo de cliente; selecionar (2604) uma pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico a ser montado como um quadro de vídeo para entrega ao dispositivo de cliente; identificar (2606) uma porção dos ladrilhos de vídeo que podem ser substituídos por um conjunto correspondente de ladrilhos de conteúdo de anúncio; substituir (2608) a porção dos ladrilhos de vídeo pelo conjunto correspondente de ladrilhos de conteúdo de anúncio; e montar (2610) o quadro de vídeo que inclui os ladrilhos de conteúdo de anúncio em locais selecionados e que transmite o quadro de vídeo montado para o dispositivo de cliente.
2. Método de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: obter (2622) uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma das pluralidades de ladrilhos de vídeo do quadro de vídeo; responsivo à informação de temporização de disponibilidade de inserção de anúncio, identificar (2624) a porção dos ladrilhos de vídeo para substituição pelos ladrilhos de conteúdo de anúncio; e prover (2628) os ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo para um gerador de fluxo multiplexado, a fim de montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
3. Método de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: obter (2642) um vetor de foco a partir do dispositivo de cliente, em relação ao ativo de vídeo imersivo específico, o vetor de foco define um campo de visão, FoV, no ambiente de exibição 3D, em relação ao local no qual o usuário está visualizando, em referência a um quadro de vídeo projetado; responsivo ao vetor de foco, identificar (2644) a porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e prover (2648) os ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
4. Método de acordo com a reivindicação 3, caracterizado pelo fato de que compreende adicionalmente: determinar (3010) se está disponível uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre a pluralidade de ladrilhos de vídeo do quadro de vídeo; em caso afirmativo, remover (3012) os ladrilhos de vídeo identificados como indisponíveis a partir da porção dos ladrilhos de vídeo responsivos à especificação de metadados de ladrilho para obter um subconjunto de ladrilhos de vídeo como elegíveis para substituição; e obter (3014) uma pluralidade de ladrilhos de conteúdo de anúncio correspondente ao subconjunto de ladrilhos de vídeo determinado como elegível para substituição; e prover (3016) a pluralidade de ladrilhos de conteúdo de anúncio e o subconjunto de ladrilhos de vídeo para o gerador de fluxo multiplexado para a montagem do quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
5. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a porção de ladrilhos de vídeo identificados para substituição por ladrilhos de conteúdo de anúncio é identificada responsiva para determinar os ladrilhos de vídeo do quadro de vídeo que têm baixa atividade.
6. Método de acordo com a reivindicação 5, caracterizado pelo fato de que se determina que um subconjunto dos ladrilhos de vídeo que têm baixa atividade esteja localizado dentro de um campo de visão, FoV, de uma unidade de exibição associada ao dispositivo de cliente.
7. Método de acordo com a reivindicação 1, caracterizado pelo fato de que a pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico é selecionada dentre uma ou mais representações de taxa de bits codificados por ladrilho do ativo de vídeo específico, cada representação de taxa de bits tendo uma qualidade de vídeo separada.
8. Método de acordo com a reivindicação 1, caracterizado pelo fato de que os ladrilhos de conteúdo de anúncio são gerados a partir de uma ou mais imagens estáticas de conteúdo de anúncio.
9. Método de acordo com a reivindicação 1, caracterizado pelo fato de que os ladrilhos de conteúdo de anúncio são gerados a partir de uma ou mais sequências de vídeo de conteúdo de anúncio.
10. Sistema de servidor de vídeo operativo em associação a um ambiente de vídeo imersivo de 360 graus, o sistema caracterizado pelo fato de que compreende: um ou mais processadores; e um ou mais módulos de memória persistentes que têm instruções de programa armazenadas nos mesmos que, quando executados por um ou mais processadores, realizam os seguintes atos em associação a um ou mais módulos: receber uma solicitação a partir de um dispositivo de cliente para a reprodução de um ativo de vídeo imersivo específico, em que cada quadro de vídeo compreende uma matriz de ladrilhos projetados em um ambiente de exibição tridimensional, 3D, visualizado por um usuário que opera o dispositivo de cliente; selecionar uma pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico a ser montado como um quadro de vídeo para entrega ao dispositivo de cliente; identificar uma porção dos ladrilhos de vídeo que podem ser substituídos por um conjunto correspondente de ladrilhos de conteúdo de anúncio; substituir a porção dos ladrilhos de vídeo pelo conjunto correspondente de ladrilhos de conteúdo de anúncio; e montar o quadro de vídeo que inclui os ladrilhos de conteúdo de anúncio em locais selecionados e transmitir o quadro de vídeo montado para o dispositivo de cliente.
11. Sistema de acordo com a reivindicação 10, caracterizado pelo fato de que as instruções de programa compreendem adicionalmente as instruções para a realização dos seguintes atos: obter uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre a pluralidade de ladrilhos de vídeo do quadro de vídeo; responsivo à informação de temporização de disponibilidade de inserção de anúncio, identificar a porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e prover os ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
12. Sistema de acordo com a reivindicação 10, caracterizado pelo fato de que as instruções de programa compreendem adicionalmente as instruções para a realização dos seguintes atos: obter um vetor de foco a partir do dispositivo de cliente, em relação ao ativo de vídeo imersivo específico, o vetor de foco define um campo de visão, FoV, no ambiente de exibição 3D, em relação ao qual o usuário está visualizando, em referência a um quadro de vídeo projetado; responsivo ao vetor de foco, identificar a porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e prover os ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
13. Sistema de acordo com a reivindicação 12, caracterizado pelo fato de que as instruções de programa compreendem adicionalmente as instruções para a realização dos seguintes atos: determinar se uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre as pluralidades de ladrilhos de vídeo do quadro de vídeo, está disponível; em caso afirmativo, remover os ladrilhos de vídeo identificados como indisponíveis da porção dos ladrilhos de vídeo responsivos à especificação de metadados de ladrilho para obter um subconjunto de ladrilhos de vídeo como elegível para substituição; e obter uma pluralidade de ladrilhos de conteúdo de anúncio correspondente ao subconjunto de ladrilhos de vídeo determinado para ser elegível para substituição; e prover a pluralidade de ladrilhos de conteúdo de anúncio e o subconjunto de ladrilhos de vídeo ao gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
14. Sistema de acordo com a reivindicação 10, caracterizado pelo fato de que a porção de ladrilhos de vídeo identificados para substituição por ladrilhos de conteúdo de anúncio é identificada responsiva para determinar os ladrilhos de vídeo do quadro de vídeo que têm baixa atividade.
15. Sistema de acordo com a reivindicação 14, caracterizado pelo fato de que se determina que um subconjunto dos ladrilhos de vídeo que têm baixa atividade esteja localizado dentro de um campo de visão, FoV, de uma unidade de exibição associada ao dispositivo de cliente.
16. Sistema de acordo com a reivindicação 10, caracterizado pelo fato de que a pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico é selecionada dentre uma ou mais representações de taxa de bits codificados por ladrilho do ativo de vídeo específico, cada representação de taxa de bits tem uma qualidade de vídeo separada.
17. Sistema de acordo com a reivindicação 10, caracterizado pelo fato de que os ladrilhos de conteúdo de anúncio são gerados a partir de uma ou mais imagens estáticas de conteúdo de anúncio.
18. Sistema de acordo com a reivindicação 10, caracterizado pelo fato de que os ladrilhos de conteúdo de anúncio são gerados a partir de uma ou mais sequências de vídeo de conteúdo de anúncio.
19. Mídia legível por computador tangível não transitória tendo instruções de programa armazenadas na mesma, que efetuam, quando executadas por um ou mais processadores de um elemento de rede, um processo para inserção de conteúdo de anúncio em um ambiente de vídeo imersivo de 360 graus, a mídia legível por computador tangível não transitória caracterizada pelo fato de que compreende: uma porção de código para processar uma solicitação a partir de um dispositivo de cliente para reproduzir um ativo de vídeo imersivo específico, em que cada quadro de vídeo compreende uma matriz de ladrilhos projetados em um ambiente de exibição tridimensional, 3D, visualizado por um usuário que opera o dispositivo de cliente; uma porção de código para selecionar uma pluralidade de ladrilhos de vídeo do ativo de vídeo imersivo específico a ser montado como um quadro de vídeo para entrega ao dispositivo de cliente; uma porção de código para identificar uma porção dos ladrilhos de vídeo que podem ser substituídos por um conjunto correspondente de ladrilhos de conteúdo de anúncio; uma porção de código para substituir a porção dos ladrilhos de vídeo pelo conjunto correspondente de ladrilhos de conteúdo de anúncio; e uma porção de código para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio em locais selecionados, e transmitir o quadro de vídeo montado para o dispositivo de cliente.
20. Mídia legível por computador tangível não transitória de acordo com a reivindicação 19, caracterizada pelo fato de que as instruções de programa compreendem adicionalmente instruções para realizar: obtenção de uma especificação de metadados ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre a pluralidade de ladrilhos de vídeo do quadro de vídeo; responsivo à informação de temporização de disponibilidade de inserção de anúncio, identificação da porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e provisão dos ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
21. Mídia legível por computador tangível não transitória de acordo com a reivindicação 19, caracterizada pelo fato de que as instruções de programa compreendem adicionalmente instruções para realizar:
obtenção de um vetor de foco a partir do dispositivo de cliente, em relação ao ativo de vídeo imersivo específico, o vetor de foco define um campo de visão, FoV, no ambiente de exibição 3D, em relação ao qual o usuário está visualizando, em referência a um quadro de vídeo projetado; responsivo ao vetor de foco, identificação da porção dos ladrilhos de vídeo para substituir pelos ladrilhos de conteúdo de anúncio; e provisão dos ladrilhos de conteúdo de anúncio e os ladrilhos de vídeo a um gerador de fluxo multiplexado para montar o quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
22. Mídia legível por computador tangível não transitória de acordo com a reivindicação 21, caracterizada pelo fato de que as instruções de programa compreendem adicionalmente instruções para realizar: determinação da possibilidade de uma especificação de metadados de ladrilho que identifica a informação de temporização de disponibilidade de inserção de anúncio, em relação a cada uma dentre a pluralidade de ladrilhos de vídeo do quadro de vídeo, estar disponível; em caso afirmativo, a remoção de ladrilhos de vídeo identificados como indisponíveis a partir da porção dos ladrilhos de vídeo responsivos à especificação de metadados de ladrilho para obter um subconjunto de ladrilhos de vídeo como elegível para substituição; e obtenção de uma pluralidade de ladrilhos de conteúdo de anúncio correspondente ao subconjunto de ladrilhos de vídeo determinado como elegível para substituição; e provisão da pluralidade de ladrilhos de conteúdo de anúncio e o subconjunto de ladrilhos de vídeo para o gerador de fluxo multiplexado para a montagem do quadro de vídeo, o que inclui os ladrilhos de conteúdo de anúncio.
BR112021001468-3A 2018-07-27 2019-07-15 método para inserir conteúdo de anúncio, sistema de servidor de vídeo operativo, e, mídia legível por computador tangível não transitória BR112021001468A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/047,802 US10841662B2 (en) 2018-07-27 2018-07-27 System and method for inserting advertisement content in 360° immersive video
US16/047,802 2018-07-27
PCT/SE2019/050693 WO2020022946A1 (en) 2018-07-27 2019-07-15 System and method for inserting advertisement content in 360-degree immersive video

Publications (1)

Publication Number Publication Date
BR112021001468A2 true BR112021001468A2 (pt) 2021-04-27

Family

ID=69177578

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021001468-3A BR112021001468A2 (pt) 2018-07-27 2019-07-15 método para inserir conteúdo de anúncio, sistema de servidor de vídeo operativo, e, mídia legível por computador tangível não transitória

Country Status (7)

Country Link
US (2) US10841662B2 (pt)
EP (1) EP3831082A4 (pt)
KR (1) KR20210038887A (pt)
CN (1) CN112740710A (pt)
BR (1) BR112021001468A2 (pt)
CO (1) CO2021002023A2 (pt)
WO (1) WO2020022946A1 (pt)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2554877B (en) * 2016-10-10 2021-03-31 Canon Kk Methods, devices, and computer programs for improving rendering display during streaming of timed media data
WO2020033455A1 (en) * 2018-08-07 2020-02-13 Core Omnidirectional video streaming
US11282292B2 (en) * 2018-10-14 2022-03-22 Mert Levent OGUZATA Method based on unique metadata for making direct modifications to 2D, 3D digital image formats quickly and rendering the changes on AR/VR and mixed reality platforms in real-time
US11082535B2 (en) * 2018-12-20 2021-08-03 Here Global B.V. Location enabled augmented reality (AR) system and method for interoperability of AR applications
WO2020166492A1 (ja) * 2019-02-15 2020-08-20 株式会社Jvcケンウッド 画像調整システム、画像調整装置、及び画像調整方法
US20200346114A1 (en) * 2019-04-30 2020-11-05 Microsoft Technology Licensing, Llc Contextual in-game element recognition and dynamic advertisement overlay
US20210192681A1 (en) * 2019-12-18 2021-06-24 Ati Technologies Ulc Frame reprojection for virtual reality and augmented reality
EP4082217A1 (en) * 2019-12-24 2022-11-02 Koninklijke KPN N.V. Video processing device and manifest file for video streaming
US20230135254A1 (en) * 2020-07-01 2023-05-04 Gennadii BAKHCHEVAN A system and a method for personalized content presentation
CN114035672A (zh) * 2020-07-20 2022-02-11 华为技术有限公司 一种虚拟现实vr场景的视频处理方法及相关设备
US11571225B2 (en) 2020-08-17 2023-02-07 Russell Todd Nevins System and method for location determination using movement between optical labels and a 3D spatial mapping camera
CN112346614B (zh) * 2020-10-28 2022-07-29 京东方科技集团股份有限公司 图像显示方法及装置、电子设备、存储介质
WO2022094492A1 (en) * 2020-10-29 2022-05-05 Innovative Transducer Implementation Llc System and method for arrangements of visual information in user-configurable format
CN112104893B (zh) * 2020-11-04 2021-01-29 武汉中科通达高新技术股份有限公司 一种实现网页端无插件播放的视频流管理方法及装置
CN112506345B (zh) * 2020-12-10 2024-04-16 北京达佳互联信息技术有限公司 一种页面显示方法、装置、电子设备及存储介质
US20220331008A1 (en) 2021-04-02 2022-10-20 Russell Todd Nevins System and method for location determination using movement of an optical label fixed to a bone using a spatial mapping camera
US11575952B2 (en) * 2021-04-12 2023-02-07 Arris Enterprises Llc Digital rights management while streaming to display array
US11600053B1 (en) 2021-10-04 2023-03-07 Russell Todd Nevins System and method for location determination using a mixed reality device and multiple imaging cameras
CN114051090B (zh) * 2021-10-12 2023-07-18 聚好看科技股份有限公司 一种全景视频中投放资源的方法及显示设备
CN114051089B (zh) * 2021-10-12 2023-09-15 聚好看科技股份有限公司 一种全景视频中投放资源的方法及显示设备
US20230140042A1 (en) * 2021-11-04 2023-05-04 Tencent America LLC Method and apparatus for signaling occlude-free regions in 360 video conferencing
US20240104766A1 (en) * 2022-09-23 2024-03-28 Apple Inc. Method and Device for Generating Metadata Estimations based on Metadata Subdivisions
CN116151889B (zh) * 2023-04-04 2023-06-20 上员品牌数智科技(深圳)有限公司 一种基于大数据的视频广告智能投放系统及方法
CN117078805B (zh) * 2023-10-18 2023-12-15 北京华航唯实机器人科技股份有限公司 视向动画的生成方法及装置

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050018911A1 (en) 2003-07-24 2005-01-27 Eastman Kodak Company Foveated video coding system and method
US7975283B2 (en) 2005-03-31 2011-07-05 At&T Intellectual Property I, L.P. Presence detection in a bandwidth management system
EP2109077A3 (en) * 2006-11-10 2011-07-06 Media Layers Ltd. Method and computer program product for providing advertisements to a mobile user device
EP1926321A1 (en) 2006-11-27 2008-05-28 Matsushita Electric Industrial Co., Ltd. Hybrid texture representation
US8126054B2 (en) 2008-01-09 2012-02-28 Motorola Mobility, Inc. Method and apparatus for highly scalable intraframe video coding
US20100149073A1 (en) 2008-11-02 2010-06-17 David Chaum Near to Eye Display System and Appliance
US20100050221A1 (en) 2008-06-20 2010-02-25 Mccutchen David J Image Delivery System with Image Quality Varying with Frame Rate
US8385404B2 (en) 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
CN102577381A (zh) 2009-10-14 2012-07-11 夏普株式会社 并行视频编码和解码方法
EP2622859B1 (en) 2010-09-29 2016-08-31 Dolby Laboratories Licensing Corporation Region based asymmetric coding for 3d video compression
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
US8494290B2 (en) 2011-05-05 2013-07-23 Mitsubishi Electric Research Laboratories, Inc. Method for coding pictures using hierarchical transform units
AU2011204946C1 (en) 2011-07-22 2012-07-26 Microsoft Technology Licensing, Llc Automatic text scrolling on a head-mounted display
EP2752011B1 (en) 2011-08-31 2020-05-20 Nokia Technologies Oy Multiview video coding and decoding
US20130294513A1 (en) 2012-05-07 2013-11-07 Qualcomm Incorporated Inter layer merge list construction for video coding
JP6055555B2 (ja) 2012-11-13 2016-12-27 インテル コーポレイション 次世代ビデオのためのビデオコーデックアーキテクチャ
US8854447B2 (en) 2012-12-21 2014-10-07 United Video Properties, Inc. Systems and methods for automatically adjusting audio based on gaze point
US9467750B2 (en) * 2013-05-31 2016-10-11 Adobe Systems Incorporated Placing unobtrusive overlays in video content
EP3562170A1 (en) * 2013-07-29 2019-10-30 Koninklijke KPN N.V. Providing tile video streams to a client
US9552060B2 (en) 2014-01-28 2017-01-24 Microsoft Technology Licensing, Llc Radial selection by vestibulo-ocular reflex fixation
US9813470B2 (en) 2014-04-07 2017-11-07 Ericsson Ab Unicast ABR streaming
US9392212B1 (en) 2014-04-17 2016-07-12 Visionary Vr, Inc. System and method for presenting virtual reality content to a user
US20150346812A1 (en) 2014-05-29 2015-12-03 Nextvr Inc. Methods and apparatus for receiving content and/or playing back content
US10852838B2 (en) 2014-06-14 2020-12-01 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
CA2895637C (en) 2014-06-27 2023-09-05 Bce Inc. Content consumption monitoring
US10694192B2 (en) 2014-06-27 2020-06-23 Koninklijke Kpn N.V. HEVC-tiled video streaming
US20160277772A1 (en) 2014-09-30 2016-09-22 Telefonaktiebolaget L M Ericsson (Publ) Reduced bit rate immersive video
US20160353146A1 (en) 2015-05-27 2016-12-01 Google Inc. Method and apparatus to reduce spherical video bandwidth to user headset
WO2016194441A1 (ja) * 2015-06-02 2016-12-08 株式会社電通 立体広告枠決定システム、ユーザ端末および立体広告枠決定コンピュータ
US10210844B2 (en) 2015-06-29 2019-02-19 Microsoft Technology Licensing, Llc Holographic near-eye display
US10674185B2 (en) * 2015-10-08 2020-06-02 Koninklijke Kpn N.V. Enhancing a region of interest in video frames of a video stream
US10558353B2 (en) 2015-11-18 2020-02-11 Samsung Electronics Co., Ltd. System and method for 360-degree video navigation
US10643381B2 (en) 2016-01-12 2020-05-05 Qualcomm Incorporated Systems and methods for rendering multiple levels of detail
US10313745B2 (en) 2016-01-17 2019-06-04 Bitmovin Gmbh Adaptive streaming of an immersive video scene
WO2017153355A1 (de) 2016-03-07 2017-09-14 SensoMotoric Instruments Gesellschaft für innovative Sensorik mbH Verfahren und vorrichtung zum durchführen einer blickabbildung
US10438400B2 (en) 2016-03-08 2019-10-08 Nvidia Corporation Perceptually-based foveated rendering using a contrast-enhancing filter
GB2548346B (en) * 2016-03-11 2020-11-18 Sony Interactive Entertainment Europe Ltd Image processing method and apparatus
EP3451675A4 (en) 2016-04-26 2019-12-04 LG Electronics Inc. -1- METHOD FOR TRANSFERRING 360 DEGREE VIDEOS, METHOD FOR RECEIVING 360 DEGREE VIDEOS, DEVICE FOR TRANSMITTING 360 DEGREE VIDEOS AND DEVICE FOR RECEIVING 360 DEGREE VIDEOS
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
US11184624B2 (en) 2016-05-19 2021-11-23 Qualcomm Incorporated Regional random access in pictures
CN117336499A (zh) 2016-05-26 2024-01-02 Vid拓展公司 视窗自适应360度视频传送的方法和设备
US20170359603A1 (en) 2016-06-09 2017-12-14 James Alexander Levy Viewer tailored dynamic video compression using attention feedback
US10277914B2 (en) 2016-06-23 2019-04-30 Qualcomm Incorporated Measuring spherical image quality metrics based on user field of view
WO2018035133A1 (en) * 2016-08-17 2018-02-22 Vid Scale, Inc. Secondary content insertion in 360-degree video
US20180063599A1 (en) * 2016-08-26 2018-03-01 Minkonet Corporation Method of Displaying Advertisement of 360 VR Video
WO2018044073A1 (en) 2016-09-01 2018-03-08 Samsung Electronics Co., Ltd. Image streaming method and electronic device for supporting the same
US10516908B2 (en) 2016-09-08 2019-12-24 Telefonaktiebolaget Lm Ericsson (Publ) Bitrate control in virtual reality (VR) environments using time-shifting and unicast delivery
US11395020B2 (en) 2016-09-08 2022-07-19 Telefonaktiebolaget Lm Ericsson (Publ) Bitrate control in a virtual reality (VR) environment
WO2018049221A1 (en) 2016-09-09 2018-03-15 Vid Scale, Inc. Methods and apparatus to reduce latency for 360-degree viewport adaptive streaming
GB2554377A (en) 2016-09-23 2018-04-04 Dnanudge Ltd Method and apparatus for analysing a biological sample
GB2554877B (en) 2016-10-10 2021-03-31 Canon Kk Methods, devices, and computer programs for improving rendering display during streaming of timed media data
US10917564B2 (en) 2016-10-12 2021-02-09 Qualcomm Incorporated Systems and methods of generating and processing files for partial decoding and most interested regions
WO2018079166A1 (ja) * 2016-10-26 2018-05-03 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
US10440361B2 (en) * 2016-11-22 2019-10-08 Pixvana, Inc. Variable image data reduction system and method
US10595069B2 (en) 2016-12-05 2020-03-17 Adobe Inc. Prioritizing tile-based virtual reality video streaming using adaptive rate allocation
CN108156484B (zh) 2016-12-05 2022-01-14 奥多比公司 利用自适应速率分配优先处理基于图块的虚拟现实视频流
US10620441B2 (en) 2016-12-14 2020-04-14 Qualcomm Incorporated Viewport-aware quality metric for 360-degree video
US10110802B2 (en) 2016-12-30 2018-10-23 Axis Ab Historical gaze heat map for a video stream
US10560680B2 (en) 2017-01-28 2020-02-11 Microsoft Technology Licensing, Llc Virtual reality with interactive streaming video and likelihood-based foveation
US11172208B2 (en) 2017-02-28 2021-11-09 Nokia Technologies Oy Method and apparatus for improving the visual quality of viewport-based omnidirectional video streaming
CN106911902B (zh) * 2017-03-15 2020-01-07 微鲸科技有限公司 视频图像传输方法、接收方法及装置
CN110679147B (zh) 2017-03-22 2022-03-08 奇跃公司 用于显示系统的基于深度的凹式渲染
WO2018194954A1 (en) 2017-04-16 2018-10-25 Visbit Inc. System, algorithms, and designs of view-optimized zoom for 360 degree video
US10652579B2 (en) 2017-06-12 2020-05-12 Dolby Laboratories Licensing Corporation Coding multiview video
EP3454566B1 (en) 2017-09-11 2021-05-05 Tiledmedia B.V. Streaming frames of spatial elements to a client device
US10819645B2 (en) 2017-09-20 2020-10-27 Futurewei Technologies, Inc. Combined method for data rate and field of view size adaptation for virtual reality and 360 degree video streaming
US10818087B2 (en) 2017-10-02 2020-10-27 At&T Intellectual Property I, L.P. Selective streaming of immersive video based on field-of-view prediction
EP3698372A1 (en) 2017-10-17 2020-08-26 Verily Life Sciences LLC Systems and methods for segmenting surgical videos
EP3531703A1 (en) 2018-02-26 2019-08-28 Thomson Licensing Method and network equipment for encoding an immersive video spatially tiled with a set of tiles
US11108841B2 (en) 2018-06-19 2021-08-31 At&T Intellectual Property I, L.P. Apparatus, storage medium and method for heterogeneous segmentation of video streaming

Also Published As

Publication number Publication date
KR20210038887A (ko) 2021-04-08
WO2020022946A1 (en) 2020-01-30
US10841662B2 (en) 2020-11-17
CO2021002023A2 (es) 2021-03-08
US11647258B2 (en) 2023-05-09
CN112740710A (zh) 2021-04-30
EP3831082A1 (en) 2021-06-09
US20200037043A1 (en) 2020-01-30
US20210021908A1 (en) 2021-01-21
EP3831082A4 (en) 2021-08-04
US20230269443A1 (en) 2023-08-24

Similar Documents

Publication Publication Date Title
US11647258B2 (en) Immersive video with advertisement content
US11758103B2 (en) Video client optimization during pause
US11758105B2 (en) Immersive video system and method based on gaze vector information
US10356387B1 (en) Bookmarking system and method in 360° immersive video based on gaze vector information
US10623736B2 (en) Tile selection and bandwidth optimization for providing 360° immersive video
US10432970B1 (en) System and method for encoding 360° immersive video
US10440416B1 (en) System and method for providing quality control in 360° immersive video during pause
US10567780B2 (en) System and method for encoding 360° immersive video
US12035019B2 (en) Video session with advertisement content
Phillips et al. System and method for encoding 360 immersive video