ES2930598T3 - Re-proyección de imágenes para renderizado foveado - Google Patents

Re-proyección de imágenes para renderizado foveado Download PDF

Info

Publication number
ES2930598T3
ES2930598T3 ES20181994T ES20181994T ES2930598T3 ES 2930598 T3 ES2930598 T3 ES 2930598T3 ES 20181994 T ES20181994 T ES 20181994T ES 20181994 T ES20181994 T ES 20181994T ES 2930598 T3 ES2930598 T3 ES 2930598T3
Authority
ES
Spain
Prior art keywords
image
estimate
point
gaze point
predicted
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES20181994T
Other languages
English (en)
Inventor
Denny Rönngren
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tobii AB
Original Assignee
Tobii AB
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 Tobii AB filed Critical Tobii AB
Application granted granted Critical
Publication of ES2930598T3 publication Critical patent/ES2930598T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • 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
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/08Projecting images onto non-planar surfaces, e.g. geodetic screens
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/391Resolution modifying circuits, e.g. variable screen formats
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0252Improving the response speed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/066Adjustment of display parameters for control of contrast
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0686Adjustment of display parameters with two or more screen areas displaying information with different brightness or colours
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Overhead Projectors And Projection Screens (AREA)

Abstract

Se describen tecnologías para mejorar la representación visual de una imagen mejorando la posición de la imagen que se va a visualizar a través de la reproyección de imágenes. Por ejemplo, un método puede incluir recibir una primera estimación de un punto de mirada predicho de un usuario en un dispositivo de visualización que se determina antes de comenzar a representar una parte de la imagen de alta calidad. El método puede incluir además hacer que la imagen se represente en base a la primera estimación del punto de mirada predicho. El método también puede incluir recibir una segunda estimación del punto de mirada previsto. La segunda estimación del punto de mirada predicho se determina después de que haya comenzado la representación de la parte de alta calidad de la imagen. En respuesta a la determinación de que la segunda estimación del punto de mirada predicho es diferente de la primera estimación, (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Re-proyección de imágenes para renderizado foveado
Antecedentes
El renderizado y la visualización de una escena generada por ordenador en una pantalla ha aumentado en importancia en áreas tales como juegos, modelado y películas. El renderizado es un proceso computacionalmente costoso en el que toda la información espacial, de textura y de iluminación de una escena se combina para determinar el valor de color de cada píxel en la imagen renderizada. Sin embargo, los dispositivos de procesamiento gráfico que realizan el renderizado tienen una capacidad de procesamiento y una capacidad de memoria limitadas. Estos límites hacen que el renderizado de la escena, especialmente el renderizado en tiempo real, constituya un desafío.
Para acelerar el proceso de renderizado, en ocasiones se emplea el renderizado foveado. El renderizado foveado utiliza un rastreador ocular para reducir la carga de trabajo de renderizado, en base a la observación de que la visión humana se centra típicamente en la parte de la pantalla cerca del punto de mirada, mientras que la agudeza visual cae drásticamente en la visión periférica (es decir, el área fuera de la zona mirada por la fóvea). En el renderizado foveado, el contenido en un área cerca del punto de mirada de un usuario, también denominada en la presente memoria, “ región foveada” , se renderiza con alta calidad, mientras que el contenido fuera de la región foveada, denominada “ región no foveada” , se renderiza con menor calidad. A medida que se mueve el punto de mirada del usuario, las imágenes se vuelven a renderizar en consecuencia, para coincidir con la nueva ubicación del punto de mirada. US-2018227630A1 describe un método para visualizar subsiguientemente un flujo de imágenes en un área de visualización de un dispositivo de visualización, un punto de consideración de un usuario que mira el área de visualización, y la determinación de una primera área dentro del área de visualización alrededor del punto de consideración.
Sin embargo, el área de alta calidad de la imagen renderizada visualizada para un usuario, no siempre coincide con la región foveada del usuario. Las razones de este desajuste incluyen la latencia introducida por el proceso de renderizado, y la latencia e inexactitud en la estimación del punto de mirada, especialmente en escenarios donde se ha producido movimiento sacádico o parpadeo. Como resultado, la imagen renderizada y visualizada para un usuario se generó en función de un punto de mirada estimado para el usuario decenas de milisegundos antes. En consecuencia, el contenido que se proyecta en la región foveada del usuario en el momento de la visualización puede renderizarse en baja calidad, provocando una experiencia desagradable para el usuario.
Breve descripción
En algunas realizaciones, se da a conocer un método para mejorar la posición de una imagen a visualizar. El método puede incluir recibir una primera estimación de un punto de mirada previsto de un usuario en un dispositivo de visualización en el momento en el que se visualizará la imagen. La primera estimación del punto de mirada previsto se determina antes del inicio del renderizado de una parte de la imagen relacionada con la primera estimación del punto de mirada previsto, en donde dicha parte de la imagen corresponde a una región foveada en el dispositivo de visualización, que contiene la primera estimación del punto de mirada previsto del usuario, en donde la región foveada tiene una calidad superior a una región no foveada del dispositivo de visualización. El método puede incluir, además, hacer que la imagen, incluida la parte de la imagen, sea renderizada en base a la primera estimación del punto de mirada previsto. El método también puede incluir recibir una segunda estimación del punto de mirada previsto en el momento en el que se visualizará la imagen. La segunda estimación del punto de mirada previsto se determina después de iniciar el renderizado de la parte de la imagen. El método puede incluir, además, en respuesta a determinar si existe una diferencia entre la segunda estimación del punto de mirada previsto y la primera estimación del punto de mirada previsto y, si existe una diferencia que es menor que un umbral, ajustar la imagen renderizada, en base a la segunda estimación del punto de mirada previsto, re­ proyectando la imagen renderizada, de modo que una distancia entre la segunda estimación del punto de mirada previsto y un punto central de dicha parte de la imagen, se reduce, en donde dicha parte de la imagen se re-proyecta para corresponder a la región foveada en el dispositivo de visualización que comprende la segunda estimación del punto de mirada previsto, en donde la re-proyección se basa en una distancia entre la primera estimación del punto de mirada y la segunda estimación del punto de mirada, y transmitir la imagen renderizada ajustada al dispositivo de visualización, para su visualización.
En otra realización, se da a conocer un sistema informático para mejorar la posición de una imagen a visualizar. El sistema informático puede incluir un medio no transitorio legible por ordenador que almacena código de programa de una aplicación de procesamiento de imágenes, y un dispositivo de procesamiento acoplado de manera comunicativa al medio no transitorio legible por ordenador. El dispositivo de procesamiento puede configurarse para ejecutar el código de programa y realizar operaciones que incluyen recibir una primera estimación de un punto de mirada previsto de un usuario en un dispositivo de visualización en el momento en el que se visualizará la imagen. La primera estimación del punto de mirada previsto se determina antes del inicio del renderizado de una parte de la imagen relacionada con la primera estimación del punto de mirada previsto, en donde dicha parte de la imagen corresponde a una región foveada en el dispositivo de visualización, que contiene la primera estimación del punto de mirada previsto del usuario, en donde la región foveada tiene una calidad superior a una región no foveada del dispositivo de visualización. Las operaciones pueden incluir, además, hacer que la imagen, incluida la parte de la imagen, sea renderizada en base a la primera estimación del punto de mirada previsto. Las operaciones pueden incluir, además, recibir una segunda estimación del punto de mirada previsto en el momento en el que se visualizará la imagen. La segunda estimación del punto de mirada previsto se determina después de iniciar el renderizado de la parte de la imagen. Las operaciones pueden incluir, además, en respuesta a determinar si existe una diferencia entre la segunda estimación del punto de mirada previsto y la primera estimación del punto de mirada previsto y, si existe una diferencia que es menor que un umbral, ajustar la imagen renderizada, en base a la segunda estimación del punto de mirada previsto re-proyectando la imagen renderizada, de modo que una distancia entre la segunda estimación del punto de mirada previsto y un punto central de dicha parte de la imagen, se reduce, en donde dicha parte de la imagen se re-proyecta para corresponder a la región foveada en el dispositivo de visualización que comprende la segunda estimación del punto de mirada previsto, en donde la re-proyección se basa en una distancia entre la primera estimación del punto de mirada y la segunda estimación del punto de mirada, y transmitir la imagen renderizada ajustada al dispositivo de visualización, para su visualización.
En otra realización, se da a conocer un medio no transitorio legible por máquina que tiene instrucciones en el mismo para mejorar la posición de una imagen a visualizar. Las instrucciones pueden ser ejecutables por uno o más procesadores, para realizar operaciones que pueden incluir recibir una primera estimación de un punto de mirada previsto de un usuario en un dispositivo de visualización, en el momento en el que se visualizará la imagen. La primera estimación del punto de mirada previsto se determina antes del inicio del renderizado de una parte de la imagen relacionada con la primera estimación del punto de mirada previsto, en donde dicha parte de la imagen corresponde a una región foveada en el dispositivo de visualización, que contiene la primera estimación del punto de mirada previsto del usuario, en donde la región foveada tiene una calidad superior a una región no foveada del dispositivo de visualización. Las operaciones pueden incluir, además, hacer que la imagen, incluida la parte de la imagen, sea renderizada en base a la primera estimación del punto de mirada previsto. Las operaciones pueden incluir, además, recibir una segunda estimación del punto de mirada previsto en el momento en el que se visualizará la imagen. La segunda estimación del punto de mirada previsto se determina después de iniciar el renderizado de la parte de la imagen. Las operaciones pueden incluir, además, en respuesta a determinar si existe una diferencia entre la segunda estimación del punto de mirada previsto y la primera estimación del punto de mirada previsto y, si existe una diferencia que es menor que un umbral, ajustar la imagen renderizada, en base a la segunda estimación del punto de mirada previsto, re-proyectando la imagen renderizada, de modo que una distancia entre la segunda estimación del punto de mirada previsto y un punto central de dicha parte de la imagen, se reduce, y en donde la parte de la imagen se re-proyecta para corresponder a la región foveada en el dispositivo de visualización que comprende la segunda estimación del punto de mirada previsto, en donde la re-proyección se basa en una distancia entre la primera estimación del punto de mirada y la segunda estimación del punto de mirada, y transmitir la imagen renderizada ajustada al dispositivo de visualización, para su visualización.
Breve descripción de los dibujos
El objeto de la presente descripción se describe en combinación con las figuras adjuntas:
La Figura 1 es un diagrama de bloques de un posible sistema para mejorar el renderizado foveado, a través de re­ proyección de imágenes, según realizaciones presentadas en la presente memoria;
La Figura 2A representa un ejemplo de una vista de un dispositivo de visualización en el que se visualiza una imagen generada usando renderizado foveado;
La Figura 2B es un diagrama que ilustra un ejemplo de renderizado foveado, según realizaciones presentadas en la presente memoria;
La Figura 3 es un diagrama que ilustra un ejemplo de re-proyección de imágenes para mejorar el renderizado foveado, según realizaciones presentadas en la presente memoria;
Las Figuras 4A-C ilustran ejemplos de imágenes generadas durante el renderizado foveado, según realizaciones presentadas en la presente memoria;
La Figura 5 es un diagrama de flujo de un método ilustrativo para mejorar el renderizado foveado, a través de pre­ proyección de imágenes, según realizaciones presentadas en la presente memoria; y
La Figura 6 es un diagrama de bloques de un sistema informático ilustrativo que puede utilizarse en al menos alguna parte de los dispositivos o sistemas de la presente descripción, o que puede implementar al menos alguna parte de los métodos de la presente descripción.
En las figuras adjuntas, los componentes y/o características similares pueden tener la misma etiqueta de referencia numérica. Además, varios componentes del mismo tipo pueden distinguirse siguiendo la etiqueta de referencia mediante una letra que lo distinga de componentes y/o características similares. Si únicamente se utiliza la primera etiqueta de referencia numérica en la especificación, la descripción es aplicable a uno cualquiera de los componentes y/o características similares que tengan la misma primera etiqueta de referencia numérica independientemente del sufijo de letra.
Descripción detallada
Se describen realizaciones para mejorar el renderizado foveado a través de re-proyección de imágenes. En un ejemplo, un dispositivo de procesamiento gráfico recibe una primera estimación de un punto de mirada previsto de un usuario en un dispositivo de visualización. En base a la primera estimación del punto de mirada previsto, el dispositivo de procesamiento gráfico implementa, o hace que se implemente, un renderizado foveado, generando una parte de alta calidad de la imagen correspondiente a una región foveada que contiene la primera estimación del punto de mirada previsto del usuario, y la parte restante de la imagen para la región no foveada. Se determina la estimación del punto de mirada previsto del usuario antes del inicio del renderizado de la parte de alta calidad de la imagen. Después de haber iniciado el renderizado de la parte de alta calidad de la imagen, el dispositivo de procesamiento gráfico recibe una segunda estimación del punto de mirada previsto del usuario. El dispositivo de procesamiento gráfico determina si la segunda estimación del punto de mirada previsto del usuario es la misma que la primera estimación. Si no es así, y si la diferencia entre la primera y la segunda estimaciones es menor que un umbral, el dispositivo de procesamiento gráfico ajusta la imagen renderizada, re­ proyectando la imagen renderizada en base a la segunda estimación del punto de mirada previsto. Como resultado, la parte de alta calidad de la imagen de la imagen renderizada ajustada contiene la segunda estimación del punto de mirada previsto. Además, la imagen renderizada ajustada no causa artefactos notables para el usuario, ya que los ojos de las personas, típicamente, no notan el cambio de la imagen renderizada cuando el usuario cambia el punto de mirada. Como tal, el renderizado foveado a través de la re-proyección de imágenes presentado en la presente memoria puede aplicarse después de un movimiento sacádico o un parpadeo del usuario. La imagen renderizada ajustada se transmite a continuación al dispositivo de visualización, para su visualización.
Las tecnologías presentadas en la presente memoria mejoran el rendimiento del dispositivo de procesamiento gráfico, reduciendo el desajuste entre la región foveada y la parte de alta calidad de la imagen renderizada generada mediante renderizado foveado. Esto mejora, así, la calidad de la imagen visualizada para el usuario. Esto permite, además, que el dispositivo de procesamiento gráfico reduzca el consumo de recursos computacionales, aprovechando el renderizado foveado. En otras palabras, sin las tecnologías presentadas en la presente memoria, es posible que el dispositivo de procesamiento gráfico no use renderizado foveado, debido al desajuste entre la parte de alta calidad de la imagen renderizada y el punto de mirada real del usuario. Como resultado, las tecnologías presentadas en la presente memoria permiten la reducción del consumo global de recursos computacionales del sistema, usando el renderizado foveado sin causar artefactos notables.
La descripción que sigue, proporciona únicamente realizaciones ilustrativas, y no pretende limitar el alcance, la aplicabilidad ni la configuración de la descripción. Más bien, la siguiente descripción de las realizaciones ilustrativas proporcionará a los expertos en la técnica una descripción habilitante para implementar una o más realizaciones ilustrativas.
En la siguiente descripción, se dan detalles específicos para proporcionar una comprensión completa de las realizaciones. Sin embargo, un experto en la técnica entenderá que las realizaciones pueden ponerse en práctica sin estos detalles específicos. Por ejemplo, los circuitos, sistemas, redes, procesos y otros elementos de la presente descripción pueden mostrarse como componentes en forma de diagrama de bloques para no complicar las realizaciones con detalles innecesarios. En otros casos, los circuitos, procesos, algoritmos, estructuras y técnicas muy conocidos pueden mostrarse sin detalles innecesarios para evitar complicar las realizaciones.
Además, cabe señalar que pueden describirse realizaciones individuales como un procedimiento que se ilustra como un flujograma, un diagrama de flujo, un diagrama de flujo de datos, un diagrama estructural o un diagrama de bloques. Aunque un diagrama de flujo puede describir las operaciones como un proceso secuencial, muchas de las operaciones pueden realizarse en paralelo o al mismo tiempo. Además, se puede reorganizar el orden de las operaciones. Un proceso puede terminarse cuando se completen sus operaciones, pero podría tener etapas adicionales no analizadas o incluidas en una figura. Asimismo, no todas las operaciones de cualquier proceso particularmente descrito pueden ocurrir en todas las realizaciones. Un proceso puede corresponder a un método, una función, un procedimiento, una subrutina, un subprograma, etc. Cuando un proceso corresponde a una función, su terminación corresponde a un retorno de la función a la función de llamada o a la función principal. Cualquier detalle presente en una realización descrita puede o no estar presente en otras versiones de esa realización u otras realizaciones mencionadas en la presente memoria.
La expresión “ medio legible por máquina” , incluye, pero no se limita a, dispositivos de almacenamiento portátiles o fijos, dispositivos de almacenamiento óptico, canales inalámbricos y otros medios diversos capaces de almacenar, contener o transmitir una o más instrucciones y/o datos. Un segmento de código o instrucciones ejecutables por máquina pueden representar un procedimiento, una función, un subprograma, un programa, una rutina, una subrutina, un módulo, un paquete de software, una clase o cualquier combinación de instrucciones, estructuras de datos o sentencias de programa. Un segmento de código puede acoplarse a otro segmento de código o a un circuito de hardware al pasar y/o recibir información, datos, argumentos, parámetros o contenido de memoria. La información, los argumentos, los parámetros, los datos, etc. pueden pasarse, enviarse o transmitirse a través de cualquier medio adecuado que incluye compartir la memoria, pasar el mensaje, pasar el identificador, transmisión de red, etc.
Además, las realizaciones presentadas en la presente memoria pueden implementarse, al menos en parte, ya sea manual o automáticamente. Pueden ejecutarse implementaciones manuales o automáticas, o al menos asistidas, mediante el uso de máquinas, hardware, software, firmware, software personalizado, microcódigo, lenguajes descriptivos de hardware, o cualquier combinación de los mismos. Cuando se implementan en software, firmware, software personalizado o microcódigo, el código de programa o los segmentos de código para realizar las tareas necesarias pueden almacenarse en un medio legible por máquina. Uno o más procesadores pueden realizar las tareas necesarias.
En algunas realizaciones, y con referencia a la Figura 1, se da a conocer un sistema 100 para presentar gráficos o imágenes en un dispositivo 110 de visualización. El sistema 100 puede incluir un dispositivo 120 de seguimiento ocular y un dispositivo 130 de procesamiento gráfico. En algunas realizaciones, el sistema también puede incluir un dispositivo informático 140 que se comunica con, y controla, un dispositivo 130 de procesamiento gráfico. En algunas realizaciones, cualquier función del dispositivo 130 de procesamiento gráfico puede ser realizada, total o parcialmente, por un dispositivo informático 140. Parte de la función del dispositivo 130 de procesamiento gráfico también puede realizarse mediante otro dispositivo informático o en la nube. Simplemente a modo de ejemplo, el dispositivo 120 de seguimiento ocular puede proporcionarse integrado en, o además de, un ordenador personal 140 que tiene un dispositivo 130 de procesamiento gráfico y una unidad de procesamiento central (en algunas configuraciones, el dispositivo 130 de procesamiento gráfico y la unidad de procesamiento central están integrados).
En otras realizaciones, el dispositivo 120 de seguimiento ocular puede proporcionarse integrado en, o además de, una consola 140 de juegos, u otro dispositivo que tenga un dispositivo 130 de procesamiento gráfico y una unidad de procesamiento central. En otras realizaciones, el dispositivo 120 de seguimiento ocular puede proporcionarse integrado en, o además de, unos cascos ponibles, tales como unos de Virtual Reality (Realidad Virtual - VR) o Augmented Reality (Realidad Aumentada - AR), o similares. Asimismo, el dispositivo 110 de visualización también puede ser un dispositivo de visualización integral con unos auriculares portátiles, y el procesador 140 también puede ser integral con los auriculares portátiles. Por lo tanto, el sistema 100 puede ser unos auriculares portátiles con una head-mounted display (pantalla montada en la cabeza - HMD). Por lo tanto, las realizaciones presentadas en la presente memoria pueden aplicarse en la presentación de gráficos en cualquier número de dispositivos y aplicaciones posibles, incluida una pantalla de vídeo, videojuegos, producción y edición de vídeo, comunicaciones de vídeo, dibujo asistido por ordenador y diseño, etc.
El dispositivo 120 de seguimiento ocular puede servir para determinar al menos uno de un punto de mirada de un usuario en el dispositivo 110 de visualización o un cambio en el punto de mirada del usuario en el dispositivo 110 de visualización. Los dispositivos y métodos de seguimiento ocular, a veces denominados sistemas y métodos de detección de mirada, incluyen, por ejemplo, productos producidos y disponibles de Tobii AB, y que funcionan usando iluminación infrarroja y un sensor de imágenes para detectar el reflejo del ojo de un usuario. También se pueden usar otros sistemas alternativos de detección de mirada, independientemente de la tecnología detrás del sistema de detección de mirada. El dispositivo 120 de seguimiento ocular puede emplear su propio procesador, o el procesador de otro dispositivo (es decir, el dispositivo informático 140), para interpretar y procesar datos recibidos. Cuando se hace referencia a un dispositivo de seguimiento ocular en la presente memoria, se hace referencia a ambos métodos posibles de procesamiento de datos.
En algunas realizaciones, el dispositivo 130 de procesamiento gráfico renderiza la escena generada por ordenador, tal como una escena tridimensional (3D), en imágenes, y envía las imágenes renderizadas al dispositivo 110 de visualización, para su visualización. El dispositivo 130 de procesamiento gráfico utiliza renderizado foveado en base a, al menos en parte, el punto de mirada del usuario en el dispositivo 110 de visualización, o un cambio en el punto de mirada del usuario en el dispositivo 110 de visualización, según lo determinado por el dispositivo 120 de seguimiento ocular. El dispositivo 130 de procesamiento gráfico puede incluir, además, un módulo 150 de procesamiento gráfico para procesar las imágenes renderizadas, tal como combinar una parte de alta calidad y una imagen de fondo de baja calidad en el renderizado foveado, o realizar otras operaciones posteriores al procesamiento en la imagen renderizada. Según la invención, el módulo 150 de procesamiento gráfico también realiza el mecanismo de re-proyección de imágenes, antes de que la imagen renderizada se envíe al dispositivo 110 de visualización. El renderizado de imágenes también puede ser realizado por otro dispositivo informático localmente o en la nube, y luego la imagen renderizada se envía al dispositivo 110 de visualización a través de una conexión por cable o inalámbrica. Aunque en algunas realizaciones un dispositivo de visualización, no incluido o no integrado, separado será controlado por el dispositivo 130 de procesamiento gráfico, otras realizaciones pueden incluir o integrar el dispositivo 110 de visualización.
La forma en que el dispositivo 130 de procesamiento gráfico implementa el renderizado foveado puede variar dependiendo de las realizaciones. La Figura 2A ilustra una realización del renderizado foveado, que muestra un dispositivo 110 de visualización, un punto 210 de mirada del usuario en el dispositivo 110 de visualización, y la región foveada 220 alrededor del punto 210 de mirada del usuario en el que el dispositivo 130 de procesamiento gráfico puede visualizar una imagen que tiene una calidad superior a la región restante 230 del dispositivo 110 de visualización, también denominada “ región 230 no foveada” . En una realización, el dispositivo 130 de procesamiento gráfico renderiza la imagen para la región foveada 220, con una tasa de muestreo alta, mientras que la imagen para la región 230 no foveada, se renderiza con una tasa de muestreo baja. Como resultado, la imagen para la región 230 no foveada puede generarse con una baja resolución, y la imagen para la región foveada 220 puede generarse con una alta resolución. De esta manera, los recursos disponibles del dispositivo 130 de procesamiento gráfico, y/u otros recursos del sistema, pueden utilizarse de manera eficiente sin afectar la calidad visual global de la imagen visualizada.
Debe apreciarse que, aunque la región foveada 220 ilustrada en la Figura 2A tiene una forma circular, la región foveada 220 puede tener cualquier forma regular o irregular, tal como ovalada, cuadrada, rectangular o poligonal, etc. Asimismo, además de usar diferentes tasas de muestreo o resoluciones para la región foveada 220 y la región 230 no foveada, la calidad de estas dos regiones puede hacerse diferente en otros aspectos, tales como contraste, sombreado, mapeo de textura, mapeo topológico, sombras, reflejos, frecuencia de imagen, calidad de los efectos posteriores al procesamiento, calidad de refracción, calidad de objetos tridimensionales, etc.
La Figura 2B ilustra un ejemplo de renderizado foveado usando una calidad diferente, tal como las tasas de muestreo, para la región foveada 220 y la región 230 no foveada, según una realización de la presente descripción. En este ejemplo, el renderizado foveado implica generar una imagen 208 de fondo con baja calidad, y una imagen 204 de primer plano de alta calidad, también denominada en la presente memoria, imagen de alta calidad, área de alta calidad o parte de alta calidad. Usando la tasa de muestreo como ejemplo, la imagen 208 de fondo puede generarse usando una tasa de muestreo que es la mitad de la tasa de muestreo de una imagen generada para el dispositivo de visualización sin renderizado foveado, denominada en la presente memoria, “ imagen completa” . Como resultado, la imagen 208 de fondo tiene una dimensión que es la mitad de la imagen completa, en las direcciones tanto horizontal como vertical. La imagen 204 de primer plano de alta calidad puede tener una tasa de muestreo igual o similar que la imagen completa, pero unas dimensiones más pequeñas que la imagen completa o la región de visualización del dispositivo 110 de visualización.
En un ejemplo, la imagen 208 de fondo corresponde a todo el contenido de la imagen completa o la región de visualización completa. En comparación, la imagen 204 de primer plano de alta calidad corresponde a una región foveada 220. El renderizado foveado incluye, además, combinar la imagen 208 de fondo y la imagen 204 de primer plano de alta calidad, para generar una imagen compuesta 206. La combinación incluye superponer la imagen 204 de primer plano de alta calidad en la parte superior de la imagen 208 de fondo, dependiendo de la ubicación del punto 210 de mirada, y la región foveada 220. La imagen compuesta 206 se presenta en la región de visualización de imágenes de la pantalla. Por consiguiente, en lugar de presentar la imagen completa, se presenta la imagen compuesta 206, donde solo la imagen 204 de primer plano se presenta en alta calidad, y las partes restantes de la imagen compuesta se presentan en baja calidad. Pueden realizarse operaciones adicionales durante el proceso de combinación, tal como mezclar el contenido de imagen cerca del límite de la imagen 204 de primer plano de alta calidad, para suavizar la transición entre las partes de baja y alta calidad.
La Figura 3 es un diagrama que ilustra un ejemplo de re-proyección de imágenes para mejorar el renderizado foveado. En el ejemplo mostrado en la Figura 3, el dispositivo 120 de seguimiento ocular realiza una estimación del punto de mirada, de vez en cuando. Por ejemplo, el dispositivo 120 de seguimiento ocular puede generar una estimación del punto de mirada previsto en el momento en el que se visualizará la imagen, también denominada “estimación de punto de mirada” , cada 1­ 50 ms, preferiblemente 1-10 ms. Las estimaciones de los puntos de mirada previstos, pueden basarse en la información de las estimaciones de punto de mirada anteriores, tal como la última estimación de punto de mirada y la predicción del movimiento de la mirada. La predicción del movimiento de la mirada puede basarse en estimaciones de punto de mirada anteriores, información con respecto al movimiento de la mirada, tal como la velocidad del movimiento sacádico, el punto de interés esperado, etc.
En el instante T1, el dispositivo 130 de procesamiento gráfico comienza a renderizar una imagen, usando renderizado foveado, por ejemplo, para una escena 3D en un juego o un entorno de VR. En algún instante durante el proceso de renderizado, el dispositivo 130 de procesamiento gráfico comienza a renderizar la parte de alta calidad de la imagen. El dispositivo 130 de procesamiento gráfico puede utilizar la última estimación 302A de punto de mirada como la mejor estimación del punto de mirada previsto, para generar una imagen renderizada 304. Debe observarse que la última estimación 302 de punto de mirada puede determinarse después de T1, es decir, de que el renderizado de la imagen ha comenzado, pero antes de iniciar el renderizado de la parte de alta calidad de la imagen. La Figura 4A muestra un ejemplo de una imagen renderizada, donde el círculo blanco indica la parte de alta calidad generada para la región foveada en base a la estimación 302A del punto de mirada. En el ejemplo mostrado en la Figura 4A, la parte de la imagen correspondiente a la región foveada se renderiza con una alta resolución, mientras que el resto de la imagen se genera con una baja resolución.
Como se describió anteriormente, el proceso de renderizado de imágenes puede ser complicado y puede tomar una cantidad de tiempo no despreciable. Durante el proceso de renderizado, la estimación del punto de mirada del usuario podría haberse movido a una ubicación diferente de lo que se indica en la estimación 302A del punto de mirada. Como resultado, es probable que la parte de alta calidad de la imagen renderizada 304 no corresponda a la región foveada real del usuario, cuando se visualiza la imagen renderizada 304. La Figura 4B muestra un ejemplo del desajuste entre la parte de alta calidad de la imagen renderizada 304 y la región foveada real. En la Figura 4B, el círculo oscuro muestra la región foveada en base a la estimación 302A del punto de mirada utilizada en el renderizado foveado, y el círculo blanco muestra la región foveada real en base a la última estimación del punto de mirada del usuario. Como puede observarse en la Figura 4B, debido al desajuste, la parte de alta calidad de la imagen renderizada se renderiza en una ubicación equivocada, y parte de la imagen que se proyecta en la fóvea del usuario puede tener baja calidad.
Para abordar este problema, el módulo 150 de procesamiento gráfico puede utilizar la última salida del dispositivo 120 de seguimiento ocular, para modificar la imagen renderizada 304. Durante el proceso de renderizado de imágenes, o después del proceso de renderizado de imágenes, pero antes de la visualización de la imagen renderizada, tal como el instante T2 mostrado en la Figura 3, el dispositivo 120 de seguimiento ocular también puede haber generado una nueva estimación 302B de punto de mirada. En comparación con la estimación 302A de punto de mirada anterior (primera), esta nueva (segunda) estimación 302B de punto de mirada puede estar más cerca del punto de mirada real del usuario, cuando la imagen renderizada se visualiza para el usuario. En particular, el módulo 150 de procesamiento gráfico puede re-proyectar la imagen renderizada 304, en base a la última estimación 302B de punto de mirada, para generar una imagen actualizada 306.
La re-proyección se realiza de manera que la parte de alta calidad de la imagen actualizada 306 corresponde a la región foveada indicada por la última estimación 302B de punto de mirada. Por lo tanto, la re-proyección está determinada por la última estimación 302B de punto de mirada y la estimación 302A de punto de mirada anterior. La re-proyección puede realizarse mediante cualquier técnica de distorsión conocida en la técnica, tal como la asynchronous time warp (distorsión de tiempo asíncrona - ATW) o el desplazamiento de imágenes. La Figura 4C muestra un ejemplo de la imagen actualizada 306, re-proyectando la imagen renderizada 304 según la última estimación 302B de punto de mirada. En este ejemplo, la re-proyección desplaza toda la imagen a la derecha, de modo que la parte de alta calidad de la imagen renderizada 304, es decir, la parte que muestra una puerta, coincide con la región foveada en base a la última estimación 302B de punto de mirada. La imagen actualizada 306 se transmite a continuación al dispositivo 110 de visualización, para su visualización. Dado que la imagen actualizada 306 se genera teniendo en cuenta la última estimación 302B de punto de mirada, la parte de alta calidad de la imagen actualizada 306, probablemente, coincidiría con la región foveada del usuario cuando se está visualizando la imagen.
Sin embargo, en algunos escenarios, la diferencia entre la última (segunda) estimación 302B de punto de mirada y la primera estimación 302A de punto de mirada, para renderizar la imagen, es tan grande que la re-proyección no puede realizarse sin introducir artefactos notables en la imagen actualizada 306. Por ejemplo, un movimiento sacádico o un parpadeo del usuario puede causar una gran diferencia entre las estimaciones 302A y 302B de punto de mirada. En otro ejemplo, los errores de estimación producidos en cualquiera de las estimaciones 302A y 302B de punto de mirada pueden causar también una gran diferencia entre las estimaciones 302A y 302B de punto de mirada. Para evitar introducir artefactos notables en la imagen actualizada 306, el módulo 150 de procesamiento gráfico compara la diferencia entre las estimaciones 302A y 302B de punto de mirada con un valor umbral. La diferencia se puede calcular como la distancia entre las dos estimaciones 302A y 302B de punto de mirada. Si la diferencia es mayor o igual que el umbral, la imagen renderizada 304 se transmite al dispositivo 110 de visualización para su visualización sin re-proyección.
Si la diferencia es menor que el umbral, el módulo 150 de procesamiento gráfico actualiza la imagen renderizada 304, re­ proyectando la imagen renderizada 304 en base a la última estimación 302B de punto de mirada. La re-proyección se realiza para reducir la distancia entre el punto central de la parte de alta calidad de la imagen y la última estimación 302B de punto de mirada. Por ejemplo, la reducción puede realizarse para reducir la distancia entre el punto central de la parte de alta calidad de la imagen, y la última estimación 302B a 0 de punto de mirada. La reducción puede estar sujeta a ciertas restricciones. Las restricciones se pueden establecer en base a diversos factores, tales como las preferencias del usuario, la distancia de re-proyección permitida, etc. Asimismo, el umbral también se puede determinar en función de estos factores.
En realizaciones adicionales, después de que la imagen se re-proyecte, el módulo 150 de procesamiento gráfico puede generar, además, una tercera estimación del punto de mirada, en base a la estimación 302A del punto de mirada (la primera estimación del punto de mirada) y la estimación 302B del punto de mirada (la segunda estimación del punto de mirada). La generación de la tercera estimación de punto de mirada se basa en el hecho de que la re-proyección cambió la imagen y el usuario no ve el contenido que se supone que el usuario debe ver en el punto de mirada actual. Como resultado, el usuario tiende a mover el punto de mirada hacia la ubicación de la pantalla donde se muestra el contenido, que corresponde a la segunda estimación de punto de mirada, antes de la re-proyección de la imagen, después de la re­ proyección de la imagen. En el ejemplo mostrado en la Figura 4B, la primera estimación de punto de mirada es el punto 402 de mirada, y la segunda estimación de punto de mirada es el punto 404 de mirada. Sin la re-proyección, se supone que el usuario ve el área de la ventana mirando al punto 404 de mirada. Con la re-proyección, el usuario ve el área de la puerta mirando al punto 404 de mirada, en lugar del área de la ventana.
Cuando el usuario se da cuenta de que no ve el área de la ventana al mirar al punto 404 de mirada, es probable que el usuario mueva sus ojos hacia el área de la ventana, mostrada como el tercer punto 406 de mirada en la Figura 4C. En base a esta observación, el módulo 150 de procesamiento gráfico puede, en un ejemplo, calcular la tercera estimación como G3 = G2 + (G2 - G1), en donde Gi, G2, G3 son la primera estimación 402 de punto de mirada, segunda estimación 404 de punto de mirada y tercera estimación 406 de punto de mirada, respectivamente. En otro ejemplo, el módulo 150 de procesamiento gráfico puede calcular que la tercera estimación de punto de mirada está en un punto entre la segunda estimación G2 de punto de mirada y la G3 calculada como anteriormente. La elección de la manera de calcular la tercera estimación de punto de mirada puede basarse en factores tales como la frecuencia de actualización de imágenes, la distancia entre la primera estimación del punto de mirada y la segunda estimación del punto de mirada, tiempo de reacción estimado y velocidad del movimiento sacádico del usuario al darse cuenta de que el usuario está mirando al área de la puerta, en lugar del área de la ventana, tal como se pretendía.
En el instante en el que se realiza la tercera estimación del punto de mirada previsto en el módulo 150 de procesamiento gráfico, también es probable que el módulo 150 de procesamiento gráfico haya recibido información actualizada con respecto al punto de mirada, desde el dispositivo 120 de seguimiento ocular. En ese caso, el módulo 150 de procesamiento gráfico puede combinar la estimación del punto de mirada del dispositivo 120 de seguimiento ocular y la tercera estimación obtenida como se ha descrito anteriormente. La tercera estimación obtenida del punto de mirada previsto puede utilizarse para generar la siguiente imagen renderizada, por ejemplo, enviando la tercera estimación del punto de mirada previsto al dispositivo 130 de procesamiento gráfico, para realizar el renderizado foveado para la siguiente imagen.
Aunque en lo anteriormente descrito la re-proyección de imágenes se describe como un proceso independiente, puede combinarse con un proceso de re-proyección o de distorsión existente. Por ejemplo, el sistema 100 puede incluir unos auriculares portátiles, tales como auriculares de VR o auriculares de AR, que implementan una distorsión de imagen en imágenes renderizadas en base a la última lectura de la posición de la cabeza. En estos ejemplos, la re-proyección puede combinarse con la distorsión de imagen, para tener tanto la posición de la cabeza como la estimación del punto de mirada como entrada para el proceso de distorsión. En algunos ejemplos, se pueden asignar diferentes ponderaciones a la posición de la cabeza y las estimaciones de punto de mirada, para ajustar la importancia relativa entre estas dos entradas. En otros ejemplos, una dirección de distorsión, tal como la dirección vertical, se determina en base a la estimación de la posición de la cabeza, y la otra dirección, tal como la dirección horizontal, se determina en base a la estimación del punto de mirada. También se pueden utilizar otras formas de combinar diferentes entradas para el proceso de re-proyección.
Debe entenderse que, aunque la Figura 3 muestra que una estimación de punto de mirada se genera después de iniciar el proceso de renderizado de imágenes, es posible que se hayan generado múltiples estimaciones de punto de mirada desde el inicio del proceso de renderizado de imágenes. En este caso, el módulo 150 de procesamiento gráfico utiliza la última estimación de punto de mirada a partir de las múltiples estimaciones de punto de mirada, para realizar la re­ proyección. También es posible que no se genere ninguna nueva estimación de punto de mirada después de que se genere la imagen renderizada 304, en cuyo caso la imagen renderizada 304 se transmite al dispositivo 110 de visualización, sin re-proyección de imágenes.
La Figura 5 es un diagrama de flujo de un método ilustrativo 500 para mejorar el renderizado foveado, a través de re­ proyección de imágenes, según realizaciones presentadas en la presente memoria. Uno o más dispositivos informáticos (p. ej., el dispositivo informático 140 o, más específicamente, el dispositivo 130 de procesamiento gráfico) implementan operaciones representadas en la Figura 5, ejecutando un código de programa adecuado (p. ej., el módulo 150 de procesamiento gráfico). Con fines ilustrativos, el método 500 se describe con referencia a ciertos ejemplos representados en las figuras. Sin embargo, son posibles otras implementaciones.
En el bloque 502, el método 500 implica recibir una primera estimación de un punto de mirada previsto de un usuario, en un dispositivo 110 de visualización, cuando se visualizará la imagen renderizada. Como se ha explicado anteriormente, los datos de mirada pueden generarse mediante un dispositivo 120 de seguimiento ocular que puede estar separado del dispositivo informático 140, o integrado en el mismo. En el bloque 504, el método 500 implica realizar o causar que se realice un renderizado foveado de una imagen 304 en base a la primera estimación del punto de mirada previsto. El renderizado puede realizarse mediante el dispositivo 130 de procesamiento gráfico u otro dispositivo informático que esté conectado de manera comunicativa al dispositivo 130 de procesamiento gráfico.
En el bloque 506, el método 500 implica recibir una segunda estimación del punto de mirada previsto desde el dispositivo 120 de seguimiento ocular. En el bloque 508, el método 500 implica comparar la segunda estimación del punto de mirada previsto, con la primera estimación, para determinar si existe alguna diferencia entre estas dos estimaciones. Si es así, el método 500 pasa al bloque 510, en donde el dispositivo 130 de procesamiento gráfico compara la diferencia con un valor umbral. Si la diferencia entre las dos estimaciones es menor que el umbral, el método 500 continúa adicionalmente al bloque 512. En el bloque 512, el dispositivo 130 de procesamiento gráfico re-proyecta la imagen renderizada 304 en base a la segunda estimación del punto de mirada previsto, para generar una imagen actualizada 306. En el bloque 514, el dispositivo 130 de procesamiento gráfico transmite la imagen actualizada 306 al dispositivo 110 de visualización, para su visualización.
Si, en el bloque 508, se determina que la segunda estimación del punto de mirada previsto y la primera estimación son iguales, o en el bloque 510, se determina que la diferencia entre las dos estimaciones es mayor o igual que el valor umbral, el método 500 continúa al bloque 514. En el bloque 514, el dispositivo 130 de procesamiento gráfico transmite la imagen renderizada 304 al dispositivo 110 de visualización, para su visualización.
En el bloque 516, el método 500 implica determinar si debería detenerse el renderizado. Por ejemplo, el usuario ha instruido detener el renderizado de imágenes. Si no, el método 500 vuelve al bloque 502, en donde el dispositivo 130 de procesamiento gráfico recibe una nueva estimación del punto de mirada previsto para el renderizado foveado. Si se determina en el bloque 516 que el proceso de renderizado debe detenerse, el método 500 finaliza.
La Figura 6 es un diagrama de bloques que ilustra un sistema 600 informático ilustrativo en el que pueden implementarse realizaciones presentadas en la presente memoria. Este ejemplo ilustra un sistema informático 600 tal como puede usarse, en su totalidad, en parte o con diversas modificaciones, para obtener las funciones del dispositivo 120 de seguimiento ocular, el dispositivo 130 de procesamiento gráfico, la consola de juegos, el dispositivo informático 140 y/u otros componentes descritos anteriormente. Por ejemplo, varias funciones del dispositivo 120 de seguimiento ocular y procesadores asociados, pueden controlarse mediante el sistema informático 600, incluidos, simplemente a modo de ejemplo, el seguimiento del punto de mirada de un usuario, la determinación de un punto de mirada anticipado, el control del dispositivo 130 de procesamiento gráfico, etc.
El sistema 600 informático se muestra comprendiendo elementos de hardware que pueden estar acoplados eléctricamente a través de un bus 690. Los elementos de hardware pueden incluir una o más unidades 610 de procesamiento central, uno o más dispositivos 620 de entrada (p. ej., un ratón, un teclado, etc.) y uno o más dispositivos 630 de salida (p. ej., un dispositivo de visualización, una impresora, etc.). El sistema 600 informático también puede incluir uno o más dispositivos 640 de almacenamiento. A modo de ejemplo, el dispositivo o los dispositivos 640 de almacenamiento pueden ser unidades de disco, dispositivos de almacenamiento óptico, un dispositivo de almacenamiento en estado sólido, tal como una random access memory (memoria de acceso aleatorio - “ RAM” ) y/o una read-only memory (memoria de solo lectura - “ ROM” ), que pueden ser programables, actualizables por memoria flash y/o similares.
El sistema informático 600 puede incluir, de forma adicional, un lector 650 de medios de almacenamiento legibles por ordenador, un sistema 660 de comunicaciones (p. ej., un módem, una tarjeta de red [inalámbrica o por cable], un dispositivo de comunicación de infrarrojos, un dispositivo Bluetooth™, un dispositivo de comunicación celular, etc.) y una memoria 680 de trabajo, que puede incluir dispositivos RAM y ROM, como se ha descrito anteriormente. En algunas realizaciones, el sistema 600 informático puede incluir también una unidad 670 de aceleración del procesamiento, que puede incluir un procesador de señales digitales, un procesador de propósito especial y/o similares.
El lector 650 de medios de almacenamiento legibles por ordenador, además, puede conectarse a un medio de almacenamiento legible por ordenador (y, opcionalmente, en combinación con el/los dispositivo(s) 640 de almacenamiento) que representan de manera integral dispositivos de almacenamiento remotos, locales, fijos y/o extraíbles, más medios de almacenamiento para contener de forma temporal y/o más permanente información legible por ordenador. El sistema 660 de comunicaciones puede permitir que los datos se intercambien con una red, sistema, ordenador y/u otro componente descrito anteriormente.
El sistema 600 informático también puede comprender elementos de software, que se muestran actualmente ubicados dentro de una memoria 680 de trabajo, que incluye un sistema 684 operativo y/u otro código 688. Debe apreciarse que las realizaciones alternativas de un sistema informático 600 pueden tener numerosas variaciones con respecto a lo descrito anteriormente. Por ejemplo, también podría utilizarse hardware personalizado y/o podrían implementarse elementos particulares en hardware, software (incluido software portátil, tal como applets) o ambos. Además, también puede producirse la conexión a otros dispositivos informáticos, tales como dispositivos de entrada/salida de red y de captación de datos.
El software del sistema 600 informático puede incluir un código 688 para aplicar alguna o todas las funciones de los diversos elementos de la arquitectura, como se describe en la presente memoria. Por ejemplo, el software, almacenado en y/o ejecutado por un sistema informático, tal como el sistema 600, puede proporcionar las funciones del dispositivo 120 de seguimiento ocular, el dispositivo 130 de procesamiento gráfico, la consola de juegos, el procesador/ordenador y/u otros componentes, tales como los descritos anteriormente. Los métodos implementables mediante software en algunos de estos componentes se han analizado anteriormente con mayor detalle.
Se acaba de describir en detalle la tecnología presentada en la presente memoria, con fines de claridad y comprensión. Sin embargo, se apreciará que pueden hacerse determinados cambios y modificaciones dentro del ámbito de las reivindicaciones adjuntas.

Claims (1)

  1. REIVINDICACIONES
    Un método (500) para mejorar una posición de una imagen (304) a visualizar, comprendiendo el método:
    recibir (502), mediante un dispositivo (140) de procesamiento, una primera estimación (302A; 402) de un punto (210) de mirada previsto, de un usuario en un dispositivo (110) de visualización, en un momento en el que se visualizará la imagen, determinándose la primera estimación del punto de mirada previsto, antes de un inicio del renderizado de una parte de la imagen relacionada con la primera estimación del punto de mirada previsto, en donde dicha parte de la imagen corresponde a una región foveada (220) en el dispositivo de visualización que contiene la primera estimación del punto de mirada previsto del usuario, en donde la región foveada tiene una calidad superior a una región (230) no foveada del dispositivo de visualización;
    hacer (504), mediante el dispositivo de procesamiento, que la imagen, incluyendo dicha parte de la imagen, sea renderizada en base a la primera estimación del punto de mirada previsto;
    recibir (506), mediante el dispositivo de procesamiento, una segunda estimación (302B; 404) del punto de mirada previsto en el momento en el que se visualizará la imagen, determinándose la segunda estimación del punto de mirada previsto, después del inicio del renderizado de dicha parte de la imagen; y
    caracterizado por, determinar (508) si existe una diferencia entre la segunda estimación del punto de mirada previsto y la primera estimación del punto de mirada previsto y, si existe una diferencia que es menor que un umbral (510),
    ajustar (512) la imagen renderizada en base a la segunda estimación del punto de mirada previsto, re­ proyectando la imagen renderizada, de modo que una distancia entre la segunda estimación del punto de mirada previsto y
    un punto central de dicha parte de la imagen se reduce, en donde dicha parte de la imagen se re­ proyecta para corresponder a la región foveada en el dispositivo de visualización que comprende la segunda estimación del punto de mirada previsto, en donde la re-proyección se basa en una distancia entre la primera estimación del punto de mirada y la segunda estimación del punto de mirada, y transmitir (514) la imagen renderizada ajustada al dispositivo de visualización, para su visualización.
    El método de la reivindicación 1, en donde el método comprende, además:
    en respuesta a determinar (510) que existe una diferencia que es mayor que el umbral, transmitir la imagen renderizada al dispositivo de visualización, para su visualización sin dicha etapa de ajustar la imagen renderizada.
    El método de la reivindicación 1, en donde el dispositivo de procesamiento es una parte de un dispositivo de realidad virtual, y en donde re-proyectar la imagen renderizada se basa, adicionalmente, en un movimiento del usuario que lleva puesto el dispositivo de realidad virtual.
    Un sistema informático (600) que comprende:
    un medio no transitorio legible por ordenador, que almacena código de programa de una aplicación de procesamiento de imágenes; y
    un dispositivo (140) de procesamiento, acoplado de manera comunicativa al medio no transitorio legible por ordenador, en donde el dispositivo (140) de procesamiento está configurado para ejecutar el código de programa y, por lo tanto, realizar operaciones que comprenden:
    recibir (502) una primera estimación (302A; 402) de un punto (210) de mirada previsto, de un usuario en un dispositivo (110) de visualización, en un momento en el que se visualizará una imagen (304), determinándose la primera estimación del punto de mirada previsto, antes de un inicio del renderizado de una parte de la imagen relacionada con la primera estimación del punto de mirada previsto, en donde dicha parte de la imagen corresponde a una región foveada (220) en el dispositivo de visualización que contiene la primera estimación del punto de mirada previsto del usuario, en donde la región foveada tiene una calidad superior a una región (230) no foveada del dispositivo de visualización;
    hacer (504) que la imagen, incluyendo dicha parte de la imagen, sea renderizada en base a la primera estimación del punto de mirada previsto;
    recibir (506) una segunda estimación (302B; 404) del punto de mirada previsto, en el momento en el que se visualizará la imagen, determinándose la segunda estimación del punto de mirada previsto, después del inicio del renderizado de dicha parte de la imagen; y caracterizado por, determinar (508) si existe una diferencia entre la segunda estimación del punto de mirada previsto y la primera estimación del punto de mirada previsto y, si existe una diferencia que es menor que un umbral (510),
    ajustar la imagen renderizada en base a la segunda estimación del punto de mirada previsto, re-proyectando la imagen renderizada, de modo que una distancia entre la segunda estimación del punto de mirada previsto y un punto central de dicha parte de la imagen se reduce, en donde dicha parte de la imagen se re-proyecta para corresponder a la región foveada en el dispositivo de visualización que comprende la segunda estimación del punto de mirada previsto, en donde la re-proyección se basa en una distancia entre la primera estimación del punto de mirada y la segunda estimación del punto de mirada, y transmitir (514) la imagen renderizada ajustada al dispositivo de visualización, para su visualización.
    5. El sistema informático (600) de la reivindicación 4, que comprende, además, el dispositivo de visualización, en donde el dispositivo de visualización es una pantalla montada en la cabeza.
    6. El sistema informático (600) de la reivindicación 4, en donde dicha parte de la imagen se renderiza en una resolución más alta que partes de la imagen fuera de dicha parte de la imagen, y/o
    en donde dicha parte de la imagen se renderiza en un contraste más alto que partes de la imagen fuera de dicha parte de la imagen.
    7. Un medio no transitorio legible por máquina, que tiene instrucciones en el mismo para mejorar una posición de una imagen (304) a visualizar, ejecutables las instrucciones por uno o más procesadores (140), para realizar operaciones que comprenden:
    recibir (502) una primera estimación (302A; 402) de un punto (210) de mirada previsto, de un usuario en un dispositivo (110) de visualización, en un momento en el que se visualizará la imagen, determinándose la primera estimación del punto de mirada previsto, antes de un inicio del renderizado de una parte de la imagen relacionada con la primera estimación del punto de mirada previsto, en donde dicha parte de la imagen corresponde a una región foveada (220) en el dispositivo de visualización que contiene la primera estimación del punto de mirada previsto del usuario, en donde la región foveada tiene una calidad superior a una región (230) no foveada del dispositivo de visualización; hacer (504) que la imagen, incluyendo dicha parte de la imagen, sea renderizada en base a la primera estimación del punto de mirada previsto;
    recibir (506) una segunda estimación (302B; 404) del punto de mirada previsto en el momento en el que se visualizará la imagen, determinándose la segunda estimación del punto de mirada previsto, después del inicio del renderizado de dicha parte de la imagen; y
    caracterizado por, determinar (508) si existe una diferencia entre la segunda estimación del punto de mirada previsto y la primera estimación del punto de mirada previsto y, si existe una diferencia que es menor que un umbral (510),
    ajustar la imagen renderizada en base a la segunda estimación del punto de mirada previsto, re-proyectando la imagen renderizada, de modo que una distancia entre la segunda estimación del punto de mirada previsto y un punto central de dicha parte de la imagen se reduce, en donde dicha parte de la imagen se re-proyecta para corresponder a la región foveada en el dispositivo de visualización que comprende la segunda estimación del punto de mirada previsto, en donde la re-proyección se basa en una distancia entre la primera estimación del punto de mirada y la segunda estimación del punto de mirada, y transmitir (514) la imagen renderizada ajustada al dispositivo de visualización, para su visualización.
    8. El medio no transitorio legible por máquina de la reivindicación 7, en donde las operaciones comprenden, además, generar una tercera estimación (406) del punto de mirada previsto, en base a la segunda estimación del punto de mirada previsto y la primera estimación del punto de mirada previsto,
    opcionalmente, en donde las operaciones comprenden, además:
    hacer que se genere una segunda imagen renderizada en base a la tercera estimación del punto de mirada previsto, comprendiendo la segunda imagen renderizada una parte que corresponde a una región foveada en el dispositivo de visualización que contiene la tercera estimación del punto de mirada previsto.
    9. El medio no transitorio legible por máquina de la reivindicación 8, en donde el dispositivo de visualización es una pantalla montada en la cabeza de unos auriculares de realidad virtual.
ES20181994T 2019-06-27 2020-06-24 Re-proyección de imágenes para renderizado foveado Active ES2930598T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/455,225 US10712817B1 (en) 2019-06-27 2019-06-27 Image re-projection for foveated rendering

Publications (1)

Publication Number Publication Date
ES2930598T3 true ES2930598T3 (es) 2022-12-19

Family

ID=71143542

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20181994T Active ES2930598T3 (es) 2019-06-27 2020-06-24 Re-proyección de imágenes para renderizado foveado

Country Status (4)

Country Link
US (1) US10712817B1 (es)
EP (1) EP3757727B1 (es)
CN (2) CN112150601B (es)
ES (1) ES2930598T3 (es)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
WO2020141344A2 (en) * 2018-07-20 2020-07-09 Tobii Ab Distributed foveated rendering based on user gaze
US11681415B2 (en) * 2018-10-31 2023-06-20 Apple Inc. Near-viewing notification techniques
SE1851562A1 (en) * 2018-12-12 2020-06-02 Tobii Ab Method Computer Program and Driver Unit for Streaming Gaze Data Packets
US11315326B2 (en) * 2019-10-15 2022-04-26 At&T Intellectual Property I, L.P. Extended reality anchor caching based on viewport prediction
US20220201271A1 (en) * 2020-12-23 2022-06-23 Facebook Technologies, Llc Temporal foveated rendering
US11503998B1 (en) 2021-05-05 2022-11-22 Innodem Neurosciences Method and a system for detection of eye gaze-pattern abnormalities and related neurological diseases
CN113655638B (zh) * 2021-07-21 2024-04-30 青岛海尔空调器有限总公司 用于控制智能家电的方法及装置、智能眼镜
US11972047B1 (en) * 2023-03-20 2024-04-30 Tencent America LLC Control method and device for near eye display system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE524003C2 (sv) 2002-11-21 2004-06-15 Tobii Technology Ab Förfarande och anläggning för att detektera och följa ett öga samt dess blickvinkel
US20180227630A1 (en) * 2015-08-07 2018-08-09 SensoMotoric Instruments Gesellschaft für innovative Sensorik mbH System and method for displaying a stream of images
US10460527B2 (en) 2017-06-30 2019-10-29 Tobii Ab Systems and methods for displaying images in a virtual world environment
JP2019028368A (ja) * 2017-08-02 2019-02-21 株式会社ソニー・インタラクティブエンタテインメント レンダリング装置、ヘッドマウントディスプレイ、画像伝送方法、および画像補正方法
US10890968B2 (en) * 2018-05-07 2021-01-12 Apple Inc. Electronic device with foveated display and gaze prediction

Also Published As

Publication number Publication date
CN112150601A (zh) 2020-12-29
EP3757727A1 (en) 2020-12-30
CN112150601B (zh) 2022-06-03
EP3757727B1 (en) 2022-10-05
CN115187719A (zh) 2022-10-14
US10712817B1 (en) 2020-07-14

Similar Documents

Publication Publication Date Title
ES2930598T3 (es) Re-proyección de imágenes para renderizado foveado
US10553017B2 (en) Continuous time warp and binocular time warp for virtual and augmented reality display systems and methods
ES2938535T3 (es) Representación foveada distribuida basada en la mirada del usuario
US9928655B1 (en) Predictive rendering of augmented reality content to overlay physical structures
KR102281026B1 (ko) 홀로그램 앵커링 및 동적 포지셔닝 기법
US10365711B2 (en) Methods, systems, and computer readable media for unified scene acquisition and pose tracking in a wearable display
US20160238852A1 (en) Head mounted display performing post render processing
ES2971102T3 (es) Reducción de artefactos de solapamiento en un renderizado foveado usando una modulación de resolución cruzada
CN108885856B (zh) 信息处理设备、信息处理方法和程序
US11301969B1 (en) Context aware dynamic distortion correction
ES2906311T3 (es) Manipulación gráfica basada en la mirada y en la sacudida ocular
US11308685B2 (en) Rendering computer-generated reality text
US20240169489A1 (en) Virtual, augmented, and mixed reality systems and methods
US9265415B1 (en) Input detection
US11039124B2 (en) Information processing apparatus, information processing method, and recording medium
EP3862981A1 (en) Information processing device, information processing method, and recording medium
US11818325B2 (en) Blended mode three dimensional display systems and methods
US11543655B1 (en) Rendering for multi-focus display systems
US11694379B1 (en) Animation modification for optical see-through displays
US11237413B1 (en) Multi-focal display based on polarization switches and geometric phase lenses
US20230403386A1 (en) Image display within a three-dimensional environment