DE112019002368T5 - DYNAMIC "FOVEATED PIPELINE" - Google Patents

DYNAMIC "FOVEATED PIPELINE" Download PDF

Info

Publication number
DE112019002368T5
DE112019002368T5 DE112019002368.3T DE112019002368T DE112019002368T5 DE 112019002368 T5 DE112019002368 T5 DE 112019002368T5 DE 112019002368 T DE112019002368 T DE 112019002368T DE 112019002368 T5 DE112019002368 T5 DE 112019002368T5
Authority
DE
Germany
Prior art keywords
image
warped
various implementations
pixels
rendering
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.)
Pending
Application number
DE112019002368.3T
Other languages
German (de)
Inventor
Tobias Eble
Ye Cong
Cody J. White
Arthur Yasheng Zhang
Randall Rauwendaal
Moinul Khan
Jim C. Chou
Hao Pan
Nicolas P. Bonnier
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.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of DE112019002368T5 publication Critical patent/DE112019002368T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)

Abstract

In einer Implementierung schließt ein Verfahren das Empfangen eines verzerrten Bildes ein, das einen Inhalt einer simulierten Realität (SR) darstellt (der z. B. in einem Anzeigeraum angezeigt werden soll), wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen des SR-Inhalts (z. B. in dem Anzeigeraum) anzeigen. Das Verfahren schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren, um ein verarbeitetes verzerrtes Bild zu erzeugen, und das Übertragen des verarbeiteten verzerrten Bildes ein.In one implementation, a method includes receiving a warped image representing simulated reality (SR) content (e.g. to be displayed in a display room), the warped image having a plurality of pixels at respective locations, evenly spaced in a grid pattern in a distorted space, the plurality of pixels each being associated with a plurality of respective pixel values and a plurality of respective scale factors representing a plurality of respective resolutions at a plurality of respective locations of the SR content (e.g. B. in the display room). The method includes processing the warped image in the warped space based on the plurality of respective scale factors to produce a processed warped image and transmitting the processed warped image.

Description

TECHNISCHES GEBIETTECHNICAL AREA

Die vorliegende Offenbarung bezieht sich allgemein auf Bild-Rendering und insbesondere auf Systeme, Verfahren und Vorrichtungen zum Rendering von Bildern für simulierte Realität mit einer variierenden Detailmenge.The present disclosure relates generally to image rendering and, more particularly, to systems, methods, and apparatus for rendering images for simulated reality having a varying amount of detail.

STAND DER TECHNIKSTATE OF THE ART

Eine physische Umgebung bezieht sich auf eine Welt, die Personen wahrnehmen können und/oder mit der Personen ohne Unterstützung durch elektronische Systeme interagieren können. Physische Umgebungen (z. B. ein physischer Wald) schließen physische Artikel (z. B. physische Bäume, physische Strukturen und physische Tiere) ein. Individuen können direkt mit der physischen Umgebung interagieren und/oder diese wahrnehmen, wie etwa durch Berührung, Sehen, Riechen, Hören und Schmecken.A physical environment refers to a world that people can perceive and / or with which people can interact without the assistance of electronic systems. Physical environments (e.g., a physical forest) include physical items (e.g., physical trees, physical structures, and physical animals). Individuals can interact directly with and / or perceive the physical environment, such as through touch, sight, smell, hearing and taste.

Im Gegensatz dazu handelt es sich bei einer Umgebung der simulierten Realität (SR) um eine vollständig oder teilweise computererzeugte Umgebung, die Individuen erfassen und/oder mit der Individuen über ein elektronisches System interagieren können. In einer SR wird eine Teilmenge der Bewegungen einer Person überwacht, und als Reaktion darauf werden ein oder mehrere Attribute eines oder mehrerer virtueller Objekte in der SR-Umgebung auf eine Weise geändert, die einem oder mehreren physikalischen Gesetzen entspricht. Zum Beispiel kann ein SR-System eine Person erkennen, die einige Schritte vorwärts geht, und als Reaktion darauf Grafiken und Audio anpassen, die der Person auf ähnliche Weise präsentiert werden, wie sich solche Szenen und Geräusche in einer physischen Umgebung ändern würden. Änderungen an einem oder mehreren Attributen von einem oder mehreren virtuellen Objekten in einer SR-Umgebung können auch als Reaktion auf Darstellungen von Bewegung (z. B. Audioanweisungen) vorgenommen werden.In contrast, a simulated reality (SR) environment is a fully or partially computer-generated environment that individuals can capture and / or with which individuals can interact via an electronic system. In an SR, a subset of a person's movements is monitored and, in response, one or more attributes of one or more virtual objects in the SR environment are changed in a manner that conforms to one or more laws of physics. For example, an SR system can recognize a person taking a few steps forward and, in response, adjust graphics and audio presented to the person in a manner similar to how such scenes and sounds would change in a physical environment. Changes to one or more attributes of one or more virtual objects in an SR environment can also be made in response to representations of movement (e.g., audio instructions).

Eine Person kann mit einem SR-Objekt interagieren und/oder es mit einem ihrer Sinne wahrnehmen, einschließlich Berührung, Riechen, Sehen, Schmecken und Hören. Beispielsweise kann eine Person mit akustischen Objekten, die eine Umgebung (z. B. dreidimensionale) oder räumliche akustische Einstellung erzeugen und/oder akustische Transparenz ermöglichen interagieren und/oder diese wahrnehmen. Mehrdimensionale oder räumliche akustische Umgebungen ermöglichen es einem Individuum, diskrete akustische Quellen im mehrdimensionalen Raum wahrzunehmen. Bei der akustischen Transparenz werden Töne aus der physischen Umgebung wahlweise mit oder ohne vom Computer erstelltem Audio berücksichtigt. In einigen SR-Umgebungen kann eine Person nur mit akustischen Objekten interagieren und/oder diese wahrnehmen.A person can interact with an SR object and / or perceive it with any of their senses, including touch, smell, sight, taste, and hearing. For example, a person can interact with and / or perceive acoustic objects that generate an environment (eg three-dimensional) or spatial acoustic setting and / or enable acoustic transparency. Multi-dimensional or spatial acoustic environments enable an individual to perceive discrete acoustic sources in the multi-dimensional space. Acoustic transparency takes into account sounds from the physical environment with or without audio generated by the computer. In some SR environments, a person can only interact with and / or perceive acoustic objects.

Ein Beispiel für SR ist die virtuelle Realität (VR). Bei einer VR-Umgebung handelt es sich um eine simulierte Umgebung, die nur computergenerierte sensorische Eingaben für mindestens einen der Sinne einschließt. Eine VR-Umgebung schließt mehrere virtuelle Objekte ein, mit denen eine Person interagieren und/oder die sie erfassen kann. Eine Person kann virtuelle Objekte in der VR-Umgebung durch eine Simulation einer Teilmenge der Aktionen der Person in der computererzeugten Umgebung und/oder durch eine Simulation der Person oder ihrer Anwesenheit in der computererzeugten Umgebung interagieren und/oder wahrnehmen.An example of SR is virtual reality (VR). A VR environment is a simulated environment that only includes computer-generated sensory inputs for at least one of the senses. A VR environment includes multiple virtual objects that a person can interact with and / or capture. A person can interact and / or perceive virtual objects in the VR environment by simulating a subset of the person's actions in the computer-generated environment and / or by simulating the person or their presence in the computer-generated environment.

Ein weiteres Beispiel für SR ist gemischte Realität (Mixed Reality, MR). Bei einer MR-Umgebung handelt es sich und eine simulierte Umgebung, die dafür ausgelegt ist, computererzeugte sensorische Umgebungen (z. B. virtuelle Objekte) mit sensorischen Umgebungen aus der physischen Umgebung oder einer Darstellung davon zu integrieren. In einem Realitätsspektrum liegt eine Mixed-Reality-Umgebung zwischen einer VR-Umgebung an einem Ende und einer vollständig physischen Umgebung am anderen Ende und schließt diese nicht ein.Another example of SR is Mixed Reality (MR). An MR environment is and a simulated environment that is designed to integrate computer-generated sensory environments (e.g. virtual objects) with sensory environments from the physical environment or a representation thereof. In a reality spectrum, a mixed reality environment lies between and does not include a VR environment at one end and a fully physical environment at the other end.

In einigen MR-Umgebungen können sich computererzeugte sensorische Umgebungen an Änderungen der sensorischen Umgebungen aus der physischen Umgebung anpassen. Einige elektronische Systeme zum Darstellen von MR-Umgebungen können auch die Orientierung und/oder den Ort in Bezug auf die physische Umgebung überwachen, um eine Interaktion zwischen virtuellen Objekten und realen Objekten (die physische Artikel aus der physischen Umgebung oder deren Darstellungen sind) zu ermöglichen. Beispielsweise kann ein System Bewegungen überwachen, sodass eine virtuelle Anlage in Bezug auf ein physisches Gebäude als stationär erscheint.In some MR environments, computer generated sensory environments can adapt to changes in sensory environments from the physical environment. Some electronic systems for representing MR environments can also monitor orientation and / or location with respect to the physical environment to enable interaction between virtual objects and real objects (which are physical items from the physical environment or their representations) . For example, a system can monitor movement so that a virtual facility appears stationary with respect to a physical building.

Ein Beispiel für gemischte Realität ist Augmented Reality (AR). Eine AR-Einstellung bezieht sich auf eine simulierte Umgebung, in der mindestens ein virtuelles Objekt einer physischen Umgebung oder einer Darstellung davon überlagert ist. Beispielsweise kann ein elektronisches System eine undurchsichtige Anzeige und mindestens einen Bildsensor zum Erfassen von Bildern oder Videos der physikalischen Umgebung aufweisen, die Darstellungen der physikalischen Umgebung sind. Das System kombiniert die Bilder oder Videos mit virtuellen Objekten und zeigt die Kombination auf dem undurchsichtigen Display an. Eine Person, die das System verwendet, betrachtet die physische Einstellung indirekt über die Bilder oder das Video der physischen Umgebung und beobachtet die virtuellen Objekte, die die physische Umgebung überlagern. Wenn ein System einen oder mehrere Bildsensoren verwendet, um Bilder der physischen Umgebung zu erfassen, und die AR-Umgebung unter Verwendung dieser Bilder auf der undurchsichtigen Anzeige darstellt, werden die angezeigten Bilder als Video-Durchlauf bezeichnet. Alternativ kann ein elektronisches System zum Anzeigen einer AR-Umgebung eine transparente oder halbtransparente Anzeige aufweisen, durch die eine Person die physikalische Umgebung direkt betrachten kann. Das System kann virtuelle Objekte auf der transparenten oder halbtransparenten Anzeige anzeigen, sodass eine Person, die das System verwendet, die virtuellen Objekte beobachtet, die die physische Umgebung überlagern. In einem anderen Beispiel kann ein System ein Projektionssystem umfassen, das virtuelle Objekte in die physische Umgebung projiziert. Die virtuellen Objekte können beispielsweise auf eine physische Oberfläche oder als ein Hologramm projiziert werden, sodass eine Person unter Verwendung des Systems die virtuellen Objekte beobachtet, die die physische Umgebung überlagern.An example of mixed reality is augmented reality (AR). An AR setting refers to a simulated environment in which at least one virtual object is a physical environment or a Representation of it is superimposed. For example, an electronic system may have an opaque display and at least one image sensor for capturing images or videos of the physical environment that are representations of the physical environment. The system combines the images or videos with virtual objects and shows the combination on the opaque display. A person using the system observes the physical setting indirectly through the images or video of the physical environment, and observes the virtual objects superimposed on the physical environment. When a system uses one or more image sensors to capture images of the physical environment and renders the AR environment using those images on the opaque display, the displayed images are referred to as video scrolls. Alternatively, an electronic system for displaying an AR environment may have a transparent or semi-transparent display through which a person can directly view the physical environment. The system can display virtual objects on the transparent or semi-transparent display so that a person using the system observes the virtual objects that are superimposed on the physical environment. In another example, a system may include a projection system that projects virtual objects into the physical environment. The virtual objects can be projected onto a physical surface or as a hologram, for example, so that a person using the system observes the virtual objects that are superimposed on the physical environment.

Eine Augmented Reality-Umgebung kann sich auch auf eine simulierte Umgebung beziehen, in der eine Darstellung einer physischen Umgebung durch computererzeugte sensorische Informationen geändert wird. Beispielsweise kann ein Teil einer Darstellung einer physikalischen Umgebung grafisch verändert (z. B. vergrößert) werden, sodass der veränderte Teil immer noch repräsentativ für eine Version des/der ursprünglich aufgenommenen Bildes/Bilder ist, diese jedoch nicht originalgetreu wiedergibt. Als ein weiteres Beispiel kann ein System beim Bereitstellen von Video-Durchläufen mindestens eines der Sensorbilder ändern, um einen bestimmten Blickwinkel vorzugeben, der sich von dem von den Bildsensoren erfassten Blickwinkel unterscheidet. Als ein zusätzliches Beispiel kann eine Darstellung einer physikalischen Umgebung geändert werden, indem Teile davon grafisch verdeckt oder ausgeschlossen werden.An augmented reality environment can also refer to a simulated environment in which a representation of a physical environment is changed by computer-generated sensory information. For example, a part of a representation of a physical environment can be graphically changed (e.g. enlarged) so that the changed part is still representative of a version of the originally recorded image (s), but does not reproduce this true to the original. As another example, when providing video feeds, a system may change at least one of the sensor images to specify a particular viewing angle that is different from the viewing angle captured by the image sensors. As an additional example, a representation of a physical environment can be changed by graphically obscuring or excluding parts thereof.

Ein weiteres Beispiel für gemischte Realität ist Augmented Virtuality (AV). Bei einer AV-Umgebung handelt es sich um eine simulierte Umgebung, in der eine vom Computer erstellte oder virtuelle Umgebung mindestens eine sensorische Eingabe aus der physischen Umgebung enthält. Die sensorische(n) Eingab(en) von der physikalischen Umgebung kann/können Darstellungen von mindestens einer Eigenschaft der physikalischen Umgebung sein. Beispielsweise kann ein virtuelles Objekt eine Farbe eines physischen Elements annehmen, der von einem oder mehreren Bildsensoren erfasst wird. In einem anderen Beispiel kann ein virtuelles Objekt Merkmale aufweisen, die mit den tatsächlichen Wetterbedingungen in der physischen Umgebung übereinstimmen, wie sie durch Bildgebung, wetterbezogene Sensoren und/oder Online-Wetterdaten erfasst werden. In einem weiteren Beispiel kann ein Augmented-Reality-Wald virtuelle Bäume und Strukturen aufweisen, aber die Tiere können Merkmale aufweisen, die anhand von Bildern, die von physischen Tieren aufgenommen wurden, genau reproduziert werden.Another example of mixed reality is augmented virtuality (AV). An AV environment is a simulated environment in which a computer-created or virtual environment contains at least one sensory input from the physical environment. The sensory input (s) from the physical environment can be representations of at least one property of the physical environment. For example, a virtual object can take on the color of a physical element that is detected by one or more image sensors. In another example, a virtual object may have features that match actual weather conditions in the physical environment, as captured by imaging, weather-related sensors, and / or online weather data. In another example, an augmented reality forest can have virtual trees and structures, but the animals can have features that are accurately reproduced from images captured of physical animals.

Viele elektronische Systeme ermöglichen es einer Person, mit verschiedenen SR-Umgebungen zu interagieren und/oder diese zu erfassen. Ein Beispiel schließt Head-Mounted-Systeme ein. Ein Head-Mounted-System kann eine undurchsichtige Anzeige und Lautsprecher aufweisen. Alternativ kann ein Head-Mounted-System dazu ausgelegt sein, eine externe Anzeige (z. B. ein Smartphone) aufzunehmen. Das Head-Mounted-System kann (einen) Bildsensor(en) und/oder Mikrofone zum Aufnehmen von Bildern/Videos und/oder zum Aufnehmen von Audio der physischen Umgebung aufweisen. Ein Head-Mounted-System kann auch eine transparente oder halbtransparente Anzeige aufweisen. Die transparente oder halbtransparente Anzeige kann ein Substrat enthalten, durch welches das für Bilder repräsentative Licht auf die Augen einer Person gerichtet wird. Die Anzeige kann LEDs, OLEDs, einen digitalen Lichtprojektor, eine Laserabtastlichtquelle, Flüssigkristall auf Silizium oder eine beliebige Kombination dieser Technologien enthalten. Das Substrat, durch welches das Licht übertragen wird, kann ein Lichtwellenleiter, ein optischer Kombinierer, ein optischer Reflektor, ein holographisches Substrat oder eine beliebige Kombination dieser Substrate sein. In einer Ausführungsform kann die transparente oder halbtransparente Anzeige selektiv zwischen einem undurchsichtigen Zustand und einem transparenten oder halbtransparenten Zustand wechseln. In einem anderen Beispiel kann das elektronische System ein projektionsbasiertes System sein. Ein projektionsbasiertes System kann die Netzhautprojektion verwenden, um Bilder auf die Netzhaut einer Person zu projizieren. Alternativ kann ein Projektionssystem auch virtuelle Objekte in eine physikalische Umgebung projizieren (z. B. auf eine physikalische Oberfläche oder als ein Hologramm). Andere Beispiele für SR-Systeme schließen Heads-up-Displays, Windschutzscheiben für Kraftfahrzeuge mit der Fähigkeit zur Anzeige von Grafiken, Fenster mit der Fähigkeit zur Anzeige von Grafiken, Linsen mit der Fähigkeit zur Anzeige von Grafiken, Kopfhörer oder Ohrhörer, Lautsprecheranordnungen, Eingabemechanismen (z. B. Controller mit oder ohne haptisches Feedback), Tablets, Smartphones und Desktop- oder Laptop-Computer ein.Many electronic systems enable a person to interact with and / or understand various SR environments. One example includes head-mounted systems. A head-mounted system can have an opaque display and speakers. Alternatively, a head-mounted system can be designed to accommodate an external display (e.g. a smartphone). The head-mounted system can have (an) image sensor (s) and / or microphones for recording images / videos and / or for recording audio of the physical environment. A head-mounted system can also have a transparent or semi-transparent display. The transparent or semi-transparent display may include a substrate through which the light representative of images is directed onto a person's eyes. The display can include LEDs, OLEDs, a digital light projector, a laser scanning light source, liquid crystal on silicon, or any combination of these technologies. The substrate through which the light is transmitted can be an optical waveguide, an optical combiner, an optical reflector, a holographic substrate, or any combination of these substrates. In one embodiment, the transparent or semi-transparent display can selectively alternate between an opaque state and a transparent or semi-transparent state. In another example, the electronic system can be a projection-based system. A projection-based system can use retinal projection to project images onto a person's retina. Alternatively, a projection system can also project virtual objects into a physical environment (e.g. onto a physical surface or as a hologram). Other examples of SR systems include heads-up displays, automobile windshields with the ability to display graphics, windows with the ability to display graphics, lenses with the ability to display graphics, headphones or earphones, speaker assemblies, Input mechanisms (e.g. controllers with or without haptic feedback), tablets, smartphones and desktop or laptop computers.

Das Rendering eines Bildes für eine SR-Erfahrung kann rechenaufwendig sein. Um diese Rechenlast zu reduzieren, wird daher die Tatsache ausgenutzt, dass Menschen in der Regel einen relativ schwachen peripheren Blick haben. Dementsprechend werden verschiedene Bildabschnitte auf einem Anzeigefeld mit unterschiedlichen Auflösungen wiedergegeben. Zum Beispiel werden in verschiedenen Implementierungen Abschnitte, die einem Blickfeld eines Benutzers entsprechen, mit höherer Auflösung wiedergegeben als Abschnitte, die einer Peripherie eines Benutzers entsprechen.Rendering an image for an SR experience can be computationally expensive. In order to reduce this computing load, the fact is therefore exploited that people usually have a relatively weak peripheral vision. Accordingly, different image sections are displayed on a display panel with different resolutions. For example, in various implementations, sections corresponding to a user's field of view are rendered at higher resolution than sections corresponding to a user's periphery.

FigurenlisteFigure list

Damit die vorliegende Offenbarung vom Fachmann verstanden werden kann, kann eine detailliertere Beschreibung unter Bezugnahme auf Gesichtspunkte einiger anschaulicher Implementierungen bereitgestellt werden, von denen einige in den beigefügten Zeichnungen gezeigt sind.

  • 1 ist ein Blockdiagramm einer beispielhaften Betriebsumgebung gemäß einigen Implementierungen.
  • 2 veranschaulicht eine SR-Pipeline, die SR-Inhalt empfängt und ein Bild auf einem Anzeigefeld auf Grundlage des SR-Inhalts gemäß einigen Implementierungen anzeigt.
  • 3A-3D veranschaulichen verschiedene Rendering-Auflösungsfunktionen in einer ersten Dimension gemäß verschiedenen Implementierungen.
  • 4A-4D veranschaulichen verschiedene zweidimensionale Rendering-Auflösungsfunktionen gemäß verschiedenen Implementierungen.
  • 5A veranschaulicht eine beispielhafte Rendering-Auflösungsfunktion, die eine Auflösung in einem Anzeigeraum in Abhängigkeit des Winkels in einem verzerrten Raum gemäß einigen Implementierungen kennzeichnet.
  • 5B veranschaulicht das Integral der beispielhaften Rendering-Auflösungsfunktion von 5A gemäß einigen Implementierungen.
  • 5C veranschaulicht den Tangens der Umkehrung des Integrals der beispielhaften Rendering-Auflösungsfunktion von 5A gemäß einigen Implementierungen.
  • 6A veranschaulicht eine beispielhafte Rendering-Auflösungsfunktion zum Durchführen statischer Foveation gemäß einigen Implementierungen
  • 6B veranschaulicht eine beispielhafte Rendering-Auflösungsfunktion zum Durchführen dynamischer Foveation gemäß einigen Implementierungen.
  • 7 ist eine Flussdiagrammdarstellung eines Verfahrens zum Rendering eines Bildes basierend auf einer Rendering-Auflösungsfunktion gemäß einigen Implementierungen.
  • 8A veranschaulicht eine beispielhafte Bilddarstellung in einem Anzeigeraum von SR-Inhalt, der gemäß einigen Implementierungen wiedergegeben werden soll.
  • 8B veranschaulicht ein verzerrtes Bild des SR-Inhalts von 8A gemäß einigen Implementierungen.
  • 9 ist eine Flussdiagrammdarstellung eines Verfahrens zum Rendering eines Bildes in einem oder einer Vielzahl von Foveationsmodi gemäß einigen Implementierungen.
  • 10A-10C veranschaulichen verschiedene beschränkte Rendering-Auflösungsfunktionen gemäß verschiedenen Implementierungen.
  • 11 ist eine Flussdiagrammdarstellung eines Verfahrens zum Rendering eines Bildes mit einer beschränkten Rendering-Auflösungsfunktion gemäß einigen Implementierungen.
  • 12 ist eine Flussdiagrammdarstellung eines Verfahrens zum Rendering eines Bildes basierend auf Augenverfolgungsmetadaten gemäß einigen Implementierungen.
  • 13A-13B veranschaulichen verschiedene auf Konfidenz basierende Rendering-Auflösungsfunktionen gemäß verschiedenen Implementierungen.
  • 14 ist eine Flussdiagrammdarstellung eines Verfahrens zum Rendering eines Bildes basierend auf SR-Inhalt gemäß einigen Implementierungen.
  • 15 ist eine Flussdiagrammdarstellung eines Verfahrens zum Übertragen eines Bildes gemäß einigen Implementierungen.
  • 16A-16B veranschaulichen ein beispielhaftes Bild und ein Wavelet-Bild, das durch eine einschichtige Wavelet-Transformation des beispielhaften Bildes erzeugt wird.
  • 17 ist eine Flussdiagrammdarstellung eines Verfahrens zum Empfangen eines Bildes mit einer beschränkten Rendering-Auflösungsfunktion gemäß einigen Implementierungen.
  • 18A-18B veranschaulichen ein Beispiel eines unverformten Bildes und eines verformten Bildes gemäß einigen Implementierungen.
  • 19A-19B veranschaulichen ein Beispiel eines vorverformten Bildes und eines verformten vorverformten Bildes (oder unverformten Bildes) gemäß einigen Implementierungen.
  • 20 ist eine Flussdiagrammdarstellung eines Verfahrens zum Vorverformen eines Bildes gemäß einigen Implementierungen.
  • 21A-21B veranschaulichen Darstellungen von Paneldaten, die eine Vielzahl von Auflösungszonen gemäß einigen Implementierungen anzeigen.
  • 22 veranschaulicht einen Graphen beispielhafter Auflösungsfunktionen, die durch Skalierungsfaktoren und Auflösungszonen gemäß einigen Implementierungen definiert sind.
  • 23 veranschaulicht einen anderen Graphen beispielhafter Auflösungsfunktionen, die durch Skalierungsfaktoren und Auflösungszonen gemäß einigen Implementierungen definiert sind.
  • 24 ist eine Flussdiagrammdarstellung eines Verfahrens zum Generieren von Paneldaten gemäß einigen Implementierungen.
  • 25 ist eine Flussdiagrammdarstellung eines Verfahrens zum Verarbeiten eines verzerrten Bildes in einem verzerrten Raum gemäß einigen Implementierungen.
  • 26 ist eine Flussdiagrammdarstellung eines Verfahrens zum Verarbeiten eines verzerrten Bildes auf Grundlage einer Vielzahl von Skalierungsfaktoren gemäß einigen Implementierungen.
In order that the present disclosure may be understood by those skilled in the art, a more detailed description may be provided with reference to aspects of some illustrative implementations, some of which are shown in the accompanying drawings.
  • 1 Figure 4 is a block diagram of an example operating environment, in accordance with some implementations.
  • 2 Figure 3 illustrates an SR pipeline that receives SR content and displays an image on a display panel based on the SR content, according to some implementations.
  • 3A-3D illustrate various rendering resolution functions in a first dimension according to various implementations.
  • 4A-4D illustrate various two-dimensional rendering resolution functions according to various implementations.
  • 5A Figure 3 illustrates an exemplary rendering resolution function that characterizes resolution in a display space as a function of angle in a warped space, according to some implementations.
  • 5B FIG. 11 illustrates the integral of the exemplary rendering resolution function of FIG 5A according to some implementations.
  • 5C FIG. 10 illustrates the tangent of the inverse of the integral of the exemplary rendering resolution function of FIG 5A according to some implementations.
  • 6A Figure 3 illustrates an example rendering resolution function for performing static foveation according to some implementations
  • 6B Figure 3 illustrates an example rendering resolution function for performing dynamic foveation according to some implementations.
  • 7th FIG. 3 is a flowchart illustration of a method for rendering an image based on a rendering resolution function, in accordance with some implementations.
  • 8A Figure 10 illustrates an exemplary image representation in a display space of SR content to be displayed according to some implementations.
  • 8B illustrates a distorted picture of the SR content of 8A according to some implementations.
  • 9 FIG. 3 is a flowchart illustration of a method for rendering an image in one or a plurality of foveation modes, according to some implementations.
  • 10A-10C illustrate various limited rendering resolution functions according to various implementations.
  • 11 FIG. 3 is a flowchart illustration of a method of rendering an image with a limited rendering resolution function, in accordance with some implementations.
  • 12th FIG. 3 is a flowchart illustration of a method for rendering an image based on eye tracking metadata, in accordance with some implementations.
  • 13A-13B illustrate various confidence-based rendering resolution functions according to various implementations.
  • 14th Figure 4 is a flowchart illustration of a method for rendering an image based on SR content, according to some implementations.
  • 15th FIG. 3 is a flowchart illustration of a method for transmitting an image, according to some implementations.
  • 16A-16B 10 illustrate an exemplary image and a wavelet image generated by a single layer wavelet transform of the exemplary image.
  • 17th FIG. 3 is a flowchart illustration of a method of receiving an image with limited rendering resolution functionality, in accordance with some implementations.
  • 18A-18B illustrate an example of an undeformed image and a deformed image according to some implementations.
  • 19A-19B illustrate an example of a pre-deformed image and a deformed pre-deformed image (or undeformed image) according to some implementations.
  • 20th FIG. 3 is a flowchart illustration of a method for pre-deforming an image in accordance with some implementations.
  • 21A-21B Figure 4 illustrates representations of panel data indicating a variety of resolution zones in accordance with some implementations.
  • 22nd FIG. 10 illustrates a graph of example resolution functions defined by scale factors and resolution zones according to some implementations.
  • 23 FIG. 10 illustrates another graph of example resolution functions defined by scale factors and resolution zones, according to some implementations.
  • 24 FIG. 3 is a flowchart representation of a method for generating panel data in accordance with some implementations.
  • 25th FIG. 3 is a flowchart illustration of a method for processing a warped image in warped space, according to some implementations.
  • 26th Figure 4 is a flowchart illustration of a method of processing a warped image based on a variety of scale factors, according to some implementations.

Gemäß allgemeiner Praxis können die verschiedenen Merkmale, die in den Zeichnungen veranschaulicht sind, nicht maßstabsgetreu gezeichnet sein. Dementsprechend können die Abmessungen der verschiedenen Merkmale aus Gründen der Klarheit beliebig erweitert oder reduziert werden. Zusätzlich können einige der Zeichnungen nicht alle Komponenten eines gegebenen Systems, Verfahrens oder einer gegebenen Vorrichtung darstellen. Schließlich können gleiche Bezugszeichen verwendet werden, um gleiche Merkmale überall in der Patentschrift und den Figuren zu bezeichnen.In accordance with common practice, the various features illustrated in the drawings may not be drawn to scale. Accordingly, the dimensions of the various features can be expanded or reduced as desired for the sake of clarity. In addition, some of the drawings may not depict all of the components of a given system, method, or apparatus. Finally, the same reference numbers may be used to refer to the same features throughout the specification and the figures.

KURZDARSTELLUNGABSTRACT

Verschiedene hierin offenbarte Implementierungen schließen Vorrichtungen, Systeme und Verfahren zur Bildverarbeitung in einem verzerrten Raum ein. Das Verfahren schließt das Empfangen eines verzerrten Bildes ein, das einen Inhalt simulierter Realität (SR) darstellt, der in einem Anzeigeraum angezeigt werden soll, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in dem Anzeigeraum anzeigen. Das Verfahren schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren, um ein verarbeitetes verzerrtes Bild zu erzeugen, und das Übertragen des verarbeiteten verzerrten Bildes ein.Various implementations disclosed herein include apparatus, systems, and methods for image processing in a distorted space. The method includes receiving a distorted image representing simulated reality (SR) content to be displayed in a display space, the distorted image having a plurality of pixels at respective locations uniformly in a grid pattern in a distorted space are spaced apart, the plurality of pixels each being associated with a plurality of respective pixel values and a plurality of respective scale factors indicative of a plurality of respective resolutions at a plurality of respective locations in the display space. The method includes processing the warped image in the warped space based on the plurality of respective scale factors to produce a processed warped image and transmitting the processed warped image.

Verschiedene hierin offenbarte Implementierungen schließen Vorrichtungen, Systeme und Verfahren zur Bildverarbeitung auf Grundlage einer Vielzahl von Skalierungsfaktoren ein. In einer Implementierung schließt ein Verfahren das Empfangen eines verzerrten Bildes ein, das einen Inhalt simulierter Realität (SR) darstellt, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Positionen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen des SR-Inhalts anzeigen. Das Verfahren schließt das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren, um ein verarbeitetes verzerrtes Bild zu erzeugen, und das Übertragen des verarbeiteten verzerrten Bildes ein.Various implementations disclosed herein include apparatus, systems, and methods for processing images based on a variety of scaling factors. In one implementation, a method includes receiving a warped image representing simulated reality (SR) content, the warped image having a plurality of pixels at respective positions evenly spaced in a grid pattern in warped space, the A plurality of pixels are each associated with a plurality of respective pixel values and a plurality of respective scaling factors which indicate a plurality of respective resolutions at a plurality of respective locations of the SR content. The method includes processing the warped image based on the plurality of respective scaling factors to generate a processed warped image and transmitting the processed warped image.

Gemäß einigen Ausführungsformen schließt eine elektronische Vorrichtung einen oder mehrere Prozessoren, einen nichtflüchtigen Speicher und eines oder mehrere Programme ein; wobei das eine oder die mehreren Programme in dem nichtflüchtigen Speicher gespeichert sind und so konfiguriert sind, dass sie von dem einen oder den mehreren Prozessoren ausgeführt werden, und das eine oder die mehreren Programme Anweisungen für die Ausführung oder die Veranlassung zum Ausführen jedes der hierin beschriebenen Verfahren einschließen. Gemäß einigen Implementierungen sind in einem nichtflüchtigen computerlesbaren Speichermedium Anweisungen gespeichert, die, wenn sie von einem oder mehreren Prozessoren einer Vorrichtung ausgeführt werden, dafür sorgen, dass die Vorrichtung jedes der hierin beschriebenen Verfahren durchführt oder deren Ausführung veranlasst. Gemäß einigen Implementierungen schließt die Vorrichtung ein: einen oder mehrere Prozessoren, einen nichtflüchtigen Speicher und Mittel zur Durchführung oder Veranlassung der Durchführung eines der hierin beschriebenen Verfahren.According to some embodiments, an electronic device includes one or more processors, non-volatile memory, and one or more programs; wherein the one or more programs are stored in the non-volatile memory and configured to be executed by the one or more processors, and the one or more programs are instructions for executing or causing any of those described herein to be executed Include procedures. According to some implementations, instructions are stored in a non-transitory computer-readable storage medium which, when executed by one or more processors of a device, cause the device to carry out or cause any of the methods described herein to be carried out. According to some implementations, the apparatus includes: one or more processors, non-volatile memory, and means for performing or causing any of the methods described herein to be performed.

BESCHREIBUNGDESCRIPTION

Zahlreiche Details werden beschrieben, um ein gründliches Verständnis der in den Zeichnungen gezeigten beispielhaften Implementierungen bereitzustellen. Die Zeichnungen zeigen jedoch lediglich einige beispielhafte Gesichtspunkte der vorliegenden Offenbarung und sind daher nicht als einschränkend zu betrachten. Fachleute werden erkennen, dass andere effektive Gesichtspunkte und/oder Varianten nicht alle der hierin beschriebenen spezifischen Details einschließen. Außerdem wurden gut bekannte Systeme, Verfahren, Komponenten, Vorrichtungen und Schaltungen nicht in abschließendem Detail beschrieben, um relevantere Gesichtspunkte der hierin beschriebenen beispielhaften Implementierungen nicht zu verundeutlichen.Numerous details are described in order to provide a thorough understanding of the example implementations shown in the drawings. However, the drawings show only some exemplary aspects of the present disclosure and are therefore not to be regarded as limiting. Those skilled in the art will recognize that other effective aspects and / or variations do not include all of the specific details described herein. In addition, well-known systems, methods, components, devices, and circuits have not been described in exhaustive detail in order not to obscure more relevant aspects of the example implementations described herein.

Wie vorstehend erwähnt, werden in verschiedenen Implementierungen unterschiedliche Abschnitte eines Bildes auf einem Anzeigefeld mit unterschiedlichen Auflösungen wiedergegeben. Verschiedene Verfahren zum Bestimmen der Auflösung für verschiedene Abschnitte eines Bildes, basierend auf einer Anzahl von Faktoren, werden nachstehend beschrieben.As mentioned above, in different implementations, different portions of an image are displayed on a display panel at different resolutions. Various methods of determining the resolution for different portions of an image based on a number of factors are described below.

1 zeigt ein Blockdiagramm einer beispielhaften Betriebsumgebung 100 gemäß einigen Implementierungen. Während entsprechende Merkmale gezeigt sind, wird der Fachmann aus der vorliegenden Offenbarung erkennen, dass verschiedene andere Merkmale der Kürze halber nicht dargestellt worden sind, um relevantere Gesichtspunkte der hier offenbarten beispielhaften Implementierungen nicht zu verundeutlichen. Zu diesem Zweck schließt die Betriebsumgebung 100 eine Steuerung 110 und eine Head-Mounted-Vorrichtung (HMD) 120 ein. 1 Figure 3 shows a block diagram of an exemplary operating environment 100 according to some implementations. While corresponding features are shown, those skilled in the art will recognize from the present disclosure that various other features have not been shown for brevity in order not to obscure more relevant aspects of the example implementations disclosed herein. To this end, the operating environment closes 100 a controller 110 and a head-mounted device (HMD) 120 a.

In einigen Implementierungen ist die Steuerung 110 konfiguriert, um eine Erfahrung simulierter Realität (SR) für einen Benutzer zu verwalten und zu koordinieren. In einigen Implementierungen schließt die Steuerung 110 eine geeignete Kombination aus Software, Firmware und/oder Hardware ein. In einigen Implementierungen ist die Steuerung 110 eine Rechenvorrichtung, die in Bezug auf die Szene 105 lokal oder entfernt ist. Zum Beispiel ist die Steuerung 110 ein lokaler Server innerhalb der Szene 105. In einem anderen Beispiel ist die Steuerung 110 ein entfernter Server, der sich außerhalb der Szene 105 befindet (z. B. ein Cloud-Server, zentraler Server usw.). In einigen Implementierungen ist die Steuerung 110 über einen oder mehrere drahtgebundene oder drahtlose Kommunikationskanäle 144 (z. B. BLUETOOTH, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x usw.) kommunikativ mit der HMD 120 gekoppelt. In einem anderen Beispiel ist die Steuerung 110 innerhalb des Gehäuses von HMD 120 eingeschlossen.In some implementations, the controller is 110 configured to manage and coordinate a simulated reality (SR) experience for a user. In some implementations, the controller closes 110 a suitable combination of software, firmware and / or hardware. In some implementations, the controller is 110 a computing device related to the scene 105 is local or remote. For example is the controller 110 a local server within the scene 105 . In another example, the controller is 110 a remote server that is outside the scene 105 located (e.g. a cloud server, central server, etc.). In some implementations, the controller is 110 via one or more wired or wireless communication channels 144 (e.g. BLUETOOTH, IEEE 802.11x , IEEE 802.16x , IEEE 802.3x etc.) communicative with the HMD 120 coupled. In another example, the controller is 110 inside the housing of HMD 120 locked in.

In einigen Implementierungen ist die HMD 120 konfiguriert, um dem Benutzer eine SR-Erfahrung darzustellen. In einigen Implementierungen schließt die HMD 120 eine geeignete Kombination aus Software, Firmware und/oder Hardware ein. In einigen Implementierungen werden die Funktionalitäten der Steuerung 110 durch die HMD 120 bereitgestellt und/oder mit dieser kombiniert.In some implementations, the HMD 120 configured to present an SR experience to the user. In some implementations, the HMD includes 120 a suitable combination of software, firmware and / or hardware. In some implementations the functionalities of the controller 110 by the HMD 120 provided and / or combined with it.

Gemäß einigen Implementierungen stellt die HMD 120 dem Benutzer eine SR-Erfahrung bereit, während der Benutzer virtuell und/oder physisch innerhalb der Szene 105 anwesend ist. In einigen Implementierungen ist die HMD 120 während der Präsentation einer AR-Erfahrung konfiguriert, um einen AR-Inhalt (z. B. ein oder mehrere virtuelle Objekte) darzustellen und eine optische Durchsicht der Szene 105 zu ermöglichen. In einigen Implementierungen ist die HMD 120 während der Präsentation einer AR-Erfahrung konfiguriert, um einen AR-Inhalt (z. B. ein oder mehrere virtuelle Objekte) darzustellen, die mit Bildern oder Abschnitten davon, die von der Szenenkamera der HMD 120 aufgenommen wurden, überlagert oder anderweitig kombiniert sind. In einigen Implementierungen ist die HMD 120 während der Präsentation von einem AV-Inhalt konfiguriert, um Elemente der realen Welt oder Darstellungen davon darzustellen, kombiniert mit einer Benutzersicht einer computersimulierten Umgebung oder damit überlagert. In einigen Implementierungen ist die HMD 120 während der Präsentation einer AR-Erfahrung konfiguriert, um VR-Inhalt darzustellen.According to some implementations, the HMD 120 provides the user with an SR experience while the user is virtually and / or physically within the scene 105 is present. In some implementations, the HMD 120 configured during the presentation of an AR experience to display AR content (e.g. one or more virtual objects) and a visual review of the scene 105 to enable. In some implementations, the HMD 120 configured during the presentation of an AR experience to represent an AR content (e.g. one or more virtual objects) with images or portions thereof taken by the HMD's scene camera 120 recorded, superimposed, or otherwise combined. In some implementations, the HMD 120 configured during the presentation of AV content to display real world elements or representations thereof combined with a user perspective computer-simulated environment or superimposed with it. In some implementations, the HMD 120 configured to display VR content while presenting an AR experience.

In einigen Implementierungen trägt der Benutzer/die Benutzerin die HMD 120 auf seinem/ihrem Kopf. Insofern schließt die HMD 120 eine oder mehrere SR-Anzeigen ein, die bereitgestellt sind, um den SR-Inhalt anzuzeigen, wahlweise durch ein Okular oder ein anderes optisches Linsensystem. Zum Beispiel umschließt in verschiedenen Implementierungen die HMD 120 das Sichtfeld des Benutzers. In einigen Implementierungen wird die HMD 120 durch eine tragbare Vorrichtung (wie ein Smartphone oder Tablet-Computer) ersetzt, die konfiguriert ist, SR-Inhalt darzustellen, wobei der Benutzer die HMD 120 nicht trägt, sondern die Vorrichtung mit einer Anzeige, die auf das Sichtfeld des Benutzers gerichtet ist, und einer Kamera, die auf die Szene 105 gerichtet ist, hält. In einigen Implementierungen kann die tragbare Vorrichtung innerhalb eines Gehäuses platziert werden, das am Kopf des Benutzers getragen werden kann. In einigen Implementierungen wird die HMD 120 durch eine SR-Kammer, ein Gehäuse oder einen Raum ersetzt, die ausgelegt sind, um SR-Inhalt zu präsentieren, wobei der Benutzer die HMD 120 nicht trägt.In some implementations, the user wears the HMD 120 on his / her head. In this respect, the HMD closes 120 one or more SR displays provided to display the SR content, optionally through an eyepiece or other optical lens system. For example, in various implementations, the HMD encloses 120 the user's field of view. In some implementations, the HMD 120 replaced by a portable device (such as a smartphone or tablet computer) configured to display SR content, with the user using the HMD 120 not wearing, but the device with a display aimed at the user's field of view and a camera aimed at the scene 105 is directed, holds. In some implementations, the portable device can be placed within a housing that can be worn on the user's head. In some implementations, the HMD 120 replaced with an SR chamber, enclosure, or room designed to present SR content, with the user using the HMD 120 not wearing.

In verschiedenen Implementierungen schließt die HMD 120 eine SR-Pipeline ein, die den SR-Inhalt darstellt. 2 veranschaulicht eine SR-Pipeline 200, die einen SR-Inhalt empfängt und ein Bild auf einem Anzeigefeld 240 auf Grundlage des SR-Inhalts anzeigt.In various implementations, the HMD 120 insert an SR pipeline that represents the SR content. 2 illustrates an SR pipeline 200 receiving SR content and an image on a display panel 240 based on the SR content.

Die SR-Pipeline 200 schließt ein Rendering-Modul 210 ein, das den SR-Inhalt (und Augenverfolgungsdaten von einem Augenverfolger 260) empfängt und ein Bild auf Grundlage des SR-Inhalts wiedergibt. In verschiedenen Implementierungen schließt ein SR-Inhalt Definitionen geometrischer Formen virtueller Objekte, Farben und/oder Texturen virtueller Objekte, Bilder (wie ein Durchsichtsbild der Szene) und andere Informationen ein, die einen Inhalt beschreiben, der in dem wiedergegebenen Bild dargestellt werden soll.The SR pipeline 200 includes a rendering module 210 one that contains the SR content (and eye tracking data from an eye tracker 260 ) and reproduces an image based on the SR content. In various implementations, SR content includes definitions of geometric shapes of virtual objects, colors and / or textures of virtual objects, images (such as a see-through image of the scene), and other information describing content that is to be represented in the displayed image.

Ein Bild schließt eine Matrix von Pixeln ein, wobei jedes Pixel einen entsprechenden Pixelwert und einen entsprechenden Pixelplatz aufweist. In verschiedenen Implementierungen liegen die Pixelwerte im Bereich von 0 bis 255. In verschiedenen Implementierungen ist jeder Pixelwert ein Farbtripel einschließlich drei Werten, die drei Farbkanälen entsprechen. Zum Beispiel ist in einer Implementierung ein Bild ein RGB-Bild und jeder Pixelwert schließt einen Rotwert, einen Grünwert und einen Blauwert ein. Als weiteres Beispiel ist in einer Implementierung ein Bild ein YUV-BILD, und jeder Pixelwert schließt einen Luminanzwert und zwei Chrominanzwerte ein. In verschiedenen Implementierungen ist das Bild ein YUV444-Bild, in dem jeder Chrominanzwert einem Pixel zugeordnet ist. In verschiedenen Implementierungen ist das Bild ein YUV420-Bild, in dem jeder Chrominanzwert einem 2x2-Block von Pixeln zugeordnet ist (z. B. werden die Chrominanzwerte heruntergetaktet). In einigen Implementierungen schließt ein Bild eine Matrix von Kacheln ein, wobei jede Kachel einen entsprechende Kachelplatz aufweist und einen Block von Pixeln mit entsprechenden Pixelwerten einschließt. In einigen Implementierungen ist jede Kachel ein 32x32-Block von Pixeln. Obwohl spezifische Pixelwerte, Bildformate und Kachelgrößen bereitgestellt werden, sollte beachtet werden, dass andere Werte, Format und Kachelgrößen verwendet werden können.An image includes an array of pixels, each pixel having a corresponding pixel value and pixel location. In various implementations, the pixel values range from 0 to 255. In various implementations, each pixel value is a color triple including three values that correspond to three color channels. For example, in one implementation, an image is an RGB image and each pixel value includes a red value, a green value, and a blue value. As another example, in one implementation an image is a YUV IMAGE and each pixel value includes a luminance value and two chrominance values. In various implementations, the image is a YUV444 image in which each chrominance value is associated with a pixel. In various implementations, the picture is a YUV420 picture in which each chrominance value is mapped to a 2x2 block of pixels (e.g., the chrominance values are clocked down). In some implementations, an image includes an array of tiles, each tile having a corresponding tile location and including a block of pixels with corresponding pixel values. In some implementations, each tile is a 32x32 block of pixels. While specific pixel values, image formats, and tile sizes are provided, it should be noted that other values, formats, and tile sizes may be used.

Das vom Rendering-Modul 210 wiedergegebene Bild (z. B. das wiedergegebene Bild) wird einem Transportmodul 220 bereitgestellt, welches das Rendering-Modul 210 mit einem Anzeigemodul 230 koppelt. Das Transportmodul 220 schließt ein Komprimierungsmodul 222, welches das wiedergegebene Bild komprimiert (was zu einem komprimierten Bild führt), einen Kommunikationskanal 224, der das komprimierte Bild trägt, und ein Dekomprimierungsmodul 226 ein, welches das komprimierte Bild dekomprimiert (was zu einem dekomprimierten Bild führt).The one from the rendering module 210 reproduced image (e.g. the reproduced image) becomes a transport module 220 provided which the rendering module 210 with a display module 230 couples. The transport module 220 includes a compression module 222 which compresses the reproduced picture (resulting in a compressed picture), a communication channel 224 carrying the compressed image and a decompression module 226 one that decompresses the compressed image (resulting in a decompressed image).

Das dekomprimierte Bild wird einem Anzeigemodul 230 bereitgestellt, welches das dekomprimierte Bild in Paneldaten umwandelt. Die Paneldaten werden einem Anzeigepanel 240 bereitgestellt, das ein angezeigtes Bild anzeigt, wie durch (z. B. Gemäß den) die Paneldaten beschrieben. Das Anzeigemodul 230 schließt ein Linsenkompensationsmodul 232 ein, das Verzerrungen kompensiert, die durch ein Okular 242 der HMD verursacht werden. Zum Beispiel vorverzerrt in verschiedenen Implementierungen das Linsenkompensationsmodul 232 das dekomprimierte Bild in einer umgekehrten Beziehung zu der Verformung, die durch das Okular 242 verursacht wird, so dass das angezeigte Bild, wenn es durch das Okular 242 von einem Benutzer 250 betrachtet wird, unverformt erscheint. Das Anzeigemodul 230 schließt auch ein Panelkompensationsmodul 234 ein, das Bilddaten in Paneldaten umwandelt, die von dem Anzeigepanel 240 gelesen werden sollen.The decompressed image is sent to a display module 230 provided which converts the decompressed image into panel data. The panel data is a display panel 240 that displays a displayed image as described by (e.g., according to) the panel data. The display module 230 includes a lens compensation module 232 one that compensates for distortion caused by an eyepiece 242 caused by the HMD. For example, in various implementations, the lens compensation module predistorts 232 the decompressed image in an inverse relationship to the deformation caused by the eyepiece 242 caused so that the image displayed when it is through the eyepiece 242 from a user 250 is viewed, appears undeformed. The display module 230 also includes a panel compensation module 234 one that converts image data into panel data to be provided by the display panel 240 should be read.

Das Okular 242 begrenzt die Auflösung, die vom Benutzer 250 wahrgenommen werden kann. In verschiedenen Implementierungen wird die maximale Auflösung, die das Okular 242 unterstützen kann, als eine Okularauflösungsfunktion ausgedrückt, die in Abhängigkeit der Entfernung von einem Ursprung des Anzeigeraums variiert. In verschiedenen Implementierungen wird die maximale Auflösung, die das Okular 242 unterstützen kann, als eine Okularauflösungsfunktion ausgedrückt, die in Abhängigkeit eines Winkels zwischen der optischen Achse des Benutzers 250 und der optischen Achse variiert, wenn der Benutzer 250 auf die Mitte des Okulars 242 blickt. In verschiedenen Implementierungen wird die maximale Auflösung, die das Okular 242 unterstützen kann, als eine Okularauflösungsfunktion ausgedrückt, die in Abhängigkeit eines Winkels zwischen der optischen Achse des Benutzers 250 und der optischen Achse variiert, wenn der Benutzer 250 auf die Mitte des Anzeigefelds 240 blickt.The eyepiece 242 limits the resolution used by the user 250 can be perceived. In various implementations, the maximum resolution that the eyepiece will have 242 can support, expressed as an ocular resolution function that depends on the distance from an origin of the Display space varies. In various implementations, the maximum resolution that the eyepiece will have 242 expressed as an ocular resolution function that is a function of an angle between the optical axis of the user 250 and the optical axis varies when the user 250 on the center of the eyepiece 242 looks. In various implementations, the maximum resolution that the eyepiece will have 242 expressed as an ocular resolution function that is a function of an angle between the optical axis of the user 250 and the optical axis varies when the user 250 on the center of the display 240 looks.

Das Anzeigefeld 240 schließt eine Matrix aus M×N Pixeln ein, die sich an jeweiligen Stellen in einem Anzeigeraum befinden. Das Anzeigefeld 240 zeigt das angezeigte Bild durch Emittieren von Licht von jedem der Pixel an, wie durch (z. B. Gemäß den) die Paneldaten beschrieben.The display panel 240 includes a matrix of M × N pixels located at respective locations in a display space. The display panel 240 displays the displayed image by emitting light from each of the pixels as described by (e.g., according to FIG. 10) the panel data.

In verschiedenen Implementierungen schließt die SR-Pipeline 200 einen Augenverfolger 260 ein, der Augenverfolgungsdaten erzeugt, die auf einen Blick des Benutzers 250 hinweisen. In verschiedenen Implementierungen schließen die Augenverfolgungsdaten Daten ein, die auf einen Fixationspunkt des Benutzers 250 auf dem Anzeigefeld 240 hinweisen. In verschiedenen Implementierungen schließen die Augenverfolgungsdaten Daten ein, die auf einen Blickwinkel des Benutzers 250 hinweisen, wie den Winkel zwischen der aktuellen optischen Achse des Benutzers 250 und der optischen Achse, wenn der Benutzer 250 auf die Mitte des Anzeigefelds 240 blickt.In various implementations, the SR pipeline closes 200 an eye chaser 260 one that generates eye tracking data that is at a glance of the user 250 Clues. In various implementations, the eye tracking data includes data relating to a point of fixation of the user 250 on the display panel 240 Clues. In various implementations, the eye tracking data includes data relating to a viewpoint of the user 250 indicate how the angle between the user's current optical axis 250 and the optical axis when the user 250 on the center of the display 240 looks.

Um ein Bild zur Anzeige auf dem Anzeigefeld 240 wiederzugeben, erzeugt das Rendering-Modul 210 in einer Implementierung M×N Pixelwerte für jedes Pixel eines M×N Bildes. Somit entspricht jedes Pixel des wiedergegebenen Bildes einem Pixel des Anzeigefeldes 240 mit einer entsprechenden Stelle im Anzeigeraum. Somit erzeugt das Rendering-Modul 210 einen Pixelwert für M×N Pixelplätze, die gleichmäßig in einem Gittermuster in dem Anzeigeraum beabstandet sind. Äquivalent erzeugt das Rendering-Modul 210 eine Kachel von T×T Pixeln, wobei jedes Pixel einen entsprechenden Pixelwert aufweist, die an M/T×N/T Kachelstellen gleichmäßig in einem Gittermuster in dem Anzeigeraum beabstandet sind.To get an image to display on the display panel 240 render is generated by the rendering module 210 in one implementation, M × N pixel values for each pixel of an M × N image. Thus, each pixel of the displayed image corresponds to a pixel of the display panel 240 with a corresponding place in the display area. Thus, the rendering module generates 210 a pixel value for M × N pixel locations evenly spaced in a grid pattern in the display space. The rendering module produces an equivalent 210 a tile of T × T pixels, each pixel having a corresponding pixel value evenly spaced at M / T × N / T tile locations in a grid pattern in the display space.

Das Wiedergeben von M×N Pixelwerten kann rechenaufwendig sein. Wenn die Größe des wiedergegebenen Bildes zunimmt, so nimmt auch die Menge an Verarbeitung, die erforderlich ist, um das Bild am Komprimierungsmodul 222 zu komprimieren, die Menge an Bandbreite, die erforderlich ist, um das komprimierte Bild über den Kommunikationskanal 224 zu transportieren, und die Menge an Verarbeitung, die erforderlich ist, um das komprimierte Bild am Dekomprimierungsmodul 226 zu dekomprimieren, zu.Rendering M × N pixel values can be computationally expensive. As the size of the displayed image increases, so does the amount of processing required to get the image to the compression module 222 To compress, the amount of bandwidth that is required to deliver the compressed image over the communication channel 224 to transport, and the amount of processing that is required to get the compressed image to the decompression module 226 to decompress, too.

Um die Größe des wiedergegebenen Bildes zu verringern, ohne die Benutzererfahrung zu verschlechtern, wird in verschiedenen Implementierungen Foveation (z. B. Foveated Imaging) verwendet. Foveation ist eine digitale Bildverarbeitungstechnik, bei der die Bildauflösung oder Detailmenge über ein Bild variiert. Somit weist ein Foveated Image unterschiedliche Auflösungen an unterschiedlichen Bildabschnitten auf. Menschen haben in der Regel eine relativ schwache periphere Sicht. Gemäß einem Modell ist die auflösbare Auflösung für einen Benutzer über ein Fixationsfeld (z. B. wohin der Benutzer blickt) maximal und fällt umgekehrt linear ab. Dementsprechend ist in einer Implementierung das angezeigte Bild, das vom Anzeigefeld 240 angezeigt wird, ein Foveated Image mit einer maximalen Auflösung in einem Fokusfeld und einer Auflösung, die umgekehrt linear proportional zum Abstand vom Fokusfeld abnimmt.In order to reduce the size of the displayed image without degrading the user experience, foveation (e.g., foveated imaging) is used in various implementations. Foveation is a digital image processing technique in which the image resolution or amount of detail varies over an image. A foveated image therefore has different resolutions at different image sections. People usually have relatively poor peripheral vision. According to one model, the resolvable resolution for a user over a fixation field (e.g. where the user is looking) is maximum and, conversely, falls linearly. Accordingly, in one implementation, the displayed image is that of the display panel 240 is displayed, a foveated image with a maximum resolution in a focus area and a resolution that decreases in inverse linear proportion to the distance from the focus area.

Da einige Teile des Bildes eine geringere Auflösung aufweisen, schließt ein M×N Foveated Image weniger Informationen als ein M×N Unfoveated Image ein. Somit erzeugt das Rendering-Modul 210 in verschiedenen Implementierungen ein Foveated Image als ein wiedergegebenes Bild. Das Rendering-Modul 210 kann schneller und mit weniger Verarbeitungsleistung (und Batterieleistung) ein M×N Foveated Image erzeugen als das Rendering-Modul 210 ein M×N Unfoveated Image erzeugen kann. Ein M×N Foveated Image kann auch mit weniger Daten als ein M×N Unfoveated Image ausgedrückt werden. Mit anderen Worten ist eine M×N Foveated Image-Datei kleiner als eine M×N Unfoveated Image-Datei. In verschiedenen Implementierungen führt das Komprimieren eines M×N Foveated Image unter Verwendung verschiedener Komprimierungstechniken zu weniger Bits als das Komprimieren eines M×N Unfoveated Image.Since some parts of the image have a lower resolution, an M × N foveated image includes less information than an M × N unfoveated image. Thus, the rendering module generates 210 in various implementations, a foveated image as a rendered image. The rendering module 210 can generate an M × N foveated image faster and with less processing power (and battery power) than the rendering engine 210 can generate an M × N unfoveated image. An M × N foveated image can also be expressed with less data than an M × N unfoveated image. In other words, an M × N foveated image file is smaller than an M × N unfoveated image file. In various implementations, compressing an M × N favored image using different compression techniques results in fewer bits than compressing an M × N unfoveated image.

Ein Foveationsverhältnis R kann als die Menge an Informationen in dem M×N Unfoveated Image geteilt durch die Menge an Informationen in dem M×N Foveated Image definiert werden. In verschiedenen Implementierungen liegt das Foveationsverhältnis zwischen 1,5 und 10. Zum Beispiel beträgt in einigen Implementierungen das Foveationsverhältnis 2. In einigen Implementierungen beträgt das Foveationsverhältnis 3 oder 4. In einigen Implementierungen ist das Foveationsverhältnis zwischen Bildern konstant. In einigen Implementierungen wird das Foveationsverhältnis auf Grundlage des wiedergegebenen Bildes ausgewählt.A foveation ratio R can be defined as the amount of information in the M × N unfoveated image divided by the amount of information in the M × N foveated image. In various implementations, the foveation ratio is between 1.5 and 10. For example, in some implementations the foveation ratio is 2 . In some implementations, the foveation ratio is 3 or 4th . In some implementations, the foveation ratio between images is constant. In some implementations, the foveation ratio is selected based on the displayed image.

In einigen Implementierungen erzeugt das Rendering-Modul 210 M/R×N/R-Pixelwerte für jedes Pixel eines verzerrten M/RxN/R-Bildes, um ein Bild zur Anzeige auf dem Anzeigefeld 240 wiederzugeben. Jedes Pixel des verzerrten Bildes entspricht einer Fläche, die größer ist als ein Pixel des Anzeigefeldes 240 an einer entsprechenden Stelle im Anzeigeraum. Somit erzeugt das Rendering-Modul 210 einen Pixelwert für jeden der M/R×N/R- Plätze im Anzeigeraum, die nicht gleichmäßig in einem Gittermuster verteilt sind. In ähnlicher Weise erzeugt in einigen Implementierungen das Rendering-Modul 210 eine Kachel von TxT-Pixeln, wobei jedes Pixel an jedem der M/(RT)×N/(RT)-Plätze in dem Anzeigeraum, die nicht gleichmäßig in einem Gittermuster verteilt sind, einen entsprechenden Pixelwert aufweist. Der jeweilige Bereich in dem Anzeigeraum, der jedem Pixelwert (oder jeder Kachel) entspricht, ist durch den entsprechenden Platz in dem Anzeigeraum (einem Rendering-Platz) und einen Skalierungsfaktor (oder einen Satz aus einem horizontalen Skalierungsfaktor und einem vertikalen Skalierungsfaktor) definiert.In some implementations, the rendering engine generates 210 M / R x N / R pixel values for each pixel of a distorted M / R x N / R image to produce an image for display on the display panel 240 to reproduce. Each pixel of the distorted image corresponds to an area that is larger than one pixel of the display field 240 at a corresponding point in the display room. Thus, the rendering module generates 210 a pixel value for each of the M / R × N / R spaces in the display space that are not evenly distributed in a grid pattern. Similarly, in some implementations, the rendering engine generates 210 a tile of TxT pixels, each pixel having a corresponding pixel value at each of the M / (RT) × N / (RT) locations in the display space that are not evenly distributed in a grid pattern. The particular area in the display space that corresponds to each pixel value (or each tile) is defined by the corresponding space in the display space (a rendering space) and a scale factor (or a set of a horizontal scale factor and a vertical scale factor).

In verschiedenen Implementierungen erzeugt das Rendering-Modul 210 als ein wiedergegebenes Bild ein verzerrtes Bild. In verschiedenen Implementierungen schließt das verzerrte Bild eine Matrix von M/R×N/R-Pixelwerten für M/R×N/R-Plätze ein, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, der sich von dem Anzeigeraum unterscheidet. Insbesondere schließt das verzerrte Bild eine Matrix von M/R×N/R-Pixelwerten für M/RxN/R-Plätze im Anzeigeraum ein, die nicht gleichmäßig in einem Gittermuster verteilt sind. Während also die Auflösung des verzerrten Bildes im verzerrten Raum gleichmäßig ist, variiert die Auflösung im Anzeigeraum. Dies wird nachstehend unter Bezugnahme auf die 8A und 8B ausführlicher beschrieben.In various implementations, the rendering module generates 210 as a reproduced image, a distorted image. In various implementations, the warped image includes an array of M / R x N / R pixel values for M / R x N / R locations that are evenly spaced in a grid pattern in a warped space that is different from the display space. In particular, the warped image includes a matrix of M / R x N / R pixel values for M / R x N / R locations in the display space that are not evenly distributed in a grid pattern. So while the resolution of the distorted image is uniform in the distorted space, the resolution in the display space varies. This is explained below with reference to FIG 8A and 8B described in more detail.

Das Rendering-Modul 210 bestimmt die Rendering-Plätze und die entsprechenden Skalierungsfaktoren auf Grundlage einer Rendering-Auflösungsfunktion, die im Allgemeinen die Auflösung des wiedergegebenen Bildes in dem angezeigten Raum kennzeichnet.The rendering module 210 determines the rendering locations and the corresponding scaling factors on the basis of a rendering resolution function which generally characterizes the resolution of the reproduced image in the displayed space.

In einer Implementierung ist die Rendering-Auflösungsfunktion S(x) von einem Abstand von einem Ursprung des Anzeigeraums abhängig (welcher der Mitte des Anzeigefelds 240 entsprechen kann). In einer anderen Implementierung ist die Rendering-Auflösungsfunktion S(θ) von einem Winkel zwischen einer optischen Achse des Benutzers 250 und der optischen Achse, wenn der Benutzer 250 auf die Mitte des Anzeigefelds 240 blickt, abhängig. Somit wird in einer Implementierung die Rendering-Auflösungsfunktion S(θ) in Pixeln pro Grad (PPD) ausgedrückt.In one implementation, the rendering resolution function S (x) is dependent on a distance from an origin of the display space (which is the center of the display field 240 can correspond). In another implementation, the rendering resolution function is S (θ) of an angle between a user's optical axis 250 and the optical axis when the user 250 on the center of the display 240 looks, dependent. Thus, in one implementation, the rendering resolution function S (θ) is expressed in pixels per degree (PPD).

Menschen haben in der Regel eine relativ schwache periphere Sicht. Gemäß einem Modell ist die auflösbare Auflösung für einen Benutzer über einem Fokusfeld (wohin der Benutzer blickt) maximal und fällt mit zunehmendem Winkel von der optischen Achse umgekehrt linear ab. Dementsprechend ist in einer Implementierung die Rendering-Auflösungsfunktion (in einer ersten Dimension) definiert als: S ( θ ) = { S m a x S m i n + S m a x S m i n 1 + w ( | θ θ f o f | ) f r | θ θ f o f | < 0 f r | θ θ f o f | 0

Figure DE112019002368T5_0001
wobei Smax das Maximum der Rendering-Auflösungsfunktion (z. B. etwa 60 PPD) ist, Smin die Asymptote der Rendering-Auflösungsfunktion ist, θfof die Größe des Fokusfelds kennzeichnet und w die Breite der Rendering-Auflösungsfunktion kennzeichnet.People usually have relatively poor peripheral vision. According to one model, the resolvable resolution for a user is maximum over a focal field (where the user is looking) and decreases inversely linearly with increasing angle from the optical axis. Accordingly, in one implementation, the rendering resolution function is defined (in a first dimension) as: S. ( θ ) = { S. m a x S. m i n + S. m a x - S. m i n 1 + w ( | θ - θ f O f | ) f r | θ - θ f O f | < 0 f r | θ - θ f O f | 0
Figure DE112019002368T5_0001
where S max is the maximum of the rendering resolution function (e.g. about 60 PPD), S min is the asymptote of the rendering resolution function, θ fof denotes the size of the focus field, and w denotes the width of the rendering resolution function.

3A veranschaulicht eine Rendering-Auflösungsfunktion 310 (in einer ersten Dimension), die umgekehrt linear von einem Fokusfeld abfällt. 3B veranschaulicht eine Rendering-Auflösungsfunktion 320 (in einer ersten Dimension), die linear von einem Fokusfeld abfällt. 3C veranschaulicht eine Rendering-Auflösungsfunktion 330 (in einer ersten Dimension), die etwa gaußförmig ist. 3D veranschaulicht eine Rendering-Auflösungsfunktion 340 (in einer ersten Dimension), die stufenweise gerundet abfällt. 3A illustrates a rendering resolution function 310 (in a first dimension), which inversely falls linearly from a focus field. 3B illustrates a rendering resolution function 320 (in a first dimension) that falls linearly from a focus field. 3C illustrates a rendering resolution function 330 (in a first dimension), which is roughly Gaussian. 3D illustrates a rendering resolution function 340 (in a first dimension), which gradually falls off rounded.

Jede der Rendering-Auflösungsfunktionen 310-340 der 3A-3D liegt in der Form eines Peaks vor, der eine Peak-Höhe (z. B. einen Maximalwert) und eine Peak-Breite einschließt. Die Peak-Breite kann auf verschiedene Arten definiert werden. In einer Implementierung ist die Peak-Breite als die Größe des Fokusfelds definiert (wie durch die Breite 311 von 3A und die Breite 321 von 3B veranschaulicht). In einer Implementierung ist die Peak-Breite als die volle Breite bei halbem Maximum definiert (wie durch die Breite 331 von 3C veranschaulicht). In einer Implementierung ist die Peak-Breite als der Abstand zwischen den zwei Wendepunkten definiert, die dem Ursprung am nächsten liegen (wie durch die Breite 341 von 3D veranschaulicht).Any of the rendering resolution functions 310-340 the 3A-3D is in the form of a peak including a peak height (e.g., a maximum value) and a peak width. The peak width can be defined in different ways. In one implementation, the peak width is defined as the size of the focus field (as by the width 311 of 3A and the width 321 of 3B illustrated). In one implementation, the peak width is defined as the full width at half maximum (as by the width 331 of 3C illustrated). In one implementation, the peak width is defined as the distance between the two inflection points that are closest to the origin (such as by the width 341 of 3D illustrated).

Während die 3A-3D Rendering-Auflösungsfunktionen in einer einzigen Dimension veranschaulichen, versteht es sich, dass die vom Rendering-Modul 210 verwendete Rendering-Auflösungsfunktion eine zweidimensionale Funktion sein kann. 4A veranschaulicht eine zweidimensionale Rendering-Auflösungsfunktion 410, wobei die Rendering-Auflösungsfunktion 410 in einer horizontalen Dimension (θ) und einer vertikalen Dimension (φ) unabhängig ist. 4B veranschaulicht eine zweidimensionale Rendering-Auflösungsfunktion 420, wobei die Rendering-Auflösungsfunktion 420 eine Funktion einer einzelnen Variablen (z. B. D = θ 2 + φ 2

Figure DE112019002368T5_0002
) ist. 4C veranschaulicht eine zweidimensionale Rendering-Auflösungsfunktion 430, wobei sich die Rendering-Auflösungsfunktion 430 in einer horizontalen Dimension (θ) und einer vertikalen Dimension (φ) unterscheidet. 4D veranschaulicht eine zweidimensionale Rendering-Auflösungsfunktion 440 auf Grundlage eines Modells des menschlichen Sehvermögens.While the 3A-3D To illustrate rendering resolution functions in a single dimension, it goes without saying that that provided by the rendering engine 210 The rendering resolution function used can be a two-dimensional function. 4A illustrates a two-dimensional rendering resolution function 410 , the rendering resolution function 410 is independent in a horizontal dimension (θ) and a vertical dimension (φ). 4B illustrates a two-dimensional rendering resolution function 420 , the rendering resolution function 420 a function of a single variable (z. B. D. = θ 2 + φ 2
Figure DE112019002368T5_0002
) is. 4C illustrates a two-dimensional rendering resolution function 430 , with the rendering resolution function 430 differs in a horizontal dimension (θ) and a vertical dimension (φ). 4D illustrates a two-dimensional rendering resolution function 440 based on a model of human vision.

Wie nachstehend ausführlich beschrieben, erzeugt das Rendering-Modul 210 die Rendering-Auflösungsfunktion basierend auf einer Anzahl von Faktoren, einschließlich biologischer Informationen bezüglich des menschlichen Sehvermögens, Augenverfolgungsdaten, Augenverfolgungsmetadaten, des SR-Inhalts und verschiedener Einschränkungen (wie Einschränkungen, die durch die Hardware der HMD auferlegt werden).As described in detail below, the rendering engine generates 210 the rendering resolution function based on a number of factors including biological information related to human vision, eye tracking data, eye tracking metadata, SR content and various constraints (such as constraints imposed by the hardware of the HMD).

5A veranschaulicht eine beispielhafte Rendering-Auflösungsfunktion 510, bezeichnet als S(θ), die eine Auflösung in dem Anzeigeraum in Abhängigkeit des Winkels in dem verzerrten Raum kennzeichnet. Die Rendering-Auflösungsfunktion 510 ist eine Konstante (z. B. S-max) innerhalb eines Fokusfeldes (zwischen -θfof und +θfof) und fällt außerhalb dieses Fensters umgekehrt linear ab. 5A Figure 11 illustrates an exemplary rendering resolution function 510 , denoted as S (θ), which indicates a resolution in the display space depending on the angle in the distorted space. The rendering resolution function 510 is a constant (e.g. S -max ) within a focus field (between -θ fof and + θ fof ) and decreases inversely linearly outside of this window.

5B veranschaulicht das Integral 520, bezeichnet als U(θ), der Rendering-Auflösungsfunktion 510 von 5A innerhalb eines Sichtfelds, z. B. von - θfov bis +θfov. Somit ist U ( θ ) = θ f o v θ S ( θ ) d θ .

Figure DE112019002368T5_0003
Das Integral 520 reicht von 0 bei -θfov bis zu einem Maximalwert, bezeichnet als Umax, bei +θfov. 5B illustrates the integral 520 , denoted as U (θ), the rendering resolution function 510 of 5A within a field of view, e.g. B. from - θ fov to + θ fov . So is U ( θ ) = - θ f O v θ S. ( θ ) d θ .
Figure DE112019002368T5_0003
The integral 520 ranges from 0 at -θ fov to a maximum value, referred to as U max , at + θ fov .

5C veranschaulicht den Tangens 530, bezeichnet als V(xR), der Umkehrung des Integrals 520 der Rendering-Auflösung 510 von 5A. Somit ist V(xR) = tan(U-1(xR)). Der Tangens 530 veranschaulicht eine direkte Abbildung vom wiedergegebenen Raum in xR auf den Anzeigeraum in xD. Gemäß der Foveation, die durch die Rendering-Auflösungsfunktion 510 angegeben wird, wobei die gleichmäßigen Abtastpunkte in dem verzerrten Raum (gleichmäßig entlang der xR-Achse beabstandet) ungleichmäßigen Abtastpunkten in dem Anzeigeraum (ungleichmäßig entlang der xD-Achse beabstandet) entsprechen. Skalierungsfaktoren können durch die Abstände der ungleichmäßigen Abtastpunkte im Anzeigeraum bestimmt werden. 5C illustrates the tangent 530 , denoted as V (x R ), the inverse of the integral 520 the rendering resolution 510 of 5A . Thus V (x R ) = tan (U -1 (x R )). The tangent 530 illustrates a direct mapping from the reproduced space in x R to the display space in x D. According to the foveation made by the rendering resolution function 510 where the uniform sample points in the distorted space (equally spaced along the x R axis) correspond to uneven sample points in the display space (unevenly spaced along the x D axis). Scaling factors can be determined by the spacing of the uneven sampling points in the display space.

Beim Durchführen statischer Foveation verwendet das Rendering-Modul 210 eine Rendering-Auflösungsfunktion, die nicht vom Blick auf den Benutzer abhängt. Wenn jedoch eine dynamische Foveation durchgeführt wird, verwendet das Rendering-Modul 210 eine Rendering-Auflösungsfunktion, die vom Blick des Benutzers abhängt. Insbesondere verwendet das Rendering-Modul 210 beim Durchführen dynamischer Foveation eine Rendering-Auflösungsfunktion, die eine Peak-Höhe an einer Stelle aufweist, die einer Stelle in dem Anzeigeraum entspricht, auf die der Benutzer blickt (z. B. der Fixationspunkt, wie durch den Augenverfolger 260 bestimmt).When performing static foveation, the rendering engine uses 210 a rendering resolution function that does not depend on the view of the user. However, when dynamic foveation is performed, the rendering engine uses 210 a rendering resolution function that depends on the user's gaze. In particular, the rendering engine uses 210 when performing dynamic foveation, a rendering resolution function that has a peak height at a location corresponding to a location in the display space that the user is gazing at (e.g., the fixation point as by the eye tracker 260 certainly).

6A veranschaulicht eine Rendering-Auflösungsfunktion 610, die von dem Rendering-Modul 210 verwendet werden kann, wenn eine statische Foveation durchgeführt wird. Das Rendering-Modul 210 kann auch die Rendering-Auflösungsfunktion 610 von 6A verwenden, wenn eine dynamische Foveation durchgeführt wird und der Benutzer auf die Mitte des Anzeigefelds 240 blickt. 6B veranschaulicht eine Rendering-Auflösungsfunktion 620, die von dem Rendering-Modul verwendet werden kann, wenn eine dynamische Foveation durchgeführt wird und der Benutzer in einem Winkel (θg) von der Mitte des Anzeigefelds 240 weg blickt. 6A illustrates a rendering resolution function 610 made by the rendering engine 210 can be used when performing static foveation. The rendering module 210 can also use the rendering resolution function 610 of 6A use when dynamic foveation is performed and the user is on the center of the display 240 looks. 6B illustrates a rendering resolution function 620 that can be used by the rendering engine when dynamic foveation is performed and the user is at an angle (θ g ) from the center of the display panel 240 looks away.

7 ist eine Flussdiagrammdarstellung eines Verfahrens 700 zum Wiedergeben eines Bildes gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 700 von einem Rendering-Modul wie dem Rendering-Modul 210 von 2 durchgeführt. In verschiedenen Implementierungen wird das Verfahren 700 von einer HMD wie der HMD 100 von 1 oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 700 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren SR-Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 700 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 700 durch einen Prozessor durchgeführt, der Anweisungen (z. B. Codes) ausführt, die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 7th Figure 3 is a flow chart representation of a method 700 for rendering an image according to some implementations. In some implementations (and as detailed below as an example) the method 700 from a rendering module such as the rendering module 210 of 2 carried out. In different implementations the procedure 700 from an HMD like the HMD 100 of 1 or a section of it, like the SR pipeline 200 of 2 , carried out. In different implementations the procedure 700 performed by a device having one or more processors, non-volatile memories, and one or more SR indicators. In some implementations, the procedure 700 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 700 through a Processor that executes instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 700 beginnt bei Block 710, indem das Rendering-Modul einen SR-Inhalt erhält, der in einen Anzeigeraum wiedergegeben werden soll. In verschiedenen Implementierungen kann ein SR-Inhalt Definitionen geometrischer Formen virtueller Objekte, Farben und/oder Texturen virtueller Objekte, Bilder (wie ein Durchsichtsbild der Szene) oder andere Informationen einschließen, die einen Inhalt beschreiben, der in dem wiedergegebenen Bild dargestellt werden soll.The procedure 700 starts at block 710 by the rendering module receiving SR content to be displayed in a display room. In various implementations, SR content may include definitions of virtual object geometric shapes, virtual object colors and / or textures, images (such as a see-through image of the scene), or other information describing content to be presented in the displayed image.

Das Verfahren 700 fährt bei Block 720 fort, wobei das Rendering-Modul eine Rendering-Auflösungsfunktion erhält, die eine Abbildung zwischen dem Anzeigeraum und einem verzerrten Raum definiert. Verschiedene Rendering-Auflösungsfunktionen sind in den 3A-3D und den 4A-4D veranschaulicht. Verschiedene Verfahren zum Erzeugen einer Rendering-Auflösungsfunktion werden weiter unten beschrieben.The procedure 700 drives at block 720 wherein the rendering module receives a rendering resolution function that defines a mapping between the display space and a warped space. Various rendering resolution functions are available in the 3A-3D and the 4A-4D illustrated. Various methods of generating a rendering resolution function are described below.

In verschiedenen Implementierungen kennzeichnet die Rendering-Auflösungsfunktion im Allgemeinen die Auflösung des wiedergegebenen Bildes im Anzeigeraum. Somit stellt das Integral der Rendering-Auflösungsfunktion eine Abbildung zwischen dem Anzeigeraum und dem verzerrten Raum bereit (wie in den 5A-5C veranschaulicht). In einer Implementierung ist die Rendering-Auflösungsfunktion S(x) von einem Abstand von einem Ursprung des Anzeigeraums abhängig. In einer anderen Implementierung ist die Rendering-Auflösungsfunktion S(θ) von einem Winkel zwischen einer optischen Achse des Benutzers und der optischen Achse, wenn der Benutzer auf die Mitte des Anzeigefelds blickt, abhängig. Dementsprechend kennzeichnet die Rendering-Auflösungsfunktion eine Auflösung im Anzeigeraum in Abhängigkeit vom Winkel (im Anzeigeraum). Somit wird in einer Implementierung die Rendering-Auflösungsfunktion S(θ) in Pixeln pro Grad (PPD) ausgedrückt.In various implementations, the rendering resolution function generally characterizes the resolution of the rendered image in the display space. Thus, the integral of the rendering resolution function provides a mapping between the display space and the warped space (as shown in FIGS 5A-5C illustrated). In one implementation, the rendering resolution function S (x) is dependent on a distance from an origin of the display space. In another implementation, the rendering resolution function S (θ) is dependent on an angle between an optical axis of the user and the optical axis when the user is looking at the center of the display panel. Accordingly, the rendering resolution function indicates a resolution in the display space depending on the angle (in the display space). Thus, in one implementation, the rendering resolution function S (θ) is expressed in pixels per degree (PPD).

In verschiedenen Implementierungen führt das Rendering-Modul eine dynamische Foveation durch und die Rendering-Auflösungsfunktion hängt vom Blick des Benutzers ab. Dementsprechend schließt in einigen Implementierungen das Erhalten der Rendering-Auflösungsfunktion das Erhalten von Augenverfolgungsdaten, die auf einen Blick eines Benutzers hinweisen, z. B. von dem Augenverfolger 260 von 2, und das Erzeugen der Rendering-Auflösungsfunktion auf Grundlage der Augenverfolgungsdaten ein. In verschiedenen Implementierungen schließen die Augenverfolgungsdaten mindestens eines von Daten, die auf einen Blickwinkel des Benutzers hinweisen, oder Daten, die auf einen Fixationspunkt des Benutzers hinweisen, ein. Insbesondere schließt das Erzeugen der Rendering-Auflösungsfunktion auf Grundlage der Augenverfolgungsdaten in verschiedenen Implementierungen das Erzeugen einer Rendering-Auflösungsfunktion ein, die eine Peak-Höhe an einer Stelle aufweist, auf die der Benutzer blickt, wie durch die Augenverfolgungsdaten angegeben.In various implementations, the rendering module performs dynamic foveation and the rendering resolution function depends on the gaze of the user. Accordingly, in some implementations, obtaining the rendering resolution function includes obtaining eye tracking data indicative of a user's gaze, e.g. B. from the eye tracker 260 of 2 , and generating the rendering resolution function based on the eye tracking data. In various implementations, the eye tracking data includes at least one of data indicative of a point of view of the user or data indicative of a point of fixation of the user. In particular, in various implementations, generating the rendering resolution function based on the eye tracking data includes generating a rendering resolution function that has a peak height at a location the user is gazing at as indicated by the eye tracking data.

Das Verfahren 700 fährt bei Block 730 fort, wobei das Rendering-Modul ein wiedergegebenes Bild auf Grundlage des SR-Inhalts und der Rendering-Auflösungsfunktion erzeugt. Das wiedergegebene Bild schließt ein verzerrtes Bild mit einer Vielzahl von Pixeln an jeweiligen Stellen ein, die gleichmäßig in einem Gittermuster in dem verzerrten Raum beabstandet sind. Die Vielzahl von Pixeln ist jeweils einer Vielzahl von jeweiligen Pixelwerten auf Grundlage des SR-Inhalts zugeordnet. Die Vielzahl von Pixeln ist jeweils einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet, die einen Bereich in dem Anzeigeraum auf Grundlage der Rendering-Auflösungsfunktion definieren.The procedure 700 drives at block 730 wherein the rendering module generates a rendered image based on the SR content and the rendering resolution function. The reproduced image includes a distorted image having a plurality of pixels at respective locations evenly spaced in a grid pattern in the distorted space. The plurality of pixels are each associated with a plurality of respective pixel values based on the SR content. The plurality of pixels are each associated with a plurality of respective scaling factors that define an area in the display space based on the rendering resolution function.

Ein Bild, das sich in einem Anzeigeraum befinden soll, weist gleichmäßig beabstandete Bereiche (z. B. Pixel oder Gruppen von Pixeln) auf, die gleichmäßig beabstandete Bereiche (Pixel oder Gruppen von Pixeln) einer Anzeige abbilden. Ein Bild, das sich in einem verzerrten Raum befinden soll, weist gleichmäßig beabstandete Bereiche (z. B. Pixel oder Gruppen von Pixeln) auf, die ungleichmäßig beabstandete Bereiche (z. B. Pixel oder Gruppen von Pixeln) in dem Anzeigeraum abbilden. Die Beziehung zwischen gleichmäßig beabstandeten Regionen in dem verzerrten Raum zu ungleichmäßig beabstandeten Regionen in dem Anzeigeraum ist mindestens teilweise durch die Skalierungsfaktoren definiert. Somit definiert die Vielzahl von jeweiligen Skalierungsfaktoren (wie die Rendering-Auflösungsfunktion) eine Abbildung zwischen dem verzerrten Raum und dem Anzeigeraum.An image intended to be in a display space has evenly spaced areas (e.g., pixels or groups of pixels) that represent evenly spaced areas (pixels or groups of pixels) of a display. An image intended to be in a distorted space has evenly spaced areas (e.g., pixels or groups of pixels) that depict unevenly spaced areas (e.g., pixels or groups of pixels) in the display space. The relationship between evenly spaced regions in the warped space to unevenly spaced regions in the display space is defined at least in part by the scale factors. Thus, the plurality of respective scaling factors (such as the rendering resolution function) define a mapping between the distorted space and the display space.

In verschiedenen Implementierungen schließt das verzerrte Bild eine Vielzahl von Kacheln an jeweiligen Stellen ein, die gleichmäßig in einem Gittermuster in dem verzerrten Raum beabstandet sind, und jede der Vielzahl von Kacheln ist einem jeweiligen einen oder mehreren Skalierungsfaktoren zugeordnet. Zum Beispiel ist in einigen Implementierungen jede Kachel (einschließlich einer Vielzahl von Pixeln) einem einzelnen horizontalen Skalierungsfaktor und einem einzelnen vertikalen Skalierungsfaktor zugeordnet. In einigen Implementierungen ist jede Kachel einem einzelnen Skalierungsfaktor zugeordnet, der sowohl für horizontale als auch vertikale Skalierung verwendet wird. In verschiedenen Implementierungen ist jede Kachel eine 32x32-Matrix von Pixeln.In various implementations, the warped image includes a plurality of tiles in respective locations evenly spaced in a grid pattern in the warped space, and each of the plurality of tiles is associated with a respective one or more scale factors. For example, in some implementations, each tile (including a plurality of pixels) is assigned a single horizontal scale factor and a single vertical scale factor. In some implementations, each tile is assigned a single scale factor that applies to both horizontal and vertical scaling is also used. In various implementations, each tile is a 32x32 matrix of pixels.

In verschiedenen Implementierungen überträgt das Rendering-Modul das verzerrte Bild einschließlich der Vielzahl von Pixelwerten in Verbindung mit der Vielzahl von jeweiligen Skalierungsfaktoren. Dementsprechend werden das verzerrte Bild und die Skalierungsfaktoren anstatt eines Foveated Image, das unter Verwendung dieser Informationen erzeugt werden könnte, durch die Pipeline propagiert.In various implementations, the rendering module transmits the warped image including the plurality of pixel values in conjunction with the plurality of respective scaling factors. Accordingly, the warped image and scale factors are propagated through the pipeline rather than a foveated image that could be generated using this information.

Insbesondere in Bezug auf 2 erzeugt das Rendering-Modul 210 in verschiedenen Implementierungen ein verzerrtes Bild und eine Vielzahl von jeweiligen Skalierungsfaktoren, die von dem Rendering-Modul 210 übertragen werden. In verschiedenen Stadien in der Pipeline 200 werden das verzerrte Bild (oder eine verarbeitete Version des verzerrten Bildes) und die Vielzahl von jeweiligen Skalierungsfaktoren durch das Transportmodul 220 (und das Komprimierungsmodul 222 und das Dekomprimierungsmodul 226 davon) empfangen (und beim Verarbeiten des verzerrten Bildes verwendet), wie weiter unten beschrieben. In verschiedenen Stadien in der Pipeline 200 werden das verzerrte Bild (oder eine verarbeitete Version des verzerrten Bildes) und die Vielzahl von jeweiligen Skalierungsfaktoren durch das Anzeigemodul 230 (und das Linsenkompensationsmodul 232 und das Panelkompensationsmodul 234 davon) empfangen (und beim Verarbeiten des verzerrten Bildes verwendet), wie weiter unten beschrieben.In particular with regard to 2 creates the rendering module 210 in different implementations a distorted image and a variety of respective scaling factors used by the rendering engine 210 be transmitted. At various stages in the pipeline 200 the warped image (or a processed version of the warped image) and the plurality of respective scaling factors are provided by the transport module 220 (and the compression module 222 and the decompression module 226 of it) (and used in processing the warped image) as described below. At various stages in the pipeline 200 the warped image (or a processed version of the warped image) and the plurality of respective scaling factors are displayed by the display module 230 (and the lens compensation module 232 and the panel compensation module 234 of it) (and used in processing the warped image) as described below.

In verschiedenen Implementierungen erzeugt das Rendering-Modul die Skalierungsfaktoren auf Grundlage der Rendering-Auflösungsfunktion. Zum Beispiel werden in einigen Implementierungen die Skalierungsfaktoren auf Grundlage der Rendering-Auflösungsfunktion, wie vorstehend in Bezug auf 5A-5C beschrieben, erzeugt. In verschiedenen Implementierungen schließt das Erzeugen der Skalierungsfaktoren das Bestimmen des Integrals der Rendering-Auflösungsfunktion ein. In verschiedenen Implementierungen schließt das Erzeugen der Skalierungsfaktoren das Bestimmen des Tangens der Umkehrung des Integrals der Rendering-Auflösungsfunktion ein. In verschiedenen Implementierungen schließt das Erzeugen der Skalierungsfaktoren das Bestimmen, für jede der jeweiligen Positionen, die gleichmäßig in einem Gittermuster in dem verzerrten Raum beabstandet sind, der jeweiligen Skalierungsfaktoren auf Grundlage des Tangens der Umkehrung des Integrals der Rendering-Auflösungsfunktion ein. Dementsprechend werden für eine Vielzahl von Stellen, die gleichmäßig in dem verzerrten Raum beabstandet sind, eine Vielzahl von Stellen, die ungleichmäßig in dem Anzeigeraum beabstandet sind, durch die Skalierungsfaktoren dargestellt.In various implementations, the rendering module generates the scale factors based on the rendering resolution function. For example, in some implementations, the scale factors are set based on the rendering resolution function, as described above with respect to FIG 5A-5C described, generated. In various implementations, generating the scale factors includes determining the integral of the rendering resolution function. In various implementations, generating the scale factors includes determining the tangent of the inverse of the integral of the rendering resolution function. In various implementations, generating the scale factors includes determining, for each of the respective positions evenly spaced in a grid pattern in the warped space, the respective scale factors based on the tangent of the inverse of the integral of the rendering resolution function. Accordingly, for a plurality of locations that are equally spaced in the distorted space, a plurality of locations that are unevenly spaced in the display space are represented by the scale factors.

8A veranschaulicht eine Bilddarstellung von einem SR-Inhalt 810, der in einem Anzeigeraum wiedergegeben werden soll. 8B veranschaulicht ein verzerrtes Bild 820, das gemäß dem Verfahren 700 von 7 erzeugt wird. Gemäß einer Rendering-Auflösungsfunktion werden unterschiedliche Abschnitte des SR-Inhalts 810, die ungleichmäßig beabstandeten Regionen (z. B. verschiedenen Flächenmengen) in dem Anzeigeraum entsprechen, in gleichmäßig beabstandeten Regionen (z. B. der gleichen Flächenmenge) in dem verzerrten Bild 820 wiedergegeben. 8A Fig. 10 illustrates an image representation of SR content 810 to be played in a display room. 8B illustrates a distorted image 820 that according to the procedure 700 of 7th is produced. According to a rendering resolution function, different sections of the SR content are made 810 that correspond to unevenly spaced regions (e.g., different amounts of area) in the display space, in equally spaced regions (e.g., the same amount of area) in the warped image 820 reproduced.

Zum Beispiel wird der Bereich in der Mitte der Bilddarstellung des SR-Inhalts 810 von 8A durch einen Bereich in dem verzerrten Bild 820 von 8B dargestellt, der K Pixel (und K Pixelwerte) einschließt. In ähnlicher Weise wird der Bereich auf der Ecke der Bilddarstellung des SR-Inhalts 810 von 8A (ein größerer Bereich als der Bereich in der Mitte von 8A) auch durch einen Bereich in dem verzerrten Bild 820 von 8B dargestellt, der K Pixel (und K Pixelwerte) einschließt.For example, the area in the middle of the image is the SR content 810 of 8A through an area in the distorted image 820 of 8B which includes K pixels (and K pixel values). Similarly, the area on the corner of the image is the SR content 810 of 8A (a larger area than the area in the middle of 8A) also through an area in the distorted image 820 of 8B which includes K pixels (and K pixel values).

Wie vorstehend erwähnt, kann das Rendering-Modul 210 eine statische Foveation oder dynamische Foveation durchführen. In verschiedenen Implementierungen bestimmt das Rendering-Modul 210 einen Foveationsmodus, der zum Wiedergeben von SR-INHALT anzuwenden ist, und führt eine statische Foveation oder dynamische Foveation gemäß dem bestimmten Foveationsmodus durch. In einem statischen Foveationsmodus wird der SR-Inhalt unabhängig von Augenverfolgungsdaten wiedergegeben. In einem Nicht-Foveationsmodus ist das wiedergegebene Bild durch feste Auflösungen pro Anzeigebereichen gekennzeichnet (z. B. eine konstante Anzahl von Pixeln pro Kachel). In einem dynamischen Foveationsmodus hängt die Auflösung des wiedergegebenen Bildes vom Blick eines Benutzers ab.As mentioned above, the rendering module 210 perform static foveation or dynamic foveation. In various implementations, the rendering engine determines 210 a foveation mode to be used for reproducing SR CONTENT, and performs static foveation or dynamic foveation according to the determined foveation mode. In a static foveation mode, the SR content is played independently of eye tracking data. In a non-foveation mode, the displayed image is characterized by fixed resolutions per display area (e.g. a constant number of pixels per tile). In a dynamic foveation mode, the resolution of the displayed image depends on the gaze of a user.

9 ist eine Flussdiagrammdarstellung eines Verfahrens 900 zum Wiedergeben eines Bildes gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 900 von einem Rendering-Modul wie dem Rendering-Modul 210 von 2 durchgeführt. In verschiedenen Implementierungen wird das Verfahren 900 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 900 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 900 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 900 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 9 Figure 3 is a flow chart representation of a method 900 for rendering an image according to some implementations. In some implementations (and as detailed below as an example) the method 900 from a rendering module such as the rendering module 210 of 2 carried out. In different implementations the procedure 900 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 , carried out. In different implementations the procedure 900 by a device with one or more processors, non-volatile memory and one or more displays. In some implementations, the procedure 900 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 900 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 900 beginnt in Block 910 mit dem Erhalten von Augenverfolgungsdaten durch das Rendering-Modul, die auf einen Blick eines Benutzers hinweisen (z. B. wohin ein Benutzer blickt, wie eine Blickrichtung oder einen Fixationspunkt eines Benutzers). In verschiedenen Implementierungen schließen die Augenverfolgungsdaten mindestens eines von Daten, die auf einen Blickwinkel des Benutzers hinweisen, oder Daten, die auf einen Fixationspunkt des Benutzers hinweisen, ein.The procedure 900 starts in block 910 with the rendering module receiving eye tracking data that is indicative of a user's gaze (e.g., where a user is looking, such as a user's gaze direction or a point of fixation). In various implementations, the eye tracking data includes at least one of data indicative of a point of view of the user or data indicative of a point of fixation of the user.

Das Verfahren 900 fährt in Block 920 fort, wobei das Rendering-Modul einen SR-Inhalt erhält, der wiedergegeben werden soll. In verschiedenen Implementierungen kann der SR-Inhalt Definitionen geometrischer Formen virtueller Objekte, Farben und/oder Texturen virtueller Objekte, Bilder (wie ein Durchsichtsbild der Szene) oder andere Informationen einschließen, die einen Inhalt beschreiben, der in einem wiedergegebenen Bild dargestellt werden soll.The procedure 900 drives in block 920 continues, with the rendering module receiving SR content to be played. In various implementations, the SR content can include definitions of virtual object geometric shapes, virtual object colors and / or textures, images (such as a see-through image of the scene), or other information describing content to be represented in a displayed image.

Das Verfahren 900 fährt in Block 930 fort, wobei das Rendering-Modul einen Foveationsmodus bestimmt, der auf das Wiedergeben des SR-Inhalts anzuwenden ist. In verschiedenen Implementierungen bestimmt das Rendering-Modul den Foveationsmodus basierend auf verschiedenen Faktoren. In einigen Implementierungen bestimmt das Rendering-Modul den Foveationsmodus auf Grundlage einer Rendering-Prozessoreigenschaft. Zum Beispiel bestimmt das Rendering-Modul in einigen Implementierungen den Foveationsmodus auf Grundlage einer verfügbaren Verarbeitungsleistung, einer Verarbeitungsgeschwindigkeit oder einem Prozessortyp des Rendering-Prozessors des Rendering-Moduls. Wenn das Rendering-Modul eine große verfügbare Verarbeitungsleistung aufweist (aufgrund einer großen Verarbeitungskapazität oder einer geringen Nutzung der Verarbeitungskapazität), wählt das Rendering-Modul einen dynamischen Foveationsmodus aus, und wenn das Rendering-Modul eine kleine verfügbare Verarbeitungsleistung (aufgrund einer kleinen Verarbeitungskapazität oder einer hohen Nutzung der Verarbeitungskapazität) aufweist, wählt das Rendering-Modul einen statischen Foveationsmodus oder einen Nicht-Foveationsmodus aus. Unter Bezugnahme auf 1 wählt das Rendering-Modul einen dynamischen Foveationsmodus aus, wenn das Wiedergeben durch die Steuerung 110 (sich z. B. der Rendering-Prozessor bei der Steuerung befindet) durchgeführt wird, und das Rendering-Modul wählt einen statischen Foveationsmodus oder einen Nicht-Foveationsmodus aus, wenn das wiedergeben durch die HMD 120 (sich z. B. der Rendering-Prozessor bei der HMD befindet) durchgeführt wird. In verschiedenen Implementierungen erfolgt das Umschalten zwischen statischen und dynamischen Foveationsmodi auf Grundlage von Eigenschaften der HMD 120, wie der Verarbeitungsleistung der HMD 120 relativ zur Verarbeitungsleistung der Steuerung 110.The procedure 900 drives in block 930 wherein the rendering module determines a foveation mode to be applied to the rendering of the SR content. In various implementations, the rendering engine determines the mode of foveation based on various factors. In some implementations, the rendering engine determines the foveation mode based on a rendering processor property. For example, in some implementations, the rendering module determines the foveation mode based on an available processing power, a processing speed, or a processor type of the rendering processor of the rendering module. When the rendering engine has a large amount of available processing power (due to a large processing capacity or a low utilization of the processing capacity), the rendering engine selects a dynamic foveation mode, and when the rendering engine has a small amount of available processing power (due to a small processing capacity or a high utilization of processing capacity), the rendering module selects a static foveation mode or a non-foveation mode. With reference to 1 the rendering module selects a dynamic foveation mode when rendering by the controller 110 (For example, the rendering processor is in the controller) is performed, and the rendering module selects a static foveation mode or a non-foveation mode when reproduced by the HMD 120 (e.g. the rendering processor is located at the HMD). In various implementations, switching between static and dynamic foveation modes is based on properties of the HMD 120 how the processing power of the HMD 120 relative to the processing power of the controller 110 .

In einigen Implementierungen wählt das Rendering-Modul einen statischen Foveationsmodus oder einen Nicht-Foveationsmodus aus, wenn sich die Augenverfolgungsleistung (z. B. Zuverlässigkeit) ausreichend verschlechtert. Zum Beispiel wird in einigen Implementierungen der statische Foveationsmodus oder der Nicht-Foveationsmodus ausgewählt, wenn die Augenverfolgung verloren geht. Als weiteres Beispiel wird in einigen Implementierungen der statische Foveationsmodus oder der Nicht-Foveationsmodus ausgewählt, wenn die Augenverfolgungsleistung einen Schwellenwert überschreitet, wie etwa wenn die Augenverfolgungsgenauigkeit zu niedrig fällt (z. B. aufgrund großer Lücken in den Augenverfolgungsdaten) und/oder die Latenz in Bezug auf die Augenverfolgung einen Wert überschreitet. In einigen Implementierungen verschiebt das Rendering-Modul den Fokus auf die Mitte der HMD 120 und erhöht unter Verwendung statischer Foveation allmählich das Fixationsfeld (FoF), wenn eine Verringerung der Augenverfolgungsleistung während der dynamischen Foveation (z. B. nach einer Zeitüberschreitung, wie durch eine niedrige Vorhersagekonfidenz angezeigt) vermutet wird.In some implementations, the rendering engine selects a static foveation mode or a non-foveation mode when eye tracking performance (e.g., reliability) deteriorates sufficiently. For example, in some implementations, the static foveation mode or the non-foveation mode is selected when eye tracking is lost. As another example, in some implementations, static or non-foveation mode is selected when eye tracking performance exceeds a threshold, such as when eye tracking accuracy falls too low (e.g., due to large gaps in eye tracking data) and / or the latency in With respect to eye tracking exceeds a value. In some implementations, the rendering engine shifts focus to the center of the HMD 120 and gradually increases the field of fixation (FoF) using static foveation if a decrease in eye tracking performance is suspected during dynamic foveation (e.g., after a timeout as indicated by low predictive confidence).

In verschiedenen Implementierungen wählt das Rendering-Modul einen statischen Foveationsmodus oder einen Nicht-Foveationsmodus aus, um andere Überlegungen zu berücksichtigen. Zum Beispiel wählt das Rendering-Modul in einigen Implementierungen einen statischen Foveationsmodus oder einen Nicht-Foveationsmodus aus, in dem eine überragende Augenverfolgungssensorleistung wünschenswert ist. Als weiteres Beispiel wählt das Rendering-Modul in einigen Implementierungen einen statischen Foveationsmodus oder einen Nicht-Foveationsmodus aus, wenn der Benutzer, der die HMD 120 trägt, einen medizinischen Zustand aufweist, der Augenverfolgung verhindert oder ihn ausreichend unwirksam macht.In various implementations, the rendering engine selects a static foveation mode or a non-foveation mode to accommodate other considerations. For example, in some implementations, the rendering module selects a static foveation mode or a non-foveation mode in which superior eye tracking sensor performance is desirable. As another example, in some implementations, the rendering engine selects a static foveation mode or a non-foveation mode when the user running the HMD 120 has a medical condition that prevents eye tracking or makes it sufficiently ineffective.

In verschiedenen Implementierungen wird ein statischer Foveationsmodus oder ein Nicht-Foveationsmodus ausgewählt, da er eine bessere Leistung verschiedener Gesichtspunkte des Rendering-Bildgebungssystems bereitstellt. Zum Beispiel stellt in einigen Implementierungen der statische Foveationsmodus oder der Nicht-Foveationsmodus eine bessere Ratensteuerung bereit. Als weiteres Beispiel stellt in einigen Implementierungen der statische Foveationsmodus oder der Nicht-Foveationsmodus eine bessere Verdeckung gemischter Foveated und Nicht-Foveated Regionen bereit (z. B. indem die Linie, die Regionen abgrenzt, matter gemacht wird). Als weiteres Beispiel stellt in einigen Implementierungen ein statischer Foveationsmodus oder Nicht-Foveationsmodus eine bessere Anzeigefeldverbrauchsbandbreite bereit, indem zum Beispiel statische gruppierte Kompensationsdaten verwendet werden, um ähnliche Leistung und/oder Bandbreite aufrechtzuerhalten. Als noch ein weiteres Beispiel mildert in einigen Implementierungen der statische Foveationsmodus oder der Nicht-Foveationsmodus das Rendering-Risiko unerwünschter visueller Gesichtspunkte, wie Flimmern und/oder Artefakte (z. B. gruppiertes Rollemissionsscherartefakt).In various implementations, a static mode of foveation or a non-foveation mode is selected because it provides better performance of various aspects of the rendering imaging system. For example, in some implementations, the static foveation mode or the non-foveation mode provide better rate control. As another example, in some implementations, the static foveation mode or the non-foveation mode provides better concealment of mixed foveated and non-foveated regions (e.g., by making the line demarcating regions matt). As another example, in some implementations, a static or non-foveation mode provides better panel usage bandwidth, for example by using static grouped compensation data to maintain similar performance and / or bandwidth. As yet another example, in some implementations, the static foveation mode or the non-foveation mode mitigates the rendering risk of undesirable visual aspects such as flicker and / or artifacts (e.g., clustered roll emission shear artifact).

Das Verfahren 900 wird im Entscheidungsblock 935 fortgesetzt. Gemäß einer Bestimmung, dass der Foveationsmodus ein dynamischer Foveationsmodus ist, fährt das Verfahren 900 in Block 940 fort, wobei das Rendering-Modul den SR-Inhalt gemäß dynamischer Foveation auf Grundlage der Augenverfolgungsdaten wiedergibt (z. B. wie vorstehend in Bezug auf 7 beschrieben). Gemäß einer Bestimmung, dass der Foveationsmodus ein statischer Foveationsmodus ist, fährt das Verfahren 900 in Block 942 fort, wobei das Rendering-Modul den SR-Inhalt gemäß statischer Foveation unabhängig von den Augenverfolgungsdaten wiedergibt (z. B. wie vorstehend in Bezug auf 7 beschrieben). Gemäß einer Bestimmung, dass der Foveationsmodus ein Nicht-Foveationsmodus ist, fährt das Verfahren 900 in Block 944 fort, wobei das Rendering-Modul den SR-Inhalt ohne Foveation wiedergibt.The procedure 900 becomes in the decision block 935 continued. In accordance with a determination that the foveation mode is a dynamic foveation mode, the method continues 900 in block 940 wherein the rendering module renders the SR content according to dynamic foveation based on the eye tracking data (e.g., as above with respect to FIG 7th described). In accordance with a determination that the foveation mode is a static foveation mode, the method continues 900 in block 942 with the rendering module rendering the SR content according to static foveation independent of the eye tracking data (e.g., as above with respect to FIG 7th described). In accordance with a determination that the foveation mode is a non-foveation mode, the method continues 900 in block 944 with the rendering module rendering the SR content without foveation.

In verschiedenen Implementierungen kehrt das Verfahren 900 zu Block 920 zurück, wobei ein zusätzlicher SR-Inhalt empfangen wird. In verschiedenen Implementierungen gibt das Rendering-Modul je nach sich ändernden Umständen unterschiedliche SR-Inhalt mit unterschiedlichen Foveationsmodi wieder. Obwohl in einer bestimmten Reihenfolge gezeigt, sollte beachtet werden, dass Blöcke des Verfahrens 900 in unterschiedlichen Reihenfolgen oder gleichzeitig durchgeführt werden können. Zum Beispiel können Augenverfolgungsdaten während der gesamten Durchführung des Verfahrens 900 erhalten werden (z. B. wie in Block 910), und diese Blöcke, die auf diesen Daten beruhen, können beliebige der zuvor erhaltenen (z. B. zuletzt erhaltene) Augenverfolgungsdaten oder Varianten davon verwenden können (z. B. gleitender Durchschnitt oder dergleichen).In different implementations, the procedure reverses 900 to block 920 back, receiving additional SR content. In different implementations, the rendering module reproduces different SR content with different foveation modes depending on changing circumstances. Although shown in a specific order, it should be noted that blocks of procedure 900 can be carried out in different orders or at the same time. For example, eye tracking data can be used throughout the process 900 can be obtained (e.g. as in block 910 ), and those blocks based on this data can use any of the previously obtained (e.g., most recently obtained) eye tracking data or variations thereof (e.g., moving average or the like).

10A veranschaulicht eine Okularauflösungsfunktion 1020, E(θ), die in Abhängigkeit des Winkels variiert. Die Okularauflösungsfunktion 1020 weist ein Maximum in der Mitte des Okulars 242 auf und fällt zu den Kanten hin ab. In verschiedenen Implementierungen schließt die Okularauflösungsfunktion 1020 einen Abschnitt eines Kreises, einer Ellipse, einer Parabel oder einer Hyperbel ein. 10A illustrates an ocular resolution function 1020 , E (θ), which varies depending on the angle. The eyepiece resolution function 1020 has a maximum in the middle of the eyepiece 242 and falls off towards the edges. In various implementations, the eyepiece resolution function includes 1020 a section of a circle, an ellipse, a parabola or a hyperbola.

10A veranschaulicht auch eine unbeschränkte Rendering-Auflösungsfunktion 1010, Su(θ), die einen Peak aufweist, der in einem Blickwinkel (θg) zentriert ist. Um den Peak herum ist die unbeschränkte Rendering-Auflösungsfunktion 1010 größer als die Okularauflösungsfunktion 1020. Wenn also das Rendering-Modul 210 ein Bild mit der Auflösung wiedergeben würde, die durch die unbeschränkte Rendering-Auflösungsfunktion 1010 angegeben wird, würden Details an diesen Winkeln durch das Okular 242 entfernt. Um den Rechenaufwand und die Verzögerung beim Wiedergeben dieser Details zu vermeiden, erzeugt das Rendering-Modul 210 in verschiedenen Implementierungen dementsprechend eine beschränkte Rendering-Auflösungsfunktion 1030 (fett), Sc(θ), die gleich der kleineren der Okularauflösungsfunktion 1010 und der unbeschränkten Rendering-Auflösungsfunktion ist. Somit ist S c ( θ ) = m i n ( E ( θ ) , S u ( θ ) ) .

Figure DE112019002368T5_0004
10A also illustrates an unlimited rendering resolution function 1010 , S u (θ) which has a peak centered on a view angle (θ g ). Around the peak is the unlimited rendering resolution function 1010 greater than the eyepiece resolution function 1020 . So if the rendering module 210 would render an image at the resolution given by the unlimited rendering resolution function 1010 specified, details at these angles would be seen through the eyepiece 242 away. To avoid the computational effort and the delay in rendering these details, the rendering engine generates 210 a limited rendering resolution function accordingly in various implementations 1030 (bold), S c (θ), which is equal to the smaller of the ocular resolution function 1010 and the unlimited rendering resolution function. So is S. c ( θ ) = m i n ( E. ( θ ) , S. u ( θ ) ) .
Figure DE112019002368T5_0004

In verschiedenen Implementierungen wird die Menge an Rechenaufwand und Verzögerung, die dem Rendering-Modul 210 zugeordnet sind, welches das wiedergegebene Bild wiedergibt, relativ konstant gehalten (z. B. normalisiert), unabhängig vom Blickwinkel des Benutzers 250. Dementsprechend gibt das Rendering-Modul 210 in verschiedenen Implementierungen das wiedergegebene Bild unter Verwendung einer Rendering-Auflösungsfunktion wieder, die einen festen Summenwert aufweist, der die Gesamtdetailmenge in dem wiedergegebenen Bild angibt. In verschiedenen Implementierungen ist der Summenwert im Allgemeinen gleich dem Integral der Rendering-Auflösungsfunktion über das Sichtfeld. Mit anderen Worten entspricht der Summenwert dem Bereich unter der Rendering-Auflösungsfunktion über dem Sichtfeld. In verschiedenen Implementierungen entspricht der Summenwert der Anzahl von Pixeln, Kacheln und/oder (x,y) Positionen in dem wiedergegebenen Bild.In different implementations this will reduce the amount of computation and delay that the rendering engine takes 210 are assigned, which reproduces the reproduced image, kept relatively constant (z. B. normalized), regardless of the viewing angle of the user 250 . The rendering module gives accordingly 210 in various implementations, render the rendered image using a rendering resolution function that has a fixed sum value indicative of the total amount of detail in the rendered image. In various implementations, the sum value is generally equal to the integral of the rendering resolution function over the field of view. In other words, the sum value corresponds to the area under the rendering resolution function above the field of view. In different In implementations, the sum value corresponds to the number of pixels, tiles and / or (x, y) positions in the displayed image.

Der Summenwert der beschränkten Rendering-Auflösungsfunktion 1030 ist kleiner als der Summenwert der unbeschränkten Rendering-Auflösungsfunktion 1010. Um eine Rendering-Auflösungsfunktion mit einem größeren Summenwert, z. B. gleich einem festen Summenwert zu erzeugen, erhöht das Rendering-Modul Werte der beschränkten Rendering-Auflösungsfunktion 1030, die im Vergleich zu der unbeschränkten Rendering-Auflösungsfunktion 1010 nicht verringert wurden. Zum Beispiel veranschaulicht 10B eine erste beschränkte Rendering-Auflösungsfunktion 1032, in der die abfallenden Abschnitte der Rendering-Auflösungsfunktion im Vergleich zu den abfallenden Abschnitten der beschränkten Rendering-Auflösungsfunktion 1030 erhöht sind. Als weiteres Beispiel veranschaulicht 10C eine zweite beschränkte Rendering-Auflösungsfunktion 1034, in der die Peak-Breite der Rendering-Auflösungsfunktion im Vergleich zur Peak-Breite der beschränkten Rendering-Auflösungsfunktion 1030 erhöht ist.The sum value of the constrained rendering resolution function 1030 is less than the sum of the unconstrained rendering resolution function 1010 . To have a rendering resolution function with a larger sum value, e.g. B. to produce a fixed sum value, the rendering module increases values of the limited rendering resolution function 1030 that compared to the unlimited rendering resolution function 1010 were not decreased. For example illustrates 10B a first limited rendering resolution function 1032 , in which the descending portions of the rendering resolution function compared to the descending portions of the constrained rendering resolution function 1030 are increased. Illustrated as another example 10C a second limited rendering resolution function 1034 where the peak width of the rendering resolution function compared to the peak width of the constrained rendering resolution function 1030 is increased.

11 ist eine Flussdiagrammdarstellung eines Verfahrens 1100 zum Wiedergeben eines Bildes gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 1100 von einem Rendering-Modul wie dem Rendering-Modul 210 von 2 durchgeführt. In verschiedenen Implementierungen wird das Verfahren 1100 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 1100 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren SR-Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 1100 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 1100 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 11 Figure 3 is a flow chart representation of a method 1100 for rendering an image according to some implementations. In some implementations (and as detailed below as an example) the method 1100 from a rendering module such as the rendering module 210 of 2 carried out. In different implementations the procedure 1100 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 , carried out. In different implementations the procedure 1100 performed by a device having one or more processors, non-volatile memories, and one or more SR indicators. In some implementations, the procedure 1100 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 1100 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 1100 beginnt in Block 1110 mit dem Erhalten von Augenverfolgungsdaten durch das Rendering-Modul, die auf einen Blick eines Benutzers hinweisen (z. B. wohin der Benutzer blickt, wie Blickrichtung und/oder Fixationspunkt des Benutzers). In verschiedenen Implementierungen empfängt das Rendering-Modul Daten, die Leistungseigenschaften eines Okulars mindestens auf den Blick des Benutzers hinweisen. In verschiedenen Implementierungen können Leistungsmerkmale des Okulars an dem Blick des Benutzers aus den Augenverfolgungsdaten bestimmt werden.The procedure 1100 starts in block 1110 with the rendering module receiving eye tracking data that is indicative of a user's gaze (e.g. where the user is looking, such as the user's gaze direction and / or point of fixation). In various implementations, the rendering module receives data indicative of the performance characteristics of an eyepiece, at least at the gaze of the user. In various implementations, performance characteristics of the eyepiece at the user's gaze can be determined from the eye tracking data.

Das Verfahren 1110 fährt in Block 1120 fort, wobei das Rendering-Modul eine Rendering-Auflösungsfunktion auf Grundlage der Augenverfolgungsdaten erzeugt, wobei die Rendering-Auflösungsfunktion einen von den Augenverfolgungsdaten abhängigen Maximalwert und einen von den Augenverfolgungsdaten unabhängigen Summenwert aufweist.The procedure 1110 drives in block 1120 wherein the rendering module generates a rendering resolution function on the basis of the eye tracking data, the rendering resolution function having a maximum value dependent on the eye tracking data and a sum value independent of the eye tracking data.

In verschiedenen Implementierungen schließt das Erzeugen der Rendering-Auflösungsfunktion das Erzeugen einer unbeschränkten Rendering-Auflösungsfunktion auf Grundlage der Augenverfolgungsdaten (wie der unbeschränkten Rendering-Auflösungsfunktion 1010 von 10A) ein; Bestimmen des Maximalwerts (der Rendering-Auflösungsfunktion nach Beschränkung) auf Grundlage der Augenverfolgungsdaten (und optional einer Okularauflösungsfunktion wie der Okularauflösungsfunktion 1020 von 10A); Verringern von Werten der unbeschränkten Rendering-Auflösungsfunktion über dem Maximalwert auf den Maximalwert, um eine beschränkte Rendering-Auflösungsfunktion zu erzeugen (wie die beschränkte Rendering-Auflösungsfunktion 1030 von 10A); und Erhöhen nicht verringerter Werte der beschränkten Rendering-Auflösungsfunktion, um die Rendering-Auflösungsfunktion zu erzeugen. In verschiedenen Implementierungen schließt das Erhöhen der nicht verringerten Werte der beschränkten Rendering-Auflösungsfunktion das Erhöhen von abfallenden Abschnitten der abfallenden Rendering-Auflösungsfunktion ein. In einigen Implementierungen fallen periphere Abschnitte der Rendering-Auflösungsfunktion umgekehrt linear ab (z. B. hyperbolisch). In verschiedenen Implementierungen schließt das Erhöhen der nicht verringerten Werte der beschränkten Rendering-Auflösungsfunktion das Erhöhen einer Peak-Breite der beschränkten Rendering-Auflösungsfunktion ein, wie das Erhöhen der Größe des Fokusfelds.In various implementations, creating the rendering resolution function includes creating an unconstrained rendering resolution function based on the eye tracking data (such as the unconstrained rendering resolution function 1010 of 10A) on; Determining the maximum value (the rendering resolution function after restriction) based on the eye tracking data (and optionally an ocular resolution function such as the ocular resolution function 1020 of 10A) ; Decreasing values of the unconstrained rendering resolution function above the maximum value to the maximum value to produce a constrained rendering resolution function (such as the constrained rendering resolution function 1030 of 10A) ; and increasing non-reduced values of the constrained rendering resolution function to produce the rendering resolution function. In various implementations, increasing the non-reduced values of the constrained rendering resolution function includes increasing descending portions of the declining rendering resolution function. In some implementations, peripheral portions of the rendering resolution function slope inversely linearly (e.g., hyperbolic). In various implementations, increasing the non-reduced values of the rendering constrained resolution function includes increasing a peak width of the rendering constrained resolution function, such as increasing the size of the focus field.

In verschiedenen Implementierungen basiert der Maximalwert auf einer Abbildung zwischen dem Blick des Benutzers und Linsenleistungseigenschaften. In einigen Implementierungen werden die Linsenleistungseigenschaften durch eine Okularauflösungsfunktion oder eine Modulationstransferfunktion (MTF) dargestellt. In einigen Implementierungen werden die Linsenleistungseigenschaften durch Oberflächenlinsenmodellierung bestimmt.In various implementations, the maximum value is based on a mapping between the user's gaze and lens performance characteristics. In some implementations, lens performance characteristics are represented by an ocular resolution function or a modulation transfer function (MTF). In some implementations, the lens performance properties are determined by surface lens modeling.

In verschiedenen Implementierungen wird der Maximalwert in Abhängigkeit der Blickrichtung bestimmt (da die Okularauflösungsfunktion in Abhängigkeit der Blickrichtung variiert). In verschiedenen Implementierungen basiert der Maximalwert auf Änderungen im Blick des Benutzers, wie Blickbewegung (z. B. Änderung der Blickposition). Zum Beispiel wird in einigen Implementierungen der Maximalwert der Rendering-Auflösungsfunktion verringert, wenn der Benutzer um sich sieht (weil die Auflösungswahrnehmung während der Augenbewegung abnimmt). Als weiteres Beispiel wird in einigen Implementierungen, wenn der Benutzer blinzelt, der Maximalwert der Rendering-Auflösungsfunktion verringert (da die Auflösungswahrnehmung [und die Augenverfolgungskonfidenz] abnimmt, wenn der Benutzer blinzelt).In various implementations, the maximum value is determined as a function of the viewing direction (since the ocular resolution function varies as a function of the viewing direction). In various implementations, the maximum value is based on changes in the user's gaze, such as gaze movement (e.g., change in gaze position). For example, in some implementations, the maximum value of the rendering resolution function is decreased when the user looks around (because the perception of resolution decreases during eye movement). As another example, in some implementations, when the user blinks, the maximum value of the rendering resolution function is decreased (since the resolution perception [and eye tracking confidence] decreases when the user blinks).

In verschiedenen Implementierungen wird der Maximalwert durch die Linsenleistungseigenschaften beeinflusst. Zum Beispiel wird in einigen Implementierungen der Maximalwert verringert, wenn die Linsenleistungseigenschaften anzeigen, dass die Linse eine höhere Auflösung nicht unterstützen kann. In einigen Implementierungen schließen die Linsenleistungseigenschaften eine Verformung ein, die durch eine Linse eingebracht wird.In various implementations, the maximum value is influenced by the lens performance characteristics. For example, in some implementations, the maximum value is reduced when the lens performance characteristics indicate that the lens cannot support higher resolution. In some implementations, lens performance characteristics include deformation introduced by a lens.

Das Verfahren 1100 wird in Block 1130 fortgesetzt, wobei das Rendering-Modul ein wiedergegebenes Bild auf Grundlage des SR-Inhalts und der Rendering-Auflösungsfunktion erzeugt (z. B. wie vorstehend in Bezug auf 7 beschrieben). In verschiedenen Implementierungen ist das wiedergegebene Bild ein Foveated Image, wie etwa ein Bild mit geringerer Auflösung außerhalb des Fixationsbereichs des Benutzers (FoF). In verschiedenen Implementierungen ist das wiedergegebene Bild ein verzerrtes Bild, wie etwa ein Bild, das im Vergleich zum SR-Inhalt in einen ungleichmäßigen Raum umgewandelt wird.The procedure 1100 will be in block 1130 continued, wherein the rendering module generates a rendered image based on the SR content and the rendering resolution function (e.g., as above with respect to FIG 7th described). In various implementations, the displayed image is a foveated image, such as a lower resolution image outside of the user's fixation area (FoF). In various implementations, the displayed image is a distorted image, such as an image that is converted to uneven space compared to the SR content.

12 ist eine Flussdiagrammdarstellung eines Verfahrens 1200 zum Wiedergeben eines Bildes gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 1200 von einem Rendering-Modul wie dem Rendering-Modul 210 von 2 durchgeführt. In verschiedenen Implementierungen wird das Verfahren 1200 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 1200 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren SR-Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 1200 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 1200 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 12th Figure 3 is a flow chart representation of a method 1200 for rendering an image according to some implementations. In some implementations (and as detailed below as an example) the method 1200 from a rendering module such as the rendering module 210 of 2 carried out. In different implementations the procedure 1200 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 , carried out. In different implementations the procedure 1200 performed by a device having one or more processors, non-volatile memories, and one or more SR indicators. In some implementations, the procedure 1200 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 1200 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 1200 beginnt bei Block 1210, wobei das Rendering-Modul Augenverfolgungsdaten erhält, die auf einen starren Blick eines Benutzers hinweisen (z. B. wohin ein Benutzer blickt, wie etwa eine Blickrichtung oder einen Fixationspunkt eines Benutzers). In verschiedenen Implementierungen schließen die Augenverfolgungsdaten mindestens eines von Daten, die auf einen Blickwinkel des Benutzers hinweisen, oder Daten, die auf einen Fixationspunkt des Benutzers hinweisen, ein.The procedure 1200 starts at block 1210 wherein the rendering module receives eye tracking data indicative of a user's gaze (e.g., where a user is looking, such as a user's gaze direction or a point of fixation). In various implementations, the eye tracking data includes at least one of data indicative of a point of view of the user or data indicative of a point of fixation of the user.

Das Verfahren 1200 fährt bei Block 1220 fort, wobei das Rendering-Modul Augenverfolgungsmetadaten erhält, die auf eine Eigenschaft der Augenverfolgungsmetadaten hinweisen. In verschiedenen Implementierungen werden die Augenverfolgungsmetadaten in Verbindung mit den entsprechenden Augenverfolgungsdaten erhalten. In verschiedenen Implementierungen werden die Augenverfolgungsdaten und die zugeordneten Augenverfolgungsmetadaten von einem Augenverfolger, wie Augenverfolger 260 von 2, empfangen.The procedure 1200 drives at block 1220 wherein the rendering engine receives eye tracking metadata indicative of a property of the eye tracking metadata. In various implementations, the eye tracking metadata is obtained in association with the corresponding eye tracking data. In various implementations, the eye tracking data and associated eye tracking metadata are obtained from an eye tracker, such as eye tracker 260 of 2 received.

In verschiedenen Implementierungen schließen die Augenverfolgungsmetadaten Daten ein, die auf eine Konfidenz zu den Augenverfolgungsdaten hinweisen. Zum Beispiel stellen die Augenverfolgungsmetadaten in verschiedenen Implementierungen eine Messung einer Vermutung bereit, dass die Augenverfolgungsdaten den Blick des Benutzers korrekt angeben.In various implementations, the eye tracking metadata includes data that is indicative of confidence about the eye tracking data. For example, in various implementations, the eye tracking metadata provides a measure of a presumption that the eye tracking data is correctly indicating the user's gaze.

In verschiedenen Implementierungen schließen die Daten, die auf die Konfidenz der Augenverfolgungsdaten hinweisen, Daten ein, die eine Genauigkeit der Augenverfolgungsdaten angeben. In verschiedenen Implementierungen erzeugt das Rendering-Modul die Daten, die auf die Genauigkeit der Augenverfolgungsdaten hinweisen, die auf einer Reihe von kürzlich erfassten Bildern des Auges des Benutzers, kürzlich erfassten Messungen des Blicks des Benutzers, Benutzerbiometriken und/oder anderen erhaltenen Daten basieren.In various implementations, the data indicative of the confidence of the eye tracking data includes data indicating an accuracy of the eye tracking data. In various implementations, the rendering module generates the data indicative of the accuracy of the eye tracking data based on a series of recently captured images of the user's eye, recently captured measurements of the user's gaze, user biometrics, and / or other obtained data.

In verschiedenen Implementierungen schließen die Daten, die auf die Konfidenz der Augenverfolgungsdaten hinweisen, Daten ein, die auf eine Latenz der Augenverfolgungsdaten hinweisen (z. B. eine Differenz zwischen der Zeit, zu der die Augenverfolgungsdaten erzeugt werden, und der Zeit, zu der die Augenverfolgungsdaten von dem Rendering-Modul empfangen werden). In verschiedenen Implementierungen erzeugt das Rendering-Modul die Daten, die auf die Latenz der Augenverfolgungsdaten basierend auf Zeitstempeln der Augenverfolgungsdaten hinweisen. In verschiedenen Implementierungen ist die Konfidenz der Augenverfolgungsdaten höher, wenn die Latenz geringer ist, als wenn die Latenz größer ist.In various implementations, the data indicative of eye tracking data confidence includes data indicative of eye tracking data latency (e.g., a Difference between the time the eye tracking data is generated and the time the eye tracking data is received by the rendering module). In various implementations, the rendering module generates the data indicative of the latency of the eye tracking data based on time stamps of the eye tracking data. In various implementations, the confidence of the eye tracking data is higher when the latency is less than when the latency is greater.

In verschiedenen Implementierungen schließen die Augenverfolgungsdaten Daten ein, die auf eine Vorhersage des Blicks des Benutzers hinweisen, und die Daten, die auf eine Konfidenz der Augenverfolgungsdaten hinweisen, schließen Daten ein, die auf eine Konfidenz der Vorhersage hinweisen. In verschiedenen Implementierungen basieren die Daten, die auf eine Vorhersage des Blicks des Benutzers hinweisen, auf vergangenen Messungen des Blicks des Benutzers auf Grundlage von vergangenen aufgenommenen Bildern. In verschiedenen Implementierungen basiert die Vorhersage des Blicks des Benutzers auf der Klassifizierung der vergangenen Bewegung des Blicks des Benutzers als kontinuierliche Fixation, reibungslose Verfolgung oder Sakkade. In verschiedenen Implementierungen basiert die Konfidenz der Vorhersage auf dieser Klassifizierung. Insbesondere ist in verschiedenen Implementierungen die Konfidenz der Vorhersage höher, wenn eine vergangene Bewegung als kontinuierliche Fixation oder reibungslose Verfolgung klassifiziert wird, als wenn die vergangene Bewegung als Sakkade klassifiziert wird.In various implementations, the eye tracking data includes data that is indicative of a prediction of the user's gaze, and the data that is indicative of confidence in the eye tracking data includes data that is indicative of confidence in the prediction. In various implementations, the data indicative of a prediction of the user's gaze is based on past measurements of the user's gaze based on past captured images. In various implementations, the prediction of the user's gaze is based on classifying the past movement of the user's gaze as continuous fixation, smooth tracking, or saccade. In various implementations, the confidence of the prediction is based on this classification. In particular, in various implementations, the confidence of the prediction is higher when a past movement is classified as continuous fixation or smooth tracking than when the past movement is classified as a saccade.

In verschiedenen Implementierungen schließen die Augenverfolgungsmetadaten Daten ein, die auf eine oder mehrere Biometriken des Benutzers hinweisen, und insbesondere Biometriken, die Augenverfolgungsmetadaten oder deren Konfidenz beeinflussen. In various implementations, the eye tracking metadata includes data indicative of one or more biometrics of the user, and in particular biometrics that affect eye tracking metadata or its confidence.

Insbesondere schließen in verschiedenen Implementierungen die Biometriken des Benutzers eines oder mehrere von Augenanatomie, Ethnizität/Physionometrie, Augenfarbe, Alter, Sehhilfen (z. B. Korrekturlinsen), Make-up (z. B. Eyeliner oder Mascara), medizinischem Zustand, Historie der Blickvariation, Eingabepräferenzen oder -kalibrierung, Kopfhörerposition/-ausrichtung, Pupillenerweiterung/-zentrierung und/oder Augenlidposition ein.In particular, in various implementations, the user's biometrics include one or more of eye anatomy, ethnicity / physionometry, eye color, age, visual aids (e.g. corrective lenses), makeup (e.g. eyeliner or mascara), medical condition, history of the Gaze variation, input preferences or calibration, headphone position / orientation, pupil dilation / centering and / or eyelid position.

In verschiedenen Implementierungen schließen die Augenverfolgungsmetadaten Daten ein, die auf eine oder mehrere Umgebungsbedingungen einer Umgebung des Benutzers hinweisen, in der die Augenverfolgungsdaten erzeugt wurden. Insbesondere schließen in verschiedenen Implementierungen die Umgebungsbedingungen eines oder mehrere von Vibration, Umgebungstemperatur, IR-Lichteinfall oder IR-Lichtintensität ein.In various implementations, the eye tracking metadata includes data indicative of one or more environmental conditions of the user's environment in which the eye tracking data was generated. In particular, in various implementations, the environmental conditions include one or more of vibration, ambient temperature, IR light incidence, or IR light intensity.

Das Verfahren 1200 fährt bei Block 1230 fort, wobei das Rendering-Modul eine Rendering-Auflösungsfunktion auf Grundlage der Augenverfolgungsdaten und der Augenverfolgungsmetadaten erzeugt. In verschiedenen Implementierungen erzeugt das Rendering-Modul die Rendering-Auflösungsfunktion mit einem Peak-Maximum, das auf den Augenverfolgungsdaten basiert (z. B. ist die Auflösung dort am höchsten, wohin der Benutzer blickt). In verschiedenen Implementierungen erzeugt das Rendering-Modul die Rendering-Auflösungsfunktion mit einer Peak-Breite, die auf den Augenverfolgungsmetadaten basiert (z. B. mit einem breiteren Peak, wenn die Augenverfolgungsmetadaten eine geringere Konfidenz in die Korrektheit der Augenverfolgungsdaten anzeigen).The procedure 1200 drives at block 1230 wherein the rendering module generates a rendering resolution function based on the eye tracking data and the eye tracking metadata. In various implementations, the rendering module generates the rendering resolution function with a peak maximum based on the eye tracking data (e.g., the resolution is highest where the user is looking). In various implementations, the rendering engine produces the rendering resolution function with a peak width based on the eye tracking metadata (e.g., with a wider peak when the eye tracking metadata indicates less confidence in the correctness of the eye tracking data).

Das Verfahren 1200 fährt bei Block 1240 fort, wobei das Rendering-Modul ein wiedergegebenes Bild auf Grundlage des SR-Inhalts und der Rendering-Auflösungsfunktion erzeugt (z. B. wie vorstehend in Bezug auf 7 beschrieben). In verschiedenen Implementierungen ist das wiedergegebene Bild ein Foveated Image, wie etwa ein Bild mit geringerer Auflösung außerhalb des Fixationsbereichs des Benutzers (FoF). In verschiedenen Implementierungen ist das wiedergegebene Bild ein verzerrtes Bild, wie etwa ein Bild, das im Vergleich zum SR-Inhalt in einen ungleichmäßigen Raum umgewandelt wird.The procedure 1200 drives at block 1240 wherein the rendering module generates a rendered image based on the SR content and the rendering resolution function (e.g., as above with respect to FIG 7th described). In various implementations, the displayed image is a foveated image, such as a lower resolution image outside of the user's fixation area (FoF). In various implementations, the displayed image is a distorted image, such as an image that is converted to uneven space compared to the SR content.

13A veranschaulicht eine Rendering-Auflösungsfunktion 1310, die von dem Rendering-Modul verwendet werden kann, wenn eine dynamische Foveation durchgeführt wird, wenn die Augenverfolgungsdaten angeben, dass der Benutzer in einem Winkel (θg) von der Mitte des Anzeigefelds weg blickt, und wenn die Augenverfolgungsmetadaten eine erste Konfidenz angeben, die zu einer ersten Peak-Breite 1311 führt. 13B veranschaulicht eine Rendering-Auflösungsfunktion 1320, die von dem Rendering-Modul verwendet werden kann, wenn eine dynamische Foveation durchgeführt wird, wenn die Augenverfolgungsdaten angeben, dass der Benutzer unter dem Winkel (θg) von der Mitte des Anzeigefelds weg blickt, und wenn die Augenverfolgungsmetadaten eine zweite Konfidenz angeben, die kleiner als die erste Konfidenz ist, was zu einer zweiten Peak-Breite 1321 führt, die größer als die erste Peak-Breite 1311 ist. 13A illustrates a rendering resolution function 1310 that can be used by the rendering engine when performing dynamic foveation when the eye tracking data indicates that the user is looking at an angle (θ g ) from the center of the display panel and when the eye tracking metadata indicates a first confidence leading to a first peak width 1311 leads. 13B illustrates a rendering resolution function 1320 that can be used by the rendering engine when performing dynamic foveation when the eye tracking data indicates that the user is looking at the angle (θ g ) from the center of the display and when the eye tracking metadata indicates a second confidence, which is smaller than the first confidence, resulting in a second peak width 1321 leads that are greater than the first peak width 1311 is.

In verschiedenen Implementierungen erfasst das Rendering-Modul den Verlust eines Augenverfolgungsstroms, der die Augenverfolgungsmetadaten und die Augenverfolgungsdaten einschließt. Als Reaktion darauf erzeugt das Rendering-Modul eine zweite Rendering-Auflösungsfunktion basierend auf dem Erkennen des Verlusts des Augenverfolgungsstroms und erzeugt ein zweites wiedergegebenes Bild auf Grundlage des SR-Inhalts und der zweiten Rendering-Auflösungsfunktion.In various implementations, the rendering module detects the loss of an eye tracking stream, which includes the eye tracking metadata and the eye tracking data. In response, the rendering module generates a second rendering resolution function based on the detection of the loss of the eye tracking current and generates a second rendered image based on the SR content and the second rendering resolution function.

In verschiedenen Implementierungen schließt das Erfassen des Verlusts des Augenverfolgungsstroms das Bestimmen ein, dass der Blick des Benutzers zu einem Zeitpunkt des Verlusts des Augenverfolgungsstroms statisch war. Dementsprechend schließt das Erzeugen der zweiten Rendering-Auflösungsfunktion in verschiedenen Implementierungen das Erzeugen der zweiten Rendering-Auflösungsfunktion mit einem Peak-Maximum an derselben Stelle wie ein Peak-Maximum der Rendering-Auflösungsfunktion und mit einer Peak-Breite, die größer als eine Peak-Breite der Rendering-Auflösungsfunktion ist, ein. Somit bleibt in verschiedenen Implementierungen als Reaktion auf das Erfassen des Verlusts eines Augenverfolgungsstroms die Rendering-Auflösungsfunktion an der gleichen Stelle, jedoch nimmt die Größe des Fixationsfelds zu.In various implementations, detecting the loss of eye tracking current includes determining that the user's gaze was static at a time when the eye tracking current was lost. Accordingly, creating the second rendering resolution function in various implementations includes creating the second rendering resolution function with a peak maximum in the same location as a peak maximum of the rendering resolution function and with a peak width greater than a peak width the rendering resolution function is a. Thus, in various implementations, in response to detecting the loss of an eye tracking current, the rendering resolution function remains in the same place, but the size of the fixation field increases.

In verschiedenen Implementierungen schließt das Erfassen des Verlusts des Augenverfolgungsstroms das Bestimmen ein, dass sich der Blick des Benutzers zu einem Zeitpunkt des Verlusts des Augenverfolgungsstroms bewegte. Dementsprechend schließt das Erzeugen der zweiten Rendering-Auflösungsfunktion in verschiedenen Implementierungen das Erzeugen der zweiten Rendering-Auflösungsfunktion mit einem Peak-Maximum an einer Stelle ein, die im Vergleich zu einem Peak-Maximum der Rendering-Auflösungsfunktion zur Mitte hin verschoben ist, und mit einer Peak-Breite, die größer als eine Peak-Breite der Rendering-Auflösungsfunktion ist. Somit bewegt sich in verschiedenen Implementierungen als Reaktion auf das Erfassen des Verlusts eines Augenverfolgungsstroms die Rendering-Auflösungsfunktion zur Mitte des Anzeigefelds, und die Größe des Fixationsfelds nimmt zu.In various implementations, detecting the loss of eye tracking current includes determining that the user's gaze was moving at a time of the loss of eye tracking current. Accordingly, generating the second rendering resolution function in various implementations includes generating the second rendering resolution function with a peak maximum at a location that is centered relative to a peak maximum of the rendering resolution function, and with a Peak width that is greater than a peak width of the rendering resolution function. Thus, in various implementations, in response to detecting the loss of an eye tracking current, the rendering resolution function moves to the center of the display panel and the size of the fixation panel increases.

In verschiedenen Implementierungen schließt das Erfassen des Verlusts des Augenverfolgungsstroms das Bestimmen ein, dass sich der Blick des Benutzers zu einem Zeitpunkt des Verlusts des Augenverfolgungsstroms in eine Richtung bewegt hat. Dementsprechend schließt das Erzeugen der zweiten Rendering-Auflösungsfunktion in verschiedenen Implementierungen das Erzeugen der zweiten Rendering-Auflösungsfunktion mit einem Peak-Maximum an einer Stelle ein, die im Vergleich mit der Richtung zu einem Peak-Maximum der Rendering-Auflösungsfunktion verschoben ist, und mit einer Peak-Breite, die größer als eine Peak-Breite der Rendering-Auflösungsfunktion ist. Somit bewegt sich in verschiedenen Implementierungen als Reaktion auf das Erfassen des Verlusts eines Augenverfolgungsstroms die Rendering-Auflösungsfunktion zu einer vorhergesagten Stelle und die Größe des Fixationsfelds nimmt zu.In various implementations, detecting the loss of eye tracking current includes determining that the user's gaze was moving in one direction at a time when the eye tracking current was lost. Accordingly, generating the second rendering resolution function in various implementations includes generating the second rendering resolution function with a peak maximum at a location that is shifted in comparison with the direction towards a peak maximum of the rendering resolution function and with a Peak width that is greater than a peak width of the rendering resolution function. Thus, in various implementations, in response to detecting the loss of an eye tracking current, the rendering resolution function moves to a predicted location and the size of the field of fixation increases.

14 ist eine Flussdiagrammdarstellung eines Verfahrens 1400 zum Wiedergeben eines Bildes gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 1400 von einem Rendering-Modul, wie dem Rendering-Modul 210 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 1400 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 1400 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 1400 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 1400 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 14th Figure 3 is a flow chart representation of a method 1400 for rendering an image according to some implementations. In some implementations (and as detailed below as an example) the method 1400 from a rendering module, such as the rendering module 210 of 2 , carried out. In different implementations the procedure 1400 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 , carried out. In different implementations the procedure 1400 performed by a device having one or more processors, non-volatile memories, and one or more displays. In some implementations, the procedure 1400 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 1400 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 1400 beginnt bei Block 1410, wobei das Rendering-Modul Augenverfolgungsdaten erhält, die einen Blick eines Benutzers anzeigen (z. B. wohin ein Benutzer blickt, wie eine Blickrichtung oder einen Fixationspunkt eines Benutzers). In verschiedenen Implementierungen schließen die Augenverfolgungsdaten mindestens eines von Daten, die auf einen Blickwinkel des Benutzers hinweisen, oder Daten, die auf einen Fixationspunkt des Benutzers hinweisen, ein.The procedure 1400 starts at block 1410 wherein the rendering module receives eye tracking data indicating a user's gaze (e.g., where a user is looking, such as a user's gaze direction or a point of fixation). In various implementations, the eye tracking data includes at least one of data indicative of a point of view of the user or data indicative of a point of fixation of the user.

Das Verfahren 1400 fährt bei Block 1420 fort, wobei das Rendering-Modul einen SR-Inhalt erhält, der wiedergegeben werden soll. In verschiedenen Implementierungen kann der SR-Inhalt Definitionen geometrischer Formen virtueller Objekte, Farben und/oder Texturen virtueller Objekte, Bilder (wie ein Durchsichtsbild der Szene) oder andere Informationen einschließen, die einen Inhalt beschreiben, der in einem wiedergegebenen Bild dargestellt werden soll.The procedure 1400 drives at block 1420 continues, with the rendering module receiving SR content to be played. In various implementations, the SR content can include definitions of virtual object geometric shapes, virtual object colors and / or textures, images (such as a see-through image of the scene), or other information describing content to be represented in a displayed image.

Das Verfahren 1400 fährt bei Block 1430 fort, wobei das Rendering-Modul eine Rendering-Auflösungsfunktion auf Grundlage der Augenverfolgungsdaten und des SR-Inhalts erzeugt. In verschiedenen Implementierungen erzeugt das Rendering-Modul die Rendering-Auflösungsfunktion mit einem Peak-Maximum, das auf den Augenverfolgungsdaten basiert (z. B. ist die Auflösung dort am höchsten, wohin der Benutzer blickt). In verschiedenen Implementierungen erzeugt das Rendering-Modul die Rendering-Auflösungsfunktion auf Grundlage der Augenverfolgungsdaten und passt die Rendering-Auflösungsfunktion auf Grundlage des SR-Inhalts an. Zum Beispiel erhöht das Rendering-Modul in einigen Implementierungen die Rendering-Auflösungsfunktion in einem oder mehreren Importflächen, wie einem Spielziel oder Inhalt, an den sich der Mensch besonders anpassen kann (z. B. ein Inhalt, auf den Menschen wahrscheinlich achten), wie ein Gesicht oder ein hochauflösendes Objekt. Als weiteres Beispiel erhöht das Rendering-Modul in einigen Implementierungen die Rendering-Auflösungsfunktion in einem oder mehreren Bewegungsbereichen (z. B. von Objekten des SR-Inhalts).The procedure 1400 drives at block 1430 wherein the rendering module generates a rendering resolution function based on the eye tracking data and the SR content. In various implementations, the rendering module generates the rendering resolution function with a peak maximum based on the eye tracking data (e.g., the resolution is highest where the user is looking). In various implementations, the rendering module generates the rendering resolution function based on the eye tracking data and adjusts the rendering resolution function based on the SR content. For example, in some implementations, the rendering module increases the rendering resolution function in one or more import surfaces, such as a game objective or content that humans can particularly adapt to (e.g., content that humans are likely to pay attention to), such as a face or a high resolution object. As another example, in some implementations the rendering module increases the rendering resolution function in one or more areas of motion (e.g., objects of the SR content).

In verschiedenen Implementierungen erzeugt das Rendering-Modul die Rendering-Auflösungsfunktion auf Grundlage einer Helligkeit des SR-Inhalts. Zum Beispiel wird in einigen Implementierungen, da die periphere Sicht lichtempfindlicher als die zentrale Sicht ist, die periphere Auflösung bei dunkleren Bedingungen (im Vergleich zu helleren Bedingungen) erhöht. In verschiedenen Implementierungen schließt das Erhöhen der peripheren Auflösung das Erhöhen der Peak-Breite der Rendering-Auflösungsfunktion und/oder das Erhöhen der abfallenden Abschnitte der Rendering-Auflösungsfunktion ein.In various implementations, the rendering module generates the rendering resolution function based on a brightness of the SR content. For example, in some implementations, since the peripheral vision is more photosensitive than the central vision, the peripheral resolution is increased in darker conditions (compared to lighter conditions). In various implementations, increasing the peripheral resolution includes increasing the peak width of the rendering resolution function and / or increasing the sloping portions of the rendering resolution function.

In verschiedenen Implementierungen erzeugt das Rendering-Modul die Rendering-Auflösungsfunktion auf Grundlage einer Farbe des SR-Inhalts. Da zum Beispiel in einigen Implementierungen die Empfindlichkeit gegenüber Rot-Grün-Farbvariationen zum Rand hin steiler abnimmt als die Empfindlichkeit gegenüber Luminanz- oder Blau-Gelb-Farben, wird die Auflösung am Rand verringert, wenn der SR-Inhalt hauptsächlich Rot-Grün im Vergleich zu Blau-Gelb ist. In verschiedenen Implementierungen schließt das Verringern der peripheren Auflösung das Verringern der Peak-Breite der Rendering-Auflösungsfunktion und/oder das Verringern der abfallenden Abschnitte der Rendering-Auflösungsfunktion ein.In various implementations, the rendering module generates the rendering resolution function based on a color of the SR content. For example, since in some implementations the sensitivity to red-green color variations decreases more steeply towards the edge than the sensitivity to luminance or blue-yellow colors, the resolution at the edge is reduced when the SR content is mainly red-green compared is too blue-yellow. In various implementations, decreasing the peripheral resolution includes decreasing the peak width of the rendering resolution function and / or decreasing the sloping portions of the rendering resolution function.

In verschiedenen Implementierungen schließt das Erzeugen der Rendering-Auflösungsfunktion auf Grundlage des SR-Inhalts (z. B. einer Farbe des SR-Inhalts) das Erzeugen unterschiedlicher Rendering-Auflösungsfunktionen für verschiedene Farbkanäle (z. B. drei unterschiedliche Rendering-Auflösungsfunktionen für drei unterschiedliche Farbkanäle wie Rot, Grün und Blau) ein. Insbesondere erzeugt das Rendering-Modul in verschiedenen Implementierungen eine erste Rendering-Auflösungsfunktion für einen ersten Farbkanal und eine zweite Rendering-Auflösungsfunktion für einen zweiten Farbkanal, der sich von der ersten Rendering-Auflösungsfunktion für den ersten Farbkanal unterscheidet. Ferner erzeugt das Rendering-Modul beim Erzeugen des wiedergegebenen Bildes (wie nachstehend beschrieben) ein erstes Farbkanalbild des wiedergegebenen Bildes auf Grundlage der ersten Rendering-Auflösungsfunktion und ein zweites Farbkanalbild des wiedergegebenen Bildes auf Grundlage der zweiten Rendering-Auflösungsfunktion.In various implementations, generating the rendering resolution function based on the SR content (e.g. a color of the SR content) includes generating different rendering resolution functions for different color channels (e.g. three different rendering resolution functions for three different ones Color channels such as red, green and blue). In particular, in various implementations, the rendering module generates a first rendering resolution function for a first color channel and a second rendering resolution function for a second color channel that differs from the first rendering resolution function for the first color channel. Furthermore, when generating the reproduced image (as described below), the rendering module generates a first color channel image of the reproduced image based on the first rendering resolution function and a second color channel image of the reproduced image based on the second rendering resolution function.

In verschiedenen Implementierungen erzeugt das Rendering-Modul die Rendering-Auflösungsfunktion auf Grundlage einer Komplexität des SR-Inhalts. Zum Beispiel erhöht das Rendering-Modul in verschiedenen Implementierungen die Rendering-Auflösungsfunktion in Bereichen mit hochauflösenden räumlichen Änderungen und/oder schnellen räumlichen Änderungen.In various implementations, the rendering module generates the rendering resolution function based on a complexity of the SR content. For example, in various implementations, the rendering module increases the rendering resolution capability in areas with high resolution spatial changes and / or rapid spatial changes.

Das Verfahren 1400 fährt bei Block 1440 fort, wobei das Rendering-Modul ein wiedergegebenes Bild auf Grundlage des SR-Inhalts und der Rendering-Auflösungsfunktion erzeugt (z. B. wie vorstehend in Bezug auf 7 beschrieben). In verschiedenen Implementierungen ist das wiedergegebene Bild ein Foveated Image, wie etwa ein Bild mit geringerer Auflösung außerhalb des Fixationsbereichs des Benutzers (FoF). In verschiedenen Implementierungen ist das wiedergegebene Bild ein verzerrtes Bild, wie etwa ein Bild, das im Vergleich zum SR-Inhalt in einen ungleichmäßigen Raum umgewandelt wird.The procedure 1400 drives at block 1440 wherein the rendering module generates a rendered image based on the SR content and the rendering resolution function (e.g., as above with respect to FIG 7th described). In various implementations, the displayed image is a foveated image, such as a lower resolution image outside of the user's fixation area (FoF). In various implementations, the displayed image is a distorted image, such as an image that is converted to uneven space compared to the SR content.

Wie vorstehend in Bezug auf 2 beschrieben, stellt das Rendering-Modul 210 dem Transportmodul 220 ein wiedergegebenes Bild bereit. Das Transportmodul 220 schließt ein Komprimierungsmodul 222, welches das wiedergegebene Bild komprimiert (was zu einem komprimierten Bild führt), einen Kommunikationskanal 224, der das komprimierte Bild trägt, und ein Dekomprimierungsmodul 226 ein, welches das komprimierte Bild dekomprimiert (was zu einem dekomprimierten Bild führt).As above in relation to 2 described, represents the rendering module 210 the transport module 220 a reproduced image ready. The transport module 220 includes a compression module 222 which compresses the reproduced picture (resulting in a compressed picture), a communication channel 224 carrying the compressed image and a decompression module 226 one that decompresses the compressed image (resulting in a decompressed image).

In verschiedenen Implementierungen ist der Kommunikationskanal 224 ein drahtgebundener oder drahtloser Kommunikationskanal (z. B. Bluetooth, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x usw.). Zum Beispiel koppelt in verschiedenen Implementierungen der Kommunikationskanal 224 eine erste Vorrichtung (z. B. die Steuerung 110 von 1) einschließlich des Rendering-Moduls 210 und des Komprimierungsmoduls 222 mit einer zweiten Vorrichtung (z. B. die HMD 120 von 1) einschließlich des Dekomprimierungsmoduls 226. In verschiedenen Implementierungen koppelt der Kommunikationskanal zwei Verarbeitungseinheiten einer einzelnen Vorrichtung, z. B. eine erste Verarbeitungseinheit einschließlich des Komprimierungsmoduls 222, und eine zweite Verarbeitungseinheit einschließlich des Dekomprimierungsmoduls 226. In verschiedenen Implementierungen koppelt der Kommunikationskanal zwei Verarbeitungsmodule einer einzigen Verarbeitungseinheit, z. B. das Komprimierungsmodul 222 und das Dekomprimierungsmodul 226.In various implementations, the communication channel is 224 a wired or wireless communication channel (e.g. Bluetooth, IEEE 802.11x , IEEE 802.16x , IEEE 802.3x etc.). For example, in various implementations, the communication channel couples 224 a first device (e.g. the controller 110 of 1 ) including the rendering module 210 and the compression module 222 with a second device (e.g. the HMD 120 of 1 ) including the decompression module 226 . In various implementations, the communication channel couples two processing units of a single device, e.g. B. a first processing unit including the compression module 222 , and a second processing unit including the decompression module 226 . In various implementations, the communication channel couples two processing modules of a single processing unit, e.g. B. the compression module 222 and the decompression module 226 .

In verschiedenen Implementierungen empfängt das Komprimierungsmodul 222 vom Rendering-Modul 210 ein Foveated Image mit unterschiedlichen Auflösungen an unterschiedlichen Teilen des Bildes. In verschiedenen Implementierungen führt das Komprimieren eines M×N Foveated Image unter Verwendung verschiedener Komprimierungstechniken zu weniger Bits als das Komprimieren eines M×N Unfoveated Image.In various implementations, the compression module receives 222 from the rendering module 210 a foveated image with different resolutions on different parts of the image. In various implementations, compressing an M × N favored image using different compression techniques results in fewer bits than compressing an M × N unfoveated image.

In verschiedenen Implementierungen empfängt das Komprimierungsmodul 222 von dem Rendering-Modul 210 ein verzerrtes Bild mit einer Vielzahl von Pixeln an jeweiligen Stellen, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind. Die Vielzahl von Pixeln ist jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in einem Anzeigeraum anzeigen.In various implementations, the compression module receives 222 from the rendering module 210 a distorted image having a plurality of pixels at respective locations evenly spaced in a grid pattern in a distorted space. The plurality of pixels are each associated with a plurality of respective pixel values and a plurality of respective scaling factors that display a plurality of respective resolutions at a plurality of respective locations in a display space.

In verschiedenen Implementierungen empfängt das Komprimierungsmodul 222 die Skalierungsfaktoren vom Rendering-Modul 210. In verschiedenen Implementierungen empfängt das Komprimierungsmodul 222 einen einzelnen Skalierungsfaktor für jedes Pixel. In verschiedenen Implementierungen empfängt das Komprimierungsmodul 222 einen horizontalen Skalierungsfaktor und eine vertikale Skalierung für jedes Pixel. In verschiedenen Implementierungen empfängt das Komprimierungsmodul 222 einen einzelnen Skalierungsfaktor für jede Kachel von Pixeln (z. B. jeden 32x32-Block von Pixeln). In verschiedenen Implementierungen empfängt das Komprimierungsmodul 222 einen horizontalen Skalierungsfaktor und einen vertikalen Skalierungsfaktor für jede Kachel von Pixeln (z. B. jeden 32x32-Block von Pixeln).In various implementations, the compression module receives 222 the scaling factors from the rendering module 210 . In various implementations, the compression module receives 222 a single scale factor for each pixel. In various implementations, the compression module receives 222 a horizontal scale factor and a vertical scale for each pixel. In various implementations, the compression module receives 222 a single scaling factor for each tile of pixels (e.g., every 32x32 block of pixels). In various implementations, the compression module receives 222 a horizontal scale factor and a vertical scale factor for each tile of pixels (e.g., each 32x32 block of pixels).

Da das verzerrte Bild ein Bild (z. B. eine Matrix von Pixelwerten) ist, können verschiedene herkömmliche Kompressionstechniken auf das Bild angewendet werden. In verschiedenen Implementierungen verwendet das Komprimierungsmodul 222 jedoch die Skalierungsfaktoren während der Komprimierung und/oder Übertragung des verzerrten Bildes, um die Bandbreite des Kommunikationskanals 224, der beim Transportieren des verzerrten Bildes verwendet wird, weiter zu verringern.Since the warped image is an image (e.g., an array of pixel values), various conventional compression techniques can be applied to the image. The compression module is used in various implementations 222 however, the scaling factors during the compression and / or transmission of the distorted image to the bandwidth of the communication channel 224 used in transporting the distorted image.

15 ist eine Flussdiagrammdarstellung eines Verfahrens 1500 zum Übertragen eines Bildes gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 1500 von einem Transportmodul (oder einem Teil davon) durchgeführt, wie beispielsweise dem Transportmodul 220 oder dem Kompressionsmodul 222 von 2. In verschiedenen Implementierungen wird das Verfahren 1500 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 1500 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren SR-Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 1500 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 1500 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 15th Figure 3 is a flow chart representation of a method 1500 for transmitting an image according to some implementations. In some implementations (and as detailed below as an example) the method 1500 performed by a transport module (or a part thereof), such as the transport module 220 or the compression module 222 of 2 . In different implementations the procedure 1500 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 , carried out. In different implementations the procedure 1500 performed by a device having one or more processors, non-volatile memories, and one or more SR indicators. In some implementations, the procedure 1500 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 1500 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 1500 bei Block 1510 beginnt, sobald das Transportmodul ein verzerrtes Bild empfängt, das einen Inhalt simulierter Realität (SR) darstellt, der in einem Anzeigeraum angezeigt werden soll, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in dem Anzeigeraum anzeigen.The procedure 1500 at block 1510 begins as soon as the transport module receives a distorted image representing simulated reality (SR) content to be displayed in a display space, the distorted image having a plurality of pixels at respective locations evenly in a grid pattern in a distorted space are spaced apart, the plurality of pixels each being associated with a plurality of respective pixel values and a plurality of respective scale factors indicative of a plurality of respective resolutions at a plurality of respective locations in the display space.

In verschiedenen Implementierungen definiert die Vielzahl von jeweiligen Skalierungsfaktoren eine Abbildung zwischen dem verzerrten Raum und dem Anzeigeraum. Zum Beispiel werden in verschiedenen Implementierungen unterschiedliche Teile des SR-Inhalts, die ungleichmäßig beabstandeten Regionen in dem Anzeigeraum entsprechen, durch gleichmäßig beabstandete Bereiche in dem verzerrten Raum dargestellt.In various implementations, the plurality of respective scaling factors defines a mapping between the distorted space and the display space. For example, in different implementations, different portions of the SR content that correspond to unevenly spaced regions in the display space are represented by evenly spaced areas in the distorted space.

In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Pixelwert zugeordnet. In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder einem Satz von horizontalem Skalierungsfaktor und vertikalem Skalierungsfaktor) zugeordnet. In verschiedenen Implementierungen ist jede einer Vielzahl von Kacheln der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder Satz von horizontalem Skalierungsfaktor und vertikalem Skalierungsfaktor) zugeordnet. Dementsprechend ist eine Vielzahl von Pixeln (z. B. jene einer einzelnen Kachel) einem einzelnen empfangenen Skalierungsfaktor (oder Satz von horizontalem Skalierungsfaktor und vertikalem Skalierungsfaktor) zugeordnet.In various implementations, each of the plurality of pixels is associated with a separately received pixel value. In various implementations, each of the plurality of pixels is each assigned to a separately received scaling factor (or a set of horizontal scaling factor and vertical scaling factor). In various implementations, each of a plurality of tiles of the plurality of pixels is each associated with a separately received scale factor (or set of horizontal scale factor and vertical scale factor). Accordingly, a plurality of pixels (e.g., those of a single tile) are assigned a single received scale factor (or set of horizontal scale factor and vertical scale factor).

Somit schließt in verschiedenen Implementierungen das verzerrte Bild eine Vielzahl von Kacheln an jeweiligen Stellen ein, die gleichmäßig in einem Gittermuster in dem verzerrten Raum beabstandet sind, wobei jede der Vielzahl von Kacheln einem jeweiligen einen oder mehreren Skalierungsfaktoren zugeordnet ist. In verschiedenen Implementierungen schließen auch einer oder mehrere der Vielzahl von jeweiligen Skalierungsfaktoren einen horizontalen Skalierungsfaktor und einen vertikalen Skalierungsfaktor ein.Thus, in various implementations, the warped image includes a plurality of tiles at respective locations evenly spaced in a grid pattern in the warped space, each of the plurality of tiles being associated with a respective one or more scale factors. In various implementations, one or more of the plurality of respective scale factors also include a horizontal scale factor and a vertical scale factor.

Das Verfahren 1500 fährt bei Block 1520 fort, wobei das Transportmodul das verzerrte Bild über einen oder mehrere Kanäle überträgt, so dass mindestens eine Bandbreite des einen oder der mehreren Kanäle, die durch die Übertragung jeweiliger Abschnitte des verzerrten Bildes verwendet werden, auf einem oder mehreren Skalierungsfaktoren der Vielzahl von Skalierungsfaktoren basiert, die den jeweiligen Abschnitten des verzerrten Bildes entsprechen.The procedure 1500 drives at block 1520 continued, wherein the transport module transmits the warped image over one or more channels such that at least a bandwidth of the one or more channels used by transmitting respective portions of the warped image is based on one or more of the plurality of scale factors, corresponding to the respective sections of the distorted image.

In verschiedenen Implementierungen wird die mindestens eine Bandbreite des einen oder der mehreren Kanäle, die durch die Übertragung der jeweiligen Abschnitte verwendet werden, durch Komprimieren von Abschnitten des verzerrten Bildes auf Grundlage der Skalierungsfaktoren geändert. Ein stärker komprimierter Abschnitt nutzt weniger Bandbreite des Kanals als ein schwächer komprimierter Abschnitt.In various implementations, the at least one bandwidth of the one or more channels used by the transmission of the respective portions is changed by compressing portions of the warped image based on the scaling factors. A more compressed section uses less bandwidth of the channel than a less compressed section.

Insbesondere komprimiert das Transportmodul in verschiedenen Implementierungen die jeweiligen Abschnitte des verzerrten Bildes auf Grundlage des einen oder der mehreren Skalierungsfaktoren der Vielzahl von Skalierungsfaktoren, die den jeweiligen Abschnitten des verzerrten Bildes entsprechen. Zum Beispiel komprimiert das Transportmodul in verschiedenen Implementierungen mehr Abschnitte niedriger Auflösung als Abschnitte hoher Auflösung (z. B. durch Zuweisen von weniger Bits auf einer MAC-Schicht und/oder Einstellen eines Quantisierungsparameters auf einen niedrigeren Wert [z. B. mehr Quantisierung]).In particular, in various implementations, the transport module compresses the respective portions of the warped image based on the one or more scale factors of the plurality of scale factors that correspond to the respective portions of the warped image. For example, in various implementations, the transport module compresses more low resolution sections than high resolution sections (e.g., by assigning fewer bits on a MAC layer and / or setting a quantization parameter to a lower value [e.g. more quantization]) .

In verschiedenen Implementierungen wird die mindestens eine Bandbreite des einen oder der mehreren Kanäle, die durch die Übertragung der jeweiligen Abschnitte verwendet werden, durch Fehler korrigierende Codierabschnitte des verzerrten Bildes auf Grundlage der Skalierungsfaktoren geändert. Ein Abschnitt, der mit einem schwächeren Fehlerkorrekturcode Fehler korrigierend codiert wurde, verwendet weniger Bandbreite als ein Abschnitt, der mit einem stärkeren Fehlerkorrekturcode Fehler korrigierend codiert wurde.In various implementations, the at least one bandwidth of the one or more channels used by the transmission of the respective sections is changed by error correcting coding sections of the distorted image based on the scaling factors. A section that has been error corrected encoded with a weaker error correcting code uses less bandwidth than a section that has been error corrected encoded with a stronger error correcting code.

Insbesondere codiert das Fehler korrigierende Transportmodul in verschiedenen Implementierungen die jeweiligen Abschnitte des verzerrten Bildes auf Grundlage des einen oder der mehreren Skalierungsfaktoren der Vielzahl von Skalierungsfaktoren, die den jeweiligen Abschnitten des verzerrten Bildes entsprechen. Zum Beispiel verwendet das Transportmodul in verschiedenen Implementierungen einen stärkeren Fehlerkorrekturcode für hochauflösende Abschnitte als für niedrigauflösende Abschnitte (z. B. fügt von mehr Redundanz auf der PHY-Schicht hinzu).In particular, in various implementations, the error correcting transport module encodes the respective portions of the warped image based on the one or more scale factors of the plurality of scale factors corresponding to the respective portions of the warped image. For example, in various implementations, the transport module uses a stronger error correction code for high resolution sections than for low resolution sections (e.g., one adds more redundancy on the PHY layer).

In verschiedenen Implementierungen wird die mindestens eine Bandbreite des einen oder der mehreren Kanäle, die durch die Übertragung der jeweiligen Abschnitte verwendet werden, durch Ändern einer Wahrscheinlichkeit der Übertragung (oder neuerlichen Übertragung) von Abschnitten des verzerrten Bildes auf Grundlage der Skalierungsfaktoren geändert. Wenn die Wahrscheinlichkeit der Übertragung (oder neuerlichen Übertragung) eines Abschnitts geringer ist, ist die Bandbreite, die durch die Übertragung des Abschnitts verwendet wird, geringer.In various implementations, the at least one bandwidth of the one or more channels used by the transmission of the respective portions is changed by changing a probability of transmission (or retransmission) of portions of the distorted image based on the scaling factors. When the likelihood of transmission (or retransmission) of a section is lower, the bandwidth used by the transmission of the section is less.

Insbesondere basiert in verschiedenen Implementierungen eine Wahrscheinlichkeit der Übertragung der jeweiligen Abschnitte des verzerrten Bildes auf dem einen oder den mehreren Skalierungsfaktoren der Vielzahl von Skalierungsfaktoren, die den jeweiligen Abschnitten des verzerrten Bildes entsprechen. In verschiedenen Implementierungen ist die Wahrscheinlichkeit der Übertragung eine Wahrscheinlichkeit der erneuten Übertragung im Fall eines verlorenen Pakets. Wenn zum Beispiel ein Datenpaket, das einem Abschnitt des verzerrten Bildes entspricht, über den Kanal verloren geht, kann die Wahrscheinlichkeit des erneuten Sendens des Pakets auf dem Skalierungsfaktor basieren, sodass Datenpakete, die Abschnitten mit höherer Auflösung entsprechen, eher erneut gesendet werden im Vergleich zu Datenpaketen, die Abschnitten mit niedrigerer Auflösung entsprechen.In particular, in various implementations, a probability of transmission of the respective portions of the distorted image is based on the one or more scaling factors of the plurality of scaling factors that correspond to the respective portions of the distorted image. In various implementations, the probability of transmission is a probability of retransmission in the event of a lost packet. For example, if a data packet corresponding to a portion of the warped image is lost over the channel, the probability of retransmitting the packet may be based on the scaling factor, so data packets corresponding to portions of higher resolution are more likely to be retransmitted compared to Data packets corresponding to lower resolution sections.

In verschiedenen Implementierungen basiert die Wahrscheinlichkeit der Übertragung auf einem ausgewählten Unterkanal. Zum Beispiel wird durch Auswählen eines Unterkanals (z. B. auf der PHY-Schicht) mit einem höheren Signal-Rausch-Verhältnis die Wahrscheinlichkeit einer erneuten Übertragung aufgrund eines Bitfehlers, Paketfehlers oder verworfenen Pakets verringert. Dementsprechend wählt das Transportmodul in verschiedenen Implementierungen einen Unterkanal zur Übertragung eines jeweiligen Abschnitts auf Grundlage des jeweiligen Skalierungsfaktors aus. In verschiedenen Implementierungen wählt das Transportmodul einen Subkanal mit höherem Signal-Rausch-Verhältnis für einen Anteil mit höherer Auflösung als für einen Anteil mit niedrigerer Auflösung aus.In various implementations, the probability of transmission is based on a selected sub-channel. For example, by selecting a subchannel (e.g., on the PHY layer) with a higher signal-to-noise ratio, the likelihood of retransmission due to a bit error, packet error, or dropped packet is reduced. Accordingly, in various implementations, the transport module selects a sub-channel for transmission of a respective section on the basis of the respective scaling factor. In various implementations, the transport module selects a subchannel with a higher signal-to-noise ratio for a portion with a higher resolution than for a portion with a lower resolution.

In verschiedenen Implementierungen basiert die Übertragungswahrscheinlichkeit auf einer Stufe eines Puffers, der Bilddaten empfängt, die dem verzerrten Bild zugeordnet sind (z. B. ein Puffer des Dekompressionsmoduls 226 von 2). Zum Beispiel wird in verschiedenen Implementierungen, wenn sich der Puffer einem Überlauf nähert oder sich diesem genähert hat, die Wahrscheinlichkeit des Übertragens eines Abschnitts des verzerrten Bildes verringert, und dies gilt umso mehr für Abschnitte des verzerrten Bildes mit niedrigerer Auflösung als für Abschnitte des verzerrten Bildes mit höherer Auflösung. In verschiedenen Implementierungen verwirft der Empfänger (z. B. das Dekomprimierungsmodul) empfangene Abschnitte des verzerrten Bildes auf Grundlage der Skalierungsfaktoren, wenn der Puffer nahezu voll oder fast überfüllt ist. Zum Beispiel verwirft der Empfänger in verschiedenen Implementierungen eher Abschnitte mit niedrigerer Auflösung als Abschnitte mit höherer Auflösung.In various implementations, the likelihood of transmission is based on a level of a buffer that receives image data associated with the warped image (e.g., a decompression module buffer 226 of 2 ). For example, in various implementations, as the buffer approaches or has approached an overflow, the likelihood of transmitting a portion of the warped image is reduced, and this is even more true of lower resolution portions of the warped image than portions of the warped image with higher resolution. In various implementations, the receiver (e.g., the decompression module) discards received portions of the warped image based on the scaling factors when the buffer is nearly full or nearly overfilled. For example, in various implementations, the receiver is more likely to discard lower resolution sections than higher resolution sections.

In verschiedenen Implementierungen schließt das Übertragen des verzerrten Bildes das Transformieren des verzerrten Bildes ein. Zum Beispiel erzeugt das Transportmodul in verschiedenen Implementierungen ein Wavelet-verzerrtes Bild durch Wavelet-Transformation des verzerrten Bildes. Das Wavelet-verzerrte Bild schließt für jeden jeweiligen Abschnitt des verzerrten Bildes eine Vielzahl von Abschnitten des Wavelet-verzerrten Bildes ein, die unterschiedlichen Frequenzbändern entsprechen.In various implementations, transmitting the warped image includes transforming the warped image. For example, in various implementations, the transport module generates a wavelet-warped image by wavelet transforming the warped image. The wavelet-distorted image includes, for each respective section of the distorted image, a plurality of sections of the wavelet-distorted image which correspond to different frequency bands.

16A veranschaulicht ein Beispielbild 1610. 16B veranschaulicht ein Wavelet-Bild 1620, das durch eine einschichtige Wavelet-Transformation des Beispielbildes erzeugt wird. Jeder Abschnitt des Beispielbildes 1610 (z. B. der obere mittlere Block 1611) wird durch eine Vielzahl von Abschnitten (z. B. Blöcke 1621a-1621d) des Wavelet-Bildes 1620 dargestellt, die verschiedenen Frequenzbändern entsprechen. Insbesondere Block 1621a entspricht Niederfrequenz sowohl in horizontaler als auch vertikaler Richtung, Block 1621b entspricht Hochfrequenz in horizontaler Richtung und Niederfrequenz in vertikaler Richtung, Block 1621c entspricht Niederfrequenz in horizontaler Richtung und Hochfrequenz in vertikaler Richtung und Block 1021d entspricht Hochfrequenz sowohl in horizontaler als auch in vertikaler Richtung. 16A illustrates an example image 1610 . 16B illustrates a wavelet image 1620 , which is generated by a single-layer wavelet transformation of the example image. Each section of the sample image 1610 (e.g. the upper middle block 1611 ) is made up of a variety of sections (e.g., blocks 1621a-1621d ) of the wavelet image 1620 that correspond to different frequency bands. Block in particular 1621a corresponds to low frequency in both horizontal and vertical directions, block 1621b corresponds to high frequency in the horizontal direction and low frequency in the vertical direction, block 1621c corresponds to low frequency in the horizontal direction and high frequency in the vertical direction and block 1021d corresponds to high frequency in both horizontal and vertical directions.

In verschiedenen Implementierungen wird das verzerrte Wavelet-Bild unter Verwendung einer einschichtigen Wavelet-Funktion erzeugt (veranschaulicht durch 16A-16B). In verschiedenen Implementierungen wird das verzerrte Wavelet-Bild unter Verwendung einer zweischichtigen Wavelet-Funktion erzeugt.In various implementations, the warped wavelet image is generated using a single layer wavelet function (illustrated by 16A-16B) . In various implementations, the warped wavelet image is generated using a two-layer wavelet function.

In verschiedenen Implementierungen basiert die mindestens eine Bandbreite des einen oder der mehreren Kanäle, die durch Übertragung jeweiliger Abschnitte des Wavelet-verzerrten Bildes verwendet werden, auf unterschiedlichen Frequenzbändern. Insbesondere werden in verschiedenen Implementierungen jeweiligen Abschnitten des Wavelet-verzerrten Bildes, die niedrigeren Frequenzbändern zugeordnet sind, mehr Bandbreite zugewiesen als Abschnitten des Wavelet-verzerrten Bildes, die höheren Frequenzbändern zugeordnet sind. In various implementations, the at least one bandwidth of the one or more channels used by transmitting respective portions of the wavelet-warped image is based on different frequency bands. In particular, in various implementations, respective portions of the wavelet-warped image that are assigned to lower frequency bands are assigned more bandwidth than portions of the wavelet-warped image that are assigned to higher frequency bands.

In verschiedenen Implementierungen filtert das Transportmodul das verzerrte Bild auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren. Zum Beispiel bestimmt in verschiedenen Implementierungen das Transportmodul Wavelet-Schwellenwerte für das verzerrte Bild. Dies entstört unter verschiedenen Umständen das frequenzbandbasierte Bild, um es verständlich zu machen und/oder einige Details zu entfernen, um einen kontinuierlichen Strom bereitzustellen.In various implementations, the transport module filters the distorted image based on the large number of respective scaling factors. For example, in various implementations, the transport module determines wavelet thresholds for the warped image. This deletes the frequency band-based image under various circumstances to make it understandable and / or remove some details to provide a continuous stream.

In verschiedenen Implementierungen basiert ferner die mindestens eine Bandbreite des einen oder der mehreren Kanäle, die durch die Übertragung der jeweiligen Abschnitte des verzerrten Bildes verwendet werden, auf mindestens einer verfügbaren Bandbreite des einen oder der mehreren Kanäle. Insbesondere wenn die verfügbare Bandbreite größer ist, ist die Bandbreite des verwendeten Kanals größer. In verschiedenen Implementierungen schließt das Transportmodul einen hocheffizienten Videocodierer (HEVC) ein.Further, in various implementations, the at least one bandwidth of the one or more channels used by the transmission of the respective portions of the warped image is based on at least one available bandwidth of the one or more channels. In particular, when the available bandwidth is larger, the bandwidth of the channel used is larger. In various implementations, the transport module includes a high efficiency video encoder (HEVC).

Wie vorstehend in Bezug auf 2 angemerkt, empfängt das Transportmodul 220 in verschiedenen Implementierungen die Vielzahl von jeweiligen Skalierungsfaktoren von dem Rendering-Modul 210. In verschiedenen Implementierungen stellt das Transportmodul 220 dem Anzeigemodul 230 die jeweiligen Skalierungsfaktoren bereit. Dementsprechend transportiert das Transportmodul 220 die jeweiligen Skalierungsfaktoren über den Kommunikationskanal 224.As above in relation to 2 noted, the transport module receives 220 in various implementations, the plurality of respective scale factors from the rendering module 210 . In the transport module provides various implementations 220 the display module 230 the respective scaling factors ready. The transport module transports accordingly 220 the respective scaling factors via the communication channel 224 .

Somit schließt das Verfahren 1500 von 15 in verschiedenen Implementierungen ferner das Empfangen der Vielzahl von jeweiligen Skalierungsfaktoren (z. B. von einem Rendering-Modul), das Komprimieren der Vielzahl von jeweiligen Skalierungsfaktoren, das Übertragen der Vielzahl von jeweiligen Skalierungsfaktoren über den Kanal, das Dekomprimieren der Vielzahl von jeweiligen Skalierungsfaktoren und/oder das Bereitstellen der Vielzahl von jeweiligen Skalierungsfaktoren (z. B. an ein Anzeigemodul) ein.The procedure thus closes 1500 of 15th further, in various implementations, receiving the plurality of respective scaling factors (e.g. from a rendering module), compressing the plurality of respective scaling factors, transmitting the plurality of respective scaling factors over the channel, decompressing the plurality of respective scaling factors, and / or the provision of the plurality of respective scaling factors (for example to a display module).

Unter Bezugnahme auf 2 empfängt das Dekompressionsmodul 226 das verzerrte Bild über den Kommunikationskanal 224. In verschiedenen Implementierungen wird das verzerrte Bild komprimiert, codiert und/oder transformiert. Dementsprechend dekomprimiert, decodiert und/oder rücktransformiert das Dekomprimierungsmodul 226 das verzerrte Bild in verschiedenen Implementierungen. Ferner empfängt in verschiedenen Implementierungen das Dekompressionsmodul 226 über den Kommunikationskanal 224 die Vielzahl von jeweiligen Skalierungsfaktoren. In verschiedenen Implementierungen wird die Vielzahl von jeweiligen Skalierungsfaktoren komprimiert. Dementsprechend dekomprimiert in verschiedenen Implementierungen das Dekomprimierungsmodul 226 die Vielzahl von jeweiligen Skalierungsfaktoren.With reference to 2 receives the decompression module 226 the distorted image over the communication channel 224 . In various implementations, the warped image is compressed, encoded and / or transformed. The decompression module decompresses, decodes and / or back-transforms accordingly 226 the distorted picture in different implementations. Furthermore, in various implementations, the decompression module receives 226 over the communication channel 224 the multitude of respective scaling factors. In various implementations, the large number of respective scaling factors are compressed. Accordingly, in various implementations, the decompression module decompresses 226 the multitude of respective scaling factors.

Unter Umständen empfängt das Dekompressionsmodul 226 ein Datenpaket nicht korrekt, das einem Abschnitt des verzerrten Bildes zugeordnet ist, der einem jeweiligen Skalierungsfaktor zugeordnet ist. Zum Beispiel kann das Dekompressionsmodul 226 einen entsprechenden Skalierungsfaktor empfangen, aber kein entsprechendes Datenpaket empfangen. Als weiteres Beispiel kann das Dekompressionsmodul 226 ein beschädigtes Datenpaket empfangen, das einem jeweiligen Skalierungsfaktor zugeordnet ist (z. B. wie durch ein Paritätsbit, eine zyklische Redundanzprüfung oder einen anderen Indikator angezeigt, der angibt, dass das Datenpaket beschädigt ist). Als weiteres Beispiel kann das Dekompressionsmodul 226 Pakete verwerfen, da ein Puffer des Dekompressionsmoduls 226 voll oder nahezu voll ist.The decompression module may be receiving 226 a data packet incorrectly assigned to a section of the distorted image that is assigned to a respective scaling factor. For example, the decompression module 226 receive a corresponding scaling factor, but do not receive a corresponding data packet. As another example, the decompression module 226 Receive a damaged data packet that is assigned a respective scaling factor (e.g. as indicated by a parity bit, a cyclic redundancy check, or other indicator that indicates that the data packet is damaged). As another example, the decompression module 226 Discard packets as a decompression module buffer 226 is full or nearly full.

In verschiedenen Implementierungen sendet das Dekompressionsmodul 226 eine Anforderung an das Kompressionsmodul 222, um das Datenpaket, das nicht korrekt empfangen wurde, erneut zu übertragen. In verschiedenen Implementierungen bestimmt das Dekompressionsmodul 226 auf Grundlage des entsprechenden Skalierungsfaktors, ob eine derartige neuerliche Übertragungsanforderung gesendet werden soll. Zum Beispiel sendet das Dekompressionsmodul 226 in verschiedenen Implementierungen eher die neuerliche Übertragungsanforderung, wenn der entsprechende Skalierungsfaktor anzeigt, dass die Auflösung des entsprechenden Bildabschnitts höher ist, als wenn der entsprechende Skalierungsfaktor anzeigt, dass die Auflösung des entsprechenden Bildabschnitts niedriger ist.In various implementations, the decompression module sends 226 a requirement on the compression module 222 to retransmit the data packet that was not received correctly. In various implementations, the decompression module determines 226 based on the corresponding scaling factor, whether such a retransmission request should be sent. For example, the decompression module sends 226 in various implementations, the renewed transmission request is more likely when the corresponding scaling factor indicates that the resolution of the corresponding image section is higher than when the corresponding scaling factor indicates that the resolution of the corresponding image section is lower.

Wie vorstehend erwähnt, schließt das Dekompressionsmodul 226 in verschiedenen Implementierungen einen Puffer ein, der empfangene Datenpakete speichert. Unter Umständen kann der Puffer voll werden, was zu verlorenen Paketen führt. In verschiedenen Implementierungen bestimmt das Dekompressionsmodul 226 auf Grundlage des entsprechenden Skalierungsfaktors, ob ein empfangenes Paket gespeichert oder das empfangene Paket verworfen werden soll, wenn der Puffer nahezu voll ist (z. B. überschreitet er einen Schwellenprozentsatz an Fülle). Zum Beispiel verwirft das Dekompressionsmodul 226 in verschiedenen Implementierungen eher ein Paket, wenn der entsprechende Skalierungsfaktor anzeigt, dass die Auflösung des entsprechenden Bildabschnitts niedrig ist, als wenn der entsprechende Skalierungsfaktor anzeigt, dass die Auflösung des entsprechenden Bildabschnitts hoch ist. In verschiedenen Implementierungen bestimmt das Dekompressionsmodul 226 auf Grundlage einer kontinuierlichen Funktion eines Pufferfüllstands (z. B. wie voll der Puffer ist) und des entsprechenden Skalierungsfaktors, ob ein empfangenes Paket gespeichert oder ein empfangenes Paket verworfen werden soll. Die Funktion kann dazu führen, dass das Dekompressionsmodul 226 eher ein Paket verwirft, wenn der Pufferfüllstand zunimmt und/oder der entsprechende Skalierungsfaktor anzeigt, dass die Auflösung des entsprechenden Bildabschnitts niedrig ist.As mentioned above, the decompression module closes 226 in various implementations, a buffer that stores received data packets. Under certain circumstances the buffer can become full, which leads to lost packets. In various implementations, the decompression module determines 226 whether to store a received packet or discard the received packet when the buffer is nearly full (e.g., exceeds a threshold percentage of fullness) based on the appropriate scaling factor. For example, the decompression module discards 226 in various implementations, a packet if the corresponding scaling factor indicates that the resolution of the corresponding image section is low than if the corresponding scaling factor indicates that the resolution of the corresponding image section is high. In various implementations, the decompression module determines 226 based on a continuous function of a buffer fill level (e.g. how full the buffer is) and the corresponding scaling factor, whether a received packet should be stored or a received packet should be discarded. The function can cause the decompression module 226 rather, it discards a packet when the buffer level increases and / or the corresponding scaling factor indicates that the resolution of the corresponding image section is low.

17 ist eine Flussdiagrammdarstellung eines Verfahrens 1700 zum Empfangen eines Bildes gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 1700 von einem Transportmodul (oder einem Abschnitt davon) durchgeführt, wie dem Transportmodul 220 oder dem Dekompressionsmodul 226 von 2. In verschiedenen Implementierungen wird das Verfahren 1700 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 1700 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren SR-Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 1700 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 1700 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 17th Figure 3 is a flow chart representation of a method 1700 for receiving an image according to some implementations. In some implementations (and as detailed below as an example) the method 1700 performed by a transport module (or a portion thereof), such as the transport module 220 or the decompression module 226 of 2 . In different implementations the procedure 1700 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 , carried out. In different implementations the procedure 1700 performed by a device having one or more processors, non-volatile memories, and one or more SR indicators. In some implementations, the procedure 1700 by Processing logic, including hardware, firmware, software, or a combination thereof, is performed. In some implementations, the procedure 1700 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 1700 beginnt bei Block 1710, wobei das Transportmodul mindestens eine Teilmenge einer Vielzahl von Datenpaketen empfängt, die Abschnitten eines verzerrten Bildes entsprechen, das einen Inhalt simulierter Realität (SR) darstellt, der in einem Anzeigeraum angezeigt werden soll, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind.The procedure 1700 starts at block 1710 wherein the transport module receives at least a subset of a plurality of data packets corresponding to portions of a warped image representing simulated reality (SR) content to be displayed in a display space, the warped image having a plurality of pixels in respective locations equally spaced in a grid pattern in a distorted space.

In verschiedenen Implementierungen definiert die Vielzahl von jeweiligen Skalierungsfaktoren eine Abbildung zwischen dem verzerrten Raum und dem Anzeigeraum. Zum Beispiel werden in verschiedenen Implementierungen unterschiedliche Teile des SR-Inhalts, die ungleichmäßig beabstandeten Regionen in dem Anzeigeraum entsprechen, durch gleichmäßig beabstandete Bereiche in dem verzerrten Raum dargestellt.In various implementations, the plurality of respective scaling factors defines a mapping between the distorted space and the display space. For example, in different implementations, different portions of the SR content that correspond to unevenly spaced regions in the display space are represented by evenly spaced areas in the distorted space.

Das Verfahren 1700 fährt bei Block 1720 fort, wobei das Transportmodul eine Vielzahl von Skalierungsfaktoren empfängt, die jeweilige Auflösungen der Abschnitte des verzerrten Bildes an einer Vielzahl von jeweiligen Stellen in dem Anzeigeraum anzeigen.The procedure 1700 drives at block 1720 wherein the transport module receives a plurality of scaling factors indicating respective resolutions of the portions of the warped image at a plurality of respective locations in the display space.

Das Verfahren 1700 fährt bei Block 1730 fort, wobei das Transportmodul einen Fehlerzustand für ein bestimmtes der Vielzahl von Datenpaketen erfasst. In verschiedenen Implementierungen schließt das Erfassen des Fehlerzustands das Empfangen des bestimmten der Vielzahl von Skalierungsfaktoren ein, ohne das bestimmte der Vielzahl von Datenpaketen zu empfangen. Dies kann anzeigen, dass das Paket verloren gegangen ist. In verschiedenen Implementierungen schließt das Erfassen des Fehlerzustands das Bestimmen ein, dass das bestimmte der Vielzahl von Datenpaketen beschädigt ist. Zum Beispiel zeigt in verschiedenen Implementierungen ein Paritätsbit, eine zyklische Redundanzprüfung oder ein anderer Indikator an, dass das Datenpaket beschädigt ist. In verschiedenen Implementierungen schließt das Erfassen des Fehlerzustands das Empfangen des bestimmten der Vielzahl von Datenpaketen ein, während ein Puffer voll oder nahezu voll ist. In verschiedenen Implementierungen schließt das Erfassen des Fehlerzustands das Bestimmen ein, dass ein Puffer mindestens einen Schwellenprozentsatz von Daten speichert.The procedure 1700 drives at block 1730 continues, wherein the transport module detects an error condition for a particular one of the plurality of data packets. In various implementations, detecting the error condition includes receiving the particular one of the plurality of scale factors without receiving the particular one of the plurality of data packets. This can indicate that the package has been lost. In various implementations, detecting the error condition includes determining that the particular one of the plurality of data packets is corrupted. For example, in various implementations, a parity bit, a cyclic redundancy check, or some other indicator indicates that the data packet is damaged. In various implementations, detecting the error condition includes receiving the particular one of the plurality of data packets while a buffer is full or nearly full. In various implementations, detecting the fault condition includes determining that a buffer is storing at least a threshold percentage of data.

Das Verfahren 1700 fährt bei Block 1740 fort, wobei das Transportmodul den Fehlerzustand basierend auf einem bestimmten der Vielzahl von Skalierungsfaktoren, der dem bestimmten der Vielzahl von Datenpaketen entspricht, löst. In verschiedenen Implementierungen schließt das Lösen des Fehlerzustands das Bestimmen ein, ob eine neuerliche Übertragungsanforderung für das bestimmte der Vielzahl von Datenpaketen basierend auf dem besonderen der Vielzahl von Skalierungsfaktoren gesendet werden soll. In verschiedenen Implementierungen sendet das Transportmodul eher eine neuerliche Übertragungsanforderung, wenn der bestimmte der Vielzahl von Skalierungsfaktoren anzeigt, dass die Auflösung des entsprechenden Abschnitts des verzerrten Bildes im Vergleich dazu, wenn der bestimmte der Vielzahl von Skalierungsfaktoren anzeigt, dass die Auflösung des entsprechenden Abschnitts des verzerrten Bildes niedrig ist, hoch ist.The procedure 1700 drives at block 1740 wherein the transport module resolves the error condition based on a particular one of the plurality of scaling factors corresponding to the particular one of the plurality of data packets. In various implementations, resolving the error condition includes determining whether to send a retransmission request for the particular one of the plurality of data packets based on the particular one of the plurality of scale factors. In various implementations, the transport module is more likely to send a retransmission request when the particular one of the plurality of scaling factors indicates the resolution of the corresponding portion of the distorted image compared to when the particular one of the plurality of scaling factors indicates the resolution of the corresponding portion of the distorted image Image is low, is high.

Dementsprechend schließt das Lösen des Fehlerzustands in verschiedenen Implementierungen das Bestimmen, eine neuerliche Übertragungsanforderung zu senden, und das Senden einer neuerlichen Übertragungsanforderung (oder das Bestimmen, keine neuerliche Übertragungsanforderung zu senden) ein.Accordingly, solving the error condition in various implementations includes determining to send a new transmission request and sending a new transmission request (or determining not to send a new transmission request).

In verschiedenen Implementierungen schließt das Lösen des Fehlerzustands das Bestimmen ein, ob das bestimmte der Vielzahl von Datenpaketen basierend auf dem bestimmten der Vielzahl von Skalierungsfaktoren verworfen oder gespeichert werden soll. In verschiedenen Implementierungen speichert das Transportmodul eher ein Datenpaket (in einem Puffer), wenn der bestimmte der Vielzahl von Skalierungsfaktoren anzeigt, dass die Auflösung des entsprechenden Abschnitts des verzerrten Bildes im Vergleich dazu, wenn der bestimmte der Vielzahl von Skalierungsfaktoren anzeigt, dass die Auflösung des entsprechenden Abschnitts des verzerrten Bildes niedrig ist, hoch ist. Dementsprechend schließt das Lösen des Fehlerzustands in verschiedenen Implementierungen das Bestimmen, das Datenpaket zu speichern, und das Speichern des Datenpakets (oder das Bestimmen, das Datenpaket zu verwerfen und das Datenpaket nicht zu speichern) ein.In various implementations, resolving the error condition includes determining whether to discard or store the particular one of the plurality of data packets based on the particular one of the plurality of scaling factors. In various implementations, the transport module is more likely to store a data packet (in a buffer) when the particular one of the plurality of scaling factors indicates the resolution of the corresponding portion of the distorted image compared to when the particular one of the plurality of scaling factors indicates that the resolution of the corresponding portion of the distorted image is low, is high. Accordingly, in various implementations, resolving the error condition includes determining to save the data packet and storing the data packet (or determining to discard the data packet and not to save the data packet).

In verschiedenen Implementierungen schließt das Verfahren 1700 das Dekomprimieren, Decodieren und/oder Rücktransformieren des verzerrten Bildes ein.In various implementations, the procedure concludes 1700 decompressing, decoding and / or reverse transforming the distorted image.

Wie vorstehend in Bezug auf 2 beschrieben, stellt das Rendering-Modul 210 dem Transportmodul 220 ein wiedergegebenes Bild bereit. Wie vorstehend beschrieben, schließt das Transportmodul 220 ein Komprimierungsmodul 222, welches das wiedergegebene Bild komprimiert (was zu einem komprimierten Bild führt), einen Kommunikationskanal 224, der das komprimierte Bild trägt, und ein Dekomprimierungsmodul 226, welches das komprimierte Bild dekomprimiert (was zu einem dekomprimierten Bild führt) und es dem Anzeigemodul 230 bereitstellt, ein. Dementsprechend empfängt das Anzeigemodul 230 aufgrund von Verformung, die durch Komprimierung, Übertragung, Empfang und/oder Dekomprimierung verursacht wird, das wiedergegebene Bild, das durch das Rendering-Modul 210 bereitgestellt wird. In verschiedenen Implementierungen fehlt das Transportmodul 220 und das Rendering-Modul 210 stellt das wiedergegebene Bild direkt an das Anzeigemodul 230 bereit.As above in relation to 2 described, represents the rendering module 210 the transport module 220 a reproduced image ready. As described above, the transport module closes 220 a Compression module 222 which compresses the reproduced picture (resulting in a compressed picture), a communication channel 224 carrying the compressed image and a decompression module 226 which decompresses the compressed image (resulting in a decompressed image) and sends it to the display module 230 provides a. The display module receives accordingly 230 due to deformation caused by compression, transmission, reception and / or decompression, the reproduced image produced by the rendering engine 210 provided. The transport module is missing in various implementations 220 and the rendering module 210 sends the displayed image directly to the display module 230 ready.

In verschiedenen Implementierungen empfängt das Anzeigemodul 230 von dem Transportmodul 220 oder dem Rendering-Modul 210 ein Foveated Image mit unterschiedlichen Auflösungen an unterschiedlichen Bildabschnitten. In verschiedenen Implementierungen empfängt das Anzeigemodul 230 von dem Transportmodul 220 oder dem Rendering-Modul 230 ein verzerrtes Bild mit einer Vielzahl von Pixeln an jeweiligen Stellen, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind. Die Vielzahl von Pixeln ist jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in einem Anzeigeraum anzeigen.In various implementations, the display module receives 230 from the transport module 220 or the rendering module 210 a foveated image with different resolutions on different image sections. In various implementations, the display module receives 230 from the transport module 220 or the rendering module 230 a distorted image having a plurality of pixels at respective locations evenly spaced in a grid pattern in a distorted space. The plurality of pixels are each associated with a plurality of respective pixel values and a plurality of respective scaling factors that display a plurality of respective resolutions at a plurality of respective locations in a display space.

In verschiedenen Implementierungen empfängt das Anzeigemodul 230 die Skalierungsfaktoren von dem Transportmodul 220 oder dem Rendering-Modul 210. In verschiedenen Implementierungen empfängt das Anzeigemodul 230 einen einzelnen Skalierungsfaktor für jedes Pixel. In verschiedenen Implementierungen empfängt das Anzeigemodul 230 einen horizontalen Skalierungsfaktor und eine vertikale Skalierung für jedes Pixel. In verschiedenen Implementierungen empfängt das Anzeigemodul 230 einen einzelnen Skalierungsfaktor für jede Kachel von Pixeln (z. B. jeden 32x32-Block von Pixeln). In verschiedenen Implementierungen empfängt das Anzeigemodul 230 einen horizontalen Skalierungsfaktor und einen vertikalen Skalierungsfaktor für jede Kachel von Pixeln (z. B. jeden 32x32-Block von Pixeln).In various implementations, the display module receives 230 the scaling factors from the transport module 220 or the rendering module 210 . In various implementations, the display module receives 230 a single scale factor for each pixel. In various implementations, the display module receives 230 a horizontal scale factor and a vertical scale for each pixel. In various implementations, the display module receives 230 a single scaling factor for each tile of pixels (e.g., every 32x32 block of pixels). In various implementations, the display module receives 230 a horizontal scale factor and a vertical scale factor for each tile of pixels (e.g., each 32x32 block of pixels).

Das Anzeigemodul 230 schließt ein Linsenkompensationsmodul 232 ein, welches das dekomprimierte Bild in einer umgekehrten Beziehung zu einer Verformung verformt, die durch ein Okular 242 der HMD verursacht wird, so dass das angezeigte Bild, wenn es durch das Okular 242 von einem Benutzer 250 betrachtet wird, unverformt erscheint. Die Verformung, die durch das Okular 242 verursacht wird, kann durch eine homografische Verformungsfunktion beschrieben werden, die als Eingabe einen Pixelplatz eines Pixels eines Eingabebildes einnimmt und als Ausgabe den Pixelplatz des Pixels in dem Ausgabebild bereitstellt.The display module 230 includes a lens compensation module 232 one that deforms the decompressed image in an inverse relationship to deformation caused by an eyepiece 242 the HMD is caused so that the image displayed when it is through the eyepiece 242 from a user 250 is viewed, appears undeformed. The deformation caused by the eyepiece 242 can be described by a homographic deformation function which, as input, occupies a pixel location of a pixel of an input image and provides the pixel location of the pixel in the output image as output.

Dementsprechend, wobei F die homographische Verformungsfunktion ist, (x1, y1) der Pixelplatz eines Pixels in dem Eingangsbild ist, und (x2, y2) der Pixelplatz des Pixels in dem Ausgangsbild ist, gilt: F ( x 1 , y 1 ) = ( x 2 , y 2 ) .

Figure DE112019002368T5_0005
Accordingly, where F is the homographic deformation function, (x 1 , y 1 ) is the pixel location of a pixel in the input image, and (x 2 , y 2 ) is the pixel location of the pixel in the output image, the following applies: F. ( x 1 , y 1 ) = ( x 2 , y 2 ) .
Figure DE112019002368T5_0005

18A veranschaulicht ein unverformtes Bild 1810 einschließlich eines Pixels 1811 mit einem ersten Pixelwert an einem ersten Pixelplatz. 18B veranschaulicht ein verformtes Bild einschließlich eines Pixels 1821 mit dem ersten Pixelwert an einem zweiten Pixelplatz. In 18A-18B ist der erste Pixelplatz (2, 1), und der zweite Pixelplatz ist (2.2, 1.1). 18A illustrates an undeformed image 1810 including one pixel 1811 with a first pixel value at a first pixel location. 18B illustrates a deformed image including a pixel 1821 with the first pixel value at a second pixel location. In 18A-18B is the first pixel place ( 2 , 1 ), and the second pixel space is (2.2, 1.1).

Somit erscheint ein Pixel (mit einem Pixelwert) an einem ersten Pixelplatz eines Eingangsbildes, wenn es durch das Okular projiziert wird, mit demselben Pixelwert an einem zweiten Pixelplatz eines Ausgangsbildes. Diese Beziehung, wobei I(x, y) der Pixelwert des Eingangsbildes an einem Platz (x, y) ist, und O(x, y) der Pixelwert des Ausgangsbildes an einem Platz (x, y) ist, kann ausgedrückt werden als: I ( x 1 , y 1 ) = O ( x 2 , y 2 ) .

Figure DE112019002368T5_0006
Thus, a pixel (with one pixel value) appears at a first pixel location of an input image when it is projected through the eyepiece with the same pixel value at a second pixel location of an output image. This relationship, where I (x, y) is the pixel value of the input image in a place (x, y), and O (x, y) is the pixel value of the output image in a place (x, y), can be expressed as: I. ( x 1 , y 1 ) = O ( x 2 , y 2 ) .
Figure DE112019002368T5_0006

Somit ist: I ( x 1 , y 1 ) = O ( F ( x 1 , y 1 ) ) .

Figure DE112019002368T5_0007
Thus: I. ( x 1 , y 1 ) = O ( F. ( x 1 , y 1 ) ) .
Figure DE112019002368T5_0007

Um dieser Verformung entgegenzutreten, erzeugt das Linsenkompensationsmodul 232 ein vorverformtes Bild, so dass das durch das Okular 242 verformte Ausgangsbild wie das Eingangsbild aussieht. Somit gilt, wobei P(x, y) der Pixelwert des vorverformten Bildes an einer Stelle (x, y) ist, P ( x 1 , y 1 ) = I ( x 2 , y 2 ) .

Figure DE112019002368T5_0008
To counter this deformation, the lens compensation module generates 232 a pre-deformed image so that that through the eyepiece 242 deformed output image like the input image looks. Thus, where P (x, y) is the pixel value of the pre-deformed image at a point (x, y), P ( x 1 , y 1 ) = I. ( x 2 , y 2 ) .
Figure DE112019002368T5_0008

Somit ist: P ( x 1 , y 1 ) = I ( F ( x 1 , y 1 ) ) .

Figure DE112019002368T5_0009
Thus: P ( x 1 , y 1 ) = I. ( F. ( x 1 , y 1 ) ) .
Figure DE112019002368T5_0009

Wenn das vorgeformte Bild durch das Okular verformt wird, gilt: P ( x 1 , y 1 ) = I ( x 2 , y 2 ) = O ( x 2 , y 2 ) .

Figure DE112019002368T5_0010
If the pre-formed image is deformed by the eyepiece: P ( x 1 , y 1 ) = I. ( x 2 , y 2 ) = O ( x 2 , y 2 ) .
Figure DE112019002368T5_0010

Somit ist: P ( x 1 , y 1 ) = I ( F ( x 1 , y 1 ) ) = O ( F ( x 1 , y 1 ) ) .

Figure DE112019002368T5_0011
Thus: P ( x 1 , y 1 ) = I. ( F. ( x 1 , y 1 ) ) = O ( F. ( x 1 , y 1 ) ) .
Figure DE112019002368T5_0011

19A veranschaulicht ein vorverformtes Bild 1910 einschließlich eines Pixels 1911 mit einem Pixelwert an einem ersten Pixelplatz. 19B veranschaulicht ein verformtes vorverformtes Bild (oder unverformtes Bild) 1920 einschließlich eines Pixels 1921 mit dem ersten Pixelwert an einem zweiten Pixelplatz. In den 19A-19B ist der erste Pixelplatz (2, 1), und der zweite Pixelplatz ist (2.2, 1.1). 19A illustrates a pre-deformed image 1910 including one pixel 1911 with a pixel value at a first pixel location. 19B Fig. 10 illustrates a deformed pre-deformed image (or undeformed image) 1920 including a pixel 1921 with the first pixel value at a second pixel location. In the 19A-19B is the first pixel place ( 2 , 1 ), and the second pixel space is (2.2, 1.1).

Um den Pixelwert eines Pixels des vorverformten Bildes an einer ersten Stelle (x1, y1) zu bestimmen, bestimmt das Linsenkompensationsmodul 232 den Pixelwert eines Pixels des Eingangsbildes an einer zweiten Stelle (x2, y2). Unter Umständen fällt jedoch die zweite Stelle (x2, y2) zwischen Pixelplätze des Eingangsbildes, für die die Pixelwerte bekannt sind.In order to determine the pixel value of a pixel of the pre-deformed image at a first point (x 1 , y 1 ), the lens compensation module determines 232 the pixel value of a pixel of the input image at a second location (x 2 , y 2 ). Under certain circumstances, however, the second position (x 2 , y 2 ) falls between pixel positions of the input image for which the pixel values are known.

Zum Beispiel ist in 19A der Pixelwert des Pixels 1911 nicht der gleiche wie der Pixelwert des Pixels 1811 von 18A. Vielmehr ist der Pixelwert des Pixels 1911 der gleiche wie der Pixelwert eines Pixels des unverformten Bildes 1810 bei (2.2, 1.1), falls ein derartiges Pixel existierte.For example, in 19A the pixel value of the pixel 1911 not the same as the pixel value of the pixel 1811 of 18A . Rather, the pixel value is the pixel 1911 the same as the pixel value of a pixel of the undeformed image 1810 at (2.2, 1.1) if such a pixel existed.

Um somit in verschiedenen Implementierungen den Pixelwert des Pixels des vorverformten Bildes an der ersten Stelle (x1, y1) zu bestimmen, bestimmt das Linsenkompensationsmodul 232 den Pixelwert eines Pixels des Eingangsbildes an einer zweiten Stelle (x2, y2) unter Verwendung bekannter Pixelwerte von Pixeln in einer Umgebung um die zweite Stelle (x2, y2), z. B. unter Verwendung von Interpolation.In order to determine the pixel value of the pixel of the pre-deformed image at the first location (x 1 , y 1 ) in various implementations, the lens compensation module determines 232 the pixel value of a pixel of the input image at a second location (x 2 , y 2 ) using known pixel values of pixels in a neighborhood around the second location (x 2 , y 2 ), e.g. B. using interpolation.

Ein Pixel ist in einer Umgebung der zweiten Stelle, wenn das Pixel kleiner als ein vorbestimmter Abstand von der zweiten Stelle ist. In verschiedenen Implementierungen ist dieser Abstand ein L2-Abstand. In verschiedenen Implementierungen ist dieser Abstand ein L1-Abstand. In verschiedenen Implementierungen ist der vorbestimmte Abstand eins, geteilt durch die Auflösung des verzerrten Bildes (z. B. der Abstand zwischen benachbarten Pixeln). In verschiedenen Implementierungen ist der vorbestimmte Abstand zwei, geteilt durch die Auflösung des verzerrten Bildes.A pixel is in a vicinity of the second location if the pixel is smaller than a predetermined distance from the second location. In various implementations, this distance is an L 2 distance. In various implementations, this distance is an L 1 distance. In various implementations, the predetermined distance is one divided by the resolution of the warped image (e.g., the distance between adjacent pixels). In various implementations, the predetermined distance is two divided by the resolution of the distorted image.

Zum Beispiel werden in 19A zum Bestimmen des Pixelwerts des Pixels 1911 die Pixelwerte der Pixel des unverformten Bildes 1810 bei (2,1), (2,2), (3,1) und (3,2) verwendet.For example, in 19A to determine the pixel value of the pixel 1911 the pixel values of the pixels of the undeformed image 1810 used in (2.1), (2.2), (3.1) and (3.2).

In verschiedenen Implementierungen ist der Pixelwert eines Pixels des vorverformten Bildes an einer ersten Stelle eine gewichtete Summe von Pixelwerten von Pixeln des unverformten Bildes in einer Umgebung um die zweite Stelle. Dementsprechend führt das Linsenkompensationsmodul 232 in verschiedenen Implementierungen eine lineare Interpolation durch, um den Pixelwert des Pixels des vorverformten Bildes zu bestimmen. In verschiedenen Implementierungen führt das Linsenkompensationsmodul 232 verschiedene Arten von Interpolation durch, um den Pixelwert des Pixels des vorverformten Bildes zu bestimmen, wie proximale Interpolation, Polynom-Interpolation oder Spline-Interpolation.In various implementations, the pixel value of a pixel of the pre-deformed image at a first location is a weighted sum of pixel values of pixels of the undeformed image in a neighborhood around the second location. The lens compensation module performs accordingly 232 in various implementations, perform linear interpolation to determine the pixel value of the pixel of the pre-deformed image. In various implementations, the lens compensation module performs 232 perform various types of interpolation to determine the pixel value of the pixel of the pre-deformed image, such as proximal interpolation, polynomial interpolation, or spline interpolation.

Dementsprechend, wobei N(x2, y2) eine Umgebung von Pixeln um die zweite Stelle ist, und wi Gewichtungen sind, gilt: P ( x 1 , y 1 ) = I ( x 2 , y 2 ) = i , x i N ( x 2 , y 2 ) w i I ( x i , y i )

Figure DE112019002368T5_0012
Accordingly, where N (x 2 , y 2 ) is a neighborhood of pixels around the second digit, and w i are weights, then: P ( x 1 , y 1 ) = I. ( x 2 , y 2 ) = i , x i N ( x 2 , y 2 ) w i I. ( x i , y i )
Figure DE112019002368T5_0012

In verschiedenen Implementierungen werden die Gewichtungen basierend auf dem Abstand (z. B. dem L2-Abstand) zwischen dem Pixelplatz und der zweiten Stelle bestimmt. Dementsprechend ist in einigen Implementierungen, wobei Mein Normalisierungsfaktor ist, P ( x 1 , y 1 ) = I ( x 2 , y 2 ) = i , x i N ( x 2 , y 2 ) ( x 2 x i ) 2 + ( y 2 y i ) 2 2 M I ( x i , y i )

Figure DE112019002368T5_0013
In various implementations, the weights are determined based on the distance (e.g., the L 2 distance) between the pixel location and the second location. Accordingly, in some implementations, where My normalization factor is, P ( x 1 , y 1 ) = I. ( x 2 , y 2 ) = i , x i N ( x 2 , y 2 ) ( x 2 - x i ) 2 + ( y 2 - y i ) 2 2 M. I. ( x i , y i )
Figure DE112019002368T5_0013

In verschiedenen Implementierungen empfängt das Linsenkompensationsmodul 232 ein verzerrtes Bild mit einer Vielzahl von Pixeln an jeweiligen Stellen, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die mehreren Pixel jeweils mehreren jeweiligen Pixelwerten und mehreren jeweiligen Skalierungsfaktoren zugeordnet sind, die mehrere jeweilige Auflösungen an mehreren jeweiligen Stellen in einem Anzeigeraum anzeigen. Da der Anzeigeraum und der verzerrte Raum unterschiedlich sind und da das Ausgangsbild durch das Okular im Anzeigeraum (nicht in dem verzerrte Raum) verformt wird, erzeugt das Linsenkompensationsmodul 232 den Pixelwert für ein Pixel des vorverformten Bildes unter Verwendung der Skalierungsfaktoren zusätzlich zu den Pixelwerten benachbarter Pixel. Für ein bestimmtes Pixel beschreiben der Pixelplatz in dem verzerrten Bild und der Skalierungsfaktor im Allgemeinen eine Stelle in dem Anzeigeraum. Unterschiedliche Skalierungsfaktoren unterschiedlicher Pixel in einer Umgebung geben unterschiedliche Abstände an, als die Pixelplätze allein angeben würden. Diese unterschiedlichen Abstände können beim Durchführen einer Interpolation verwendet werden (z. B. Bestimmen der Gewichtungen der Interpolation oder Bestimmen des nächsten Nachbarn).In various implementations, the lens compensation module receives 232 a distorted image having a plurality of pixels at respective locations evenly spaced in a grid pattern in a distorted space, the plurality of pixels each being associated with a plurality of respective pixel values and a plurality of respective scaling factors representing a plurality of respective resolutions at a plurality of respective locations in a display space Show. Since the display space and the distorted space are different, and since the output image is deformed by the eyepiece in the display space (not in the distorted space), the lens compensation module generates 232 the pixel value for a pixel of the pre-deformed image using the scaling factors in addition to the pixel values of neighboring pixels. For a given pixel, the pixel location in the distorted image and the scaling factor generally describe a location in the display space. Different scaling factors of different pixels in an environment indicate different distances than the pixel locations alone would indicate. These different distances can be used when performing an interpolation (e.g. determining the weights of the interpolation or determining the closest neighbor).

Zum Beispiel wird in verschiedenen Implementierungen, wobei ax(x, y) und ay(x, y) die Skalierungsfaktoren sind, die einem Pixel an dem Pixelplatz (x, y) zugeordnet sind (oder proportional oder umgekehrt proportional dazu sind), das vorverformte Bild berechnet als: P ( x 1 , y 1 ) = I ( x 2 , y 2 ) = i , x i N ( x 2 , y 2 ) a x 2 ( x i y i ) ( x 2 x i ) 2 + a y 2 ( x i , y i ) ( y 2 y i ) 2 2 M I ( x i , y i )

Figure DE112019002368T5_0014
For example, in various implementations, where a x (x, y) and a y (x, y) are the scaling factors associated with (or proportional or inversely proportional to) a pixel at the pixel location (x, y), the pre-deformed image is calculated as: P ( x 1 , y 1 ) = I. ( x 2 , y 2 ) = i , x i N ( x 2 , y 2 ) a x 2 ( x i - y i ) ( x 2 - x i ) 2 + a y 2 ( x i , y i ) ( y 2 - y i ) 2 2 M. I. ( x i , y i )
Figure DE112019002368T5_0014

20 ist eine Flussdiagrammdarstellung eines Verfahrens 2000 zum Vorverformen eines Bildes gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 2000 von einem Anzeigemodul (oder einem Abschnitt davon) durchgeführt, wie dem Anzeigemodul 230 oder dem Linsenkompensationsmodul 232 von 2. In verschiedenen Implementierungen wird das Verfahren 2000 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 2000 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren SR-Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 2000 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 2000 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 20th Figure 3 is a flow chart representation of a method 2000 for pre-deforming an image according to some implementations. In some implementations (and as detailed below as an example) the method 2000 performed by a display module (or a portion thereof), such as the display module 230 or the lens compensation module 232 of 2 . In different implementations the procedure 2000 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 , carried out. In different implementations the procedure 2000 performed by a device having one or more processors, non-volatile memories, and one or more SR indicators. In some implementations, the procedure 2000 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 2000 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 2000 beginnt bei Block 2010, wobei das Anzeigemodul ein verzerrtes Bild empfängt, das einen Inhalt simulierter Realität (SR) darstellt, der in einem Anzeigeraum angezeigt werden soll, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in dem Anzeigeraum anzeigen.The procedure 2000 starts at block 2010 wherein the display module receives a distorted image representing simulated reality (SR) content to be displayed in a display space, the distorted image having a plurality of pixels at respective locations evenly spaced in a grid pattern in a distorted space wherein the plurality of pixels are each associated with a plurality of respective pixel values and a plurality of respective scale factors indicating a plurality of respective resolutions at a plurality of respective locations in the display space.

In verschiedenen Implementierungen definiert die Vielzahl von jeweiligen Skalierungsfaktoren eine Abbildung zwischen dem verzerrten Raum und dem Anzeigeraum. Zum Beispiel werden in verschiedenen Implementierungen unterschiedliche Teile des SR-Inhalts, die ungleichmäßig beabstandeten Regionen in dem Anzeigeraum entsprechen, durch gleichmäßig beabstandete Bereiche in dem verzerrten Raum dargestellt.In various implementations, the plurality of respective scaling factors defines a mapping between the distorted space and the display space. For example, in different implementations, different portions of the SR content that correspond to unevenly spaced regions in the display space are represented by evenly spaced areas in the distorted space.

In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Pixelwert zugeordnet. In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder einem Satz von horizontalem Skalierungsfaktor und vertikalem Skalierungsfaktor) zugeordnet. In verschiedenen Implementierungen ist jede einer Vielzahl von Kacheln der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder Satz von horizontalem Skalierungsfaktor und vertikalem Skalierungsfaktor) zugeordnet. Dementsprechend ist eine Vielzahl von Pixeln (z. B. jene einer einzelnen Kachel) einem einzelnen empfangenen Skalierungsfaktor (oder Satz von horizontalem Skalierungsfaktor und vertikalem Skalierungsfaktor) zugeordnet.In various implementations, each is the plurality of pixels are each assigned to a separately received pixel value. In various implementations, each of the plurality of pixels is assigned a separately received scale factor (or a set of horizontal scale factor and vertical scale factor). In various implementations, each of a plurality of tiles of the plurality of pixels is each associated with a separately received scale factor (or set of horizontal scale factor and vertical scale factor). Accordingly, a plurality of pixels (e.g., those of a single tile) are assigned a single received scale factor (or set of horizontal scale factor and vertical scale factor).

Somit schließt in verschiedenen Implementierungen das verzerrte Bild eine Vielzahl von Kacheln an jeweiligen Stellen ein, die gleichmäßig in einem Gittermuster in dem verzerrten Raum beabstandet sind, wobei jede der Vielzahl von Kacheln einem jeweiligen einen oder mehreren Skalierungsfaktoren zugeordnet ist. In verschiedenen Implementierungen schließen auch einer oder mehrere der Vielzahl von jeweiligen Skalierungsfaktoren einen horizontalen Skalierungsfaktor und einen vertikalen Skalierungsfaktor ein.Thus, in various implementations, the warped image includes a plurality of tiles at respective locations evenly spaced in a grid pattern in the warped space, each of the plurality of tiles being associated with a respective one or more scale factors. In various implementations, one or more of the plurality of respective scale factors also include a horizontal scale factor and a vertical scale factor.

Das Verfahren 2000 fährt bei Block 2020 fort, wobei das Anzeigemodul basierend auf dem verzerrten Bild (insbesondere der Vielzahl von jeweiligen Pixelwerten davon) die Vielzahl von jeweiligen Skalierungsfaktoren erzeugt, und eine Verformungsfunktion, die eine durch ein Okular verursachte Verformung beschreibt, ein linsenkompensiertes verzerrtes Bild, das eine Version des verzerrten Bildes ist, das in einer umgekehrten Beziehung zu der durch das Okular verursachten Verformung verformt ist. In verschiedenen Implementierungen erscheint das linsenkompensierte verzerrte Bild, wenn es von einem Benutzer auf einem Anzeigefeld (möglicherweise nach Linsenkompensation unverzerrt) durch das Okular betrachtet wird, unverformt. In verschiedenen Implementierungen erzeugt das Anzeigemodul das linsenkompensierte verzerrte Bild, ohne ein Zwischenbild in einem Anzeigeraum zu erzeugen. Insbesondere erzeugt das Anzeigemodul das linsenkompensierte verzerrte Bild, ohne das verzerrte Bild zu entzerren. Dementsprechend und wie vorstehend erwähnt, erzeugt das Anzeigemodul das linsenkompensierte verzerrte Bild auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren.The procedure 2000 drives at block 2020 continued, wherein the display module based on the distorted image (in particular the plurality of respective pixel values thereof) generates the plurality of respective scaling factors, and a deformation function, which describes a deformation caused by an eyepiece, a lens-compensated distorted image that is a version of the distorted image which is deformed in an inverse relationship to the deformation caused by the eyepiece. In various implementations, the lens-compensated distorted image appears undeformed when viewed through the eyepiece by a user on a display panel (possibly undistorted after lens compensation). In various implementations, the display module generates the lens compensated distorted image without generating an intermediate image in a display space. In particular, the display module generates the lens-compensated distorted image without rectifying the distorted image. Accordingly, and as mentioned above, the display module generates the lens compensated distorted image based on the plurality of respective scaling factors.

In verschiedenen Implementierungen schließt das Erzeugen des linsenkompensierten verzerrten Bildes das Bestimmen des Pixelwerts einer Vielzahl von Pixeln (z. B. jedes Pixel) des linsenkompensierten verzerrten Bildes ein. Dementsprechend erzeugt das Anzeigemodul in verschiedenen Implementierungen das linsenkompensierte verzerrte Bild durch Bestimmen des Pixelwerts eines bestimmten Pixels an einer ersten Stelle des linsenkompensierten verzerrten Bildes. In verschiedenen Implementierungen bestimmt das Anzeigemodul das Pixel eines bestimmten Pixels an einer ersten Stelle des linsenkompensierten verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Pixelwerten von Pixeln des verzerrten Bildes in einer Umgebung einer zweiten Stelle. In verschiedenen Implementierungen ist die Umgebung ein 4x4-Block der Pixel, die der zweiten Stelle am nächsten sind. In verschiedenen Implementierungen ist die Umgebung ein 9x9-Block von Pixeln. In verschiedenen Implementierungen bestimmt das Anzeigemodul die zweite Stelle auf Grundlage der ersten Stelle und einer Umformungsfunktion des Okulars. In verschiedenen Implementierungen ist die Umformungsfunktion eine homografische Umformungsfunktion, die als eine Eingabe einen Pixelplatz eines Pixels eines Eingabebildes annimmt und als eine Ausgabe den Pixelplatz des Pixels in dem Ausgabebild bereitstellt.In various implementations, generating the lens-compensated warped image includes determining the pixel value of a plurality of pixels (e.g., each pixel) of the lens-compensated warped image. Accordingly, in various implementations, the display module generates the lens-compensated warped image by determining the pixel value of a particular pixel at a first location in the lens-compensated warped image. In various implementations, the display module determines the pixel of a particular pixel at a first location of the lens-compensated distorted image based on the plurality of respective pixel values of pixels of the distorted image in a vicinity of a second location. In various implementations, the neighborhood is a 4x4 block of the pixels closest to the second digit. In various implementations, the environment is a 9x9 block of pixels. In various implementations, the display module determines the second location based on the first location and a transformation function of the eyepiece. In various implementations, the transformation function is a homographic transformation function that takes as an input a pixel location of a pixel of an input image and provides as an output the pixel location of the pixel in the output image.

In verschiedenen Implementierungen schließt das Bestimmen des Pixelwerts des bestimmten Pixels des linsenkompensierten verzerrten Bildes das Bestimmen korrigierter Abstände zwischen der zweiten Stelle und Pixelplätzen der Vielzahl von Pixeln in der Umgebung des entsprechenden Pixels des verzerrten Bildes basierend auf den jeweiligen Skalierungsfaktoren der Pixel in der Umgebung des entsprechenden Pixels des verzerrten Bildes ein.In various implementations, determining the pixel value of the particular pixel of the lens-compensated distorted image includes determining corrected distances between the second location and pixel locations of the plurality of pixels in the vicinity of the corresponding pixel of the distorted image based on the respective scaling factors of the pixels in the vicinity of the corresponding Pixels of the distorted image.

Zum Beispiel kann bei fehlenden Skalierungsfaktoren bestimmt werden, dass der Abstand zwischen einer zweiten Stelle bei (0, 2) und einem ersten Pixel bei (0, 1) gleich dem Abstand zwischen der zweiten Stelle und einem zweiten Pixel bei (0, 3), z. B. 1, ist. Wenn jedoch das erste Pixel einem Skalierungsfaktor von 1 zugeordnet ist und das zweite Pixel einem Skalierungsfaktor von 4 zugeordnet ist, ist der korrigierte Abstand zwischen der zweiten Stelle und dem ersten Pixel (z. B. 1) kleiner als der korrigierte Abstand zwischen der zweiten Stelle und dem zweiten Pixel (z. B. 4).For example, if there are no scaling factors, it can be determined that the distance between a second position at (0, 2) and a first pixel at (0, 1) is equal to the distance between the second position and a second pixel at (0, 3), z. B. 1 is. However, if the first pixel is assigned a scale factor of 1 and the second pixel is assigned a scale factor of 4, the corrected distance between the second location and the first pixel (e.g. 1) is less than the corrected distance between the second location and the second pixel (e.g. 4).

In verschiedenen Implementierungen schließt das Bestimmen des Pixelwerts des bestimmten Pixels des linsenkompensierten verzerrten Bildes das Auswählen eines der Vielzahl von jeweiligen Pixelwerten des verzerrten Bildes in der Umgebung der zweiten Stelle basierend auf den jeweiligen Skalierungsfaktoren der Pixel des verzerrten Bildes in der Umgebung der zweiten Stelle ein. Dementsprechend führt das Anzeigemodul in verschiedenen Implementierungen eine proximale Interpolation durch, wobei der nächste Nachbar auf Grundlage korrigierter Abstände, die auf den Skalierungsfaktoren basieren, bestimmt wird.In various implementations, determining the pixel value of the particular pixel of the lens compensated distorted image includes selecting one of the plurality of respective pixel values of the distorted image in the vicinity of the second location based on the respective scaling factors of the pixels of the distorted image in the vicinity of the second location. Accordingly, in various implementations, the display module performs proximal interpolation, with the closest neighbor being determined based on corrected distances based on the scaling factors.

In verschiedenen Implementierungen schließt das Bestimmen des Pixelwerts des bestimmten Pixels des linsenkompensierten verzerrten Bildes das Mitteln (z. B. Bestimmen eines gewichteten Durchschnitts) der Vielzahl von jeweiligen Pixelwerten von Pixeln des verzerrten Bildes in der Umgebung der zweiten Stelle basierend auf den jeweiligen Skalierungsfaktoren der Pixel des verzerrten Bildes in der Umgebung der zweiten Stelle ein. Dementsprechend führt das Anzeigemodul in verschiedenen Implementierungen eine Polynom-Interpolation durch (wovon eine lineare Interpolation ein Beispiel ist), wobei Gewichtungen auf Grundlage korrigierter Abstände, die auf den Skalierungsfaktoren basieren, bestimmt werden. Somit ist in verschiedenen Implementierungen der Pixelwert des bestimmten Pixels des linsenkompensierten verzerrten Bildes ein gewichtetes Mittel des Pixelwerts von Pixeln, gewichtet durch den korrigierten Abstand zwischen der zweiten Stelle und den Pixeln.In various implementations, determining the pixel value of the particular pixel of the lens compensated distorted image includes averaging (e.g., determining a weighted average) A plurality of respective pixel values of pixels of the distorted image in the vicinity of the second location based on the respective scaling factors of the pixels of the distorted image in the vicinity of the second location. Accordingly, in various implementations, the display module performs polynomial interpolation (of which linear interpolation is an example), where weights are determined based on corrected distances based on the scaling factors. Thus, in various implementations, the pixel value of the particular pixel of the lens compensated distorted image is a weighted average of the pixel value of pixels weighted by the corrected distance between the second location and the pixels.

Wie vorstehend in Bezug auf 2 beschrieben, stellt das Linsenkompensationsmodul 232 das linsenkompensierte verzerrte Bild (und die jeweiligen Skalierungsfaktoren) an das Panelkompensationsmodul 234 bereit. Das Panelkompensationsmodul 234 wandelt das linsenkompensierte verzerrte Bild in Paneldaten um, die von der Anzeigetafel 240 gelesen werden sollen. Dementsprechend empfängt in verschiedenen Implementierungen das Panelkompensationsmodul 234 ein verzerrtes Bild (z. B. das linsenkompensierte verzerrte Bild) mit einer Vielzahl von Pixeln an jeweiligen Stellen, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet sind, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in einem Anzeigeraum anzeigen.As above in relation to 2 describes the lens compensation module 232 the lens-compensated distorted image (and the respective scaling factors) to the panel compensation module 234 ready. The panel compensation module 234 converts the lens-compensated distorted image into panel data that is sent by the display board 240 should be read. Accordingly, in various implementations, the panel compensation module receives 234 a warped image (e.g., the lens compensated warped image) having a plurality of pixels at respective locations evenly spaced in a grid pattern in a warped space, the plurality of pixels each having a plurality of respective pixel values and a plurality of respective ones Scaling factors are assigned which indicate a plurality of respective resolutions at a plurality of respective locations in a display space.

Das Anzeigefeld 240 schließt eine Matrix aus M×N Pixeln ein, die sich an jeweiligen Stellen in einem Anzeigeraum befinden. Das Anzeigefeld 240 zeigt ein angezeigtes Bild durch Emittieren von Licht von jedem der Pixel an, wie durch die Paneldaten beschrieben. In verschiedenen Implementierungen schließen die Paneldaten einen Pixelwert für jedes Pixel des Anzeigefelds 240 ein. Zum Beispiel können die Paneldaten einen Pixelwert für ein bestimmtes Pixel des Anzeigefelds 240 einschließen und das bestimmte Pixel emittiert Licht gemäß diesem Pixelwert. In verschiedenen Implementierungen schließen die Paneldaten einen Pixelwert für jeden einer Vielzahl von Blöcken von Pixeln des Anzeigefelds 240 ein. Zum Beispiel können die Paneldaten einen Pixelwert für einen 2x2-Block von Pixeln des Anzeigefelds 240 einschließen und jedes der Pixel des Blocks emittiert Licht gemäß diesem Pixelwert.The display panel 240 includes a matrix of M × N pixels located at respective locations in a display space. The display panel 240 displays a displayed image by emitting light from each of the pixels as described by the panel data. In various implementations, the panel data includes a pixel value for each pixel of the display field 240 a. For example, the panel data can be a pixel value for a particular pixel of the display field 240 and the particular pixel emits light according to that pixel value. In various implementations, the panel data includes a pixel value for each of a plurality of blocks of pixels of the display panel 240 a. For example, the panel data can be a pixel value for a 2x2 block of pixels of the display panel 240 and each of the pixels of the block emits light according to that pixel value.

In verschiedenen Implementierungen schließen die Paneldaten Daten bezüglich einer Vielzahl von Auflösungszonen ein. Jede Auflösungszone ist durch eine Grenze und einen oder mehrere Auflösungsreduktionsfaktoren definiert, die ganze Zahlen sind (z. B. ein einzelner Auflösungsreduktionsfaktor oder sowohl ein horizontaler Auflösungsreduktionsfaktor als auch ein vertikaler Auflösungsreduktionsfaktor).In various implementations, the panel data includes data relating to a variety of resolution zones. Each disintegration zone is defined by a boundary and one or more disintegration reduction factors that are integers (e.g., a single disintegration reduction factor or both a horizontal resolution reduction factor and a vertical resolution reduction factor).

21A veranschaulicht eine Darstellung von Paneldaten 2110, die eine Vielzahl von Auflösungszonen 2111A-2111C angeben. Die Vielzahl von Auflösungszonen 2111A-2111C schließt eine erste Auflösungszone 2111A mit einer ersten Grenze und einem Auflösungsreduktionsfaktor von eins ein. Mit einem Auflösungsreduktionsfaktor von eins wird die Auflösung nicht von der maximalen Auflösung des Anzeigefelds 240 reduziert und jeder empfangene Pixelwert wird von einem einzelnen Pixel des Anzeigefelds 240 angezeigt. Die Vielzahl von Auflösungszonen 2111A-2111C schließt eine zweite Auflösungszone 2111B mit einer zweiten Grenze und einem Auflösungsreduktionsfaktor von zwei ein. Die zweite Grenze der zweiten Auflösungszone 2111B schließt zwei Teile ein, einen inneren Teil an derselben Stelle wie die erste Grenze der ersten Auflösungszone 2111A, und einen äußeren Teil, der die zweite Auflösungszone 2111B umgibt. Mit einem Auflösungsreduktionsfaktor von zwei wird die Auflösung auf die Hälfte der maximalen Auflösung des Anzeigefelds 240 reduziert und jeder von dem Anzeigefeld 240 empfangene Pixelwert wird durch einen 2x2-Block von Pixeln des Anzeigefelds 240 angezeigt. Die Vielzahl von Auflösungszonen 2111A-2111C schließt eine dritte Auflösungszone 2111C mit einer dritten Grenze und einem Auflösungsreduktionsfaktor von vier ein. Die dritte Grenze der dritten Auflösungszone 2111C schließt zwei Teile ein, einen inneren Teil an derselben Stelle wie der äußere Teil der zweiten Grenze des zweiten Auflösungsbereichs 2111B, und einen äußeren Teil am Rand des Anzeigefelds 240. Mit einem Auflösungsreduktionsfaktor von vier wird die Auflösung auf ein Viertel der maximalen Auflösung des Anzeigefelds 240 reduziert und jeder von dem Anzeigefeld 240 empfangene Pixelwert wird durch einen 4x4-Block von Pixeln des Anzeigefelds 240 angezeigt. 21A illustrates a representation of panel data 2110 having a variety of dissolution zones 2111A-2111C specify. The multitude of dissolution zones 2111A-2111C closes a first dissolution zone 2111A with a first limit and a resolution reduction factor of one. With a resolution reduction factor of one, the resolution does not differ from the maximum resolution of the display field 240 is reduced and each pixel value received is from a single pixel of the display panel 240 displayed. The multitude of dissolution zones 2111A-2111C closes a second dissolution zone 2111B with a second limit and a resolution reduction factor of two. The second boundary of the second dissolution zone 2111B includes two parts, an inner part at the same location as the first boundary of the first dissolution zone 2111A , and an outer part that is the second dissolution zone 2111B surrounds. With a resolution reduction factor of two, the resolution becomes half the maximum resolution of the display field 240 reduced and everyone from the display panel 240 The received pixel value is represented by a 2x2 block of pixels of the display field 240 displayed. The multitude of dissolution zones 2111A-2111C closes a third dissolution zone 2111C with a third limit and a resolution reduction factor of four. The third boundary of the third dissolution zone 2111C includes two parts, an inner part at the same location as the outer part of the second boundary of the second resolution range 2111B , and an outer part at the edge of the display panel 240 . With a resolution reduction factor of four, the resolution becomes a quarter of the maximum resolution of the display field 240 reduced and everyone from the display panel 240 The received pixel value is represented by a 4x4 block of pixels of the display field 240 displayed.

In verschiedenen Implementierungen nehmen die Paneldaten, welche die Vielzahl von Auflösungszonen anzeigen, verschiedene Formen an. Zum Beispiel werden in verschiedenen Implementierungen die Vielzahl von Auflösungszonen 2111A-2111C als ein Platz der ersten Auflösungszone 2111A (z. B. der Platz des linken oberen Pixels), eine Größe der ersten Auflösungszone 2111A, ein Platz der zweiten Auflösungszone 2111B (z. B. der Platz des linken oberen Pixels), und die Größe der zweiten Auflösungszone 2111B, wenn sie die erste Auflösungszone 2111A enthielt, kommuniziert. Die Grenze der dritten Auflösungszone 2111C kann inferenziell als den Rest des Anzeigefelds 240 einnehmend bestimmt werden. In ähnlicher Weise können die Auflösungsreduktionsfaktoren inferenziell als eins, zwei und vier bestimmt werden.In different implementations, the panel data indicating the plurality of resolution zones takes different forms. For example, in different implementations, the plurality of resolution zones 2111A-2111C as a place of the first dissolution zone 2111A (e.g. the space of the upper left pixel), a size of the first resolution zone 2111A , a place of the second dissolution zone 2111B (e.g. the space of the top left pixel), and the size of the second resolution zone 2111B when they reach the first dissolution zone 2111A contained, communicated. The limit of the third dissolution zone 2111C can inferential than the rest of the display field 240 be determined engaging. Similarly, the resolution reduction factors can be determined inferentially as one, two and four.

21B veranschaulicht eine Darstellung von Paneldaten 2120, die eine Vielzahl von Auflösungszonen 2121A-2121Y anzeigen. Die Vielzahl von Auflösungszonen 2121A-2121Y schließt eine erste Auflösungszone 2121M mit einer ersten Grenze, einen horizontalen Auflösungsreduktionsfaktor von eins und einen vertikalen Auflösungsreduktionsfaktor von eins ein. Mit sowohl dem horizontalen Auflösungsreduktionsfaktor als auch dem vertikalen Auflösungsreduktionsfaktor von eins wird die Auflösung nicht von der maximalen Auflösung des Anzeigefelds 240 reduziert, und jeder empfangene Pixelwert wird von einem einzelnen Pixel des Anzeigefelds 240 angezeigt. Dementsprechend schließt in verschiedenen Implementierungen die Vielzahl von Auflösungszonen eine Auflösungszone ein, in der die Auflösung nicht reduziert wird. 21B illustrates a representation of panel data 2120 having a variety of dissolution zones 2121A-2121Y Show. The multitude of dissolution zones 2121A-2121Y closes a first dissolution zone 2121M with a first limit, a horizontal resolution reduction factor of one and a vertical resolution reduction factor of one. With both the horizontal resolution reduction factor and the vertical resolution reduction factor of one, the resolution does not become of the maximum resolution of the display panel 240 is reduced, and each pixel value received is from a single pixel of the display panel 240 displayed. Accordingly, in various implementations, the plurality of dissolution zones includes a dissolution zone in which the dissolution is not reduced.

Die Vielzahl von Auflösungszonen 2121A-2121Y schließt eine zweite Auflösungszone 2121N mit einer zweiten Grenze, einen horizontalen Auflösungsreduktionsfaktor von zwei und einen vertikalen Auflösungsreduktionsfaktor von eins ein. Mit einem horizontalen Auflösungsreduktionsfaktor von zwei und einem vertikalen Auflösungsreduktionsfaktor von eins beträgt die horizontale Auflösung die Hälfte der maximalen horizontalen Auflösung des Anzeigefelds 240, die vertikale Auflösung wird nicht von der maximalen vertikalen Auflösung des Anzeigefelds 240 reduziert, und jeder empfangene Pixelwert wird durch einen 2x1-Block von Pixeln des Anzeigefelds 240 angezeigt. Dementsprechend schließt in verschiedenen Implementierungen die Vielzahl von Auflösungszonen eine Auflösungszone ein, in der die Auflösung in einer Dimension reduziert ist, aber nicht in einer anderen Dimension reduziert ist.The multitude of dissolution zones 2121A-2121Y closes a second dissolution zone 2121N with a second limit, a horizontal resolution reduction factor of two and a vertical resolution reduction factor of one. With a horizontal resolution reduction factor of two and a vertical resolution reduction factor of one, the horizontal resolution is half the maximum horizontal resolution of the display field 240 , the vertical resolution is not limited by the maximum vertical resolution of the display panel 240 is reduced, and each pixel value received is passed through a 2x1 block of pixels of the display panel 240 displayed. Accordingly, in various implementations, the plurality of dissolution zones includes a dissolution zone in which the resolution is reduced in one dimension but not reduced in another dimension.

Die Vielzahl von Auflösungszonen 2121A-2121Y schließt eine dritte Auflösungszone 1221S mit einer dritten Grenze, einen horizontalen Auflösungsreduktionsfaktor von zwei und einen vertikalen Auflösungsreduktionsfaktor von zwei ein. Mit sowohl dem horizontalen Auflösungsreduktionsfaktor als auch dem vertikalen Auflösungsreduktionsfaktor von zwei beträgt die Auflösung die Hälfte der maximalen Auflösung des Anzeigefelds 240, und jeder empfangene Pixelwert wird durch einen 2x2-Block von Pixeln des Anzeigefelds 240 angezeigt. Dementsprechend schließt in verschiedenen Implementierungen die Vielzahl von Auflösungszonen eine Auflösungszone ein, in der die Auflösung in beiden Dimensionen reduziert ist.The multitude of dissolution zones 2121A-2121Y closes a third dissolution zone 1221S with a third limit, a horizontal resolution reduction factor of two and a vertical resolution reduction factor of two. With both the horizontal resolution reduction factor and the vertical resolution reduction factor of two, the resolution is half the maximum resolution of the display panel 240 , and each pixel value received is passed through a 2x2 block of pixels of the display panel 240 displayed. Accordingly, in various implementations, the plurality of disintegration zones include a disintegration zone in which resolution is reduced in both dimensions.

Die Vielzahl von Auflösungszonen 2121A-2121Y schließt eine vierte Auflösungszone 1221 T mit einem horizontalen Auflösungsreduktionsfaktor von vier und einem vertikalen Auflösungsreduktionsfaktor von zwei ein. Mit einem horizontalen Auflösungsreduktionsfaktor von vier und einem vertikalen Auflösungsreduktionsfaktor von zwei beträgt die horizontale Auflösung ein Viertel der maximalen horizontalen Auflösung des Anzeigefelds 240, die vertikale Auflösung beträgt die Hälfte der maximalen vertikalen Auflösung des Anzeigefelds 240, und jeder empfangene Pixelwert wird durch einen 4x2-Block von Pixeln des Anzeigefelds 240 angezeigt. Dementsprechend schließt in verschiedenen Implementierungen die Vielzahl von Auflösungszonen eine Auflösungszone ein, in der die Auflösung in einer Dimension um einen ersten Betrag reduziert wird und in einer anderen Dimension um einen zweiten Betrag (der sich von dem ersten Betrag unterscheidet) reduziert wird.The multitude of dissolution zones 2121A-2121Y includes a fourth dissolution zone 1221 T having a horizontal dissolution reduction factor of four and a vertical dissolution reduction factor of two. With a horizontal resolution reduction factor of four and a vertical resolution reduction factor of two, the horizontal resolution is a quarter of the maximum horizontal resolution of the display panel 240 , the vertical resolution is half the maximum vertical resolution of the display field 240 , and each pixel value received is represented by a 4x2 block of pixels of the display field 240 displayed. Accordingly, in various implementations, the plurality of dissolution zones include a dissolution zone in which the dissolution is reduced in one dimension by a first amount and in another dimension is reduced by a second amount (different from the first amount).

Wie vorstehend erwähnt, nehmen in verschiedenen Implementierungen die Paneldaten, welche die Vielzahl von Auflösungszonen anzeigen, verschiedene Formen an. Zum Beispiel werden in verschiedenen Implementierungen die Vielzahl von Auflösungszonen 2121A-2121Y als ein Platz jeder Auflösungszone, eine Größe jeder Auflösungszone und die entsprechenden horizontalen und vertikalen Auflösungsreduktionsfaktoren kommuniziert. In verschiedenen Implementierungen können die Plätze der Auflösungszonen aus der Größe abgeleitet werden (z.B. befindet sich die erste Auflösungszone links oben, die zweite Auflösungszone befindet sich neben und rechts von der ersten Auflösungszone, die dritte Auflösungszone befindet sich neben und rechts von der zweiten Auflösungszone, die vierte Auflösungszone befindet sich neben und rechts von der dritten Auflösungszone, die fünfte Auflösungszone befindet sich neben und rechts von der vierten Auflösungszone, die sechste Auflösungszone befindet sich neben und unterhalb der ersten Auflösungszone usw.).As mentioned above, in different implementations, the panel data indicating the plurality of resolution zones take different forms. For example, in different implementations, the plurality of resolution zones 2121A-2121Y as a location of each disintegration zone, a size of each disintegration zone, and the corresponding horizontal and vertical resolution reduction factors. In various implementations, the locations of the disintegration zones can be derived from the size (e.g. the first disintegration zone is on the top left, the second disintegration zone is next to and to the right of the first dissolution zone, the third dissolution zone is next to and to the right of the second dissolution zone, fourth dissolution zone is next to and to the right of the third dissolution zone, the fifth dissolution zone is next to and to the right of the fourth dissolution zone, the sixth dissolution zone is next to and below the first dissolution zone, etc.).

Unter erneuter Bezugnahme auf 2 erzeugt das Panelkompensationsmodul 234 die Paneldaten auf Grundlage des verzerrten Bildes und der Skalierungsfaktoren. Wie vorstehend beschrieben, werden in verschiedenen Implementierungen die Skalierungsfaktoren (durch das Rendering-Modul 210) auf Grundlage einer Rendering-Auflösungsfunktion erzeugt. Dementsprechend definieren die Skalierungsfaktoren eine Auflösungsfunktion, die im Allgemeinen die Auflösung des angezeigten Bildes in Abhängigkeit der Stelle in dem Anzeigeraum beschreibt. Ebenso definieren die Auflösungszonen (z. B. ihre Lage, Größe und Reduktionsauflösungsfaktoren) eine Auflösungsfunktion, welche die Auflösung des angezeigten Bildes in Abhängigkeit der Stelle im Anzeigeraum beschreibt.Referring again to FIG 2 generates the panel compensation module 234 the panel data based on the distorted image and the scaling factors. As described above, in various implementations, the scaling factors (by the rendering module 210 ) based on a rendering resolution function. Accordingly, the scaling factors define a resolution function, which generally describes the resolution of the displayed image as a function of the location in the display space. The resolution zones (e.g. their position, size and reduction resolution factors) also define a resolution function which describes the resolution of the displayed image as a function of the location in the display space.

22 veranschaulicht einen Graphen 2200 beispielhafter Auflösungsfunktionen, die durch Skalierungsfaktoren und Auflösungszonen definiert sind. Der Graph 2200 schließt eine erste Auflösungsfunktion 2210 ein, die durch Skalierungsfaktoren definiert ist, die einem verzerrten Bild zugeordnet sind. Der Graph 2200 schließt eine zweite Auflösungsfunktion 2220 ein, die durch eine Vielzahl von Auflösungszonen mit entsprechenden Auflösungsreduktionsfaktoren definiert ist. 22nd illustrates a graph 2200 exemplary resolution functions defined by scaling factors and resolution zones. The graph 2200 closes a first resolution function 2210 defined by scale factors associated with a distorted image. The graph 2200 closes a second resolution function 2220 which is defined by a plurality of dissolution zones with corresponding dissolution reduction factors.

23 veranschaulicht einen weiteren Graphen 2300 beispielhafter Auflösungsfunktionen, die durch Skalierungsfaktoren und Auflösungszonen definiert sind. Der Graph 2300 schließt eine erste Auflösungsfunktion 2310 ein, die durch Skalierungsfaktoren definiert ist, die einem verzerrten Bild zugeordnet sind. Der Graph 2300 schließt eine zweite Auflösungsfunktion 2320 ein, die durch eine Vielzahl von Auflösungszonen mit entsprechenden Auflösungsreduktionsfaktoren definiert ist. 23 illustrates another graph 2300 exemplary resolution functions defined by scaling factors and resolution zones. The graph 2300 closes a first resolution function 2310 defined by scale factors associated with a distorted image. The graph 2300 closes a second resolution function 2320 which is defined by a plurality of dissolution zones with corresponding dissolution reduction factors.

In verschiedenen Implementierungen bestimmt das Panelkompensationsmodul 234 die Grenzen der Auflösungszonen und die entsprechenden Auflösungsreduktionsfaktoren der Auflösungszonen auf Grundlage der Skalierungsfaktoren, so dass die durch die Auflösungszonen definierte Auflösungsfunktion an allen Stellen größer ist als die durch die Skalierungsfaktoren definierte Auflösungsfunktion. Auf diese Weise werden Artefakte an den Rändern der Auflösungszonen aufgrund einer Auflösungsänderung minimiert.In various implementations, the panel compensation module determines 234 the limits of the resolution zones and the corresponding resolution reduction factors of the resolution zones based on the scaling factors, so that the resolution function defined by the resolution zones is greater at all points than the resolution function defined by the scaling factors. In this way, artifacts at the edges of the resolution zones due to a change in resolution are minimized.

In verschiedenen Implementierungen bestimmt das Panelkompensationsmodul 234 die Grenze (z. B. Größe und Ort) einer Vollauflösungszone mit einem Auflösungsreduktionsfaktor von eins (oder einem horizontalen Auflösungsreduktionsfaktor und einem vertikalen Auflösungsreduktionsfaktor, beide gleich eins). In verschiedenen Implementierungen befindet sich die Mitte der Vollauflösungsauflösungszone in der Mitte des Maximums der durch die Skalierungsfaktoren (z. B. wohin der Benutzer blickt) angezeigten Auflösungsfunktion.In various implementations, the panel compensation module determines 234 the boundary (e.g., size and location) of a full resolution zone with a resolution reduction factor of one (or a horizontal resolution reduction factor and a vertical resolution reduction factor, both equal to one). In various implementations, the center of the full resolution resolution zone is at the center of the maximum of the resolution function indicated by the scale factors (e.g., where the user is looking).

In verschiedenen Implementierungen wird die Größe der Vollauflösungsauflösungszone basierend auf verschiedenen Faktoren bestimmt. Zum Beispiel wird in verschiedenen Implementierungen die Größe der Vollauflösungsauflösungszone auf Grundlage der Peak-Breite der durch die Skalierungsfaktoren angegebenen Auflösungsfunktion bestimmt. In verschiedenen Implementierungen wird die Größe der Vollauflösungsauflösungszone auf Grundlage von Augenverfolgungsdaten, z. B. wie stark sich der starre Blick des Benutzers bewegt, bestimmt. In verschiedenen Implementierungen wird die Größe der Vollauflösungsauflösungszone auf Grundlage von Augenverfolgungsmetadaten bestimmt, die eine Eigenschaft der Augenverfolgungsdaten anzeigen.In various implementations, the size of the full resolution resolution zone is determined based on various factors. For example, in various implementations, the size of the full resolution resolution zone is determined based on the peak width of the resolution function specified by the scale factors. In various implementations, the size of the full resolution resolution zone is determined based on eye tracking data, e.g. B. how much the user's gaze moves is determined. In various implementations, the size of the full resolution resolution zone is determined based on eye tracking metadata that is indicative of a property of the eye tracking data.

In verschiedenen Implementierungen schließen die Augenverfolgungsmetadaten Daten ein, die auf eine Konfidenz zu den Augenverfolgungsdaten hinweisen. Zum Beispiel stellen die Augenverfolgungsmetadaten in verschiedenen Implementierungen eine Messung einer Vermutung bereit, dass die Augenverfolgungsdaten den Blick des Benutzers korrekt angeben. In verschiedenen Implementierungen schließen die Daten, die auf die Konfidenz der Augenverfolgungsdaten hinweisen, Daten ein, die eine Genauigkeit der Augenverfolgungsdaten angeben. In verschiedenen Implementierungen schließen die Daten, die auf die Konfidenz der Augenverfolgungsdaten hinweisen, Daten ein, die auf eine Latenz der Augenverfolgungsdaten hinweisen (z. B. einen Unterschied zwischen dem Zeitpunkt, zu dem die Augenverfolgungsdaten erzeugt werden, und dem Zeitpunkt, zu dem die Augenverfolgungsdaten empfangen werden). In verschiedenen Implementierungen schließen die Augenverfolgungsdaten Daten ein, die auf eine Vorhersage des Blicks des Benutzers hinweisen, und die Daten, die auf eine Konfidenz der Augenverfolgungsdaten hinweisen, schließen Daten ein, die auf eine Konfidenz der Vorhersage hinweisen. In verschiedenen Implementierungen basieren die Daten, die auf eine Vorhersage des Blicks des Benutzers hinweisen, auf vergangenen Messungen des Blicks des Benutzers in Bezug auf vergangene erfasste Bilder. In verschiedenen Implementierungen basiert die Vorhersage des Blicks des Benutzers auf einer kategorisierten vergangenen Bewegung des Blicks des Benutzers als kontinuierliche Fixation, reibungslose Verfolgung, Sakkade usw. In verschiedenen Implementierungen basiert die Konfidenz der Vorhersage auf dieser Kategorisierung. Insbesondere ist in verschiedenen Implementierungen die Konfidenz der Vorhersage höher, wenn vergangene Bewegung als kontinuierliche Fixation oder gleichmäßige Verfolgung kategorisiert wird, als wenn die vergangene Bewegung als Sakkade kategorisiert wird. Dementsprechend wird in verschiedenen Implementierungen die Größe der Vollauflösungszone auf Grundlage von Daten bestimmt, die auf eine Konfidenz der Augenverfolgungsdaten hinweisen. Zum Beispiel ist in verschiedenen Implementierungen die Größe der Vollauflösungsauflösungszone größer, wenn die Konfidenz geringer ist.In various implementations, the eye tracking metadata includes data that is indicative of confidence about the eye tracking data. For example, in various implementations, the eye tracking metadata provides a measure of a presumption that the eye tracking data is correctly indicating the user's gaze. In various implementations, the data indicative of the confidence of the eye tracking data includes data indicating an accuracy of the eye tracking data. In various implementations, the data indicative of eye tracking data confidence includes data indicative of eye tracking data latency (e.g., a difference between when the eye tracking data is generated and when the Eye tracking data is received). In various implementations, the eye tracking data includes data that is indicative of a prediction of the user's gaze, and the data that is indicative of confidence in the eye tracking data includes data that is indicative of confidence in the prediction. In various implementations, the data indicative of a prediction of the user's gaze is based on past measurements of the user's gaze with respect to past captured images. In various implementations, the prediction of the user's gaze is based on a categorized past movement of the user's gaze as continuous fixation, smooth tracking, saccade, etc. In various implementations, the confidence of the prediction is based on this categorization. In particular, in various implementations, the confidence of the prediction is higher when past motion is categorized as continuous fixation or uniform tracking than when past motion is categorized as saccade. Accordingly, in various implementations, the size of the full resolution zone is determined based on data indicative of confidence in the eye tracking data. For example, in various implementations, the size of the full resolution resolution zone is larger when the confidence is lower.

In verschiedenen Implementierungen schließen die Augenverfolgungsmetadaten Daten ein, die auf eine oder mehrere Biometriken des Benutzers hinweisen, und insbesondere Biometriken, die Augenverfolgungsmetadaten oder deren Konfidenz beeinflussen. Insbesondere schließen in verschiedenen Implementierungen die Biometriken des Benutzers eines oder mehrere von Augenanatomie, Ethnizität/Physionometrie, Augenfarbe, Alter, Sehhilfen (z. B. Korrekturlinsen), Make-up (z. B. Mascara), medizinischem Zustand, Historie der Blickvariation, Eingabepräferenzen oder -kalibrierung, Kopfhörerposition/- ausrichtung, Pupillenerweiterung/-zentrierung und/oder Augenlidposition ein. Dementsprechend wird in verschiedenen Implementierungen die Größe der Vollauflösungszone auf Grundlage einer oder mehrerer Biometriken des Benutzers bestimmt.In various implementations, the eye tracking metadata includes data indicative of one or more biometrics of the user, and in particular biometrics that affect eye tracking metadata or its confidence. In particular, in various implementations, the user's biometrics include one or more of eye anatomy, ethnicity / physionometry, Eye color, age, visual aids (e.g. corrective lenses), make-up (e.g. mascara), medical condition, history of gaze variation, input preferences or calibration, headphone position / alignment, pupil dilation / centering and / or eyelid position . Accordingly, in various implementations, the size of the full resolution zone is determined based on one or more biometrics of the user.

In verschiedenen Implementierungen schließen die Augenverfolgungsmetadaten Daten ein, die eine oder mehrere Bedingungen einer Umgebung des Benutzers angeben, in der die Augenverfolgungsdaten erzeugt wurden. Insbesondere schließen in verschiedenen Implementierungen die Umgebungsbedingungen eines oder mehrere von Vibration, Umgebungstemperatur, IR-Lichteinfall oder IR-Lichtintensität ein. Dementsprechend wird in verschiedenen Implementierungen die Größe der Vollauflösungszone auf Grundlage einer oder mehrerer Bedingungen einer Umgebung des Benutzers bestimmt.In various implementations, the eye tracking metadata includes data indicative of one or more conditions of an environment of the user in which the eye tracking data was generated. In particular, in various implementations, the environmental conditions include one or more of vibration, ambient temperature, IR light incidence, or IR light intensity. Accordingly, in various implementations, the size of the full resolution zone is determined based on one or more conditions of an environment of the user.

In verschiedenen Implementierungen werden, wenn die Größe der Vollauflösungsauflösungszone bestimmt wird (z. B. die Breite der Spitze der Auflösungsfunktion 2220 von 22), die Grenzen der verbleibenden Auflösungszonen so bestimmt, dass die durch die Auflösungszonen angegebene Auflösungsfunktion minimiert wird, während sie immer noch größer als die durch die Skalierungsfaktoren angegebene Auflösungsfunktion ist. In verschiedenen Implementierungen ist die Minimierung durch die Tatsache begrenzt, dass die Auflösungsreduktionsfaktoren ganze Zahlen sind (oder eine Teilmenge davon, wie nur eins, zwei oder vier). In verschiedenen Implementierungen ist die Minimierung durch die Tatsache begrenzt, dass die Größe der Auflösungszonen ein Vielfaches der Reduktionsauflösungsfaktoren sein muss (z. B. eine Auflösungszone mit einem Auflösungsreduktionsfaktor von zwei muss 2Ux2V sein, wobei U und V ganze Zahlen sind). In verschiedenen Implementierungen ist die Minimierung durch die Tatsache begrenzt, dass die Gesamtgröße der Auflösungszonen gleich der Größe des Anzeigefelds sein muss.In various implementations, when determining the size of the full resolution resolution zone (e.g., the width of the peak of the resolution function 2220 of 22nd ), determines the boundaries of the remaining resolution zones so that the resolution function specified by the resolution zones is minimized while it is still greater than the resolution function specified by the scale factors. In various implementations, the minimization is limited by the fact that the resolution reduction factors are integers (or a subset of them, such as just one, two, or four). In various implementations, the minimization is limited by the fact that the size of the resolution zones must be a multiple of the reduction resolution factors (e.g. a resolution zone with a resolution reduction factor of two must be 2Ux2V, where U and V are integers). In various implementations, the minimization is limited by the fact that the total size of the resolution zones must be equal to the size of the display panel.

In verschiedenen Implementierungen basiert die Größe der anderen Auflösungszonen auf der Form der Auflösungsfunktion, die durch die Skalierungsfaktoren angegeben wird. Zum Beispiel nimmt in 23 die durch die Skalierungsfaktoren angegebene Auflösungsfunktion 2310 in Abhängigkeit von der Entfernung von einem Fokusfenster gemäß einer gekrümmten Stufenfunktion mit Stufen bei einem Satz von Entfernungen ab, und die durch die Auflösungszonen angegebene Auflösungsfunktion 2320 nimmt in Abhängigkeit der Entfernung von dem Fokusfenster gemäß einer Stufenfunktion mit Stufen bei dem Satz von Entfernungen ab.In various implementations, the size of the other resolution zones is based on the shape of the resolution function specified by the scale factors. For example, in 23 the resolution function given by the scaling factors 2310 as a function of the distance from a focus window according to a curved step function with steps at a set of distances, and the resolution function indicated by the resolution zones 2320 decreases as a function of distance from the focus window according to a step function with steps in the set of distances.

24 ist eine Flussdiagrammdarstellung eines Verfahrens 2400 zum Erzeugen von Paneldaten gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 2400 von einem Anzeigemodul (oder einem Abschnitt davon) durchgeführt, wie dem Anzeigemodul 230 oder dem Panelkompensationsmodul 234 von 2. In verschiedenen Implementierungen wird das Verfahren 2400 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2, durchgeführt. In verschiedenen Implementierungen wird das Verfahren 2400 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren SR-Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 2400 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 2400 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 24 Figure 3 is a flow chart representation of a method 2400 for generating panel data according to some implementations. In some implementations (and as detailed below as an example) the method 2400 performed by a display module (or a portion thereof), such as the display module 230 or the panel compensation module 234 of 2 . In different implementations the procedure 2400 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 , carried out. In different implementations the procedure 2400 performed by a device having one or more processors, non-volatile memories, and one or more SR indicators. In some implementations, the procedure 2400 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 2400 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 2400 beginnt bei Block 2410, wobei das Anzeigemodul ein verzerrtes Bild (z. B. ein linsenkompensiertes verzerrtes Bild) empfängt, das einen Inhalt simulierter Realität (SR) darstellt, der in einem Anzeigeraum angezeigt werden soll, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in dem Anzeigeraum anzeigen.The procedure 2400 starts at block 2410 wherein the display module receives a distorted image (e.g., a lens compensated distorted image) representing simulated reality (SR) content to be displayed in a display space, the distorted image having a plurality of pixels at respective locations, evenly spaced in a grid pattern in distorted space, the plurality of pixels each being associated with a plurality of respective pixel values and a plurality of respective scale factors indicative of a plurality of respective resolutions at a plurality of respective locations in the display space.

In verschiedenen Implementierungen definiert die Vielzahl von jeweiligen Skalierungsfaktoren eine Abbildung zwischen dem verzerrten Raum und dem Anzeigeraum. Zum Beispiel werden in verschiedenen Implementierungen unterschiedliche Teile des SR-Inhalts, die ungleichmäßig beabstandeten Regionen in dem Anzeigeraum entsprechen, durch gleichmäßig beabstandete Bereiche in dem verzerrten Raum dargestellt.In various implementations, the plurality of respective scaling factors defines a mapping between the distorted space and the display space. For example, in different implementations, different portions of the SR content that correspond to unevenly spaced regions in the display space are represented by evenly spaced areas in the distorted space.

In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Pixelwert zugeordnet. In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder einem Satz Skalierungsfaktoren einschließlich eines horizontalen Skalierungsfaktors und eines vertikalen Skalierungsfaktors) zugeordnet. In verschiedenen Implementierungen ist jede einer Vielzahl von Kacheln der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder einem Satz von Skalierungsfaktoren einschließlich eines horizontalen Skalierungsfaktors und eines vertikalen Skalierungsfaktors) zugeordnet. Dementsprechend sind eine Vielzahl von Pixeln (z. B. jene einer einzelnen Kachel) einem einzelnen empfangenen Skalierungsfaktor (oder einem Satz von Skalierungsfaktoren einschließlich eines einzelnen horizontalen Skalierungsfaktors und eines einzelnen vertikalen Skalierungsfaktors) zugeordnet.In various implementations, each of the plurality of pixels is associated with a separately received pixel value. In various implementations, each of the plurality of pixels is each a separately received scale factor (or set of scale factors including one horizontal scaling factor and a vertical scaling factor). In various implementations, each of a plurality of tiles of the plurality of pixels is each associated with a separately received scale factor (or a set of scale factors including a horizontal scale factor and a vertical scale factor). Accordingly, a plurality of pixels (e.g., those of a single tile) are assigned a single received scale factor (or a set of scale factors including a single horizontal scale factor and a single vertical scale factor).

Somit schließt in verschiedenen Implementierungen das verzerrte Bild eine Vielzahl von Kacheln an jeweiligen Stellen ein, die gleichmäßig in einem Gittermuster in dem verzerrten Raum beabstandet sind, wobei jede der Vielzahl von Kacheln einem jeweiligen einen oder mehreren Skalierungsfaktoren zugeordnet ist. In verschiedenen Implementierungen schließen auch einer oder mehrere der Vielzahl von jeweiligen Skalierungsfaktoren einen horizontalen Skalierungsfaktor und einen vertikalen Skalierungsfaktor ein.Thus, in various implementations, the warped image includes a plurality of tiles at respective locations evenly spaced in a grid pattern in the warped space, each of the plurality of tiles being associated with a respective one or more scale factors. In various implementations, one or more of the plurality of respective scale factors also include a horizontal scale factor and a vertical scale factor.

In verschiedenen Implementierungen ist mindestens einer der Vielzahl von Skalierungsfaktoren keine ganze Zahl. Zum Beispiel wären beim Erzeugen der Skalierungsfaktoren als die Differenz zwischen zwei Tangensfunktionen die meisten der Vielzahl von Skalierungsfaktoren keine ganzen Zahlen.In various implementations, at least one of the plurality of scale factors is not an integer. For example, when generating the scale factors as the difference between two tangent functions, most of the plurality of scale factors would not be integers.

Das Verfahren 2400 fährt mit Block 2420 fort, wobei das Anzeigemodul auf Grundlage der Vielzahl von jeweiligen Skalierungsparametern für eine Vielzahl von Auflösungszonen eine Vielzahl von jeweiligen Grenzen in dem Anzeigeraum und eine Vielzahl von jeweiligen Auflösungsreduktionsfaktoren bestimmt, wobei die Vielzahl von jeweiligen Auflösungsreduktionsfaktoren ganze Zahlen sind. In verschiedenen Implementierungen schließt die Vielzahl von jeweiligen Auflösungsreduktionsfaktoren für eine bestimmte Auflösungszone einen einzelnen Auflösungsreduktionsfaktor ein. In verschiedenen Implementierungen schließt die Vielzahl von jeweiligen Auflösungsreduktionsfaktoren für eine bestimmte Auflösungszone einen horizontalen Auflösungsreduktionsfaktor und einen vertikalen Auflösungsreduktionsfaktor ein. In verschiedenen Implementierungen schließt die Vielzahl von jeweiligen Auflösungsreduktionsfaktoren einen ersten Auflösungsreduktionsfaktor von eins, einen zweiten Auflösungsreduktionsfaktor von zwei und einen dritten Auflösungsreduktionsfaktor von vier ein.The procedure 2400 drives with block 2420 wherein the display module determines, based on the plurality of respective scaling parameters for a plurality of resolution zones, a plurality of respective boundaries in the display space and a plurality of respective resolution reduction factors, the plurality of respective resolution reduction factors being integers. In various implementations, the plurality of respective dissolution reduction factors for a particular dissolution zone include a single dissolution reduction factor. In various implementations, the plurality of respective resolution reduction factors for a particular resolution zone include a horizontal resolution reduction factor and a vertical resolution reduction factor. In various implementations, the plurality of respective resolution reduction factors include a first resolution reduction factor of one, a second resolution reduction factor of two, and a third resolution reduction factor of four.

Die Vielzahl von Auflösungsreduktionsfaktoren gibt eine Auflösung an jeder der Vielzahl von jeweiligen Stellen in dem Anzeigeraum an (allgemein eine Auflösungsfunktion beschreibend). In ähnlicher Weise zeigt die Vielzahl von jeweiligen Skalierungsfaktoren eine Auflösung an jeder der Vielzahl von jeweiligen Stellen in dem Anzeigeraum an (allgemein eine Auflösungsfunktion beschreibend). In verschiedenen Implementierungen zeigt die Vielzahl von jeweiligen Auflösungsreduktionsfaktoren eine Auflösung an jeder der Vielzahl von jeweiligen Stellen in dem Anzeigeraum an, die größer ist als die jeweiligen Auflösungen an der Vielzahl von jeweiligen Stellen in dem Anzeigeraum, die durch die Vielzahl von jeweiligen Skalierungsfaktoren angezeigt werden.The plurality of resolution reduction factors indicate a resolution at each of the plurality of respective locations in the display space (generally describing a resolution function). Similarly, the plurality of respective scale factors indicate a resolution at each of the plurality of respective locations in the display space (generally describing a function of resolution). In various implementations, the plurality of respective resolution reduction factors indicate a resolution at each of the plurality of respective locations in the display space that is greater than the respective resolutions at the plurality of respective locations in the display space indicated by the plurality of respective scaling factors.

Zum Beispiel nehmen in verschiedenen Implementierungen die jeweiligen Auflösungen an der Vielzahl von jeweiligen Stellen in dem Anzeigeraum, die durch die Vielzahl von jeweiligen Skalierungsfaktoren angezeigt werden, in Abhängigkeit der Entfernung von einem Fokusfenster gemäß einer streng abnehmenden Funktion (wie z. B. durch die Auflösungsfunktion 2210 von 22 gezeigt) ab, und die Auflösung an jeder der Vielzahl von jeweiligen Stellen in dem Anzeigeraum, die durch die jeweiligen Auflösungsreduktionsfaktoren angezeigt werden, nehmen in Abhängigkeit der Entfernung von dem Fokusfenster gemäß einer Stufenfunktion (wie z. B. durch die Auflösungsfunktion 2220 von 22 gezeigt) ab.For example, in various implementations, the respective resolutions at the plurality of respective locations in the display space, which are indicated by the plurality of respective scaling factors, take depending on the distance from a focus window according to a strictly decreasing function (such as by the resolution function 2210 of 22nd and the resolution at each of the plurality of respective locations in the display space indicated by the respective resolution reduction factors decrease depending on the distance from the focus window according to a step function (such as the resolution function 2220 of 22nd shown).

Als weiteres Beispiel nehmen in verschiedenen Implementierungen die jeweiligen Auflösungen an der Vielzahl von jeweiligen Stellen in dem Anzeigeraum, die durch die Vielzahl von jeweiligen Skalierungsfaktoren angezeigt werden, in Abhängigkeit der Entfernung von einem Fokusfenster gemäß einer gekrümmten Stufenfunktion mit Stufen in einem Satz von Abständen (wie z. B. durch die Auflösungsfunktion 2310 von 23 gezeigt) ab, und die Auflösung an jeder der Vielzahl von jeweiligen Stellen in dem Anzeigeraum, die durch die jeweiligen Auflösungsreduktionsfaktoren angezeigt werden, nehmen in Abhängigkeit der Entfernung von dem Fokusfenster gemäß einer Stufenfunktion mit Stufen an dem Satz von Abständen (wie z. B. durch die Auflösungsfunktion 2320 von 23 gezeigt) ab.As another example, in various implementations take the respective resolutions at the plurality of respective locations in the display space indicated by the plurality of respective scale factors depending on the distance from a focus window according to a curved step function with steps at a set of distances (such as e.g. through the resolution function 2310 of 23 and the resolution at each of the plurality of respective locations in the display space indicated by the respective resolution reduction factors decrease depending on the distance from the focus window according to a step function with steps on the set of distances (such as through the resolution function 2320 of 23 shown).

In verschiedenen Implementierungen basiert eine Größe einer oder mehrerer der Vielzahl von Auflösungszonen, insbesondere einer Vollauflösung-Auflösungszone, auf Augenverfolgungsdaten. In verschiedenen Implementierungen basiert eine Größe einer oder mehrerer der Vielzahl von Auflösungszonen, insbesondere einer Vollauflösung-Auflösungszone, auf Augenverfolgungsmetadaten, wie etwa einer Konfidenz in die Augenverfolgungsdaten.In various implementations, a size of one or more of the plurality of resolution zones, particularly a full resolution zone, is based on eye tracking data. In various implementations, a size of one or more of the plurality of resolution zones, particularly a full resolution zone, is based on eye tracking metadata, such as a confidence in the eye tracking data.

Das Verfahren 2400 fährt bei Block 2430 fort, wobei das Anzeigemodul Daten überträgt, welche die Vielzahl von jeweiligen Grenzen in dem Anzeigeraum, die Vielzahl von jeweiligen Auflösungsreduktionsfaktoren und entsprechende Pixelwerte auf Grundlage der Vielzahl von jeweiligen Pixelwerten angeben. In verschiedenen Implementierungen sind die übertragenen Daten Paneldaten. In verschiedenen Implementierungen werden die übertragenen Daten an ein Anzeigefeld übertragen.The procedure 2400 drives at block 2430 wherein the display module transmits data indicating the plurality of respective boundaries in the display space, the plurality of respective resolution reduction factors, and corresponding pixel values based on the plurality of respective pixel values. In various implementations, the transmitted data is panel data. In various implementations, the transmitted data is transmitted to a display panel.

25 ist eine Flussdiagrammdarstellung eines Verfahrens 2500 zum Verarbeiten eines verzerrten Bildes in einem verzerrten Raum gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 2500 von einem Modul (oder einem Abschnitt davon) durchgeführt, wie dem Transportmodul 220 oder dem Anzeigemodul 230 von 2. In verschiedenen Implementierungen wird das Verfahren 2500 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2 (oder einem Abschnitt davon), durchgeführt. In verschiedenen Implementierungen wird das Verfahren 2500 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren SR-Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 2500 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 2500 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 25th Figure 3 is a flow chart representation of a method 2500 for processing a warped image in a warped space according to some implementations. In some implementations (and as detailed below as an example) the method 2500 performed by a module (or a portion thereof) such as the transport module 220 or the display module 230 of 2 . In different implementations the procedure 2500 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 (or a portion of it). In different implementations the procedure 2500 performed by a device having one or more processors, non-volatile memories, and one or more SR indicators. In some implementations, the procedure 2500 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 2500 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 2500 beginnt bei Block 2510, wobei das Modul ein verzerrtes Bild empfängt, das einen Inhalt simulierter Realität (SR) darstellt, der in einem Anzeigeraum angezeigt werden soll, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in dem Anzeigeraum anzeigen.The procedure 2500 starts at block 2510 wherein the module receives a distorted image representing simulated reality (SR) content to be displayed in a display space, the distorted image having a plurality of pixels at respective locations evenly spaced in a grid pattern in a distorted space wherein the plurality of pixels are each associated with a plurality of respective pixel values and a plurality of respective scale factors indicating a plurality of respective resolutions at a plurality of respective locations in the display space.

In verschiedenen Implementierungen definiert die Vielzahl von jeweiligen Skalierungsfaktoren eine Abbildung zwischen dem verzerrten Raum und dem Anzeigeraum. Zum Beispiel werden in verschiedenen Implementierungen ungleichmäßig beabstandete Regionen des SR-Inhalts, die unterschiedlichen Flächenmengen in dem Anzeigeraum entsprechen, durch die gleiche Flächenmenge in dem verzerrten Bild dargestellt.In various implementations, the plurality of respective scaling factors defines a mapping between the distorted space and the display space. For example, in various implementations, unevenly spaced regions of the SR content that correspond to different amounts of area in the display space are represented by the same amount of area in the warped image.

In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Pixelwert zugeordnet. In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder einem Satz Skalierungsfaktoren einschließlich eines horizontalen Skalierungsfaktors und eines vertikalen Skalierungsfaktors) zugeordnet. In verschiedenen Implementierungen ist jede einer Vielzahl von Kacheln der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder einem Satz von Skalierungsfaktoren einschließlich eines horizontalen Skalierungsfaktors und eines vertikalen Skalierungsfaktors) zugeordnet. Dementsprechend sind eine Vielzahl von Pixeln (z. B. jene einer einzelnen Kachel) einem einzelnen empfangenen Skalierungsfaktor (oder einem Satz von Skalierungsfaktoren einschließlich eines einzelnen horizontalen Skalierungsfaktors und eines einzelnen vertikalen Skalierungsfaktors) zugeordnet.In various implementations, each of the plurality of pixels is associated with a separately received pixel value. In various implementations, each of the plurality of pixels is each associated with a separately received scale factor (or a set of scale factors including a horizontal scale factor and a vertical scale factor). In various implementations, each of a plurality of tiles of the plurality of pixels is each associated with a separately received scale factor (or a set of scale factors including a horizontal scale factor and a vertical scale factor). Accordingly, a plurality of pixels (e.g., those of a single tile) are assigned a single received scale factor (or a set of scale factors including a single horizontal scale factor and a single vertical scale factor).

Somit schließt in verschiedenen Implementierungen das verzerrte Bild eine Vielzahl von Kacheln an jeweiligen Stellen ein, die gleichmäßig in einem Gittermuster in dem verzerrten Raum beabstandet sind, wobei jede der Vielzahl von Kacheln einem jeweiligen einen oder mehreren Skalierungsfaktoren zugeordnet ist. In verschiedenen Implementierungen schließen auch einer oder mehrere der Vielzahl von jeweiligen Skalierungsfaktoren einen horizontalen Skalierungsfaktor und einen vertikalen Skalierungsfaktor ein.Thus, in various implementations, the warped image includes a plurality of tiles at respective locations evenly spaced in a grid pattern in the warped space, each of the plurality of tiles being associated with a respective one or more scale factors. In various implementations, one or more of the plurality of respective scale factors also include a horizontal scale factor and a vertical scale factor.

Das Verfahren 2500 fährt bei Block 2520 fort, wobei das Modul das verzerrte Bild in dem verzerrten Raum auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren verarbeitet, um ein verarbeitetes verzerrtes Bild zu erzeugen. In verschiedenen Implementierungen schließt das verarbeitete verzerrte Bild, wie das verzerrte Bild, eine Vielzahl von Pixeln an jeweiligen Stellen ein, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind. In verschiedenen Implementierungen ist die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten (die sich von der Vielzahl von jeweiligen Pixelwerten des verzerrten Bildes unterscheiden können) zugeordnet, und die Vielzahl von jeweiligen Skalierungsfaktoren zeigt eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in einem Anzeigeraum an.The procedure 2500 drives at block 2520 wherein the module processes the warped image in the warped space based on the plurality of respective scale factors to produce a processed warped image. In various implementations, the processed distorted image, like the distorted image, includes a plurality of pixels at respective locations that are evenly spaced in a grid pattern in distorted space. In various implementations, the plurality of pixels are each associated with a plurality of respective pixel values (which may differ from the plurality of respective pixel values of the distorted image), and the plurality of respective scale factors indicate a plurality of respective resolutions at a plurality of respective locations in FIG a display room.

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Verarbeiten des verzerrten Bildes in dem verzerrten Raum aus. Dementsprechend schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Umwandeln des verzerrten Bildes in ein Anzeigeraumbild, das eine Vielzahl von Pixeln an jeweiligen Positionen einschließt, die gleichmäßig in einem Gittermuster in dem Anzeigeraum beabstandet sind, aus, schließt das Verarbeiten eines derartigen Anzeigeraumbildes aus und schließt das Umwandeln eines verarbeiteten Anzeigeraumbildes in das verarbeitete verzerrte Bild in dem verzerrten Raum aus. Das Vermeiden dieser Schritte (z. B. Umwandeln, Verarbeiten und Rückwandeln) spart erhebliche Verarbeitungszeit und Energie. Dementsprechend wird in einer mobilen Vorrichtung, wie etwa einer HMD, Batterieleistung gespart, indem das verzerrte Bild in dem verzerrten Raum statt in dem Anzeigeraum verarbeitet wird.In various implementations, processing the warped image in the warped space precludes processing the warped image in the warped space. Accordingly, processing the distorted image in the distorted space includes converting the distorted image into A display space image including a plurality of pixels at respective positions equally spaced in a grid pattern in the display space excludes processing of such a display space image, and excludes converting a processed display space image into the processed distorted image in the distorted space. Avoiding these steps (e.g. converting, processing, and reconverting) saves significant processing time and energy. Accordingly, in a mobile device such as an HMD, battery power is saved by processing the distorted image in the distorted space rather than the display space.

In verschiedenen Implementierungen wird das verzerrte Bild von dem Rendering-Modul vollständig verarbeitet, welches das verzerrte Bild erzeugt, bis zu dem Anzeigefeld, das ein Bild auf Grundlage des verarbeiteten verzerrten Bildes in dem verzerrten Raum anzeigt. Dementsprechend schließt das Empfangen des verzerrten Bildes (in Block 2510) in verschiedenen Implementierungen das Empfangen des verzerrten Bildes von einem Rendering-Modul ein. In einigen Implementierungen schließt das Übertragen des verarbeiteten verzerrten Bildes (wie nachstehend in Block 2530 beschrieben) das Übertragen des verarbeiteten verzerrten Bildes an ein Anzeigefeld ein. In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Verarbeiten des verzerrten Bildes in dem verzerrten Raum gemäß einer Vielzahl von Prozessen in dem verzerrten Raum ein (z. B. werden zwei oder mehr von Komprimierung, Fehlerkorrekturcodierung, Verzerrung [wie etwa Linsenkompensation], Filterung usw. in dem verzerrten Raum durchgeführt).In various implementations, the warped image is fully processed from the rendering module that generates the warped image to the display panel that displays an image based on the processed warped image in the warped space. Accordingly, receiving the distorted image (in block 2510 ) in various implementations includes receiving the distorted image from a rendering module. In some implementations, the transfer of the processed warped image includes (as below in block 2530 described) transmitting the processed distorted image to a display panel. In various implementations, processing the warped image in the warped space includes processing the warped image in the warped space according to a variety of processes in the warped space (e.g., two or more of compression, error correction coding, warping [such as Lens compensation], filtering, etc. performed in the distorted space).

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Komprimieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein. Beispiele sind vorstehend unter Bezugnahme auf 15 beschrieben. In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum ein Fehlerkorrekturcodieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein. Beispiele sind vorstehend unter Bezugnahme auf 15 beschrieben.In various implementations, processing the warped image in the warped space includes compressing the warped image based on the plurality of respective scaling factors. Examples are above with reference to FIG 15th described. In various implementations, processing the warped image in the warped space includes error correction encoding the warped image based on the plurality of respective scale factors. Examples are above with reference to FIG 15th described.

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Verformen des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein. Beispiele sind vorstehend in Bezug unter Bezugnahme auf 20 beschrieben.In various implementations, processing the warped image in the warped space includes deforming the warped image based on the plurality of respective scaling factors. Examples are above with reference to FIG 20th described.

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Filtern des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein. Zum Beispiel würde das Anwenden eines einfachen Tiefpassfilters, das durch eine normalisierte 3x3-Matrix von Einsen definiert ist, Pixel mit einem Skalierungsfaktor, der eine niedrige Auflösung anzeigt (wobei ein Pixel eine größere Fläche in dem Anzeigeraum darstellt), im Vergleich zu Pixeln mit einem Skalierungsfaktor, der eine hohe Auflösung anzeigt (wobei ein Pixel eine kleinere Fläche in dem Anzeigeraum darstellt), unsachgemäß gewichten. Dementsprechend schließt in verschiedenen Implementierungen das Filtern des verzerrten Bildes in dem verzerrten Raum auf Grundlage der Vielzahl von Skalierungsfaktoren das Bestimmen, für einen bestimmten Pixelwert, eines gefilterten Pixelwerts als eine gewichtete Summe von benachbarten Pixelwerten benachbarter Pixel ein, wobei die Gewichtungen auf einem Filterkern (z. B. einer normalisierten Matrix von Einsen, einem Gaußschen Unschärfefilterkern) und den jeweiligen Skalierungsfaktoren der benachbarten Pixel basieren.In various implementations, processing the warped image in the warped space includes filtering the warped image based on the plurality of respective scale factors. For example, applying a simple low pass filter defined by a normalized 3x3 matrix of ones would produce pixels with a scale factor that indicates low resolution (where one pixel represents a larger area in the display space) compared to pixels with a Incorrectly weighting scaling factor that indicates high resolution (where one pixel represents a smaller area in the display space). Accordingly, in various implementations, filtering the warped image in the warped space based on the plurality of scaling factors includes determining, for a particular pixel value, a filtered pixel value as a weighted sum of neighboring pixel values of neighboring pixels, the weights being based on a filter kernel (e.g. B. a normalized matrix of ones, a Gaussian uncertainty filter kernel) and the respective scaling factors of the neighboring pixels.

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Farbkorrigieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein.In various implementations, processing the warped image in the warped space includes color correcting the warped image based on the plurality of respective scale factors.

Somit schließt in verschiedenen Implementierungen das Verarbeiten des verzerrten Bildes in dem verzerrten Raum (z. B. Verzerren, Filtern oder Farbkorrigieren des verzerrten Bildes) das Bestimmen, für ein bestimmtes Pixel des verzerrten Bildes, eines Pixelwerts eines entsprechenden Pixels (z. B. an derselben Stelle in dem verzerrten Raum) des verarbeiteten verzerrten Bildes basierend auf den jeweiligen Pixelwerten von Pixeln des verzerrten Bildes in einer Umgebung des bestimmten Pixels und den jeweiligen Skalierungsfaktoren der Pixel des verzerrten Bildes in der Umgebung des bestimmten Pixels ein.Thus, in various implementations, processing the warped image in the warped space (e.g., warping, filtering, or color correcting the warped image) includes determining, for a particular pixel of the warped image, a pixel value of a corresponding pixel (e.g., the same location in the distorted space) of the processed distorted image based on the respective pixel values of pixels of the distorted image in a vicinity of the particular pixel and the respective scaling factors of the pixels of the distorted image in the vicinity of the particular pixel.

Das Verfahren 2500 wird bei Block 2530 fortgesetzt, wobei das Modul das verarbeitete verzerrte Bild überträgt. In verschiedenen Implementierungen überträgt das Modul das verarbeitete verzerrte Bild zusammen mit der jeweiligen Vielzahl von Skalierungsfaktoren.The procedure 2500 is at block 2530 continued with the module transmitting the processed distorted image. In various implementations, the module transmits the processed distorted image along with the respective plurality of scaling factors.

26 ist eine Flussdiagrammdarstellung eines Verfahrens 2600 zum Verarbeiten eines verzerrten Bildes auf Grundlage einer Vielzahl von Skalierungsfaktoren gemäß einigen Implementierungen. In einigen Implementierungen (und wie nachstehend als Beispiel detailliert beschrieben) wird das Verfahren 2600 von einem Modul (oder einem Abschnitt davon) durchgeführt, wie dem Transportmodul 220 oder dem Anzeigemodul 230 von 2. In verschiedenen Implementierungen wird das Verfahren 2600 von einer HMD, wie der HMD 100 von 1, oder einem Abschnitt davon, wie der SR-Pipeline 200 von 2 (oder einem Abschnitt davon), durchgeführt. In verschiedenen Implementierungen wird das Verfahren 2600 durch eine Vorrichtung mit einem oder mehreren Prozessoren, nichtflüchtigen Speichern und einer oder mehreren SR-Anzeigen durchgeführt. In einigen Implementierungen wird das Verfahren 2600 durch Verarbeitungslogik, einschließlich Hardware, Firmware, Software oder einer Kombination davon, durchgeführt. In einigen Implementierungen wird das Verfahren 2600 durch einen Prozessor durchgeführt, der Anweisungen ausführt (z. B. Codes), die in einem nichtflüchtigen computerlesbaren Medium (z. B. einem Speicher) gespeichert sind. 26th Figure 3 is a flow chart representation of a method 2600 for processing a warped image based on a variety of scaling factors according to some implementations. In some implementations (and as detailed below as an example) the method 2600 performed by a module (or a portion thereof) such as the transport module 220 or the display module 230 of 2 . In different implementations the procedure 2600 from an HMD, such as the HMD 100 of 1 , or a section of it, such as the SR pipeline 200 of 2 (or a portion of it). In different implementations the procedure 2600 performed by a device having one or more processors, non-volatile memories, and one or more SR indicators. In some implementations, the procedure 2600 performed by processing logic including hardware, firmware, software, or a combination thereof. In some implementations, the procedure 2600 performed by a processor executing instructions (e.g., code) stored in a non-transitory computer readable medium (e.g., memory).

Das Verfahren 2600 beginnt bei Block 2610, wobei das Modul ein verzerrtes Bild empfängt, das einen Inhalt simulierter Realität (SR) darstellt, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen des SR-Inhalts anzeigen. In verschiedenen Implementierungen werden unterschiedliche Teile des SR-Inhalts, die ungleichmäßig beabstandeten Regionen des SR-Inhalts entsprechen, durch die gleiche Flächenmenge in dem verzerrten Bild dargestellt.The procedure 2600 starts at block 2610 wherein the module receives a warped image representing simulated reality (SR) content, the warped image having a plurality of pixels at respective locations, the plurality of pixels each associated with a plurality of respective pixel values and a plurality of respective scaling factors which display a plurality of respective resolutions in a plurality of respective locations of the SR content. In different implementations, different parts of the SR content that correspond to unevenly spaced regions of the SR content are represented by the same amount of area in the warped image.

In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Pixelwert zugeordnet. In verschiedenen Implementierungen ist jedes der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder einem Satz Skalierungsfaktoren einschließlich eines horizontalen Skalierungsfaktors und eines vertikalen Skalierungsfaktors) zugeordnet. In verschiedenen Implementierungen ist jede einer Vielzahl von Kacheln der Vielzahl von Pixeln jeweils einem separat empfangenen Skalierungsfaktor (oder einem Satz von Skalierungsfaktoren einschließlich eines horizontalen Skalierungsfaktors und eines vertikalen Skalierungsfaktors) zugeordnet. Dementsprechend sind eine Vielzahl von Pixeln (z. B. jene einer einzelnen Kachel) einem einzelnen empfangenen Skalierungsfaktor (oder einem Satz von Skalierungsfaktoren einschließlich eines einzelnen horizontalen Skalierungsfaktors und eines einzelnen vertikalen Skalierungsfaktors) zugeordnet.In various implementations, each of the plurality of pixels is associated with a separately received pixel value. In various implementations, each of the plurality of pixels is each associated with a separately received scale factor (or a set of scale factors including a horizontal scale factor and a vertical scale factor). In various implementations, each of a plurality of tiles of the plurality of pixels is each associated with a separately received scale factor (or a set of scale factors including a horizontal scale factor and a vertical scale factor). Accordingly, a plurality of pixels (e.g., those of a single tile) are assigned a single received scale factor (or a set of scale factors including a single horizontal scale factor and a single vertical scale factor).

Somit schließt in verschiedenen Implementierungen das verzerrte Bild eine Vielzahl von Kacheln an jeweiligen Stellen ein, die gleichmäßig in einem Gittermuster beabstandet sind, wobei jede der Vielzahl von Kacheln einem jeweiligen einen oder mehreren Skalierungsfaktoren zugeordnet ist. In verschiedenen Implementierungen schließen auch einer oder mehrere der Vielzahl von jeweiligen Skalierungsfaktoren einen horizontalen Skalierungsfaktor und einen vertikalen Skalierungsfaktor ein.Thus, in various implementations, the warped image includes a plurality of tiles in respective locations evenly spaced in a grid pattern, each of the plurality of tiles being associated with a respective one or more scale factors. In various implementations, one or more of the plurality of respective scale factors also include a horizontal scale factor and a vertical scale factor.

Das Verfahren 2600 fährt bei Block 2620 fort, wobei das Modul das verzerrte Bild auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren verarbeitet, um ein verarbeitetes verzerrtes Bild zu erzeugen. In verschiedenen Implementierungen schließt das verarbeitete verzerrte Bild, wie das verzerrte Bild, eine Vielzahl von Pixeln an jeweiligen Stellen ein, die gleichmäßig in einem Gittermuster beabstandet sind. In verschiedenen Implementierungen ist die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten (die sich von der Vielzahl von jeweiligen Pixelwerten des verzerrten Bildes unterscheiden können) zugeordnet, und die Vielzahl von jeweiligen Skalierungsfaktoren zeigt eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen des SR-Inhalts an.The procedure 2600 drives at block 2620 wherein the module processes the warped image based on the plurality of respective scale factors to produce a processed warped image. In various implementations, the processed warped image, like the warped image, includes a plurality of pixels at respective locations that are evenly spaced in a grid pattern. In various implementations, the plurality of pixels are each associated with a plurality of respective pixel values (which may differ from the plurality of respective pixel values of the distorted image), and the plurality of respective scale factors represent a plurality of respective resolutions at a plurality of respective locations of the SR content.

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes auf Grundlage der jeweiligen Vielzahl von Skalierungsfaktoren das Erzeugen eines unverzerrten Bildes aus, in dem verschiedene Teile des SR-Inhalts gleichmäßig beabstandeten Regionen des SR-Inhalts entsprechen, die durch gleichmäßig beabstandete Regionen des unverzerrten Bildes dargestellt werden.In various implementations, that includes Processing the warped image based on the respective plurality of scaling factors to produce an undistorted image in which various portions of the SR content correspond to equally spaced regions of the SR content represented by equally spaced regions of the undistorted image.

In verschiedenen Implementierungen wird das verzerrte Bild vollständig von dem Rendering-Modul, welches das verzerrte Bild erzeugt, zu dem Anzeigefeld verarbeitet, das ein Bild auf Grundlage des verarbeiteten verzerrten Bildes, das auf der Vielzahl von jeweiligen Skalierungsfaktoren basiert, anzeigt. Dementsprechend schließt das Empfangen des verzerrten Bildes (in Block 2510) in verschiedenen Implementierungen das Empfangen des verzerrten Bildes von einem Rendering-Modul ein. In einigen Implementierungen schließt das Übertragen des verarbeiteten verzerrten Bildes (wie nachstehend in Block 2630 beschrieben) das Übertragen des verarbeiteten verzerrten Bildes an ein Anzeigefeld ein. In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren gemäß einer Vielzahl von Prozessen ein (z. B. werden zwei oder mehr von Kompression, Fehler korrigierender Codierung, Verzerrung [wie Linsenkompensation], Filterung usw. auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren durchgeführt).In various implementations, the warped image is completely processed by the rendering module that generates the warped image to the display panel that displays an image based on the processed warped image based on the plurality of respective scaling factors. Accordingly, receiving the distorted image (in block 2510 ) in various implementations includes receiving the distorted image from a rendering module. In some implementations, the transfer of the processed warped image includes (as below in block 2630 described) transmitting the processed distorted image to a display panel. In various implementations, processing the warped image based on the plurality of respective scale factors includes processing the warped image based on the plurality of respective scale factors according to a variety of processes (e.g., two or more of compression, error correcting coding, Distortion [such as lens compensation], filtering, etc. based on the plurality of respective scaling factors performed).

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren das Komprimieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein. Beispiele sind vorstehend unter Bezugnahme auf 15 beschrieben. In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein Fehlerkorrekturcodieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein. Beispiele sind vorstehend unter Bezugnahme auf 15 beschrieben.In various implementations, processing the warped image based on the plurality of respective scale factors includes compressing the warped image based on the plurality of respective scale factors. Examples are above with reference to FIG 15th described. In various implementations, processing the warped image based on the plurality of respective scale factors includes error correction encoding the warped image based on the plurality of respective scale factors. Examples are above with reference to FIG 15th described.

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren das Verformen des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein. Beispiele sind vorstehend in Bezug unter Bezugnahme auf 20 beschrieben.In various implementations, processing the warped image based on the plurality of respective scale factors includes deforming the warped image based on the plurality of respective scale factors. Examples are above with reference to FIG 20th described.

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren das Filtern des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein. Zum Beispiel würde das Anwenden eines einfachen Tiefpassfilters, das durch eine normalisierte 3x3-Matrix von Einsen definiert ist, Pixel mit einem Skalierungsfaktor, der eine niedrige Auflösung anzeigt (wobei ein Pixel eine größere Fläche in dem Anzeigeraum darstellt), im Vergleich zu Pixeln mit einem Skalierungsfaktor, der eine hohe Auflösung anzeigt (wobei ein Pixel eine kleinere Fläche in dem Anzeigeraum darstellt), unsachgemäß gewichten. Dementsprechend schließt in verschiedenen Implementierungen das Filtern des verzerrten Bildes auf Grundlage der Vielzahl von Skalierungsfaktoren das Bestimmen, für einen bestimmten Pixelwert, eines gefilterten Pixelwerts als eine gewichtete Summe benachbarter Pixelwerte benachbarter Pixel ein, wobei die Gewichtungen auf einem Filterkern (z. B. einer normalisierten Matrix von Einsen, einem Gaußschen Unschärfefilterkern) und den jeweiligen Skalierungsfaktoren der benachbarten Pixel basieren.In various implementations, processing the warped image based on the plurality of respective scale factors includes filtering the warped image based on the plurality of respective scale factors. For example, applying a simple low pass filter defined by a normalized 3x3 matrix of ones would produce pixels with a scale factor that indicates low resolution (where one pixel represents a larger area in the display space) compared to pixels with a Incorrectly weighting scaling factor that indicates high resolution (where one pixel represents a smaller area in the display space). Accordingly, in various implementations, filtering the distorted image based on the plurality of scaling factors includes determining, for a particular pixel value, a filtered pixel value as a weighted sum of neighboring pixel values of neighboring pixels, with the weights applied to a filter kernel (e.g., a normalized Matrix of ones, a Gaussian uncertainty filter kernel) and the respective scaling factors of the neighboring pixels.

In verschiedenen Implementierungen schließt das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren das Farbkorrigieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein.In various implementations, processing the warped image based on the plurality of respective scale factors includes color correcting the warped image based on the plurality of respective scale factors.

Somit schließt in verschiedenen Implementierungen das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren (z. B. Verzerren, Filtern oder Farbkorrigieren des verzerrten Bildes) das Bestimmen, für ein bestimmtes Pixel des verzerrten Bildes, eines Pixelwerts eines entsprechenden Pixels des verarbeiteten verzerrten Bildes basierend auf den jeweiligen Pixelwerten von Pixeln des verzerrten Bildes in einer Umgebung des bestimmten Pixels und den jeweiligen Skalierungsfaktoren der Pixel des verzerrten Bildes in der Umgebung des bestimmten Pixels ein.Thus, in various implementations, processing the warped image based on the plurality of respective scaling factors (e.g., warping, filtering, or color correcting the warped image) includes determining, for a particular pixel of the warped image, a pixel value of a corresponding pixel of the processed warped one Image based on the respective pixel values of pixels of the distorted image in a vicinity of the specific pixel and the respective scaling factors of the pixels of the distorted image in the vicinity of the specific pixel.

Das Verfahren 2600 wird bei Block 2630 fortgesetzt, wobei das Modul das verarbeitete verzerrte Bild überträgt. In verschiedenen Implementierungen überträgt das Modul das verarbeitete verzerrte Bild zusammen mit der jeweiligen Vielzahl von Skalierungsfaktoren.The procedure 2600 is at block 2630 continued with the module transmitting the processed distorted image. In various implementations, the module transmits the processed distorted image along with the respective plurality of scaling factors.

Während verschiedene Gesichtspunkte von Implementierungen innerhalb des Schutzumfangs der beiliegenden Ansprüche vorstehend beschrieben sind, sollte es offensichtlich sein, dass die verschiedenen Merkmale von vorstehend beschriebenen Implementierungen in einer breiten Vielfalt von Formen verkörpert werden können und dass jede spezifische Struktur und/oder Funktion, die vorstehend beschrieben ist, lediglich veranschaulichend ist. Basierend auf der vorliegenden Offenbarung sollten Fachleute erkennen, dass ein hierin beschriebener Gesichtspunkt unabhängig von beliebigen anderen Gesichtspunkten implementiert werden kann und dass zwei oder mehr dieser Gesichtspunkte auf verschiedene Weisen kombiniert werden können. Beispielsweise kann eine Vorrichtung implementiert werden und/oder ein Verfahren kann unter Verwendung einer beliebigen Anzahl der hierin dargelegten Gesichtspunkte praktiziert werden. Zusätzlich kann eine solche Vorrichtung implementiert werden und/oder kann ein solches Verfahren unter zusätzlicher Verwendung einer anderen Struktur und/oder Funktion oder einem anderen als dem einen oder den mehreren der hierin beschriebenen Gesichtspunkte ausgeführt werden.While various aspects of implementations are described above within the scope of the appended claims, it should be understood that the various features of implementations described above can be embodied in a wide variety of forms, and that any specific structure and / or function described above is illustrative only. Based on the present disclosure, those skilled in the art should recognize that an aspect described herein can be implemented independently of any other aspects, and that two or more of these aspects can be combined in various ways. For example, an apparatus can be implemented and / or a method can be practiced using any number of the aspects set forth herein. In addition, such an apparatus can be implemented and / or such a method can be carried out using a different structure and / or function or a different than one or more of the aspects described herein.

Es versteht sich auch, dass, wenngleich die Begriffe „erste(r)“, „zweite(r)“ usw. hierin verwendet sein können, um verschiedene Elemente zu beschreiben, diese Elemente nicht durch diese Begriffe eingeschränkt werden. Diese Begriffe werden nur verwendet, um ein Element von einem anderen zu unterscheiden. Zum Beispiel könnte ein erster Knoten als ein zweiter Knoten bezeichnet werden, und ähnlich könnte ein zweiter Knoten als erster Knoten bezeichnet werden, ohne die Bedeutung der Beschreibung zu ändern, solange jedes Vorkommen des „ersten Knotens“ konsequent umbenannt wird und jedes Vorkommen des „zweiten Knotens“ konsequent umbenannt wird. Bei dem ersten Knoten und dem zweiten Knoten handelt es sich bei beiden um Knoten, es handelt sich jedoch nicht um denselben Knoten.It should also be understood that while the terms “first,” “second,” etc. may be used herein to describe various elements, those elements are not limited by these terms. These terms are only used to distinguish one element from another. For example, a first node could be referred to as a second node, and similarly a second node could be referred to as a first node without changing the meaning of the description, as long as each occurrence of the "first node" is consistently renamed and each occurrence of the "second Node ”is consistently renamed. The first node and the second node are both nodes, but they are not the same node.

Die hierin verwendete Terminologie dient lediglich der Beschreibung bestimmter Implementierungen und ist nicht dazu beabsichtigt, die Ansprüche einzuschränken. Wie in der Beschreibung der Implementierungen und den beiliegenden Ansprüchen verwendet, sollen die Singularformen „ein“, „eine“, „der“, „die“ und „das“ auch die Pluralformen einschließen, sofern es im Kontext nicht eindeutig anders angegeben ist. Es versteht sich auch, dass der Begriff „und/oder“, so wie er hierin verwendet wird, sich auf jegliche und alle möglichen Kombinationen von einem oder mehreren der damit zusammenhängenden, aufgeführten Elemente bezieht und diese einschließt. Es versteht sich ferner, dass die Begriffe „umfasst“ und/oder „umfassend“, wenn sie in dieser Patentschrift verwendet werden, das Vorhandensein von aufgeführten Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, aber das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen davon nicht ausschließen.The terminology used herein is used only to describe particular implementations and is not intended to limit the claims. As used in the description of the implementations and the appended claims, the singular forms “a”, “an”, “the”, “the” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It is also to be understood that the term “and / or” as used herein refers to and includes any and all possible combinations of one or more of the related listed elements. It is further understood that the terms “comprises” and / or “comprising” when used in this specification indicate the presence of listed features, integers, steps, operations, elements and / or components, but the presence or do not exclude the addition of one or more other features, integers, steps, operations, elements, components and / or groups thereof.

Wie hierin verwendet, kann der Begriff „falls“ als „wenn“ oder „bei“ oder „infolge des Bestimmens“ oder „gemäß einer Bestimmung“ oder „infolge des Erkennens“, dass eine genannte vorausgehende Bedingung erfüllt ist, abhängig vom Kontext, verstanden werden. Ähnlich kann die Wendung „wenn bestimmt wird, [dass eine genannte vorausgehende Bedingung erfüllt ist]“ oder „falls [eine genannte vorausgehende Bedingung erfüllt ist]“ oder „wenn [eine genannte vorausgehende Bedingung erfüllt ist]“ als „bei Bestimmung“ oder „bei einer Bestimmung, dass“ oder „gemäß einer Bestimmung“ oder „beim Erkennen“ oder „infolge des Erkennens“ so interpretiert werden, dass eine genannte vorausgehende Bedingung erfüllt ist, abhängig vom Kontext.As used herein, the term “if” may be understood as “if” or “at” or “as a result of determining” or “according to a determination” or “as a result of recognizing” that a named preceding condition is met, depending on the context will. Similarly, the phrase "when it is determined [that a named preceding condition is met]" or "if [a named preceding condition is met]" or "when [a named preceding condition is met]" can be used as "upon determination" or " in a determination that “or according to a determination” or “upon recognition” or “as a result of recognition” are interpreted in such a way that a named preceding condition is met, depending on the context.

Claims (34)

Verfahren, umfassend: Empfangen eines verzerrten Bildes, das einen Inhalt simulierter Realität (SR) darstellt, der in einem Anzeigeraum angezeigt werden soll, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in dem Anzeigeraum anzeigen; Verarbeiten des verzerrten Bildes in dem verzerrten Raum auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren, um ein verarbeitetes verzerrtes Bild zu erzeugen; und Übertragen des verarbeiteten verzerrten Bildes.Method comprising: Receiving a distorted image representing simulated reality (SR) content to be displayed in a display space, the distorted image having a plurality of pixels at respective locations evenly spaced in a grid pattern in a distorted space, the A plurality of pixels each associated with a plurality of respective pixel values and a plurality of respective scale factors indicative of a plurality of respective resolutions at a plurality of respective locations in the display space; Processing the warped image in the warped space based on the plurality of respective scale factors to produce a processed warped image; and Transferring the processed distorted image. Verfahren nach Anspruch 1, wobei die Vielzahl von jeweiligen Skalierungsfaktoren eine Abbildung zwischen dem verzerrten Raum und dem Anzeigeraum definiert.Procedure according to Claim 1 wherein the plurality of respective scaling factors define a mapping between the distorted space and the display space. Verfahren nach Anspruch 1 oder 2, wobei verschiedene Teile des SR-Inhalts, die ungleichmäßig beabstandeten Regionen in dem Anzeigeraum entsprechen, durch gleichmäßig beabstandete Regionen in dem verzerrten Raum dargestellt werden.Procedure according to Claim 1 or 2 wherein different portions of the SR content corresponding to unevenly spaced regions in the display space are represented by equally spaced regions in the warped space. Verfahren nach einem der Ansprüche 1-3, wobei das verzerrte Bild eine Vielzahl von Kacheln an jeweiligen Positionen einschließt, die gleichmäßig in einem Gittermuster in dem verzerrten Raum beabstandet sind, wobei jede der Vielzahl von Kacheln einem jeweiligen einen oder mehreren Skalierungsfaktoren zugeordnet ist.Method according to one of the Claims 1 - 3 wherein the warped image includes a plurality of tiles at respective positions equally spaced in a grid pattern in the warped space, each of the plurality of tiles being associated with a respective one or more scale factors. Verfahren nach einem der Ansprüche 1-4, wobei einer oder mehrere der Vielzahl von jeweiligen Skalierungsfaktoren einen horizontalen Skalierungsfaktor und einen vertikalen Skalierungsfaktor einschließen.Method according to one of the Claims 1 - 4th wherein one or more of the plurality of respective scale factors include a horizontal scale factor and a vertical scale factor. Verfahren nach einem der Ansprüche 1-5, wobei das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Verarbeiten des Bildes in dem Anzeigeraum ausschließt.Method according to one of the Claims 1 - 5 wherein processing the warped image in the warped space precludes processing the image in the display space. Verfahren nach einem der Ansprüche 1-6, wobei das Empfangen des verzerrten Bildes das Empfangen des verzerrten Bildes von einem Rendering-Modul einschließt.Method according to one of the Claims 1 - 6 wherein receiving the warped image includes receiving the warped image from a rendering module. Verfahren nach einem der Ansprüche 1-7, wobei das Übertragen des verarbeiteten verzerrten Bildes das Übertragen des verarbeiteten verzerrten Bildes an ein Anzeigefeld umfasst.Method according to one of the Claims 1 - 7th wherein transmitting the processed distorted image comprises transmitting the processed distorted image to a display panel. Verfahren nach einem der Ansprüche 1-8, wobei das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Verarbeiten des verzerrten Bildes in dem verzerrten Raum gemäß einer Vielzahl von Prozessen in dem verzerrten Raum einschließt.Method according to one of the Claims 1 - 8th wherein processing the distorted image in the distorted space includes processing the distorted image in the distorted space according to a plurality of processes in the distorted space. Verfahren nach einem der Ansprüche 1-9, wobei das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Komprimieren des verzerrten Bildes auf Grundlage der Vielzahl der jeweiligen Skalierungsfaktoren einschließt.Method according to one of the Claims 1 - 9 wherein processing the warped image in the warped space includes compressing the warped image based on the plurality of respective scaling factors. Verfahren nach einem der Ansprüche 1-10, wobei das Verarbeiten des verzerrten Bildes in dem verzerrten Raum ein Fehlerkorrekturcodieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren einschließt.Method according to one of the Claims 1 - 10 wherein processing the warped image in the warped space includes error correction encoding the warped image based on the plurality of respective scale factors. Verfahren nach einem der Ansprüche 1-11, wobei das Verarbeiten des verzerrten Bildes in dem verzerrten Raum ein Fehlerkorrekturcodieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren einschließt.Method according to one of the Claims 1 - 11 wherein processing the warped image in the warped space includes error correction encoding the warped image based on the plurality of respective scale factors. Verfahren nach einem der Ansprüche 1-12, wobei das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Bestimmen, für ein bestimmtes Pixel der Vielzahl von Pixeln, eines Pixelwerts eines entsprechenden Pixels des verarbeiteten verzerrten Bildes basierend auf den jeweiligen Pixelwerten von Pixeln des verzerrten Bildes in einer Umgebung des bestimmten Pixels und den jeweiligen Skalierungsfaktoren der Pixel des verzerrten Bildes in der Umgebung des bestimmten Pixels einschließt.Method according to one of the Claims 1 - 12th wherein the processing of the warped image in the warped space includes determining, for a particular one of the plurality of pixels, a pixel value of a corresponding one of the pixels of the processed warped image based on the respective pixel values of pixels of the warped image in a vicinity of the particular pixel and the respective scaling factors of the pixels of the distorted image in the vicinity of the particular pixel. Verfahren nach Anspruch 13, wobei das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das räumliche Verformen des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren einschließt.Procedure according to Claim 13 wherein processing the warped image in the warped space includes spatially deforming the warped image based on the plurality of respective scaling factors. Verfahren nach Anspruch 13 oder 14, wobei das Verarbeiten des verzerrten Bildes in dem verzerrten Raum das Filtern des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren einschließt.Procedure according to Claim 13 or 14th wherein processing the warped image in the warped space includes filtering the warped image based on the plurality of respective scale factors. Vorrichtung, umfassend: einen oder mehrere Prozessoren; einen nichtflüchtigen Speicher; eine oder mehrere Anzeigen; und Mittel zum Veranlassen der Vorrichtung, eines der Verfahren nach Ansprüchen 1-15 auszuführen.Apparatus comprising: one or more processors; a non-volatile memory; one or more advertisements; and means for causing the device to perform one of the methods according to Claims 1 - 15th execute. Nichtflüchtiges computerlesbares Medium, auf dem Anweisungen codiert sind, die, wenn sie von einem oder mehreren Prozessoren einer Vorrichtung ausgeführt werden, die Vorrichtung veranlassen, eines der Verfahren nach Anspruch 1-15 auszuführen.Non-transitory computer-readable medium encoding instructions which, when executed by one or more processors of a device, cause the device to perform one of the methods according to Claim 1 - 15th execute. Vorrichtung, umfassend: eine Anzeige; und einen oder mehrere Prozessoren zum: Empfangen eines verzerrten Bildes, das einen Inhalt simulierter Realität (SR) darstellt, der in einem Anzeigeraum angezeigt werden soll, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster in einem verzerrten Raum beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen in dem Anzeigeraum anzeigen; Verarbeiten des verzerrten Bildes in dem verzerrten Raum auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren, um ein verarbeitetes verzerrtes Bild zu erzeugen; und Übertragen des verarbeiteten verzerrten Bildes.Apparatus comprising: a display; and one or more processors to: Receiving a distorted image representing simulated reality (SR) content to be displayed in a display space, the distorted image having a plurality of pixels at respective locations evenly spaced in a grid pattern in a distorted space, the A plurality of pixels each associated with a plurality of respective pixel values and a plurality of respective scale factors indicative of a plurality of respective resolutions at a plurality of respective locations in the display space; Processing the warped image in the warped space based on the plurality of respective scale factors to produce a processed warped image; and transmitting the processed distorted image. Verfahren, umfassend: Empfangen eines verzerrten Bildes, das einen Inhalt einer simulierten Realität (SR) darstellt, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, die gleichmäßig in einem Gittermuster beabstandet sind, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen des SR-Inhalts anzeigen; Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren, um ein verarbeitetes verzerrtes Bild zu erzeugen; und Übertragen des verarbeiteten verzerrten Bildes.Method comprising: Receiving a warped image representing simulated reality (SR) content, the warped image having a plurality of pixels at respective locations evenly spaced in a grid pattern, the plurality of pixels each having a plurality of respective pixel values and one Associated with a plurality of respective scale factors indicative of a plurality of respective resolutions at a plurality of respective locations of the SR content; Processing the warped image based on the plurality of respective scale factors to produce a processed warped image; and transmitting the processed distorted image. Verfahren nach Anspruch 19, wobei verschiedene Teile des SR-Inhalts, die ungleichmäßig beabstandeten Regionen des SR-Inhalts entsprechen, durch gleichmäßig beabstandete Regionen des verzerrten Bildes dargestellt werden.Procedure according to Claim 19 wherein different parts of the SR content corresponding to unevenly spaced regions of the SR content are represented by evenly spaced regions of the warped image. Verfahren nach Anspruch 19 oder 20, wobei das Verarbeiten des verzerrten Bildes auf Grundlage der jeweiligen Vielzahl von Skalierungsfaktoren das Erzeugen eines unverzerrten Bildes, in dem verschiedene Teile des SR-Inhalts gleichmäßig beabstandeten Regionen des SR-Inhalts entsprechen, die durch gleichmäßig beabstandete Regionen des unverzerrten Bildes dargestellt werden, ausschließt.Procedure according to Claim 19 or 20th wherein processing the warped image based on the respective plurality of scaling factors precludes generating an undistorted image in which different portions of the SR content correspond to equally spaced regions of the SR content represented by equally spaced regions of the undistorted image. Verfahren nach einem der Ansprüche 19-21, ferner umfassend das Übertragen der Vielzahl von jeweiligen Skalierungsfaktoren.Method according to one of the Claims 19 - 21st , further comprising transmitting the plurality of respective scale factors. Verfahren nach einem der Ansprüche von 19-22, wobei das Empfangen des verzerrten Bildes das Empfangen des verzerrten Bildes von einem Rendering-Modul einschließt.The method of any one of claims 19-22, wherein receiving the warped image includes receiving the warped image from a rendering module. Verfahren nach einem der Ansprüche 19-23, wobei das Übertragen des verarbeiteten verzerrten Bildes das Übertragen des verarbeiteten verzerrten Bildes an ein Anzeigefeld einschließt.Method according to one of the Claims 19 - 23 wherein transmitting the processed distorted image includes transmitting the processed distorted image to a display panel. Verfahren nach einem der Ansprüche 19-24, wobei das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren gemäß einer Vielzahl von Prozessen auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren einschließt.Method according to one of the Claims 19 - 24 wherein processing the warped image based on the plurality of respective scale factors includes processing the warped image based on the plurality of respective scale factors according to a plurality of processes based on the plurality of respective scale factors. Verfahren nach einem der Ansprüche 19-25, wobei das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl der jeweiligen Skalierungsfaktoren das Komprimieren des verzerrten Bildes auf Grundlage der Vielzahl der jeweiligen Skalierungsfaktoren einschließt.Method according to one of the Claims 19 - 25th wherein processing the warped image based on the plurality of respective scale factors includes compressing the warped image based on the plurality of respective scale factors. Verfahren nach einem der Ansprüche 19-26, wobei das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein Fehlerkorrekturcodieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren einschließt.Method according to one of the Claims 19 - 26th wherein processing the warped image based on the plurality of respective scale factors includes error correction encoding the warped image based on the plurality of respective scale factors. Verfahren nach einem der Ansprüche 19-27, wobei das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren ein Fehlerkorrekturcodieren des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren einschließt.Method according to one of the Claims 19 - 27 wherein processing the warped image based on the plurality of respective scale factors includes error correction encoding the warped image based on the plurality of respective scale factors. Verfahren nach einem der Ansprüche 19-28, wobei das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren das Bestimmen, für ein bestimmtes Pixel der Vielzahl von Pixeln, eines Pixelwerts eines entsprechenden Pixels des verarbeiteten verzerrten Bildes basierend auf den jeweiligen Pixelwerten von Pixeln des verzerrten Bildes in einer Umgebung des bestimmten Pixels und den jeweiligen Skalierungsfaktoren der Pixel des verzerrten Bildes in der Umgebung des bestimmten Pixels einschließt.Method according to one of the Claims 19 - 28 wherein the processing of the distorted image based on the plurality of respective scaling factors determining, for a particular one of the plurality of pixels, a pixel value of a corresponding one of the pixels of the processed distorted image based on the respective pixel values of pixels of the distorted image in a vicinity of the determined one Pixels and the respective scaling factors of the pixels of the distorted image in the vicinity of the particular pixel. Verfahren nach Anspruch 29, wobei das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren das räumliche Verformen des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren einschließt.Procedure according to Claim 29 wherein processing the warped image based on the plurality of respective scale factors includes spatially deforming the warped image based on the plurality of respective scale factors. Verfahren nach einem der Ansprüche 19-30, wobei das Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren das Filtern des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren einschließt.Method according to one of the Claims 19 - 30th wherein processing the warped image based on the plurality of respective scale factors includes filtering the warped image based on the plurality of respective scale factors. Vorrichtung, umfassend: einen oder mehrere Prozessoren; einen nichtflüchtigen Speicher; eine oder mehrere Anzeigen; und Mittel zum Veranlassen der Vorrichtung, eines der Verfahren nach Ansprüchen 19-30 auszuführen.Apparatus comprising: one or more processors; a non-volatile memory; one or more advertisements; and means for causing the device to perform one of the methods according to Claims 19 - 30th execute. Nichtflüchtiges computerlesbares Medium, auf dem Anweisungen codiert sind, die, wenn sie von einem oder mehreren Prozessoren einer Vorrichtung ausgeführt werden, die Vorrichtung veranlassen, eines der Verfahren nach Anspruch 19-30 auszuführen.Non-transitory computer-readable medium encoding instructions which, when executed by one or more processors of a device, cause the device to perform one of the methods according to Claim 19 - 30th execute. Vorrichtung, umfassend: eine Anzeige; und einen oder mehrere Prozessoren zum: Empfangen eines verzerrten Bildes, das einen Inhalt einer simulierten Realität (SR) darstellt, wobei das verzerrte Bild eine Vielzahl von Pixeln an jeweiligen Stellen aufweist, wobei die Vielzahl von Pixeln jeweils einer Vielzahl von jeweiligen Pixelwerten und einer Vielzahl von jeweiligen Skalierungsfaktoren zugeordnet ist, die eine Vielzahl von jeweiligen Auflösungen an einer Vielzahl von jeweiligen Stellen des SR-Inhalts anzeigen; Verarbeiten des verzerrten Bildes auf Grundlage der Vielzahl von jeweiligen Skalierungsfaktoren, um ein verarbeitetes verzerrtes Bild zu erzeugen; und Übertragen des verarbeiteten verzerrten Bildes.Apparatus comprising: an ad; and one or more processors for: Receiving a distorted image representing simulated reality (SR) content, the distorted image having a plurality of pixels at respective locations, the plurality of pixels each being associated with a plurality of respective pixel values and a plurality of respective scaling factors that display a plurality of respective resolutions in a plurality of respective locations of the SR content; Processing the warped image based on the plurality of respective scale factors to produce a processed warped image; and transmitting the processed distorted image.
DE112019002368.3T 2018-05-07 2019-05-06 DYNAMIC "FOVEATED PIPELINE" Pending DE112019002368T5 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862667733P 2018-05-07 2018-05-07
US62/667,733 2018-05-07
PCT/US2019/030819 WO2019217261A1 (en) 2018-05-07 2019-05-06 Dynamic foveated pipeline

Publications (1)

Publication Number Publication Date
DE112019002368T5 true DE112019002368T5 (en) 2021-01-28

Family

ID=66625277

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019002368.3T Pending DE112019002368T5 (en) 2018-05-07 2019-05-06 DYNAMIC "FOVEATED PIPELINE"

Country Status (5)

Country Link
US (2) US11836885B2 (en)
KR (2) KR20230101926A (en)
CN (1) CN112106366A (en)
DE (1) DE112019002368T5 (en)
WO (1) WO2019217261A1 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115842907A (en) * 2018-03-27 2023-03-24 京东方科技集团股份有限公司 Rendering method, computer product and display device
US11836885B2 (en) * 2018-05-07 2023-12-05 Apple Inc. Dynamic foveated pipeline
JP7392105B2 (en) * 2019-07-28 2023-12-05 グーグル エルエルシー Methods, systems, and media for rendering immersive video content using foveated meshes
US10970811B1 (en) * 2019-09-23 2021-04-06 Facebook Technologies, Llc Axis based compression for remote rendering
US11651473B2 (en) * 2020-05-22 2023-05-16 Meta Platforms, Inc. Outputting warped images from captured video data
CN114935971A (en) * 2021-02-05 2022-08-23 京东方科技集团股份有限公司 Display driving chip, display device and display driving method
KR20220160800A (en) 2021-05-28 2022-12-06 엘지디스플레이 주식회사 Display device and personal immersion system and mobile terminal system using the same
KR102448833B1 (en) * 2021-10-13 2022-09-29 서울과학기술대학교 산학협력단 Method for rendering for virtual reality
US11722655B2 (en) * 2021-11-30 2023-08-08 SoliDDD Corp. Low latency networking of plenoptic data
US20230300338A1 (en) * 2022-03-16 2023-09-21 Apple Inc. Resolution-based video encoding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917549A (en) * 1996-08-07 1999-06-29 Adobe Systems Incorporated Transforming images with different pixel aspect ratios
US6252989B1 (en) 1997-01-07 2001-06-26 Board Of The Regents, The University Of Texas System Foveated image coding system and method for image bandwidth reduction
US20050018911A1 (en) * 2003-07-24 2005-01-27 Eastman Kodak Company Foveated video coding system and method
EP2329653B1 (en) * 2008-08-20 2014-10-29 Thomson Licensing Refined depth map
GB2523740B (en) * 2014-02-26 2020-10-14 Sony Interactive Entertainment Inc Image encoding and display
US9621798B2 (en) * 2014-07-07 2017-04-11 GM Global Technology Operations LLC Grid-based image resolution enhancement for video processing module
EP3308349A2 (en) * 2015-06-10 2018-04-18 Mobileye Vision Technologies Ltd. Image processor and methods for processing an image
US10979691B2 (en) * 2016-05-20 2021-04-13 Qualcomm Incorporated Circular fisheye video in virtual reality
KR101945082B1 (en) * 2016-07-05 2019-02-01 안규태 Method for transmitting media contents, apparatus for transmitting media contents, method for receiving media contents, apparatus for receiving media contents
WO2018041244A1 (en) * 2016-09-02 2018-03-08 Mediatek Inc. Incremental quality delivery and compositing processing
US10379611B2 (en) 2016-09-16 2019-08-13 Intel Corporation Virtual reality/augmented reality apparatus and method
US10564715B2 (en) 2016-11-14 2020-02-18 Google Llc Dual-path foveated graphics pipeline
US10121337B2 (en) * 2016-12-30 2018-11-06 Axis Ab Gaze controlled bit rate
CN116456097A (en) * 2017-04-28 2023-07-18 苹果公司 Video pipeline
US10546364B2 (en) * 2017-06-05 2020-01-28 Google Llc Smoothly varying foveated rendering
WO2019217260A1 (en) * 2018-05-07 2019-11-14 Zermatt Technologies Llc Dynamic foveated display
WO2019217262A1 (en) * 2018-05-07 2019-11-14 Zermatt Technologies Llc Dynamic foveated rendering
WO2019217264A1 (en) * 2018-05-07 2019-11-14 Zermatt Technologies Llc Dynamic foveated compression
US11836885B2 (en) * 2018-05-07 2023-12-05 Apple Inc. Dynamic foveated pipeline
ES2938535T3 (en) * 2018-07-20 2023-04-12 Tobii Ab Distributed foved rendering based on user gaze
US20220004012A1 (en) * 2020-07-06 2022-01-06 Seagate Technology Llc Variable resolution and automatic windowing for lidar

Also Published As

Publication number Publication date
KR102547106B1 (en) 2023-06-23
US20210142443A1 (en) 2021-05-13
WO2019217261A1 (en) 2019-11-14
US11836885B2 (en) 2023-12-05
KR20200142539A (en) 2020-12-22
KR20230101926A (en) 2023-07-06
US20240087080A1 (en) 2024-03-14
CN112106366A (en) 2020-12-18

Similar Documents

Publication Publication Date Title
DE112019002368T5 (en) DYNAMIC &#34;FOVEATED PIPELINE&#34;
CN108665521B (en) Image rendering method, device, system, computer readable storage medium and equipment
US20230410266A1 (en) Generating gaze corrected images using bidirectionally trained network
DE112018007721T5 (en) Acquire and modify 3D faces using neural imaging and time tracking networks
Dong et al. Human visual system-based saliency detection for high dynamic range content
US20220342365A1 (en) System and method for holographic communication
US10885651B2 (en) Information processing method, wearable electronic device, and processing apparatus and system
US20150146997A1 (en) Reducing the dynamic range of image data
CN110111269A (en) Low-light-level imaging algorithm and device based on multiple dimensioned context converging network
US20140192156A1 (en) Stereo-image processing apparatus, stereo-image processing method, and recording medium
WO2019217260A1 (en) Dynamic foveated display
EP3428836A1 (en) Face recognition method and device, and picture displaying method and device
Narwaria et al. Effect of tone mapping operators on visual attention deployment
WO2019217262A1 (en) Dynamic foveated rendering
JP6558365B2 (en) Image processing apparatus, image processing method, and program
US10080018B2 (en) Video content classification
Schweinhart et al. Distribution of content in recently-viewed scenes whitens perception
CN110728630A (en) Internet image processing method based on augmented reality and augmented reality glasses
JP5303399B2 (en) Moving picture bit depth reduction apparatus and program
CN115997379A (en) Restoration of image FOV for stereoscopic rendering
CN117916765A (en) System and method for non-linear image intensity transformation for denoising and low precision image processing
WO2019217264A1 (en) Dynamic foveated compression
CN111695573B (en) Visual fatigue relieving system and method based on significant target depth dynamic adjustment
Gu et al. Quality Assessment of Virtual Reality Images
US11263471B2 (en) Image processing method, apparatus and computer program

Legal Events

Date Code Title Description
R012 Request for examination validly filed