BR112019010815A2 - exibição de distorção de imagem sincronizada - Google Patents

exibição de distorção de imagem sincronizada Download PDF

Info

Publication number
BR112019010815A2
BR112019010815A2 BR112019010815A BR112019010815A BR112019010815A2 BR 112019010815 A2 BR112019010815 A2 BR 112019010815A2 BR 112019010815 A BR112019010815 A BR 112019010815A BR 112019010815 A BR112019010815 A BR 112019010815A BR 112019010815 A2 BR112019010815 A2 BR 112019010815A2
Authority
BR
Brazil
Prior art keywords
display device
distortion
image
display
usable
Prior art date
Application number
BR112019010815A
Other languages
English (en)
Inventor
Menachem Assaf
Renschler Martin
Ribble Maurice
Khan Moinul
Quach Nhon
Bi Ning
Chandrasekhar Ramesh
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of BR112019010815A2 publication Critical patent/BR112019010815A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/012Head tracking input arrangements
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Controls And Circuits For Display Device (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

certos aspectos da presente revelação fornecem métodos e aparelhos para operar um dispositivo de display usável. certos aspectos da presente revelação fornecem um método para operar um dispositivo de display usável. o método inclui determinar uma posição do dispositivo de display usável com base em um sensor de movimento. o método inclui renderizar, por uma unidade de processamento gráfico, uma imagem com base na posição determinada. o método inclui determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento. o método inclui distorcer, por um motor de distorção, uma primeira porção da imagem renderizada com base na primeira posição atualizada. o método inclui exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável.

Description

EXIBIÇÃO DE DISTORÇÃO DE IMAGEM SINCRONIZADA
Referência remissiva a pedidos relacionados [0001] O presente pedido reivindica prioridade ao pedido US número 15/374,165, depositado em 9 de dezembro de 2016, que é cedido à cessionária do presente e pelo presente expressamente incorporado na presente invenção.
Campo técnico [0002] Certos aspectos da presente revelação se referem em geral a processamento de imagem e, mais particularmente, a técnicas para exibição de distorção de imagem sincronizada.
Antecedentes [0003] O uso de dispositivos de display usáveis, como para uso em sistemas de realidade virtual (VR) , está se tornando mais predominante. Por exemplo, usuários podem usar os dispositivos de display usáveis para imergir visualmente eles próprios em um ambiente VR ou de realidade aumentada (AR). Um dispositivo de display usável pode compreender qualquer tipo de dispositivo de display cabeado ou sem fio que é usado no corpo de um usuário. Como exemplo, o dispositivo de display usável pode compreender um display usado na cabeça cabeado ou sem fio ou display montado na cabeça cabeado ou sem fio (HMD) que é usado na cabeça de um usuário para posicionar um ou mais displays (opacos, transparentes, semitransparentes etc.) na frente dos olhos do usuário.
[0004] Um ou mais processadores (por exemplo, unidade de processamento gráfico (GPU), unidade de processamento central (CPU), etc.) podem ser configurados para processar e renderizar os dados de multimídia (por
Petição 870190049486, de 27/05/2019, pág. 8/64
2/35 exemplo, imagens, cenas, vídeos etc.) exibidos no dispositivo de display usável. Tais processadores podem ser integrados no dispositivo de display usável ou podem ser acoplados ao dispositivo de display usável (por exemplo, usando conexão cabeada ou sem fio).
[0005] Além disso, o dispositivo de display usável pode incluir um ou mais sensores (por exemplo, acelerômetro(s), magnetômetro(s), giroscópios, receptor(es) de Sistema de Posicionamento global (GPS) (e/ou outro(s) receptor(es) de Sistema de Posicionamento por satélite (SPS)), altímetro(s), etc.), para detectar movimento e/ou orientação do dispositivo de display usável. O movimento e/ou orientação do dispositivo de display usável pode corresponder ao movimento e/ou orientação de um usuário (por exemplo, cabeça do usuário) usando o dispositivo de display usável. As informações de movimento e/ou orientação podem ser usadas para determinar a imagem a exibir no dispositivo de display usável. Por exemplo, um usuário usando o dispositivo de display usável pode estar vendo uma cena (por exemplo, a partir da perspectiva de uma primeira pessoa) . A imagem da cena exibida para o usuário pode ser baseada em movimento e/ou orientação do dispositivo de display usável de modo que a visão da cena corresponda à posição do dispositivo de display usável, desse modo imergindo o usuário na cena.
SUMÁRIO [0006] Certos aspectos da presente revelação fornecem um método para operar um dispositivo de display usável. O método inclui determinar uma posição do dispositivo de display usável com base em um sensor de
Petição 870190049486, de 27/05/2019, pág. 9/64
3/35 movimento. 0 método inclui renderizar uma imagem com base na posição determinada. 0 método inclui determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento. 0 método inclui distorcer uma primeira porção da imagem renderizada com base na primeira posição atualizada e corrigir em relação a distorção devido a uma lente do dispositivo de display usável. 0 método inclui exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável. 0 método inclui determinar uma segunda posição atualizada do dispositivo de display usável com ase no sensor de movimento. 0 método inclui distorcer uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrigir em relação à distorção devido à lente do dispositivo de display usável. 0 método inclui exibir a segunda porção distorcida da imagem renderizada no display do dispositivo de display usável.
[0007] Certos aspectos da presente revelação fornecem um método para operar um dispositivo de display usável. O método inclui determinar uma posição do dispositivo de display usável com base em um sensor de movimento. O método inclui renderizar, por uma unidade de processamento gráfico, uma imagem baseada na posição determinada. O método inclui determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento. O método inclui distorcer, por um motor de distorção, uma primeira porção da imagem renderizada com base na primeira posição atualizada. O método inclui exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável.
Petição 870190049486, de 27/05/2019, pág. 10/64
4/35 [0008] Certos aspectos da presente revelação fornecem um sistema de computador para operar um dispositivo de display usável. O sistema de computador inclui um processador configurado para determinar uma posição do dispositivo de display usável com base em um sensor de movimento. O processador é adicionalmente configurado para determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento. O processador é adicionalmente configurado para determinar uma segunda posição atualizada do dispositivo de display usável com base no sensor de movimento. O sistema de computador inclui uma unidade de processamento gráfico configurada para renderizar uma imagem com base na posição determinada. O sistema de computador inclui um motor de distorção, separado da unidade de processamento gráfico, configurado para distorcer uma primeira porção da imagem renderizada com base na primeira posição atualizada e corrigir em relação à distorção devido a uma lente do dispositivo de display usável. O motor de distorção é adicionalmente configurado para distorcer uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrigir em relação á distorção devido à lente do dispositivo de display usável. O sistema de computador inclui um acionador de display configurado para exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável. O acionador de display é adicionalmente configurado para exibir a segunda porção distorcida da imagem renderizada no display do dispositivo de display usável.
[0009] Certos aspetos da presente revelação
Petição 870190049486, de 27/05/2019, pág. 11/64
5/35 fornecem um sistema de computador para operar um dispositivo de display usável. 0 sistema de computador inclui meio para determinar uma posição do dispositivo de display usável com base em um sensor de movimento. 0 sistema de computador inclui meio para renderizar uma imagem com base na posição determinada. 0 sistema de computador inclui meio para determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento. 0 sistema de computador inclui meio para distorcer uma primeira porção da imagem renderizada com base na primeira posição atualizada e corrigir em relação à distorção devido a uma lente do dispositivo de display usável. 0 sistema de computador inclui meio para exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável. 0 sistema de computador inclui meio para determinar uma segunda posição atualizada do dispositivo de display usável com base no sensor de movimento. 0 sistema de computador inclui meio para distorcer uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrigir em relação á distorção devido à lente do dispositivo de display usável. 0 sistema de computador inclui meio para exibir a segunda porção distorcida da imagem renderizada no display do dispositivo de display usável.
[00010] Certos aspectos da presente revelação fornecem uma mídia legível por computador, não transitória tendo instruções armazenadas na mesma para operar um dispositivo de display usável. A execução das instruções por um sistema de computação faz com que o sistema de
Petição 870190049486, de 27/05/2019, pág. 12/64
6/35 computação realize a etapa de determinar uma posição do dispositivo de display usável com base em um sensor de movimento. A execução das instruções pelo sistema de computação faz com que o sistema de computação realize a etapa de renderizar uma imagem com base na posição determinada. A execução das instruções pelo sistema de computação faz com que o sistema de computação realize a etapa de determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento. A execução das instruções pelo sistema de computação faz com que o sistema de computação realize a etapa de distorcer uma primeira porção da imagem renderizada com base na primeira posição atualizada e corrija em relação à distorção devido a uma lente do dispositivo de display usável. A execução das instruções pelo sistema de computação faz com que o sistema de computação realize a etapa de exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável. A execução das instruções pelo sistema de computação faz com que o sistema de computação realize a etapa de determinar uma segunda posição atualizada do dispositivo de display usável com base no sensor de movimento. A execução das instruções pelo sistema de computação faz com que o sistema de computação realize a etapa de distorcer uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrija em relação à distorção devido à lente do dispositivo de display usável. A execução das instruções pelo sistema de computação faz com que o sistema de computação realize a etapa de exibir a segunda porção
Petição 870190049486, de 27/05/2019, pág. 13/64
7/35 distorcida da imagem renderizada no display do dispositivo de display usável.
BREVE DESCRIÇÃO DOS DESENHOS [00011] Para que o modo no qual as características acima mencionadas da presente relação possam ser entendidas em detalhe, pode-se ter uma descrição mais específica, brevemente resumida acima, por referência a aspectos, alguns dos quais são ilustrados nos desenhos apensos. Deve ser observado, entretanto, que os desenhos apensos ilustram somente certos aspectos típicos dessa revelação e não devem ser, portanto, considerados limitadores de seu escopo, pois a descrição pode admitir outros aspectos igualmente efetivos.
[00012] A figura 1 é uma ilustração simplificada de um exemplo de um dispositivo de display usável usado em uma cabeça de um usuário, de acordo com certos aspectos da presente revelação.
[00013] A figura 2 ilustra uma modalidade de um sistema de computador que pode ser incorporado em e/ou acoplado de modo comunicativo com o dispositivo de display usável da figura 1, de acordo com certos aspectos da presente revelação.
[00014] A figura 3 ilustra um fluxo de dados de exemplo para renderizar uma imagem no display do dispositivo de display usável da figura 1 usando o sistema de computador da figura 2, de acordo com certos aspectos da presente revelação.
[00015] A figura 4 ilustra uma modalidade de um sistema de computador, que pode ser incorporado em e/ou acoplado de modo comunicativo com o dispositivo de display
Petição 870190049486, de 27/05/2019, pág. 14/64
8/35 usável da figura 1, de acordo com certos aspectos da presente revelação.
[00016] A figura 5 ilustra operações de exemplo para executar distorção na hora certa, de acordo com certos aspectos da presente revelação.
[00017] A figura 6 ilustra um exemplo de campos de visão diferentes para uma imagem, de acordo com certos aspectos da presente revelação.
[00018] A figura 7 é um diagrama de blocos de um motor de distorção de exemplo da figura 4, de acordo com certos aspectos da presente relação.
[00019] A figura 8 ilustra operações de exemplo para executar distorção na hora certa, de acordo com certos aspectos da presente revelação.
DESCRIÇÃO DETALHADA [00020] Vários aspectos da revelação são descritos mais completamente a seguir com referência aos desenhos em anexo. Essa revelação pode, entretanto, ser incorporada em muitas formas diferentes e não deve ser interpretada como limitada a qualquer estrutura ou função especifica apresentada do inicio ao fim dessa revelação. Ao invés, esses aspectos são fornecidos de modo que essa revelação seja minuciosa e completa, e passe totalmente o escopo da revelação para aqueles versados na técnica. Com base nos ensinamentos da presente invenção uma pessoa versada na técnica deve reconhecer que o escopo da revelação pretende cobrir qualquer aspecto da revelação revelada aqui, quer implementada independentemente de ou combinada com qualquer outro aspecto da revelação. Por exemplo, um aparelho pode ser implementado ou um método
Petição 870190049486, de 27/05/2019, pág. 15/64
9/35 pode ser posto em prática usando qualquer número dos aspectos expostos aqui. Além disso, o escopo da revelação pretende cobrir tal aparelho ou método que é posto em prática usando outra estrutura, funcionalidade, ou estrutura e funcionalidade além de ou diferente dos vários aspectos da revelação expostos aqui. Deve ser entendido que qualquer aspecto da revelação revelada aqui pode ser incorporado por um ou mais elementos de uma reivindicação.
[00021] A palavra exemplificador é usada aqui para significar servir como exemplo, ocorrência ou ilustração. Qualquer aspecto descrito aqui como exemplificador não deve ser necessariamente interpretado como preferido ou vantajoso em relação a outros aspectos.
[00022] A figura 1 é uma ilustração simplificada de um exemplo de um dispositivo de display usável 120 usado em uma cabeça de um usuário 110 que pode ser usado com ou pode implementar um ou mais dos aspectos descritos aqui. O dispositivo de display usável 120 inclui um corpo ou armação, similar a um par de óculos, que pode se apoiar no nariz e orelhas de um usuário. Porções do display do dispositivo de display usável 120 podem ser posicionadas na frente dos olhos de um usuário como lentes de um par de óculos. Em alguns aspectos, o display é opaco (por exemplo, para VR). Em alguns aspectos, pelo menos uma porção do display pode ser transparente (por exemplo, para AR) , de modo que no campo de visão do usuário, o usuário 110 pode ver tanto o ambiente em volta do usuário como imagens (por exemplo elementos de dados) mostrados com o display. O nível de transparência das imagens mostradas no display pode variar, dependendo da funcionalidade desejada
Petição 870190049486, de 27/05/2019, pág. 16/64
10/35 do display, ajustes de uma interface de usuário gráfico (GUI) mostrada com o display, e/ou um aplicativo de software executado pelo dispositivo de display usável 120 (por exemplo, um video, um mapa, um navegador de Internet etc.).
[00023] Além disso, o dispositivo de display usável 120 pode incluir interfaces como alto-falantes (e/ou fones de ouvido), um touchpad, botões e similares para interagir com o usuário 110. Em outro aspecto, o dispositivo de display usável 120 pode incluir uma interface sem fio para conexão com a Internet, uma rede sem fio local, ou outro dispositivo de computação. O dispositivo de display usável 120 pode ser também operável para receber áudio e/ou entradas de gestos a partir de um usuário. Tais entradas de áudio ou gestos podem ser comandos de voz falada ou um gesto reconhecido pelo usuário, que quando reconhecido por um dispositivo de computação pode fazer com que o dispositivo execute um comando correspondente. Gestos podem ser recebidos de um ou mais sensores de movimento e/ou câmeras integradas em e/ou comunicativamente acopladas ao dispositivo de display usável 120 para permitir que o dispositivo de display usável rastreie um ou mais objetos, como a(s) mão(s) de um usuário, e determine se o(s) objeto (s) fez um gesto. Além disso, em certos aspectos o dispositivo de display usável 120 pode incluir câmera(s) e/ou outros sensores para determinar o olhar de um usuário (por exemplo, onde um usuário está olhando). Essa funcionalidade de rastreamento de olhos pode ser incorporada em gestos e/ou outras entradas de usuário, ou ser usada para distorção de imagem,
Petição 870190049486, de 27/05/2019, pág. 17/64
11/35 incluindo renderização de fóvea, como discutido aqui.
[00024] Além disso, o dispositivo de display usável 120 pode incluir e/ou ser acoplado comunicativamente com sensores de movimento, como um ou mais acelerômetro(s), magnetômetro(s), giroscópios, receptor(es) de Sistema de Posicionamento Global (e/ou outro(s) receptor(es) de Sistema de posicionamento por satélite (SPS)), altimetro(s), câmera(s), sensores infravermelhos, etc.,
para detectar a posição (por exemplo, movimento e/ou
orientação) do usuário 110 e/ou da cabeça do usuário. Uma
determinação do campo de visão do usuário , para fins de
exibir imagens como descrita aqui, pode ser baseada em
informações de sensor fornecendo, por exemplo, uma
orientação de cabeça/direção de deslocamento do usuário, detectada. Uma direção de deslocamento pode ser determinada, por exemplo, por uma bússola (por exemplo, um magnetômetro) e/ou uma pluralidade de medições de posicionamento (por exemplo, medições de localização SPS). Dados de elevação e/ou contexto podem ser usados para determinar se um usuário está olhando para baixo ou para cima porque um caminho está inclinado. Por exemplo, dados a partir do giroscópio podem ser comparados com dados de elevação para determinar se a cabeça está inclinada em uma direção na qual um percurso no qual o usuário está localizado é inclinado.
[00025] Um sistema de computação, como sistema de computador 200 da figura 2 pode ser integrado em e/ou comunicativamente acoplado (cabeado ou sem fio) com o dispositivo de display usável 120. Por conseguinte, o dispositivo de display usável 120 pode executar aplicativos
Petição 870190049486, de 27/05/2019, pág. 18/64
12/35 de software como jogos, mapas, vídeos e/ou outros aplicativos descritos aqui que geram imagens que são exibidas no dispositivo de display usável 120. Adicional ou alternativamente, em certos aspectos o dispositivo de display usável 120 pode exibir aplicativos de software executados por um ou mais dispositivos acoplados comunicativamente com o dispositivo de display usável 120 através, por exemplo, protocolo de dispositivo para dispositivo sem fio (por exemplo, BLUETOOTH ou WI-FI DIRECT) e/ou através de uma rede (por exemplo, uma rede WIFI) . Por exemplo, o dispositivo de display usável 120 pode ser comunicat ivamente acoplado a um ou mais dispositivos m'voeis como um telefone móvel, tocador de mídia pessoal, sistema de jogo, e/ou outros dispositivos, e informação de display a partir do dispositivo móvel.
[00026] Um ou mais componentes do sistema de computador 200 pode ser compartilhado entre dispositivos diferentes, como um dispositivo de display usável, smart phone, tablet, computador pessoal ou outro dispositivo de computação. Em algumas modalidades, software e outros aplicativos podem ser rodados em um dispositivo separado comunicativamente ligado ao dispositivo de display usável. Em outras modalidades, um dispositivo de display usável pode ter um pouco ou todo do sistema de computador 200 integrado com o mesmo.
[00027] A figura 2 fornece uma ilustração esquemática de uma modalidade de um sistema de computador 200 que pode executar os métodos fornecidos por várias outras modalidades. Deve ser observado que a figura 2 pretende somente fornecer uma ilustração generalizada de
Petição 870190049486, de 27/05/2019, pág. 19/64
13/35 vários componentes, quaisquer ou todos os quais podem ser utilizados como apropriado. A figura 2, portanto, ilustra amplamente como elementos de sistema individuais podem ser implementados em um modo relativamente separado ou relativamente mais integrado.
[00028] O sistema de computador 200 é mostrado compreendendo elementos de hardware que podem ser eletricamente acoplados através de um barramento 226 (ou podem estar de outro modo em comunicação, como apropriado). Os elementos de hardware podem incluir uma CPU 210, que pode incluir sem limitação um ou mais processadores de propósito geral, um ou mais processadores de propósito especial, e/o outros meios de processamento que, como mencionado acima, podem ser utilizados para executar várias etapas, como um ou mais dos blocos mostrados na figura 3. O barramento 226 pode acoplar duas ou mais das CPUs 210, ou múltiplos núcleos de uma CPU única ou uma pluralidade de CPUs. Elementos de hardware também podem incluir um ou mais dispositivos de entrada/saida 237, que podem incluir sem limitação um ou mais receptores de GPS (e/ou receptores de qualquer outro Sistema de posicionamento por satélite (SPS)), acelerômetros, giroscópios, magnetômetros (e/ou outros sensores de orientação), altimetros, câmeras, e/ou outros sensores a serem capazes de detectar localização, movimento, orientação, luz, som e similar, que podem ser utilizados como meio para coletar posição, movimento, e outros dados. Além disso, sensores podem ser utilizados, juntamente com a CPU 210, como meio para detectar o movimento de um dispositivo de display usável 120 na cabeça de um usuário, como descrito aqui. Outros dispositivos como
Petição 870190049486, de 27/05/2019, pág. 20/64
14/35 um touchpad, teclado, microfone, e/ou similar podem ser também incluídos. Um ou mais dispositivos adicionais são também incluídos. Esses dispositivos podem incluir um ou mais displays e/ou outros meios de display, bem como altofalantes e/ou outros dispositivos.
[00029] O sistema de computador 200 pode incluir ainda uma memória principal 235, que pode compreender, sem limitação, uma memória de acesso aleatório (RAM), como uma memória de acesso aleatório dinâmica (DRAM), como DRAM síncrona (DRAM (SDRAM) velocidade de dados dupla (DDR).
[00030] O sistema de computador 200 inclui ainda uma GPU 212 que é um processador de propósito especial para manipular processamento gráfico. O sistema de computador 200 inclui ainda um acionador de display 240 configurado para acionar um display no dispositivo de display usável 120, como por acionar a digitalização de porções do display para exibir imagens.
[00031] O sistema de computador 200 pode também incluir um subsistema de comunicação 230, que pode incluir sem limitação um modem, um cartão de rede (sem fio ou cabeado), um dispositivo de comunicação infravermelho, um dispositivo de comunicação sem fio, e/ou um conjunto de chips (como um dispositivo Bluetooth™, um dispositivo 802.11, um dispositivo WiFi, um dispositivo WiMax, instalações de comunicação celular, etc.), e/ou similar. O subsistema de comunicação 230 pode incluir uma ou mais interfaces de comunicação de entrada e/ou saída para permitir que dados sejam trocados com uma rede, outros sistemas de computador e/ou quaisquer outros
Petição 870190049486, de 27/05/2019, pág. 21/64
15/35 periféricos/dispositivos elétricos.
[00032] O sistema de computador 200 também pode compreender elementos de software, como localizados na memória principal 235, incluindo um sistema operacional, acionadores de dispositivo, bibliotecas executáveis, e/ou outro código, como um ou mais aplicativo (s) , que podem compreender programas de computador fornecidos por várias modalidades, e/ou podem ser projetados para implementar métodos, e/ou configurar sistemas, fornecidos por outras modalidades, como descrito aqui. Meramente como exemplo, uma porção de um ou mais procedimentos descritos com relação ao(s) método(s) discutido(s) aqui, podería ser implementada como código e/ou instruções executáveis por um computador (e/ou uma unidade de processamento em um computador), em um aspecto, então, tal código e/ou instruções podem ser usadas para configurar e/ou adaptar um computador de propósito geral (ou outro dispositivo) para executar uma ou mais operações de acordo com os métodos descritos.
[00033] Um conjunto dessas instruções e/ou código pode ser armazenada em uma mídia de armazenagem legível por computador não transitória. Em alguns casos, a mídia de armazenagem pode ser incorporada em um sistema de computador, como sistema de computador 200. Em outras modalidades, a mídia de armazenagem pode ser separada de um sistema de computador (por exemplo, uma mídia removível, como um disco ótico), e/ou fornecida em um pacote de instalação, de modo que a mídia de armazenagem pode ser usada para programar, configurar e/ou adaptar um computador de propósito geral com as instruções/código armazenados nos
Petição 870190049486, de 27/05/2019, pág. 22/64
16/35 mesmos. Essas instruções podem ter a forma de código executável, que é executável pelo sistema de computador 200 e/ou podem ter a forma de fonte e/ou código de instalação, que, após compilação e/ou instalação no sistema de computador 200 (por exemplo, usando qualquer de uma variedade de compiladores geralmente disponíveis, programas de instalação, utilidades de compressão/descompressão, etc.), então assume a forma de código executável.
[00034] Será evidente para aqueles versados na técnica que variações substanciais podem ser feitas de acordo com exigências específicas.
[00035] Embora a figura 1 mostra uma modalidade de um dispositivo de display usável 120 com uma armação semelhante a óculos e uma tela (por exemplo, display de cristal líquido (LCD), diodo de emissão de luz orgânico (OLED), etc.) para um display, outras modalidades podem ter fatores de forma diferente e/ou utilizar tecnologias óticas diferentes (por exemplo, um projetor de retina ou outro sistema ótico) que podem oferecer funcionalidade de display similar. Ao discutir a exibição de imagens no dispositivo de display usável 120, tal exibição se refere a exibição das imagens no display do dispositivo de display usável 120 .
[00036] Para tais dispositivos de display usáveis 120, uma métrica de desempenho é o retardo de movimento para fóton (M2P), que mede o retardo de tempo a partir do movimento do dispositivo de display usável 120 até o momento quando a imagem exibida no dispositivo de display usável 120 é atualizada para corresponder ao movimento (por exemplo, posição nova) do dispositivo de
Petição 870190049486, de 27/05/2019, pág. 23/64
17/35 display usável 120. Por exemplo, o usuário 110 pode estar olhando em uma direção e o dispositivo de display usável 120 pode exibir uma primeira cena. O usuário 110 pode então mover sua cabeça e uma cena correspondendo à posição nova do usuário 110 necessita ser exibida. Ter uma latência baixa (por exemplo, <20 ms) entre a mudança em posição do usuário 110 e atualização do display no dispositivo de display usável 120 permite vantajosamente uma experiencia mais realista, e também evita que o usuário tenha enjoo de movimento.
[00037] Outra preocupação com tais dispositivos de display usáveis 120 é acomodar para a demanda de largura de banda de memória para ler e gravar imagens para a memória. Por exemplo, demanda de largura de banda de memória pode ser extremamente alta para resoluções altas (por exemplo, 4K e acima por olho) . O impacto do processo para renderizar uma imagem na tela do dispositivo de display usável 120 em retardo de M2P e largura de banda de memória é adicionalmente discutido com relação à figura 3.
[00038] A figura 3 ilustra um fluxo de dados de
exemplo 300 para renderizar uma imagem no display do
dispositi vo de display usável 120 usando o sistema de
computado r 200. Como mostrado, em 305, sensores de
movimento podem ser usados para medir dados relacionados a
uma posição do dispositivo de display usável 120. Em 310, os dados de sensor de movimento medidos são recebidos e processados pela CPU 210 para determinar uma posição (por exemplo, dados de postura de três graus de liberdade (3DoF), dados de postura 6DoF etc.) do dispositivo de display usável 120. Em 315, as informações de posição podem
Petição 870190049486, de 27/05/2019, pág. 24/64
18/35 ser armazenadas na memória principal 235. Em 320, a CPU 210 lê as informações de posição a partir da memória principal 235 e gera um comando de aplicativo para renderizar uma imagem baseada nas informações de posição. Por exemplo, a CPU 210 gera um comando para a GPU 212 para renderizar uma cena, como para um aplicativo de execução. Em 325, o comando de aplicativo da memória principal 235 e, em 335, lê uma textura (por exemplo, imagem) correspondendo ao comando de aplicativo (isto é, uma textura baseada na informação de posição armazenada em 315) a partir da memória principal 235. Em 340, a GPU 212 renderiza, com base na textura, uma imagem para um olho direito e uma imagem para um olho esquerdo do usuário 110 a ser exibida em um display do dispositivo de display usável 120. As imagens renderizadas correspondem à informação de posição armazenada em 315. Em 345, a GPU 212 armazena as imagens renderizadas Para cada olho na memória principal 235. Em 350, a GPU 212 lê as imagens renderizadas a partir da memória principal 235 e distorce as imagens renderizadas, como por aplicar distorção de tempo, distorção de lente etc., às imagens renderizadas como adicionalmente discutido aqui. Em 355, a GPU 212 armazena as imagens distorcidas na memória principal 235. Em 355, a GPU 212 armazena as imagens distorcida na memória principal 235. Em 360, o acionador de display 240 lê as imagens distorcidas inteiras a partir da memória principal 235 e aciona o display do dispositivo de display usável 120 com as imagens distorcidas.
[00039] Distorção em tempo de uma imagem, como realizado em 350, se refere à alteração da imagem
Petição 870190049486, de 27/05/2019, pág. 25/64
19/35 renderizada a ser exibida no dispositivo de display usável 120 devido a uma posição alterada do dispositivo de display usável 120 após a imagem já ter sido renderizada, como pela GPU 212. Por exemplo, como discutido com relação ao fluxo de dados 300, a GPU 212 pode renderizar imagens com base em uma posição do dispositivo de display usável 120. Tal informação de posição, entretanto, é determinada em algum intervalo de tempo antes da GPU 212 efetivamente renderizar a imagem (por exemplo, devido á latência em CPU, GPU etc., processamento e lê e grava na memória). Por conseguinte, a posição do dispositivo de display usável 120 pode alterar adicionalmente entre quando a posição é inicialmente determinada (por exemplo, em 310), quando a imagem é renderizada (por exemplo, em 340), e adicionalmente quando a imagem renderizada é exibida no display do dispositivo de display usável 120 (por exemplo, em 360). Portanto, após a imagem ser renderizada e antes de ser exibida no dispositivo de display usável 120, distorção em tempo pode ser aplicada à imagem renderizada, que modifica a imagem renderizada com base nas informações de posição atualizadas para o dispositivo de display usável 120. Por exemplo, em 350, a GPU 212 recebe informação de posição atualizada a partir de CPU 210 e aplica transformadas (por exemplo, usando mapas de profundidade (buffers Z) para mover objetos na imagem para dará paralaxe com base na posição atualizada) para a imagem renderizada, que pode ter complexidade computacional reduzida em comparação com nova renderização da imagem.
[00040] Distorção em lente de uma imagem, como executado em 350, se refere à alteração da imagem
Petição 870190049486, de 27/05/2019, pág. 26/64
20/35 renderizada a ser exibida no dispositivo de display usável 120 para corrigir em relação à distorção introduzida por lentes no dispositivo de display usável 120. Por exemplo, o dispositivo de display usável 120 pode utilizar lentes além de displays para orientar a imagem para os olhos de um usuário. A imagem exibida no display pode necessitar ser transformada (por exemplo, distorcida em barril, corrigida aberração de cor etc.) para corrigir em relação à distorção introduzida pelas lentes.
[00041] Uma vez que a GPU 212 necessita tanto renderizar a imagem como adicionalmente distorcer a imagem, ciclos de processamento extra são usados para executar a distorção e há uma penalidade a partir da comutação de contexto entre renderização e distorção, significando que há menos recursos disponíveis para renderização.
[00042] Além disso, uma vez que a distorção é aplicada como uma etapa separada na cadeia de processamento geral, a largura de banda de pico para memória principal 235 é aumentada à medida que as imagens renderizadas e imagens distorcidas são lidas da memória principal 235 (por exemplo, em 350 e 360) e gravadas para a memória principal 235 (por exemplo, em 345 e 355). Além disso, para assegurar que a distorção é concluída a tempo para tanto armazenar como ler a partir da memória principal 235 para exibir a imagem no display do dispositivo de display usável 120 na próxima renovação do display, o processo de distorção pode ser iniciado cedo, desse modo introduzindo retardo adicional no M2P .
[00043] Por conseguinte, técnicas da presente invenção se referem a sistemas e métodos para aplicar
Petição 870190049486, de 27/05/2019, pág. 27/64
21/35 distorção, como distorção de tempo e distorção de lente, em imagens renderizadas por uma GPU para exibição em um dispositivo de display usável que reduzem o retardo em M2P e largura de banda para memória. Em particular, certos aspectos da presente invenção se referem a um motor de distorção que é separado da GPU usada para renderizar imagens.
[00044] A figura 4 é um diagrama de blocos de um sistema de computador de exemplo 400 incluindo um sistema de renderização de imagem com um motor de distorção separado de uma GPU, de acordo com certos aspectos da presente revelação. Como mostrado, o sistema de computador 400 inclui os mesmos componentes como o sistema de computador 200 da figura 2, porém adicionalmente inclui um motor de distorção 480 e um cache 490. Como mostrado, o motor de distorção 480 é acoplado à memória principal 435 e cache 490. O motor de distorção 480 pode ser uma unidade de processamento, como um circuito integrado configurado para executar certas operações descritas aqui. Em certos aspectos, o motor de distorção 480 é um componente de hardware separado (por exemplo, acelerador de hardware) do que a GPU e/ou outros componentes do sistema de computador 400. O cache 490 pode ser uma pequena quantidade de memória volátil. Em certos aspectos, o cache 490 é memória em chip (por exemplo, cache de sistema) que é separado da memória principal 435 (por exemplo, memória fora de chip) . Por exemplo, o cache 4 90 pode ser em uma mesma matriz ou um chip empacotado com a CPU 210 e/ou a GPU 212.
[00045] O motor de distorção 480 pode ser configurado em imagens de distorção (por exemplo, distorção
Petição 870190049486, de 27/05/2019, pág. 28/64
22/35 de tempo, distorção de lente etc.) renderizadas pela GPU 212. Por separar os recursos, por exemplo, GPU 212, usados para renderizar a imagem a partir dos recursos usados para distorcer as imagens, por exemplo, o motor de distorção 480, mais recursos podem ser usados para renderizar imagens, desse modo reduzindo latência para renderizar as imagens, e retardo M2P.
[00046] Além disso, em alguns aspectos, o motor de distorção 480 pode assincronamente com relação à renderização pela GPU 212, porções de distorção das imagens renderizadas pela GPU 212. Por exemplo, o motor de distorção 480 pode ser sincronizado com o display (por exemplo, taxa de renovação, tempo de digitalização, etc.) do dispositivo de display usável ao invés da GPU 212 e porções de distorção das imagens renderizadas (por exemplo, faixa por faixa, linha por linha, etc.) Na hora certa visto gue o display do dispositivo de display usável 120 efetivamente digitaliza e exibe aquelas porções da imagem no display. A distorção na hora certa pode reduzir o retardo de M2P visto que há pouco retardo entre a distorção e exibição no display.
[00047] Por exemplo, em alguns aspectos, o
motor de distorção 480 pode ler os dados de imagem
renderizada l produzidos pela GPU 212 a partir da memória
principal 2 35 . entretanto, ao invés de gravar a imagem
distorcida inteira de volta para a memória principal 235, o motor de distorção 480 pode gravar somente a porção da imagem distorcida (por exemplo, linha, faixa, etc.) necessária em um momento para um cache 490 (por exemplo, um cache de último nivel) , e o acionador de display 240 pode
Petição 870190049486, de 27/05/2019, pág. 29/64
23/35 ler aquela porção a partir do cache 490 e fazer com que o display digitalize a porção da imagem distorcida. Tais aspectos podem ter vantajosamente largura de banda reduzida para a memória principal 235, uma vez que a gravação e leitura da imagem distorcida para a memória principal 235 são eliminadas.
[00048] Em alguns aspectos, a distorção da porção da imagem e gravação da porção da imagem no cache 490 é sincronizada com o acionador de display 240. Em particular, o display do dispositivo de display usável 120 pode ser configurado para exibir uma imagem em um display por digitalizar o display linha por linha para cada renovação do display. Por exemplo, o display pode digitalizar o display porção por porção (por exemplo, linha por linha ou faixa por faixa) para uma primeira imagem a ser exibida e então renovar a tela por digitalizar o display porção por porção para uma segunda imagem a ser exibida. Por conseguinte, o motor de distorção 480, pouco antes (por exemplo, um tempo suficiente antes da distorção da imagem) de uma porção do display ser digitalizada pelo acionador de display 240, pode receber informação de posição atualizada para o dispositivo de display usável 120, distorcer a porção da imagem a ser digitalizada na porção do display, e gravar a porção distorcida da imagem para o cache 490. O acionador de display 240 pode então digitalizar a porção distorcida da imagem armazenada no cache 490 no display. Além disso, em alguns aspectos, enquanto o acionador de display 240 está digitalizando a porção distorcida da imagem armazenada no cache 490 no display, o motor de distorção 480 pode distorcer ainda uma
Petição 870190049486, de 27/05/2019, pág. 30/64
24/35 porção seguinte da imagem a ser digitalizada na porção seguinte do display. Por conseguinte, o motor de distorção 480 pode gerar porções distorcidas da imagem para digitalizar na hora certa para o acionador de display 240 para digitalizar as porções distorcidas da imagem para o display, com retardo M2P mínimo. Além disso, em alguns aspectos, o motor de distorção 480 pode obter informação de posição atualizada para cada porção de uma imagem digitalizada para um display em um tempo, ao invés da imagem inteira em um momento.
[00049] Em alguns aspectos, o motor de distorção 480 pode aplicar distorção de lente por executar distorção em barril e aberração de cor nas imagens renderizadas usando um mapa de vetor correspondendo a uma lente do dispositivo de display usável 120. Em alguns aspectos, o motor de distorção 480 pode aplicar adicionalmente correção em perspectiva, como devido a distorção em tempo, ao mapa de vetor.
[00050] A figura 5 ilustra operações de exemplo 500 para executar distorção na hora certa, como pelo sistema de computador 400, de acordo com certos aspectos da presente revelação.
[00051] Em 505, a GPU 212 renderiza imagens esquerda e direita para display no dispositivo de display usável 120 com base em informação de posição do dispositivo de display usável 120 e armazena as imagens renderizadas na memória principal 235. Por exemplo, blocos 305-345 do fluxo de dados 300 são executados. Em 510, o motor de distorção 480 lê as imagens renderizadas a partir da memória principal 235. Em 515, o motor de distorção 480 recebe
Petição 870190049486, de 27/05/2019, pág. 31/64
25/35 informação de posição atualizada (por exemplo, de um sensor, CPU etc.) do dispositivo de display usável 120 antes de uma porção de um display do dispositivo de display usável 120 ser atualizada. Em 520, o motor de distorção 480 distorce a porção das imagens renderizadas correspondendo à porção do display a ser atualizada. Por exemplo, o motor de distorção 480 pode aplicar distorção de tempo, distorção de lente, ou outros tipos de distorção de imagem como discutido aqui.
[00052] Em 525, o motor de distorção 480 grava a porção distorcida das imagens renderizadas para o cache 490. Em 530, o acionador de display 240 lê a porção distorcida das imagens renderizadas a partir do cache 490 e digitaliza a porção das imagens renderizadas para o display do dispositivo de display usável 120. Em 535 (por exemplo, em paralelo com 530), o motor de distorção 480 determina se há outra porção do display a ser atualizado, o processo retorna para 515 e blocos 515-525 são executados (por exemplo, em paralelo com 530). Se em 535, é determinado que não há outra porção do display a ser atualizada, o processo termina.
[00053] Em alguns aspectos, o motor de distorção 480 pode ser configurado para aplicar outros tipos de distorção além de distorção de lente e distorção de tempo como discutido aqui. Por exemplo, em alguns aspectos, o motor de distorção 480 pode ser configurado para executar outros tipos de distorção para imagens renderizadas para produzir melhores resultados para sistemas VR. Em alguns aspectos, a GPU 212 pode renderizar múltiplas imagens correspondendo a uma imagem a ser exibida
Petição 870190049486, de 27/05/2019, pág. 32/64
26/35 no dispositivo de display usável 120 e armazenar as múltiplas imagens renderizadas em memória principal 235. 0 motor de distorção 480 pode ser configurado para ler as múltiplas imagens renderizadas e produzir uma única saída a ser digitalizada para o display do dispositivo de display usável 120 com base nas múltiplas imagens.
[00054] Em alguns aspectos, as múltiplas imagens renderizadas podem ser para a posição determinada do dispositivo de display usável 120 ou para múltiplos deslocamentos a partir da posição determinada do dispositivo de display usável 120. Por conseguinte, o motor de distorção 480 pode usar as múltiplas imagens renderizadas para aplicar uma distorção de tempo mais precisa usando porções renderizadas efetivas de imagens para distorcer a imagem ao invés de transformação da imagem como discutido aqui.
[00055] Em alguns aspectos, as múltiplas imagens renderizadas podem corresponder a diferentes perspectivas, níveis de foco ou campos de visão de uma imagem. Por exemplo, a figura 6 ilustra campos de visão diferentes para uma imagem de uma cena incluindo um foco amplo de uma cena, um foco médio de uma cena, e um foco estreito de uma cena. Por conseguinte, o motor de distorção 480 pode suportar renderização de fóvea onde um número diferente de pixels/resolução é usado para renderizar porções diferentes de uma imagem (por exemplo, com base na posição de olho de um usuário do dispositivo de display usável 120) . Por exemplo, porções da imagem onde o olho é focado podem ser renderizadas em uma resolução mais alta, enquanto porções da imagem onde o olho não está focado (por
Petição 870190049486, de 27/05/2019, pág. 33/64
27/35 exemplo, periferia) são renderizadas em uma resolução mais baixa. A GPU 212 pode ser, por conseguinte, configurada para renderizar uma imagem em campos de visão diferentes como mostrado na figura 6. 0 motor de distorção 480, com base na entrada de sensor indicando uma posição do olho de um usuário, pode então utilizar porções diferentes de cada das imagens renderizadas e campos de visão diferentes e gerar uma imagem distorcida única para exibição na tela. Em alguns aspectos, renderização de fóvea pode ser suportada usando um mapa de alfa-plano correspondendo à posição do olho do usuário com relação à imagem.
[00056] Em alguns aspectos, o motor de distorção 480 pode determinar e aplicar a distorção descrita aqui separadamente a cada dos canais de cor diferentes (por exemplo, vermelho, verde e azul) que compõem as imagens renderizadas.
[00057] Em alguns aspectos, o motor de distorção 480 pode distorcer imagens renderizadas, como alterar um foco das imagens renderizadas, para adaptar as mesmas para usuários com danos à visão (por exemplo, miopia, hipermetropia etc.).
[00058] A figura 7 é um diagrama de blocos de um motor de distorção de exemplo 480, de acordo com certos aspectos da presente revelação. O motor de digestão 480 inclui um cache 720 para armazenar dados de imagem. Os dados de imagem podem ser armazenados como pixels. Além disso, cada pixel pode ser dividido em sub-pixels, cada sub-pixel correspondendo a um canal de cor (por exemplo, vermelho, verde, azul).
[00059] O motor de distorção 480 inclui ainda
Petição 870190049486, de 27/05/2019, pág. 34/64
28/35 uma ou mais unidades de transformada de perspectiva 705. Como mostrado, o motor de distorção 480 inclui três unidades de transformada de perspectiva 705, uma para cada dos canais de cor. Em alguns aspectos unidades de transformada de perspectiva adicionais ou em um número menor, 705, podem ser incluídas, por exemplo, para outros canais de cor, ou onde uma unidade de transformada de perspectiva única, 705, corresponde a múltiplos canais de cor. As unidades de transformada de perspectiva 705 são configuradas para executar a distorção de tempo e, opcionalmente, técnicas de distorção de lente descritas aqui. Por exemplo, como mostrado, cada unidade de transformada de perspectiva 705 recebe os pixels de imagens renderizadas (por exemplo, imagens renderizadas para olhos diferentes e/ou campos de visão diferentes) correspondendo a um canal de cor específico e executa a distorção nas imagens renderizadas. Em particular, cada unidade de transformada de perspectiva 705 recebe informação de posição atualizada do dispositivo de display usável 120 e um mapa de vetor correspondendo à distorção em barril e aberração de cor para aplicar aos pixels de imagens renderizadas correspondendo a um canal de cor específico. As unidades de transformada de perspectiva 705 aplicam adicionalmente correção de perspectiva (distorção de tempo) ao mapa de vetor com base na informação de posição atualizada do dispositivo de display usável 120 e aplicar o mapa de vetor aos pixels das imagens renderizadas para distorcer em tempo e distorcer em lente as imagens. Os pixels das imagens distorcidas são armazenadas no cache 720 .
Petição 870190049486, de 27/05/2019, pág. 35/64
29/35 [00060] O motor de distorção 480 inclui ainda uma ou mais unidades interpoladoras 710. Como mostrado, o motor de distorção 480 inclui três unidades interpoladoras 710, uma para cada dos canais de cor, por imagem renderizada (por exemplo, cada imagem renderizada correspondendo a um campo de visão diferente) sendo distorcida. Em alguns aspectos, o motor de distorção 480 inclui unidades interpoladoras adicionais ou em número menor 710, similares a unidades de transformada de perspectiva 705, e adicionalmente baseado em se uma ou mais imagens renderizadas estão sendo distorcidas. As unidades interpoladoras 710 aplicam coeficientes de filtro para melhorar a qualidade das imagens.
[00061] O motor de distorção 480 inclui ainda uma ou mais unidades de empacotamento 715. Como mostrado, o motor de distorção 480 inclui uma unidade de empacotamento 715 por imagem renderizada sendo distorcida. Em alguns aspectos, o motor de distorção 480 inclui unidades de empacotamento adicionais ou em número menor 715, similares a unidades interpoladoras 710. As unidades de empacotamento 715 combinam os pixels distorcidos correspondendo a canais de cor diferentes nos pixels gerais da imagem distorcida.
[00062] O motor de distorção 480 pode incluir ainda um combinador 725, por exemplo, quando o motor de distorção 480 gera múltiplas imagens renderizadas (por exemplo, tendo campos de visão diferentes) . O combinador 725 pode usar um alfa-mapa, como discutido aqui, para determinar quais porções das múltiplas imagens renderizadas combinar para gerar uma imagem distorcida a ser mostrada em um display.
Petição 870190049486, de 27/05/2019, pág. 36/64
30/35 [00063] A figura 8 ilustra operações de exemplo 800 para executar distorção na hora certa, como por sistema de computador 400, de acordo com certos aspectos da presente revelação.
[00064] Em 805, o sistema de computador determina uma posição do dispositivo de display usável com base em um sensor de movimento. Em 810, o sistema de computador renderiza uma imagem com base na posição determinada. Em 815, o sistema de computador determina uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento.
[00065] Em 820, o sistema de computador distorce uma primeira porção da imagem renderizada com base na primeira posição atualizada e corrigir em relação á distorção devido a uma lente do dispositivo de display usável. Em 825, o sistema de computador exibe a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável com base em um sensor de movimento.
[00066] Em 830, o sistema de computador determina uma segunda posição atualizada do dispositivo de display usável com base no sensor de movimento. Em 835, o sistema de computador distorce uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrigir em relação a distorção devido à lente do dispositivo de display usável. Em 840, o sistema de computador exibe a segunda porção distorcida da imagem renderizada no display do dispositivo de display usável.
[00067] As várias operações de métodos descritos acima podem ser executadas por qualquer meio
Petição 870190049486, de 27/05/2019, pág. 37/64
31/35 adequado capaz de executar as funções correspondentes. 0 meio pode incluir vários componente(s) de hardware e/ou software e/ou módulo(s), incluindo, porém não limitado a um circuito, um circuito integrado de aplicação especifica (ASIC), ou processador. Em geral, onde há operações ilustradas nas figuras, essas operações podem ter componentes de meio mais função equivalente correspondentes com numeração similar. Por exemplo, com referência ao sistema de computador 400, a CPU 210 pode incluir um componente ou componentes de determinação de posição para fornecer o meio para determinar uma posição, uma primeira posição atualizada, e uma segunda posição atualizada do dispositivo de display usável 120 com base em um sensor de movimento. A GPU 212 pode incluir um componente ou componentes de renderização de imagem para fornecer o meio para renderizar imagens com base na posição determinada. O motor de distorção 480 pode incluir um componente ou componentes de distorção de porção para fornecer o meio para distorcer uma primeira porção da imagem renderizada com base na primeira posição atualizada para correção para distorção devido a uma lente do dispositivo de display usável 120 e para distorcer uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrigir em relação à distorção devido à lente do dispositivo de display usável 120. O acionador de display 240 pode incluir um componente ou componentes de exibição para fornecer o meio para exibir uma primeira porção de uma imagem renderizada e uma segunda porção de uma imagem renderizada em um display do dispositivo de display usável 120 .
Petição 870190049486, de 27/05/2019, pág. 38/64
32/35 [00068] Como usado aqui, o termo determinar abrange uma ampla variedade de ações. Por exemplo, determinar pode incluir calcular, computar, processar, derivar, investigar, consultar (por exemplo, consultar em uma tabela, um banco de dados, ou outra estrutura de dados), verificar e similar. Também, determinar pode incluir receber (por exemplo, receber informação), acessar (por exemplo, acessar dados em uma memória), e similar. Também, determinar pode incluir resolver, selecionar, escolher, estabelecer e similar.
[00069] Como usado aqui, uma frase se referindo a pelo menos um de uma lista de itens se refere a qualquer combinação desses itens, incluindo elementos únicos. Como exemplo, pelo menos um de: a, b, ou c pretende cobrir: A, B, C, a-b, a-c, b-c, e a-b-c, bem como qualquer combinação com múltiplos do mesmo elemento (por exemplo, a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c, b-b, b-bb, b-b-c, c-c e c-c-c ou qualquer outra ordenação de a, be c) .
[00070] Os vários blocos lógicos ilustrativos, módulos e circuitos descritos com relação à presente revelação podem ser implementados ou executados com um processador de propósito geral, um processador de sinais digitais (DSP), um ASIC, uma disposição de porta programável em campo (FPGA) ou outro dispositivo de lógica programável (PLD), lógica de transistor ou porta discreta, componentes de hardware discretos, ou qualquer combinação dos mesmos projetada para executar as funções descritas aqui. Um processador de propósito geral pode ser um microprocessador, porém na alternativa, o processador pode
Petição 870190049486, de 27/05/2019, pág. 39/64
33/35 ser qualquer processador, controlador, microcontrolador ou máquina de estado comercialmente disponível. Um processador também pode ser implementado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em combinação com um núcleo DSP, ou qualquer outra tal configuração.
[00071] Os métodos revelados aqui compreendem uma ou mais etapas ou ações para obter o método descrito. As etapas de método e/ou ações podem ser trocadas entre si sem se afastar do escopo das reivindicações. Em outras palavras, a menos que uma ordem de etapas ou ações específica seja especificada, a ordem e/ou uso de etapas e/ou ações específicas pode ser modificada sem se afastar do escopo das reivindicações.
[00072] As funções descritas podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implementado em hardware, uma configuração de hardware de exemplo pode compreender um sistema de processamento em um nó sem fio. O sistema de processamento pode ser implementado com uma arquitetura de barramento. O barramento pode incluir qualquer número de barramentos e pontes de interconexão dependendo da aplicação específica do sistema de processamento e limitações de design gerais. O barramento pode ligar juntos vários circuitos incluindo um processador, mídia legível por máquina, e uma interface de barramento. A interface de barramento pode ser usada para conectar um adaptador de rede, entre outras coisas, ao sistema de processamento
Petição 870190049486, de 27/05/2019, pág. 40/64
34/35 através do barramento. 0 adaptador de rede pode ser usado para implementar as funções de processamento de sinal da camada física (PHY). No caso de um terminal de usuário, uma interface de usuário (por exemplo, bloco de teclas, display, mouse, manche etc.), também pode ser conectada ao barramento. 0 barramento pode também ligar vários outros circuitos como fontes de temporização, periféricos, reguladores de tensão, circuitos de gerenciamento de energia, e similares, que são bem conhecidos na técnica, e portanto, não serão descritos adicionalmente.
[00073] O sistema de processamento pode ser configurado como um sistema de processamento de propósito geral com um ou mais microprocessadores fornecendo a funcionalidade de processador e memória externa fornecendo pelo menos uma porção da mídia legível por máquina, tudo ligado juntamente com outro conjunto de circuitos de suporte através de uma arquitetura de barramento externo. Alternativamente, o sistema de processamento pode ser implementado com um ASIC com o processador, a interface de barramento, a interface de usuário no caso de um terminal de acesso, conjunto de circuitos de suporte, e pelo menos uma porção da mídia legível por máquina integrada em um único chip, ou com um ou mais FPGAs, PLDs, controladores, máquinas de estado, lógica gated, componentes de hardware discretos, ou qualquer outro conjunto de circuitos adequados, ou qualquer combinação de circuitos que possa executar as várias funcionalidades descritas do início ao fim dessa revelação. Aqueles versados na técnica reconhecerão a melhor forma de implementar a funcionalidade descrita para o sistema de processamento dependendo da
Petição 870190049486, de 27/05/2019, pág. 41/64
35/35 aplicação especifica e limitações gerais de design impostas sobre o sistema geral.
[00074] Deve ser entendido que as reivindicações não são limitadas à configuração precisa e componentes ilustrados acima. várias modificações, mudanças e variações podem ser feitas na disposição, operação e detalhes dos métodos e aparelho descritos acima sem se afastar do escopo das reivindicações.

Claims (10)

1. Método para operar um dispositivo de display usável, o método compreendendo:
determinar uma posição do dispositivo de display usável com base em um sensor de movimento;
Renderizar uma imagem com base na posição determinada;
determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento;
distorcer uma primeira porção da imagem renderizada com base na primeira posição atualizada e corrigir em relação a distorção devido a uma lente do dispositivo de display usável;
exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável;
determinar uma segunda posição atualizada do dispositivo de display usável com base no sensor de movimento;
distorcer uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrigir em relação à distorção devido à lente do dispositivo de display usável; e exibir a segunda porção distorcida da imagem renderizada no display do dispositivo de display usável.
2/10
2. Método, de acordo com a reivindicação 1, em que a renderização é realizada usando uma unidade de processamento gráfico, e a distorção é realizada usando um motor de distorção separado da unidade de processamento gráfico.
Petição 870190049486, de 27/05/2019, pág. 43/64
3/10 renderizada para alterar um foco da primeira porção da imagem renderizada com base em uma visão de um usuário do dispositivo de display usável.
10. Método, de acordo com a reivindicação 1, em que a exibição da primeira porção distorcida e distorção da segunda porção são realizadas em paralelo.
11. Método para operar um dispositivo de display usável, o método compreendendo:
determinar uma posição do dispositivo de display usável com base em um sensor de movimento;
renderizar, por uma unidade de processamento gráfico, uma imagem com base na posição determinada;
Determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento;
distorcer, por um motor de distorção, uma primeira porção da imagem renderizada com base na primeira posição atualizada; e exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável.
12. Método, de acordo com a reivindicação 11, compreendendo ainda:
armazenar, pela unidade de processamento gráfico, a imagem renderizada em uma memória;
ler, pelo motor de distorção, a imagem renderizada a partir da memória;
armazenar, pelo motor de distorção, a primeira porção distorcida da imagem renderizada em um cache que é diferente da memória; e ler, por um acionador de dispositivo, a primeira
Petição 870190049486, de 27/05/2019, pág. 45/64
3. Método, de acordo com a reivindicação 1, em que a distorção da primeira porção e a distorção da segunda porção são sincronizadas com renovação do display do dispositivo de display usável.
4/10 porção distorcida da imagem renderizada a partir do cache.
13. Método, de acordo com a reivindicação 11, compreendendo ainda:
renderizar, pela unidade de processamento gráfico, uma pluralidade de imagens de uma cena, cada da pluralidade de imagens da cena sendo diferente; e combinar, pelo motor de distorção, porções da pluralidade de imagens da cena para gerar a primeira porção distorcida da imagem renderizada.
14. Sistema de computador para operar um dispositivo de display usável, o sistema de computador compreendendo:
um processador configurado para:
determinar uma posição do dispositivo de display usável com base em um sensor de movimento;
determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento; e determinar uma segunda posição atualizada do dispositivo de display usável com base no sensor de movimento;
uma unidade de processamento gráfico para:
renderizar uma imagem com base na posição determinada; um motor de distorção, separado da unidade de processamento gráfico, distorcer configurado para: uma primeira porção da imagem
renderizada com base na primeira posição atualizada e corrigir a distorção devido a uma lente do dispositivo de display usável; e
Petição 870190049486, de 27/05/2019, pág. 46/64
4. Método, de acordo com a reivindicação 3, em que a distorção da primeira porção é sincronizada com exibição da primeira porção.
5/10
distorcer uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrigir em relação a distorção devido à lente do dispositivo de display usável; e
um acionador de display configurado para:
exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável; e exibir a segunda porção distorcida da imagem renderizada no display do dispositivo de display usável.
15. Sistema de computador, de acordo com a reivindicação 15, em que a distorção da primeira porção e distorção da segunda porção são sincronizadas com renovação do display do dispositivo de display usável.
16. Sistema de computador, de acordo com a reivindicação 15, em que a distorção da primeira porção é sincronizada com a exibição da primeira porção. 17 . Sistema de computador, de acordo com a reivindicação 15, em que a distorção da primeira porção e distorção da segunda porção são sincronas com a renderização da imagem. 18 . Sistema de computador, de acordo com a reivindicação 14, compreendendo ainda: uma memória configurada para armazenar a imagem renderizada; e um cache que é diferente da memória, o cache sendo configurado para armazenar a primeira porção distorcida da imagem renderizada. 19. Sistema de computador, de acordo com a
reivindicação 18, em que o cache compreende uma memória em
Petição 870190049486, de 27/05/2019, pág. 47/64
5. Método, de acordo com a reivindicação 3, em que a distorção da primeira porção e distorção da segunda porção são sincronas com a renderização da imagem.
6/10 chip .
20 . Sistema de computador, de acordo com a reivindicação 14, em que: a unidade de processamento gráfico é
adicionalmente configurada para renderizar uma pluralidade de imagens, cada da pluralidade de imagens correspondendo a um campo de visão diferente, da imagem, e o motor de distorção é adicionalmente configurado para combinar porções de cada da pluralidade de imagens para gerar a primeira porção distorcida da imagem renderizada.
21. Sistema de computador, de acordo com a reivindicação 14, em que o motor de distorção é adicionalmente configurado para distorcer a primeira porção da imagem renderizada para alterar um foco da primeira porção da imagem renderizada com base em uma visão de um usuário do dispositivo de display usável.
22. Sistema de computador, de acordo com a reivindicação 14, em que a exibição da primeira porção distorcida e a distorção da segunda porção são realizadas em paralelo.
23. Mídia legível por computador, não transitória tendo instruções armazenadas na mesma para operar um dispositivo de display usável, em que a execução das instruções por um sistema de computação faz com que o sistema de computação realize as etapas de:
determinar uma posição do dispositivo de display usável com base em um sensor de movimento;
renderizar uma imagem com base na posição determinada;
Petição 870190049486, de 27/05/2019, pág. 48/64
6. Método, de acordo com a reivindicação 1, compreendendo ainda:
armazenar a imagem renderizada em uma memória;
ler a imagem renderizada a partir da memória;
armazenar a primeira porção distorcida da imagem renderizada em um cache que é diferente da memória; e ler a primeira porção distorcida da imagem renderizada a partir do cache.
7/10 determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento; distorcer uma primeira porção da imagem renderizada com base na primeira posição atualizada e corrigir em relação a distorção devido a uma lente do dispositivo de display usável;
exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display usável;
Determinar uma segunda posição atualizada do dispositivo de display usável com base no sensor de movimento; distorcer uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrigir em relação à distorção devido à lente do dispositivo de display usável; e exibir a segunda porção distorcida da imagem renderizada no display do dispositivo de display usável.
24. Mídia legível por computador, não transitória, de acordo com a reivindicação 23, em que a renderização é realizada usando uma unidade de processamento gráfico, e a distorção é realizada usando um motor de distorção separado da unidade de processamento gráfico.
25. Mídia legível por computador, não transitória, de acordo com a reivindicação 23, em que a distorção da primeira porção e a distorção da segunda porção são sincronizadas com renovação do display do dispositivo de display usável.
26. Mídia legível por computador, não
Petição 870190049486, de 27/05/2019, pág. 49/64
7. Método, de acordo com a reivindicação 6, em que o cache compreende uma memória em chip.
8/10 transitória, de acordo com a reivindicação 25, em que a distorção da primeira porção é sincronizada com exibição da primeira porção.
27. Mídia legível por computador, não transitória, de acordo com a reivindicação 25, em que a distorção da primeira porção e distorção da segunda porção são síncronas com a renderização da imagem.
28. Mídia legível por computador, não transitória de acordo com a reivindicação 23, em que a execução das instruções pelo sistema de computação faz com que adicionalmente o sistema de computação realize as etapas de:
armazenar a imagem renderizada em uma memória;
ler a imagem renderizada a partir da memória;
armazenar a primeira porção distorcida da imagem renderizada em um cache que é diferente da memória; e ler a primeira porção distorcida da imagem renderizada a partir do cache.
29. Mídia legível por computador, não transitória, de acordo com a reivindicação 28, em que o cache compreende uma memória em chip.
30. Mídia legível por computador, não transitória de acordo com a reivindicação 23, em que a execução das instruções pelo sistema de computação faz com que adicionalmente o sistema de computação realize as etapas de:
renderizar uma pluralidade de imagens, cada da pluralidade de imagens correspondendo a um campo de visão diferente, da imagem; e combinar porções de cada da pluralidade de
Petição 870190049486, de 27/05/2019, pág. 50/64
8. Método, de acordo com a reivindicação 1, compreendendo ainda:
renderizar uma pluralidade de imagens, cada da pluralidade de imagens correspondendo a um campo de visão diferente, da imagem; e combinar porções de cada da pluralidade de imagens para gerar a primeira porção distorcida da imagem renderizada.
9/10 imagens para gerar a primeira porção distorcida da imagem renderizada.
31. Mídia legível por computador, não transitória de acordo com a reivindicação 23, em que a execução das instruções pelo sistema de computação faz com que adicionalmente o sistema de computação realize a etapa de distorcer a primeira porção da imagem renderizada para alterar um foco da primeira porção da imagem renderizada
com base em uma visão de um usuário do dispositivo de display usáve 1. 32 . Mídia legível por computador, não transitória, de acordo com a reivindicação 23, em que a exibição da primeira porção distorcida e distorção da
segunda porção são realizadas em paralelo.
33. Sistema de computador para operar um dispositivo de display usável, o sistema de computador compreendendo:
meio para determinar uma posição do dispositivo de display usável com base em um sensor de movimento;
meio para renderizar uma imagem com base na posição determinada;
meio para determinar uma primeira posição atualizada do dispositivo de display usável com base no sensor de movimento;
meio para distorcer uma primeira porção da imagem renderizada com base na primeira posição atualizada e corrigir em relação a distorção devido a uma lente do dispositivo de display usável;
meio para exibir a primeira porção distorcida da imagem renderizada em um display do dispositivo de display
Petição 870190049486, de 27/05/2019, pág. 51/64
9. Método, de acordo com a reivindicação 1, compreendendo ainda distorcer a primeira porção da imagem
Petição 870190049486, de 27/05/2019, pág. 44/64
10/10 usável;
meio para determinar uma segunda posição atualizada do dispositivo de display usável com base no sensor de movimento;
meio para distorcer uma segunda porção da imagem renderizada com base na segunda posição atualizada e corrigir em relação à distorção devido à lente do dispositivo de display usável; e meio para exibir a segunda porção distorcida da imagem renderizada no display do dispositivo de display usável.
BR112019010815A 2016-12-09 2017-12-07 exibição de distorção de imagem sincronizada BR112019010815A2 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/374,165 US10043318B2 (en) 2016-12-09 2016-12-09 Display synchronized image warping
PCT/US2017/065077 WO2018106898A1 (en) 2016-12-09 2017-12-07 Display synchronized image warping

Publications (1)

Publication Number Publication Date
BR112019010815A2 true BR112019010815A2 (pt) 2019-10-01

Family

ID=61054476

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019010815A BR112019010815A2 (pt) 2016-12-09 2017-12-07 exibição de distorção de imagem sincronizada

Country Status (8)

Country Link
US (1) US10043318B2 (pt)
EP (1) EP3552081B1 (pt)
CN (1) CN110050250B (pt)
BR (1) BR112019010815A2 (pt)
ES (1) ES2855123T3 (pt)
HU (1) HUE052188T2 (pt)
TW (1) TWI659391B (pt)
WO (1) WO2018106898A1 (pt)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10839321B2 (en) 1997-01-06 2020-11-17 Jeffrey Eder Automated data storage system
KR20180082033A (ko) * 2017-01-09 2018-07-18 삼성전자주식회사 음성을 인식하는 전자 장치
WO2018203324A1 (en) * 2017-05-01 2018-11-08 Infinity Augmented Reality Israel Ltd. Optical engine time warp for augmented or mixed reality environment
EP3638351A4 (en) * 2017-06-14 2021-03-10 Hadal, Inc. SYSTEMS AND PROCEDURES FOR THE PREVENTION OF TRAVEL SICKNESS IN VIRTUAL REALITY
US10169843B1 (en) * 2017-11-20 2019-01-01 Advanced Micro Devices, Inc. Temporal foveated rendering using motion estimation
KR102473840B1 (ko) * 2017-11-21 2022-12-05 삼성전자주식회사 디스플레이 드라이버 및 모바일 전자 기기
KR102604738B1 (ko) * 2017-12-22 2023-11-22 삼성전자주식회사 와핑 처리를 수행하는 그래픽 프로세서, 이를 포함하는 렌더링 시스템 및 그래픽 프로세서 동작방법
US10551914B2 (en) * 2018-02-09 2020-02-04 Microsoft Technology Licensing, Llc Efficient MEMs-based eye tracking system with a silicon photomultiplier sensor
US10627899B2 (en) 2018-02-09 2020-04-21 Microsoft Technology Licensing, Llc Eye tracking system for use in a visible light display device
US10853911B2 (en) * 2018-04-17 2020-12-01 Google Llc Dynamic adaptation of images for projection, and/or of projection parameters, based on user(s) in environment
CN109739356B (zh) * 2018-12-29 2020-09-11 歌尔股份有限公司 Vr系统中图像显示的控制方法、装置及vr头戴设备
US10802287B2 (en) * 2019-01-14 2020-10-13 Valve Corporation Dynamic render time targeting based on eye tracking
US11660535B2 (en) * 2019-10-11 2023-05-30 Nvidia Corporation Hardware acceleration and event decisions for late latch and warp in interactive computer products
US20220201271A1 (en) * 2020-12-23 2022-06-23 Facebook Technologies, Llc Temporal foveated rendering
US11822713B2 (en) 2021-06-11 2023-11-21 Rockwell Collins, Inc. Pose augmentation of head worn display video for latency reduction
CN114125301B (zh) * 2021-11-29 2023-09-19 卡莱特云科技股份有限公司 一种虚拟现实技术拍摄延迟处理方法及装置
US11586286B1 (en) 2022-05-18 2023-02-21 Bank Of America Corporation System and method for navigating on an augmented reality display
US11720380B1 (en) 2022-05-18 2023-08-08 Bank Of America Corporation System and method for updating augmented reality navigation instructions based on a detected error

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3745117B2 (ja) * 1998-05-08 2006-02-15 キヤノン株式会社 画像処理装置及び画像処理方法
EP2489180A1 (en) * 2009-10-14 2012-08-22 CSR Technology Inc. Method and apparatus for image stabilization
TWI454663B (zh) * 2011-11-22 2014-10-01 Core Wireless Licensing Sarl 用於決定位置偏移資訊之方法、設備和電腦可讀儲存媒體
EP2688060A4 (en) * 2012-03-22 2015-08-05 Sony Corp DISPLAY DEVICE, IMAGE PROCESSING DEVICE AND IMAGE PROCESSING PROCESS AND COMPUTER PROGRAM THEREFOR
EP2834788A4 (en) 2012-04-02 2016-01-13 Intel Corp SYSTEMS, METHODS, AND COMPUTER PROGRAM PRODUCTS FOR CHANGING PICTURE DISTANCE PARAMETERS IN A MULTICAMERA SYSTEM
US9232139B2 (en) * 2012-07-24 2016-01-05 Apple Inc. Image stabilization using striped output transformation unit
US9576397B2 (en) 2012-09-10 2017-02-21 Blackberry Limited Reducing latency in an augmented-reality display
WO2015044716A1 (en) * 2013-09-27 2015-04-02 Freescale Semiconductor, Inc. Head-up display warping controller
US9551916B2 (en) * 2014-09-25 2017-01-24 Intel Corporation Integrated and adjustable image projection with auto-image correction in electronic devices using an in-facing or world-facing image projector
US20160260246A1 (en) 2015-03-02 2016-09-08 Advanced Micro Devices, Inc. Providing asynchronous display shader functionality on a shared shader core
US9874932B2 (en) * 2015-04-09 2018-01-23 Microsoft Technology Licensing, Llc Avoidance of color breakup in late-stage re-projection
US9704217B2 (en) 2015-04-20 2017-07-11 Intel Corporation Apparatus and method for non-uniform frame buffer rasterization
US9240069B1 (en) * 2015-06-30 2016-01-19 Ariadne's Thread (Usa), Inc. Low-latency virtual reality display system
CN105847785A (zh) * 2016-05-09 2016-08-10 上海乐相科技有限公司 一种图像处理方法、设备和系统

Also Published As

Publication number Publication date
US20180165878A1 (en) 2018-06-14
TW201830339A (zh) 2018-08-16
US10043318B2 (en) 2018-08-07
CN110050250A (zh) 2019-07-23
EP3552081A1 (en) 2019-10-16
ES2855123T3 (es) 2021-09-23
EP3552081B1 (en) 2020-11-18
TWI659391B (zh) 2019-05-11
CN110050250B (zh) 2020-11-03
HUE052188T2 (hu) 2021-04-28
WO2018106898A1 (en) 2018-06-14

Similar Documents

Publication Publication Date Title
BR112019010815A2 (pt) exibição de distorção de imagem sincronizada
US10241470B2 (en) No miss cache structure for real-time image transformations with data compression
US10591731B2 (en) Ocular video stabilization
US10691393B2 (en) Processing circuit of display panel, display method and display device
US10360832B2 (en) Post-rendering image transformation using parallel image transformation pipelines
US10242654B2 (en) No miss cache structure for real-time image transformations
US10672368B2 (en) No miss cache structure for real-time image transformations with multiple LSR processing engines
EP3572916B1 (en) Apparatus, system, and method for accelerating positional tracking of head-mounted displays
BR112015031234B1 (pt) Método para renderizar um objeto virtual em um visor transparente montado em cabeça e aparelho de exibição
US9542718B2 (en) Head mounted display update buffer
US9265415B1 (en) Input detection
EP3552078A1 (en) Phase aligned foveated rendering
US10976817B2 (en) Method and device for eye tracking with content-embedded glints
US20230196621A1 (en) Sparse rgb filter hardware accelerator
KR20240028295A (ko) 헤드셋 조정

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]
B06W Patent application suspended after preliminary examination (for patents with searches from other patent authorities) chapter 6.23 patent gazette]