DE202017105872U1 - Niedrigauflösendes RGB-Rendering für effiziente Übertragung - Google Patents

Niedrigauflösendes RGB-Rendering für effiziente Übertragung Download PDF

Info

Publication number
DE202017105872U1
DE202017105872U1 DE202017105872.7U DE202017105872U DE202017105872U1 DE 202017105872 U1 DE202017105872 U1 DE 202017105872U1 DE 202017105872 U DE202017105872 U DE 202017105872U DE 202017105872 U1 DE202017105872 U1 DE 202017105872U1
Authority
DE
Germany
Prior art keywords
image
pixel
color component
display
subpixels
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202017105872.7U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202017105872U1 publication Critical patent/DE202017105872U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2003Display of colours
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/02Viewing or reading apparatus
    • G02B27/022Viewing apparatus
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B30/00Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images
    • G02B30/20Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images by providing first and second parallax images to an observer's left and right eyes
    • G02B30/34Stereoscopes providing a stereoscopic pair of separated images corresponding to parallactically displaced views of the same object, e.g. 3D slide viewers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • G06T3/4069Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution by subpixel displacements
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/005Adapting incoming signals to the display format of the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2300/00Aspects of the constitution of display devices
    • G09G2300/04Structural and physical details of display devices
    • G09G2300/0439Pixel structures
    • G09G2300/0452Details of colour pixel setup, e.g. pixel composed of a red, a blue and two green components
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0414Vertical resolution change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0421Horizontal resolution change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0457Improvement of perceived resolution by subpixel rendering
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

Anzeigesystem (1400), das umfasst:eine Anzeigevorrichtung (1404), die umfasst:einen Eingang, der mit wenigstens einer Bitübertragungsschicht (1406) gekoppelt ist;eine Pixelanordnung (1416) mit einem Nicht-Rot-Grün-Blau- (Nicht-RGB-) Pixelformat, das wenigstens eine erste, eine zweite und eine dritte Farbkomponente enthält, und wobei die Subpixel der ersten Farbkomponente in der Pixelanordnung mit einer ersten Auflösung vorhanden sind und die Subpixel sowohl der zweiten als auch der dritten Farbkomponente in der Pixelanordnung mit einer zweiten Auflösung, die niedriger als die erste Auflösung ist, vorhanden sind; undeinen Anzeigecontroller (1418), der mit dem Eingang und mit der Pixelanordnung gekoppelt ist, wobei der Anzeigecontroller dafür konfiguriert ist, ein erstes Bild (1610) in einem RGB-Pixelformat zu empfangen und wobei in dem ersten Bild mit der zweiten Auflösung jeweils Subpixel der ersten Farbkomponente, Subpixel der zweiten Farbkomponente und Subpixel der dritten Farbkomponente vorhanden sind, und wobei der Anzeigecontroller ferner dafür konfiguriert ist, Subpixel der ersten Farbkomponente in dem ersten Bild von der zweiten Auflösung in die erste Auflösung zu skalieren, um ein zweites Bild (1622) mit dem Nicht-RGB-Pixelformat zu erzeugen.

Description

  • HINTERGRUND
  • Virtual-Reality- (VR-) und Augmented-Reality- (AR-) Anzeigesysteme erfordern beträchtliche Rechenbetriebsmittel und Übertragungsbandbreite, um hochauflösende Bilder zu erzeugen und um die Bilder mit ausreichend hohen Auffrischungsraten zur Anzeige zu senden. Insbesondere ist dies die Situation in Systemen, die Head-Mounted-Display-Vorrichtungen (HMD-Vorrichtungen) nutzen, da die Prozesse zum Rendern und zur Übertragung von Bildern mit hohen Durchsatz für jedes Auge eines Anwenders parallel ausgeführt werden. Somit erfordern herkömmliche HMD-basierte Anzeigesysteme häufig erhebliche Rechenbetriebsmittel, um die Bilder mit einer ausreichenden Rate zu rendern, wobei eine komplexe Hochleistungs-Bitübertragungsschicht verwendet wird, um die Daten, die die gerenderten Bilder darstellen, zu der einen oder den mehreren Anzeigevorrichtungen zu übertragen.
  • In dem Bemühen, die Computer- und Übertragungsanforderungen zu verringern, können herkömmliche VR-Systeme, AR-Systeme und andere augennahe Anzeigesysteme einen fovealen Rendering-Prozess implementieren, in dem das Gebiet des Bilds, das der Fokus des Auges ist (d. h., das auf die Fovea fällt), mit einer höheren Auflösung gerendert wird, während der Rest des Bilds mit einer niedrigeren Auflösung gerendert wird. Somit besitzt das foveale Rendering üblicherweise eine niedrigere Computerbelastung als herkömmliche Rendering-Prozesse mit voller Auflösung. Allerdings besitzen herkömmliche Anzeigen, die für VR oder AR verwendet werden, wenigstens teilweise wegen der Anforderung, dass die Anzeige in der Lage sein muss, von irgendeinem Bereich der Anzeige, auf den der Anwender blicken kann, ein Bild für die Fovea des Auges eines Anwenders bereitzustellen, üblicherweise über die gesamte Anzeigetafel eine konstante oder gleichförmige Anzeigepixeldichte. Im Ergebnis ist es in herkömmlichen Anzeigesystemen weiterhin notwendig, hochauflösende Pixeldaten zu liefern, um solche herkömmlichen Anzeigetafeln anzusteuern. Dementsprechend erfordern herkömmliche Implementierungen des fovealen Rendering, obgleich die Rechenbelastung beim Rendern des Anzeigebilds verringert werden kann, die Übertragung von Pixeldaten für jedes Pixel der Anzeigetafel zwischen der Vorrichtung, die die Bilddaten rendert, und der Anzeige, die die Bilder anzeigt, so dass solche Systeme weder die Bandbreitenanforderung zum Übertragen von Anzeigedaten zu der Anzeige verringern noch die Leistung verringern, die durch die Anzeigerückwandplatine verbraucht wird, um die Pixeldaten für das foveal gerenderte Anzeigebild einzutakten. Darüber hinaus mangelt es solchen herkömmlichen Anzeigesystemen an der Flexibilität, die Fovealisierungs-Prozesse, Subpixel-Rendering-Prozesse und andere Bild- und Pixelverarbeitungsfunktionen so zu verteilen, dass der Leistungsverbrauch und/oder die Verfügbarkeit integrierter Schaltungen und/oder die Kosten und/oder andere Betrachtungen besser optimiert werden.
  • In Übereinstimmung mit den Anforderungen des Gebrauchsmustergesetzes durch das Gebrauchsmuster zu schützen und Gegenstand des Gebrauchsmusters sind nur Vorrichtungen, wie sie in den beigefügten Ansprüchen definiert sind, aber keine Verfahren. Falls die Beschreibung auf Verfahren Bezug nimmt, dienen diese Bezugnahmen lediglich zur Veranschaulichung der Vorrichtung oder Vorrichtungen, für die mit den beigefügten Ansprüchen Schutz begehrt wird.
  • Figurenliste
  • Die vorliegende Offenbarung kann besser verstanden und ihre zahlreichen Merkmale und Vorteile können dem Fachmann auf dem Gebiet besser verdeutlicht werden, indem auf die beigefügten Zeichnungen Bezug genommen wird. Die Verwendung derselben Bezugszeichen in verschiedenen Zeichnungen gibt ähnliche oder gleiche Positionen an.
    • 1 ist eine schematische Darstellung, die ein fovealisiertes Anzeigesystem darstellt, das eine Head-Mounted-Display-Vorrichtung (HMD-Vorrichtung) und eine Rendering-Vorrichtung in Übereinstimmung mit einigen Ausführungsformen nutzt.
    • 2 ist eine schematische Darstellung, die ein Bildverarbeitungssystem des fovealisierten Anzeigesystems aus 1 in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 3 ist eine schematische Darstellung, die ein fovealisiertes Bild mit einem fovealen Gebiet und mit einem einzelnen peripheren Gebiet in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 4 ist eine schematische Darstellung, die ein fovealisiertes Bild mit einem fovealen Gebiet und mit mehreren peripheren Gebieten in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 5 ist eine schematische Darstellung, die ein fovealisiertes Bild mit einem auf der Grundlage der Augenblicknachführung dynamisch örtlich festgelegten fovealen Gebiet in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 6 ist eine schematische Darstellung, die ein fovealisiertes Anzeigesystem, das eine fovealisierte Zweiwege-Graphikpipeline in Übereinstimmung mit einigen Ausführungsformen nutzt, darstellt.
    • 7 ist ein Ablaufplan, der einen fovealisierten Zweiwege-Bild-Rendering-Prozess und Zweiwege-Bildanzeigeprozess in dem System aus 6 in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 8 ist eine schematische Darstellung, die ein Anzeigesystem darstellt, das eine einzelne Bitübertragungsschicht zum Übertragen eines Bilds mit einem fovealen Gebiet und mit wenigstens einem peripheren Gebiet in Übereinstimmung mit einigen Ausführungsformen nutzt.
    • 9 ist eine schematische Darstellung, die einen beispielhaften Umformungsprozess für ein Bild mit zwei Bildgebieten mit unterschiedlichen vertikalen Auflösungen in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 10 ist eine schematische Darstellung, die einen beispielhaften Umformungsprozess für ein Bild mit drei Bildgebieten mit unterschiedlichen vertikalen Auflösungen in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 11 ist ein Ablaufplan, der ein Verfahren zum Umformen von Bilderzeugergebieten eines Bilds zu einer einzelnen kombinierten Pixelanordnung mit Zeilen konstanter Breite in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 12 ist eine schematische Darstellung, die ein Beispiel des Verfahrens aus 11 in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 13 ist ein Ablaufplan, der ein Verfahren zum Unterteilen einer kombinierten Pixelanordnung in Bestandteilbildgebiete mit unterschiedlichen vertikalen Auflösungen in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 14 ist eine schematische Darstellung, die ein Anzeigesystem darstellt, das einen niedrigauflösenden RGB-Rendering-Prozess in Übereinstimmung mit einigen Ausführungsformen implementiert.
    • 15 ist ein Ablaufplan, der ein Verfahren für das niedrigauflösende RGB-Rendering in dem System aus 14 in Übereinstimmung mit einigen Ausführungsformen darstellt.
    • 16 ist eine schematische Darstellung, die ein Beispiel des niedrigauflösenden RGB-Rendering-Verfahrens aus 15 in Übereinstimmung mit einigen Ausführungsformen darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung soll dadurch, dass eine Anzahl spezifischer Ausführungsformen und Einzelheiten gegeben werden, die insbesondere im Kontext von VR- oder AR-Systemen, die Head-Mounted-Display-Vorrichtungen (HMD-Vorrichtungen) nutzen, fovealisierte Anzeigesysteme und Subpixel-gerenderte Anzeigesysteme umfassen, ein gründliches Verständnis der vorliegenden Offenbarung übermitteln. Allerdings ist die vorliegende Offenbarung selbstverständlich nicht auf diese spezifischen Ausführungsformen und Einzelheiten, die nur Beispiele sind, beschränkt und soll der Schutzumfang der Offenbarung dementsprechend nur durch die folgenden Ansprüche und ihre Entsprechungen beschränkt sein. Ferner würde der Durchschnittsfachmann auf dem Gebiet im Licht bekannter Systeme und Verfahren selbstverständlich die Verwendung der Offenbarung für ihre beabsichtigten Zwecke und Vorteile in Abhängigkeit von einem spezifischen Entwurf und anderen Notwendigkeiten in irgendeiner Anzahl alternativer Ausführungsformen erkennen.
  • 1-16 stellen beispielhafte Systeme und Techniken zur effizienten und flexiblen Verteilung von Bild- und Pixelverarbeitungsprozessen in einem HMD-basierten VR/AR-System oder in einem anderen Anzeigesystem, um die Gesamtrechenaufwände zu verringern und um die Menge der Pixeldaten zu verringern, die zwischen einer Rendering-Vorrichtung des Anzeigesystems und einer Anzeigevorrichtung des Anzeigesystems zu übertragen sind, und um somit den Anzeigeleistungsverbrauch, Bandbreitenanforderungen und die zugeordnete Komplexität zu verringern, dar. Wie im Folgenden anhand von 1-13 beschrieben ist, nutzt ein Anzeigesystem eine fovealisierte Mehrwege-Graphikpipeline, in der die Pixelanordnung oder der Bildraum eines zu rendernden Anzeigebilds logisch in zwei oder mehr Abschnitte segmentiert ist, die wenigstens ein foveales Gebiet, das das Gebiet des Anzeigebilds darstellt, von dem erwartet oder geschätzt wird, dass es zu dem Ziel des Blicks des Anwenders wird, und wenigstens ein peripheres Gebiet, das dieses foveale Gebiet umgibt, enthalten. Durch eine Rendering-Vorrichtung wird ein fovealer Rendering-Prozess genutzt, um das Anzeigebild auf der Grundlage der identifizierten Gebiete foveal zu rendern, wobei das foveale Gebiet mit der höchsten Auflösung gerendert wird und das eine oder die mehreren peripheren Gebiete mit niedrigeren Auflösungen gerendert werden, wobei die Auflösung eines peripheren Gebiets in einigen Ausführungsformen wenigstens teilweise auf der Entfernung dieses Gebiets von dem fovealen Gebiet beruhen kann. Daraufhin verarbeitet und überträgt die fovealisierte Graphikpipeline die verschiedenen Gebiete des Anzeigebilds über unterschiedliche Verarbeitungs-/Übertragungswege zwischen einer oder mehreren Graphikverarbeitungseinheiten (GPUs) der Rendering-Vorrichtung und einem Anzeigecontroller einer Anzeigevorrichtung, die die zum Anzeigen des Anzeigebilds verwendete Pixelanzeige umfasst.
  • Die Implementierung getrennter Verarbeitungs-/Übertragungswege für jedes Gebiet des Anzeigebilds ermöglicht die flexible Verteilung verschiedener Prozesse, die die Verarbeitung des Anzeigebilds betreffen, zwischen der Rendering-Vorrichtung und dem Anzeigecontroller und ermöglicht somit die Verringerung der Pixeldaten, die über die eine oder die mehreren Bitübertragungsschichten, die die Rendering-Vorrichtung und den Anzeigecontroller verbinden, zu übertragen sind, sowie die effiziente Zuordnung von Pixelberechnungsprozessen zwischen der Rendering-Vorrichtung und dem Anzeigecontroller. Anstatt irgendwelche gerenderten niedrigauflösenden peripheren Gebiete vor der Übertragung zu der Anzeigevorrichtung mit einer Anzeige zu skalieren, wie es in herkömmlichen Fovealisierungs-Systemen zu finden ist, wird der Skalierungsprozess zur Veranschaulichung in einigen Ausführungsformen der Anzeigevorrichtung zugeordnet, so dass das periphere Gebiet in unskalierter Form über eine Bitübertragungsschicht zu der Anzeigevorrichtung übertragen wird, woraufhin die Anzeigevorrichtung das periphere Gebiet danach skaliert. Dadurch, dass das periphere Gebiet in seiner niedriger auflösenden Form über die Bitübertragungsschicht übertragen wird, kann die Bitübertragungsschicht mit einer niedrigeren Bandbreite und entsprechend niedrigerem Pixeltakt implementiert werden.
  • Üblicherweise nutzt eine Anzeigevorrichtung ein Rot-Grün-Blau-Pixelformat (RGB-Pixelformat), in dem jedes Pixel der Pixelanordnung der Anzeigetafel ein rotes Subpixel, ein grünes Subpixel und ein blaues Subpixel enthält (und in einigen Fällen ferner ein weißes Subpixel enthalten kann). Dementsprechend rendern herkömmliche Rendering-Systeme Bilder in einem RGB-Pixelformat, das dem RGB-Pixelformat der Anzeigevorrichtung entspricht. Allerdings nutzen einige Anzeigevorrichtungen ein Nicht-RGB-Pixelformat (d. h. ein Pixelformat, in dem in jedem Pixel wenigstens eines des roten, des grünen oder des blauen Subpixels fehlt). Zur Veranschaulichung ist ein Nicht-RGB-Pixelformat, das häufig in Anzeigetafeln auf der Grundlage organischer Leuchtdioden (OLED) zu finden ist, ein Rot-Grün-Blau-Grün-Pixelformat (RGBG-Pixelformat) (häufig über den Handelsnamen „PenTile“ (TM) identifiziert), in dem jedes Pixel nur aus zwei Subpixeln, entweder aus einem roten Subpixel und einem grünen Subpixel (RG) oder aus einem blauen Subpixel und einem grünen Subpixel (BG), besteht.
  • In herkömmlichen Systemen, die eine solche Anzeigetafel nutzen, rendert das Rendering-System jedes Anzeigebild in dem RGB-Pixelformat und überträgt es dieses Anzeigebild zu der Anzeigetafel, woraufhin ein Anzeigecontroller der Anzeigetafel das RGB-Pixelformat daraufhin in das RGBG- oder in ein anderes Nicht-RGB-Pixelformat der Pixelanordnung umsetzt. Allerdings hat diese herkömmliche Vorgehensweise bestimmte Nachteile. Zum Beispiel hat jedes Pixel in dem Anzeigebild, das zwischen der Rendering-Vorrichtung und der Anzeigevorrichtung übertragen wird, drei Werte - d. h. für jedes Pixel des Anzeigebilds für jedes der drei Subpixel einen Wert (oder im Fall der Implementierung des weißen Subpixels vier). Im Gegensatz dazu besitzt das in das Pixelformat umgesetzte Bild, das durch den Anzeigecontroller für die Pixelanordnung bereitgestellt wird, für jedes Pixel nur zwei Werte - d. h. für jedes Pixel für jedes der zwei Subpixel einen Wert. Im Ergebnis werden unnötige Pixel sowohl berechnet als auch über die Bitübertragungsschicht übertragen, die die Rendering-Vorrichtung und die Anzeigevorrichtung verbindet, so dass die Komplexität und der Leistungsverbrauch der Bitübertragungsschicht erhöht sind. Ein weiterer Nachteil der herkömmlichen Subpixel-Rendering-Vorgehensweise ist, dass der Algorithmus zum Ausführen der RGB-in-nicht-RGB-Pixelformat-Umwandlung für das Bild bei der Anzeigevorrichtung implementiert wird. Da ein Entwickler keinen Zugriff auf die Firmware oder Hardware der Anzeigevorrichtung, die diesen Algorithmus implementiert, haben kann oder anders nicht in der Lage ist, diese Firmware oder Hardware effektiv zu ändern, ist die Fähigkeit des Entwicklers, den Rendering-Prozess zu optimieren, um das Subpixelformat zu nutzen, beeinträchtigt.
  • Es soll angemerkt werden, dass einige RGB-basierte Pixelformate wie etwa ein Rot-Grün-Blau-Weiß- (RGBW-) Pixelformat oder ein Rot-Grün-Blau-Gelb- (RGBY-) Pixelformat ein viertes Farbelement enthalten. Die Bezugnahme auf ein „RGB-Pixelformat“ ist hier auf alle Pixelformate mit wenigstens den drei Farbelementen Rot, Blau und Grün anwendbar und enthält somit ferner RGBW-, RGBY- und andere RGB-basierte Pixelformate.
  • 6 und 7 stellen beispielhafte Systeme und Techniken zum frühen Subpixel-Rendering (SPR), um diese Nachteile zu behandeln, dar. In wenigstens einer Ausführungsform erzeugt die Rendering-Vorrichtung, anstatt das Subpixel-Rendering bei der Anzeigevorrichtung auszuführen, ein Anzeigebild in dem Nicht-RGB-Pixelformat der Pixelanordnung der Anzeigevorrichtung und überträgt sie das Anzeigebild in diesem Nicht-RGB-Pixelformat ohne Skalieren zu der Anzeigevorrichtung. Die Erzeugung des Anzeigebilds in diesem Format kann z. B. enthalten, dass die Rendering-Vorrichtung das Anzeigebild in dem Nicht-RGB-Pixelformat nativ rendert, oder die Anzeigevorrichtung kann das Anzeigebild in einem RGB-Pixelformat rendern und daraufhin das Pixelformat des Anzeigebilds zur Übertragung zu der Anzeigevorrichtung aus dem RGB-Pixelformat in das Nicht-RGB-Pixelformat umwandeln. Dies führt dazu, dass über die Bitübertragungsschicht, die die Rendering-Vorrichtung und die Anzeigevorrichtung verbindet, eine verringerte Menge von Pixeldaten übertragen werden, und verringert außerdem den Rechenaufwand der Rendering-Vorrichtung, falls das Anzeigebild in dem Nicht-RGB-Pixelformat nativ gerendert wird. Dadurch, dass das Anzeigebild in dem Nicht-RGB-Pixelformat bei der Anzeigevorrichtung erzeugt wird, sind darüber hinaus die Subpixel der Pixelanordnung durch die Rendering-Vorrichtung getrennt adressierbar, so dass ein Entwickler oder Anwender der Anzeigevorrichtung den durch die Rendering-Vorrichtung genutzten SPR-Algorithmus dafür konfigurieren kann, diese Subpixeladressierbarkeit zu nutzen.
  • In vielen Nicht-RGB-Pixelformaten tritt eine Farbkomponente mit einer höheren Auflösung und Häufigkeit als die anderen Farbkomponenten des Pixelformats auf. Zum Beispiel haben in dem RGBG-Pixelformat die grünen Subpixel eine Auflösung, die doppelt so hoch wie entweder die der roten Subpixel oder die der blauen Subpixel ist. Dies ahmt in gewissem Grad das Verhältnis der Dichte blauer und grüner Kegel in der Netzhaut des menschlichen Auges nach. 14-16 stellen beispielhafte Systeme und Techniken für das Rendering mit verringerter Auflösung dar, um die verschiedenen Auflösungen der Farbkomponenten eines Nicht-RGB-Pixelformats wirksam dafür einzusetzen, die Rechenbelastung zum Rendern von Bildern zu verringern und die Übertragungsbandbreite, die notwendig ist, um diese Bilder zur Anzeige zu der Anzeigevorrichtung zu übertragen, zu verringern. In wenigstens einer Ausführungsform rendert der niedrigauflösende RGB-Rendering-Prozess anfangs ein Bild in einem RGB-Pixelformat mit der niedrigeren Auflösung sekundärer Farbkomponenten in dem Nicht-RGB-Pixelformat der Anzeige, die zum Anzeigen des Bilds bei der Anzeigevorrichtung verwendet wird. Dies verringert die Rendering-Rechenanforderungen und führt außerdem zu weniger Pixelwerten, um das Bild darzustellen, und erfordert somit eine niedrigere Übertragungsbandbreite. Bei der Anzeigevorrichtung wird das Bild in das Nicht-RGB-Pixelformat umgesetzt, was somit ermöglicht, dass das resultierende Bild in dem kompatiblen Pixelformat der Pixelanordnung der Anzeigevorrichtung angezeigt wird. Als Teil dieses Formatumsetzungsprozesses werden die RGB-Pixel des Bilds aufwärtsskaliert, um eine größere Anzahl von Ausgangs-Nicht-RGB-Subpixeln zu erzeugen und somit die Auflösung des resultierenden Nicht-RGB-Bilds in dem Prozess zu erhöhen.
  • 1 stellt ein beispielhaftes Anzeigesystem 100 dar, das eine oder mehrere der hier in Übereinstimmung mit einigen Ausführungsformen beschriebenen Bildverarbeitungstechniken implementiert. Das Anzeigesystem 100 enthält eine Rendering-Vorrichtung 102, die über wenigstens eine Bitübertragungsschicht (PHY) 106 mit Anzeigen 114 und 116 einer Anzeigevorrichtung 104 gekoppelt ist. Die Rendering-Vorrichtung 102 enthält die Komponenten des Systems 100, die dafür implementiert sind, Folgen von Bildern, die AR- oder VR-Inhalt darstellen, zur Anzeige bei der Anzeigevorrichtung 104 zu rendern. Die PHY 106 umfasst die Schaltungsanordnung und leitfähige Drähte oder Leiterbahnen, die genutzt werden, um die Pixeldaten, die die Folge von Bildern darstellen, von der Rendering-Vorrichtung 102 zu den Anzeigen 114 und 116 zu übertragen. Beispiele der PHY enthalten eine Mobile-Industry-Processor-Interface-Verbindung (MIPI-DSI-Verbindung), eine DisplayPort-Verbindung oder eine eingebettete DisplayPort-Verbindung, eine Niederspannungs-Differentialsignal-Verbindung (LVDS-Verbindung), eine herstellerspezifische Verbindung und dergleichen.
  • In dem dargestellten Beispiel ist die Anzeigevorrichtung 104 als eine Head-Mounted-Display-Vorrichtung (HMD-Vorrichtung) gezeigt und ist sie hier somit ebenfalls als HMD-Vorrichtung 104 bezeichnet. Allerdings kann die Anzeigevorrichtung 104 als ein anderer Typ einer Vorrichtung, die eine oder mehrere Anzeigen enthält, wie etwa ein Fernsehgerät, ein Computermonitor, eine Zellentelephonanzeige oder eine andere Handvorrichtung und dergleichen implementiert werden. Die HMD-Vorrichtung 104 ist unter Verwendung einer Vorrichtung, die an den Kopf des Anwenders geschnallt oder auf andere Weise daran montiert ist, an dem Kopf eines Anwenders montiert, so dass die HMD-Vorrichtung 104 in der Nähe des Gesichts des Anwenders fest positioniert ist und sich somit mit den Bewegungen des Anwenders bewegt. Allerdings kann ein Anwender in einigen Fällen eine tragbare Vorrichtung an dem Gesicht des Anwenders abstützen und die Bewegung der tragbaren Vorrichtung in der Weise beschränken, dass die Orientierung der tragbaren Vorrichtung zu dem Kopf des Anwenders selbst dann verhältnismäßig festgelegt ist, wenn sich der Kopf des Anwenders bewegt. In solchen Fällen kann eine tragbare Vorrichtung, die auf diese Weise betrieben wird, ebenfalls als eine Implementierung der HMD-Vorrichtung 104 angesehen werden, obgleich sie nicht über eine physikalische Befestigung am Kopf des Anwenders „montiert“ ist.
  • Die HMD-Vorrichtung 104 enthält ein Gehäuse 108 mit einer zum Anwender weisenden Oberfläche 110 und mit einer gegenüberliegenden nach vorn weisenden Oberfläche (nicht gezeigt), optische Okularlinsen 118, 120 und ein Gesichtspolster (oder eine Dichtung) 112 und einen Satz Bänder oder ein Gurtzeug (in 1 zur Klarheit weggelassen), um das Gehäuse 108 in der Weise an dem Kopf des Anwenders zu montieren, dass der Anwender der Oberfläche 110 des Gehäuses 108 zugewandt ist. In der gezeigten Ausführungsform ist die HMD-Vorrichtung 104 eine binokulare HMD und besitzt somit eine Anzeigetafel 114 des linken Auges und eine Anzeigetafel 116 des rechten Auges, die (relativ zu den Augen des Anwenders) hinter den optischen Okularlinsen 118, 120 angeordnet sind. In anderen Ausführungsformen implementiert die HMD-Vorrichtung 104 eine einzelne Anzeigetafel, die in ein Gebiet des linken Auges zum Anzeigen von Bildern für das linke Auge und in ein Gebiet des rechten Auges zur Anzeige zum Anzeigen von Bildern für das rechte Auge logisch geteilt ist. Ferner enthält das Gehäuse 108 eine Okularlinsenanordnung 118, die auf die Anzeigetafel 114 des linken Auges ausgerichtet ist, und eine Okularlinsenanordnung 120, die auf die Anzeigetafel 116 des rechten Auges ausgerichtet ist. Obgleich sie als eine einzelne Linse dargestellt ist, kann jede der Okularlinsenanordnungen 118, 120 zwei oder mehr Linsen und andere optische Elemente umfassen.
  • In einigen Ausführungsformen ist die HMD-Vorrichtung 104 über eine oder mehreren PHYs 106 über Kabel an einen Desktopcomputer, an einen Notebookcomputer oder an ein anderes externes Verarbeitungssystem angeschlossen, das die Bilddaten rendert und die Bilddaten zur Anzeige auf den Anzeigetafeln 114, 116 der HMD-Vorrichtung 104 überträgt. In solchen Implementierungen bildet das externe Verarbeitungssystem die Rendering-Vorrichtung 102 und bilden die PHY(s) 106 die drahtlose oder verdrahtete Verbindung zwischen dem externen Verarbeitungssystem und der HMD-Vorrichtung 104. In anderen Ausführungsformen ist die HMD-Vorrichtung 104 ein selbstständiges Anzeigesystem, in dem die Bilder bei der HMD-Vorrichtung 104 gerendert werden, wobei die Rendering-Vorrichtung 102 in diesem Fall der Schaltungsanordnung und anderen Komponenten der HMD-Vorrichtung 104, die am Rendering und an einer anderen Anfangsverarbeitung der gerenderten Bilddaten beteiligt sind, entspricht. In solchen Implementierungen ist die Rendering-Vorrichtung 102 z. B. als ein oder mehrere Einchipsysteme (SoCs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen implementiert. Ferner repräsentieren die PHY(s) 106 in solchen Implementierungen die Schaltungsanordnung und die leitfähigen Wege, die die Komponenten der Rendering-Vorrichtung 102 in der HMD-Vorrichtung 104 mit den Anzeigetafeln 114, 116 und zugeordneten Anzeigecontrollern (in 2 gezeigt) der HMD-Vorrichtung 104 koppeln.
  • 2 stellt eine beispielhafte Implementierung der Bildverarbeitungskomponenten der HMD-Vorrichtung 104 und der Rendering-Vorrichtung 102 des Systems 100 aus 1 in Übereinstimmung mit einigen Ausführungsformen dar. In dem gezeigten Beispiel enthält die Rendering-Vorrichtung 102 wenigstens eine Graphikverarbeitungseinheit (GPU) 202 und einen Systemspeicher 204, der eine oder mehrere Softwareanwendungen (hier einzeln oder zusammen als „VR/AR-Softwareanwendung 206“ bezeichnet) speichert. Die eine oder die mehreren GPUs 202 können z. B. in einem SoC, in einer ASIC oder in einer anderen Vorrichtungshardwarekomponente 208 implementiert sein. Obgleich der Systemspeicher 204 getrennt von der Hardwarekomponente 208 dargestellt ist, ist der Systemspeicher 204 in einigen Ausführungsformen als Speicher implementiert, der in die Hardwarekomponente 208 eingebettet ist.
  • Die Anzeigetafel 114 des linken Auges der HMD-Vorrichtung 104 enthält einen Anzeigecontroller 210 und eine Pixelanordnung 212, die eine Anordnung von Pixeln implementiert, die in Zeilen und Spalten angeordnet sind. Jedes Pixel der Pixelanordnung 212 kann als eine Matrix von Subpixeln wie etwa eine bestimmte Anordnung roter, grüner oder blauer Subpixel implementiert sein, von denen jedes dafür gesteuert wird, Licht der entsprechenden Farbe mit einer entsprechenden Farbdichte zu emittieren, wobei die Kombination der Lichtfarben und ihrer Farbdichte zu der beabsichtigten Helligkeit und Farbe für das Pixel als Ganzes führt. Beispielhafte Pixelarchitekturen für die Pixel können z. B. Leuchtdioden (LEDs) und organische Leuchtdioden (OLEDs) enthalten. Ferner enthält die Anzeigetafel 114 des linken Auges eine Spaltensteuerkomponente 214 und eine Zeilensteuerkomponente 216. Die Spaltensteuerkomponente 106 enthält Pixeldatenpuffer, Leitungstreiber und Spaltenkombinationslogik, die zusammenarbeiten, um die Pixel der Pixelanordnung 212 auf einer Grundlage von Spalte zu Spalte zu steuern. Ähnlich enthält die Zeilensteuerkomponente 216 eine Zeilenauswahllogik und eine Zeilenkombinationslogik, die zusammenarbeiten, um die Pixel der Pixelanordnung 212 auf einer Grundlage von Zeile zu Zeile zu steuern.
  • Üblicherweise sind die Spaltensteuerkomponente 214 und die Zeilensteuerkomponente 216 als integrierte Schaltungsanordnung auf dem Anzeigetafelsubstrat implementiert, das die Pixelanordnung 212 implementiert, wobei sie aber in einigen Implementierungen als getrennte diskrete Hardwarekomponenten implementiert sein können. Gleichfalls kann der Anzeigecontroller 210 als eine diskrete Hardwarekomponente wie etwa eine oder mehrere ASICs, frei programmierbare logische Anordnungen (FPGA) oder andere programmierbare Logikvorrichtungen, die auf einer Leiterplatte (PCB) oder einer Flexschaltung implementiert sind, implementiert sein oder können sie als Schaltungsanordnung, die mit dem Anzeigetafelsubstrat integriert ist, implementiert sein. Die Anzeigetafel 116 des rechten Auges der HMD-Vorrichtung 104 ist ähnlich mit einem Anzeigecontroller 220, mit einer Pixelanordnung 222, mit einer Spaltensteuerkomponente 224 und mit einer Zeilensteuerkomponente 226 konfiguriert.
  • Die eine oder die mehreren GPUs 202 der Rendering-Vorrichtung 102 sind mit der Anzeigetafel 114 über eine oder mehrere PHYs 232 und mit der Anzeigetafel 116 über eine oder mehrere PHYs 234 verbunden, wobei die PHYs 232, 234 Ausführungsformen der PHY 106 aus 1 sind. Wie oben ähnlich angemerkt wurde, enthalten die PHYs 232, 234 die leitfähigen Drähte, Lichtwellenleiterleitungen oder andere elektrische oder optische Signalleitungsstrukturen, die dafür verwendet werden, Signale zwischen der Hardwarekomponente 208, die die GPU 202 implementiert, und den Anzeigetafeln 114, 116 zu übertragen, sowie die Schaltungsanordnung, die sowohl bei der Hardwarekomponente 208 als auch bei den Anzeigetafeln 114, 116 die Schnittstellen zu diesen Signalleitungsstrukturen implementiert. Standardisierte Beispiele solcher PHYs enthalten MIPI-DSI-Verbindungen, DisplayPort- oder eingebettete DisplayPort-Verbindungen, LVDS-Verbindungen und dergleichen, sind darauf aber nicht beschränkt.
  • Als eine allgemeine Betriebsübersicht führen ein oder mehrere Prozessoren der Rendering-Vorrichtung 102, die die eine oder die mehreren GPUs 202 enthält, die VR/AR-Softwareanwendung 206 aus, die in dem Systemspeicher 204 gespeichert ist, um für einen Anwender der HMD-Vorrichtung 104 die VR/AR-Funktionalität bereitzustellen. Als Teil dieses Prozesses manipuliert die VR/AR-Anwendung 206 die eine oder die mehreren GPUs 202, um parallele Folgen von Bildern zur Anzeige bei den Anzeigetafeln 114, 116 zu rendern, wobei die Folgen von Bildern eine VR- oder AR-Szene darstellen, die auf bereitgestellten Anzeigekontextinformationen 236 beruht. Die Anzeigekontextinformationen 236 können Informationen, die räumliche Eigenschaften einer AR- oder VR-Umgebung und darin enthaltene Objekte darstellen, sowie Sensorinformationen hinsichtlich der Pose der HMD-Vorrichtung 102 relativ zu der dargestellten Umgebung enthalten. Während jedes Bild einer entsprechenden Folge gerendert wird, stellt die Rendering-Vorrichtung 102 die Pixeldaten und entsprechende Steuerdaten zur Übertragung über die entsprechende Eine der PHYs 232, 234 zu der entsprechenden Einen der Anzeigetafeln 114, 116 bereit, woraufhin der Anzeigecontroller der entsprechenden Anzeigetafel die empfangenen Pixeldaten verarbeitet und die resultierenden geänderten Pixeldaten für die Spaltensteuerkomponente und für die Zeilensteuerkomponente bereitstellt, um die Pixelanordnung zum Anzeigen der durch die geänderten Pixeldaten dargestellten Bilder anzusteuern. Die Computerleistung zum Rendern dieser parallelen Folgen von Bildern kann die GPU-Betriebsmittel der Rendering-Vorrichtung beanspruchen sowie die Übertragungsbandbreiten der PHYs 232, 234 überlasten oder die Verwendung komplexer und unerschwinglicher Implementierungen für die PHYs 232, 234 erfordern. Dementsprechend können die Rendering-Vorrichtung 102 und die HMD-Vorrichtung/Anzeigevorrichtung 104 eine oder mehrere der fovealen Zweiwege-Rendering-Techniken, Techniken des frühen SPR oder SPR-Techniken mit verringerter Auflösung, die hier beschrieben sind, implementieren, um die Computerbelastung und die Bandbreitenanforderungen für diesen Rendering- und Übertragungsprozess zu verringern.
  • In einigen Ausführungsformen enthält das Anzeigesystem 100 eine fovealisierte Zweiwege- oder Mehrwege-Graphikpipeline, in der jedes zu rendernde Bild in ein foveales Gebiet, das einer Blickrichtung eines Anwenders in Bezug auf die Pixelanordnung (z. B. die Pixelanordnung 212 oder 222), die der Anzeigetafel entspricht, auf der das Bild angezeigt werden soll, entspricht, sowie in ein oder mehrere periphere Gebiete, die das foveale Gebiet umgeben, räumlich unterteilt wird. Das foveale Gebiet, das in der erwarteten Blickrichtung zentriert ist, wird mit einer höheren Auflösung gerendert, während das eine oder die mehreren peripheren Gebiete mit niedrigeren Auflösungen gerendert werden, wobei in Fällen mit mehr als einem peripheren Gebiet die Auflösung jedes peripheren Gebiets mit der Entfernung von dem fovealen Gebiet allgemein abnimmt.
  • In einigen Ausführungsformen besitzt dieses foveale Gebiet in jedem Bild einer Folge von Bildern eine feste Position. Zum Beispiel kann erwartet werden, dass der Anwender hauptsächlich auf die Mitte der Pixelanordnung blicken kann, so dass das foveale Gebiet auf ein Gebiet der Pixel, das um den Mittelpunkt eines Bilds zentriert ist, eingestellt werden kann, der wiederum dem Mittelpunkt der Pixelanordnung entspricht, auf der das Bild angezeigt werden soll. Zur Veranschaulichung zeigt 3 eine beispielhafte Pixelanordnung 300 eines Bilds, in der ein foveales Gebiet 302 eine Teilmenge von Pixeln 304 umfasst. Zum Beispiel kann das foveale Gebiet 302 in der Pixelanordnung 300 eine 9 × 12-Teilmengenanordnung von Pixeln 304 an der dargestellten Position umfassen, während ein einzelnes peripheres Gebiet 306 als die verbleibende Teilmenge von Pixeln 304 der Pixelanordnung 300 definiert ist. Es wird angemerkt, dass die Größen und die Auflösung der Pixelanordnung und entsprechender Teilmengengebiete im Vergleich zu der typischen Implementierung zu Veranschaulichungszwecken verringert sind.
  • Obgleich das Beispiel aus 3 ein einzelnes peripheres Gebiet 306 zeigt, können die Pixel der Pixelanordnung außerhalb eines fovealen Gebiets in einigen Ausführungsformen in mehrere periphere Gebiete unterteilt sein. Zur Veranschaulichung zeigt 4 eine beispielhafte Pixelanordnung 400 eines Bilds, in der ein foveales Gebiet 402 als eine 8 × 7-Anordnungs-Teilmenge von Pixeln 404 in der dargestellten Position spezifiziert ist und die verbleibenden Pixel 404 der Pixelanordnung 400 in zwei konzentrische periphere Gebiete unterteilt sind: ein proximales peripheres Gebiet 406, das das foveale Gebiet 402 umgibt, und ein distales peripheres Gebiet 408, das das proximale periphere Gebiet 406 umgibt. In Fällen, in denen es mehrere periphere Gebiete gibt, kann ein Anzeigebild in der Weise foveal gerendert werden, dass die resultierende Auflösung, die in jedem peripheren Gebiet implementiert wird, mit der Entfernung von dem fovealen Gebiet abnimmt.
  • In anderen Ausführungsformen kann die Rendering-Vorrichtung 102 ein Blicknachführungssystem nutzen, das die Blickrichtung eines oder beider Augen des Anwenders nachführt und daraus den Ort, der das Ziel des Blicks des Anwenders in der Pixelanordnung der entsprechenden Anzeigetafel ist, (dieser Ort wird hier als der „Blickzielort“ bezeichnet) dynamisch aktualisiert und somit den Ort des fovealen Gebiets, der auf dem Blickzielort beruht, aktualisiert. Zur Veranschaulichung zeigt 5 eine beispielhafte Pixelanordnung 500 eines zu rendernden Bilds, in der ein Blicknachführungssystem die Blickrichtung des Anwenders identifiziert und daraus einen Ort 501 in einer Pixelanordnung einer entsprechenden Anzeigetafel als einen aktuellen Blickzielort schätzt. Auf dieser Grundlage kann das Rendering-System z. B. eine 8 × 8-Anordnungsteilmenge von Pixeln 504, die um diesen Ort 501 zentriert sind, als ein foveales Gebiet 502 bestimmen und die verbleibenden Pixel 504 als ein peripheres Gebiet 506 für das zu rendernde Gebiet bestimmen. Wie oben anhand von 4 beschrieben wurde, können die verbleibenden Pixel 504 alternativ in mehr als ein peripheres Gebiet unterteilt werden. Auf diese Weise wird das foveale Gebiet 502 mit einer geeigneten Ausrichtung des fovealen Gebiets 502 auf die Fovea des Anwenders auf die Netzhaut des Anwenders projiziert.
  • Die Dimensionen eines fovealen Gebiets (wie in Pixeln gemessen) können auf einer Anzahl von Faktoren einschließlich der Gesamtauflösung der entsprechende Pixelanordnung der Anzeigetafel, der Anzahl unterschiedlicher peripherer Gebiete, die implementiert werden sollen, der Entfernung zwischen der Anzeigetafel und dem Auge des Anwenders, der Anwesenheit irgendwelcher Linsen oder anderer optischer Systeme zwischen der Pixelanordnung und dem Auge des Anwenders und ihrer Wirkung auf die Anwenderwahrnehmung der Anzeige und dergleichen beruhen. Zur Veranschaulichung kann ein foveales Gebiet unter der Annahme, dass foveales Sehen innerhalb eines Bereichs von ±5 Grad horizontal und ± 5 Grad vertikal der optischen Achse des Auges stattfindet, so dimensioniert sein, dass es dieses foveale Blickfeld abdeckt, und ferner einen bestimmten zusätzlichen Rand enthalten. In Implementierungen, die die Blicknachführung nutzen, um eine Position des fovealen Gebiets dynamisch auszuwählen, kann die Menge des Rands, der aufgenommen werden soll, auf dem potentiellen Fehler beim Schätzen der Blickrichtung des Auges beruhen. Zur Veranschaulichung kann für das Beispiel aus 5 angenommen werden, dass ein Gebiet von 6 × 6 Pixeln das foveale Blickfeld darstellt, und dass es in der horizontalen Richtung einen Spielraum des Fehlers bei der Blicknachführung in der horizontalen Richtung gibt, der durch Hinzufügen zweier Spalten von Pixeln und zweier Zeilen von Pixeln auf den Seiten des 6 × 6-Gebiets (in diesem Beispiel unter der Annahme eines vernachlässigbaren vertikalen Augennachführungsfehlers) kompensiert wird, was somit zu dem beispielhaften fovealen Gebiet 502 führt, das mit 8 Pixeln × 8 Pixeln dimensioniert ist. Es wird angemerkt, dass die vorstehenden Darstellungen zur Erleichterung der Beschreibung vereinfacht sind. In einer typischen Implementierung würde ein foveales Gebiet von ±5 Grad in horizontaler und vertikaler Richtung mit einer Sehschärfe von 1 Bogenminute pro Pixel 60 Pixel pro Grad erfordern, so dass die Gesamtgröße des fovealen Bereichs 600 × 600 Pixel wären.
  • Wenn der Ort und die Dimensionen eines fovealen Gebiets identifiziert worden sind (sowie der Ort und die Dimensionen des einen oder der mehreren peripheren Gebiete im Ergebnis identifiziert worden sind), rendert das Anzeigesystem 100 das nächste Anzeigebild unter Verwendung eines fovealen Rendering-Prozesses, der das resultierende Anzeigebild in dem Gebiet, das dem fovealen Gebiet entspricht, mit höherer Auflösung und in dem einen oder in den mehreren peripheren Gebieten mit niedrigerer Auflösung rendert. In einem herkömmlichen fovealen Rendering-Prozess, der zum Anzeigen von Bildern auf einer herkömmlichen Anzeige genutzt wird, besitzt das resultierende gerenderte Bild für jedes Pixel der Anzeige getrennte Pixeldaten. Die Rechenbelastungseinsparungen in solchen herkömmlichen fovealen Rendering-Prozessen kommen von der Tatsache, dass in dem peripheren Gebiet viele Pixelwerte verdoppelt, interpoliert oder auf andere Weise aus nahegelegenen Pixeln genähert werden können - dieser Prozess wird gelegentlich als „Aufwärtsskalierung“ bezeichnet -, anstatt dass für jedes Pixel ein eindeutiger Wert berechnet werden muss. Obgleich diese Verdoppelung oder Näherung von Pixelwerten für Pixel in peripheren Gebieten die Anzahl der Rendering-Berechnungen verringert, führt sie dennoch zu einer vollen Tabelle von Pixelwerten, so dass die Menge der an eine Anzeige übertragenen Pixeldaten, die unter Verwendung eines herkömmlichen fovealen Rendering-Prozesses gerendert werden, für dieselbe gegebene Anzeigeauflösung dieselbe wie die Menge von Pixeldaten ist, die an eine Anzeige ohne foveales Rendering übertragen werden.
  • 6-16 stellen beispielhafte Implementierungen und Operationen des Anzeigesystems 100 dar, die eine fovealisierte Graphikpipeline nutzen, die einen Datenweg für die Verarbeitung des fovealen Gebiets und wenigstens einen anderen, getrennten Datenweg für die Verarbeitung eines oder mehrerer peripherer Gebiete bereitstellt. Über diese Zweiwege- (oder allgemeiner Mehrwege-) Vorgehensweise kann jedes periphere Gebiet über eine entsprechende PHY in seiner Form mit verringerter Auflösung übertragen werden, anstatt das Aufwärtsskalieren des peripheren Gebiets vor der Übertragung zu erfordern. Ferner ermöglicht diese Vorgehensweise eine flexible Zuordnung von Pixel- und Bildverarbeitungsaufgaben zwischen der Rendering-Vorrichtung 102 und der Anzeigevorrichtung 104 und ermöglicht sie dadurch die Betrachtung von Bandbreiten-, Leistungs- und Kapazitätsbetrachtungen.
  • In 6 ist ein Anzeigesystem 600 (eine Ausführungsform des Anzeigesystems 100), das eine fovealisierte Graphikpipeline implementiert, in Übereinstimmung mit einer Ausführungsform dargestellt. Das Anzeigesystem 600 enthält eine Rendering-Vorrichtung 602 (eine Ausführungsform der Rendering-Vorrichtung 102) und eine Anzeigevorrichtung 604 (eine Ausführungsform der Anzeigevorrichtung 104). Die Rendering-Vorrichtung 602 enthält ein SoC 605 oder eine andere Hardwarekomponente, die wenigstens eine GPU 606 umfasst, und in einigen Implementierungen ferner eine Kompressionskomponente 608, die vollständig in Hardware (z. B. als eine ASIC oder FPGA) implementiert sein kann, da die GPU 606 oder ein anderer Prozessor Software ausführt, die die hier beschriebene Funktionalität repräsentiert, oder eine Kombination davon. Die Anzeigevorrichtung 604 enthält wenigstens eine Anzeigetafel, wobei jede Anzeigetafel einen Anzeigecontroller 610 umfasst, der über eine Spaltensteuerkomponente 614 und eine Zeilensteuerkomponente 616 mit einer Pixelanordnung 612 gekoppelt ist. Der Anzeigecontroller 610 kann vollständig in Hardware, als ein oder mehrere Prozessoren, die Software ausführen, oder als eine Kombination davon implementiert sein.
  • In Fällen, in denen das Anzeigesystem 600 ein foveales Gebiet nutzt, das den Blick des Anwenders nachführt, kann das Anzeigesystem 600 ferner ein Blicknachführungssystem 618 enthalten, das periodisch einen geeigneten Blicknachführungsprozess ausführt, um die aktuelle Blickrichtung 619 der Augen des Anwenders zu bestimmen, und das eine Darstellung der aktuellen Blickrichtung 619 für die GPU 606 (z. B. durch Speichern eines oder mehrerer Werte, die die aktuelle Blickrichtung 619 repräsentieren, in einem Register oder an einem anderen Speicherplatz, auf den durch die GPU 606 zugreifen kann) zur Verwendung bei der Bestimmung der Position des fovealen Gebiets in dem nächsten zu rendernden Anzeigebild bereitstellt. Zu diesem Zweck kann das Blicknachführungssystem 618 irgendeine einer Vielzahl gut bekannter Blicknachführungstechniken nutzen.
  • In wenigstens einer Ausführungsform implementiert das Anzeigesystem 600 für das Rendering, für die Übertragung und für die Verarbeitung vor der Anzeige einer Folge von Bildern, die auf der Pixelanordnung 612 angezeigt werden sollen, zwei Datenwege. Einer der zwei Datenwege ist ein fovealer Datenweg 620, der als ein fovealer Rendering-Prozess 624, der bei der GPU 606 ausgeführt wird, als ein fovealer Kompressionsprozess 626, der bei der Kompressionskomponente 608 ausgeführt wird, als physikalische Schnittstellen 628, 630 an gegenüberliegenden Enden einer PHY 632 und als ein fovealer Dekompressionsprozess 634, der bei dem Anzeigecontroller 610 der Anzeigevorrichtung 604 ausgeführt wird (und in einigen Ausführungsformen ferner einen Aufwärtsskalierungsprozess enthalten kann), implementiert wird. Der andere Datenweg ist ein peripherer Datenweg 622, der als ein peripherer Rendering-Prozess 636, der bei der GPU 606 ausgeführt wird, als ein peripherer Kompressionsprozess 638, der bei der Kompressionskomponente 608 ausgeführt wird, als physikalische Schnittstellen 640, 642 bei gegenüberliegenden Enden einer PHY 644 und als ein peripherer Dekompressionsprozess 646 und Skalierungsprozess 648, der bei dem Anzeigecontroller 610 der Anzeigevorrichtung 604 ausgeführt wird, implementiert wird.
  • Wie hier ausführlicher beschrieben wird, rendert der foveale Datenweg 620 für jedes Bild einer Folge von Bildern, die bei der Anzeigevorrichtung 604 angezeigt werden sollen, ein foveales Gebiet für das Anzeigebild, komprimiert er das foveale Gebiet zur Übertragung über die PHY 632 zu dem Anzeigecontroller 610, woraufhin das komprimierte foveale Gebiet dekomprimiert wird. Parallel rendert der periphere Datenweg 622 ein peripheres Gebiet für das Anzeigebild mit der für das periphere Gebiet bestimmten niedrigeren Auflösung, komprimiert er das periphere Gebiet zur Übertragung über die PHY 644 zu dem Anzeigecontroller 610, woraufhin der Anzeigecontroller 610 das komprimierte periphere Gebiet dekomprimiert und das dekomprimierte periphere Gebiet in der Weise aufwärtsskaliert, dass es mit dem dekomprimierten fovealen Gebiet kompatibel ist. In einigen Ausführungsformen aufwärtsskaliert der Anzeigecontroller 610 das dekomprimierte foveale Gebiet ebenfalls auf ähnliche Weise. Daraufhin führt der Anzeigecontroller 610 einen Verschmelzungsprozess 650 aus, um das dekomprimierte foveale Gebiet und das aufwärtsskalierte periphere Gebiet zu verschmelzen, um ein geändertes Bild zu erzeugen, das das wie durch die GPU 606 gerenderte Bild darstellt. Daraufhin kann der Anzeigecontroller 610 vor der Anzeige dieses geänderten Bilds einen oder mehrere zusätzliche Prozesse wie etwa einen Verzerrungskorrekturprozess 652, gefolgt von einem Kompensationsprozess 654, ausführen, bevor die Pixeldaten des resultierenden Bilds zur Verwendung beim Ansteuern der Pixelanordnung 612 zum Anzeigen des Bilds für die Controller 614, 616 bereitgestellt werden.
  • In einigen Implementierungen nutzt das Anzeigesystem 600 für jeden der Datenwege 620, 622 physikalisch verschiedene PHYs. Das heißt, die für den fovealen Datenweg 620 implementierte PHY 632 ist eine andere PHY als die für den peripheren Datenweg 622 implementierte PHY 644. In anderen Ausführungsformen sind die PHYs 632, 644 dieselbe PHY, die z. B. unter Verwendung von Zeitmultiplex-, Konkurrenztechniken und dergleichen durch die Datenwege 620, 622 gemeinsam genutzt wird. Die Nutzung der PHYs 632, 644 ist im Folgenden anhand von 10 und 11 ausführlicher beschrieben.
  • Anstatt ein herkömmliches RGB-Pixelformat zu implementieren, in dem ein rotes Subpixel, ein blaues Subpixel und ein grünes Subpixel gestreift oder auf andere Weise als ein einzelnes Pixel angeordnet sind, kann die Pixelanordnung 612, wie angemerkt wurde, ein Nicht-RGB-Pixelformat wie etwa das oben erwähnte RGBG-Pixelformat implementieren, in dem jedes Pixel nur zwei Subpixel besitzt, wobei die Hälfte der Pixel ein rotes Subpixel und ein grünes Subpixel besitzen und die andere Hälfte der Pixel ein blaues Subpixel und ein grünes Subpixel besitzen. Die herkömmliche Vorgehensweise ist, Bilddaten in dem RGB-Pixelformat zu der Anzeigetafel zu übertragen, woraufhin die Anzeigetafel jedes RGB-Pixel in Übereinstimmung mit einem durch den Anzeigehersteller implementierten Algorithmus in ein Nicht-RGB-Pixel umsetzt, um das notwendige Umsetzungsformat von RGB in Nicht-RGB für die Pixeldaten in der Weise auszuführen, dass sie durch die Pixelanordnung der Anzeigetafel angezeigt werden können. In einigen Ausführungsformen, in denen die Pixelanordnung 612 ein Nicht-RGB-Pixelformat implementiert, kann das Anzeigesystem 600 diese herkömmliche Vorgehensweise wie etwa dadurch implementieren, dass es bei dem Anzeigecontroller 610 einen Subpixel-Rendering-Prozess 656 nutzt, um die Bilddaten, die sich aus dem Kompressionsprozess 654 ergeben, aus dem RGB-Pixelformat in das durch die Pixelanordnung 612 implementierte Nicht-RGB-Pixelformat umzusetzen.
  • Allerdings beschränkt die herkömmliche Subpixel-Rendering-Vorgehensweise die Flexibilität des Systems dadurch, dass der Pixelformat-Umsetzungsalgorithmus festgesetzt ist und schwierig zu ändern oder durch einen alternativen Algorithmus zu ersetzen ist. Ferner wird ein Bild mit dem RGB-Pixelformat üblicherweise durch mehr Pixeldaten als ein Bild mit einem Nicht-RGB-Pixelformat dargestellt. Zur Veranschaulichung wird angenommen, dass jedes Subpixel durch 8 Bit dargestellt wird, wobei jedes Pixel in dem RGB-Pixelformat drei Subpixel besitzt und somit 24 Bit erfordert, während jedes Pixel in dem RGBG-Format zwei Subpixel besitzt und somit nur 16 Bit erfordert. In wenigstens einer Ausführungsform setzt das Anzeigesystem 600 die niedrigeren Datenanforderungen des RGBG-Formats dadurch wirksam ein, dass es den Subpixel-Rendering-Prozess zu einem Punkt früher in der fovealisierten Graphikpipeline verschiebt. Insbesondere, wenn die Pixelanordnung 612 ein Nicht-RGB-Pixelformat implementiert, implementiert der foveale Datenweg 620 in einigen Ausführungsformen einen fovealen Subpixel-Rendering-Prozess 660, der bei der GPU 606 ausgeführt wird, um das foveale Gebiet mit dem Nicht-RGB-Pixelformat zu erzeugen, während der periphere Datenweg 622 einen peripheren Subpixel-Rendering-Prozess 662 implementiert, der bei der GPU 606 ausgeführt wird, um das periphere Gebiet mit dem Nicht-RGB-Pixelformat zu erzeugen. Daraufhin können das foveale und das periphere Gebiet in dem Nicht-RGB-Pixelformat wie hier beschrieben komprimiert und über die PHYs 632, 634 übertragen werden. Allerdings wird dadurch, dass der SPR-Prozess früh in den Datenwegen 620, 622 ausgeführt wird, die Menge der Pixeldaten, die für die Übertragung über die PHYs 632, 644 erforderlich sind, im Vergleich zu demselben Bild, das in einem RGB-Pixelformat dargestellt wird, verringert, was somit die Verwendung von PHYs mit niedrigerer Komplexität oder wegen einer entsprechenden Verringerung der Takte der PHYs niedrigerem Leistungsverbrauch ermöglicht.
  • Die Parallelverarbeitung, die durch die Datenwege 620, 622 ausgeführt wird, kann unter Verwendung zweier getrennter Komponenten, die parallel arbeiten, durch die Verschachtelung von Verarbeitungsaufgaben bei derselben Komponente oder durch eine Kombination davon erzielt werden. Zum Beispiel kann der foveale Rendering-Prozess 624 durch eine GPU 606 ausgeführt werden, während eine andere GPU 606 den peripheren Rendering-Prozess 636 parallel ausführt, oder kann eine GPU 606 verwendet werden, um beide Rendering-Prozesse 624, 636 auszuführen, wobei die GPU 626 zwischen dem Rendering einer oder mehrerer Pixelzeilen für das foveale Gebiet und daraufhin dem Rendering einer oder mehrerer Pixelzeilen für das periphere Gebiet verschachtelt oder stottert usw.
  • 7 stellt ein beispielhaftes Verfahren 700 für den Betrieb des Anzeigesystems 600 für die Zweidatenwegverarbeitung eines fovealisierten Anzeigebilds in Übereinstimmung mit einigen Ausführungsformen dar. Das Verfahren 700 beginnt im Block 702 damit, dass die GPU 606 die Erzeugung eines Anzeigebilds für eine Folge von Bildern initiiert. Die GPU 606 kann Zeichenanweisungen und andere Kontextinformationen, die das zu rendernde Bild beschreiben, einschließlich einer Darstellung einer aktuellen Pose einer HMD-Vorrichtung, die die Anzeigevorrichtung 604 implementiert, einer Beschreibung der AR- oder VR-Umgebung wie von dieser Pose gesehen, einer Beschreibung von Objekten in der Umgebung und dergleichen empfangen. In Ausführungsformen, die für Fovealisierungszwecke die Blicknachführung nutzen, kann die GPU 606 ferner die aktuelle Blickrichtung 619 von dem Blicknachführungssystem 618 empfangen und aus diesen Informationen eine Position eines fovealen Gebiets und eines oder mehrerer peripherer Gebiete in dem zu erzeugenden Anzeigebild bestimmen. Wenn die Zeichenanweisungen für ein empfangenes Bild und die Positionen des fovealen Gebiets und einer oder mehrerer periphere Gebiete identifiziert worden sind (falls das foveale Gebiet dynamisch repositioniert werden kann), löst das Anzeigesystem 600 das parallele Rendering und die parallele Verarbeitung der Gebiete des Anzeigebilds über die Wege 703 und 704 des Verfahrens 700 aus, wobei der Weg 703 die Operation des fovealen Datenwegs 620 repräsentiert und der Weg 704 für ein einzelnes peripheres Gebiet in diesem Beispiel die Operation des peripheren Datenwegs 622 repräsentiert.
  • Im Block 705 des Wegs 703 führt die GPU 606 den fovealen Rendering-Prozess 624 aus, um ein foveales Gebiet für das Anzeigebild in Übereinstimmung mit den Zeichenanweisungen und anderen im Block 702 empfangenen Zeicheninformationen zu rendern. Gleichzeitig führt die GPU 606 im Block 706 des Wegs 704 den peripheren Rendering-Prozess 636 aus, um das periphere Gebiet für das Anzeigebild zu rendern. Wie oben erläutert wurde, wird das foveale Gebiet mit einer höheren Auflösung (z. B. mit der Auflösung der Pixelanordnung 612) gerendert, während das periphere Gebiet mit einer niedrigeren Auflösung (z. B. mit einer Hälfte, mit einem Viertel oder mit einem Zehntel der Auflösung der Pixelanordnung 612) gerendert wird. Die Rendering-Prozesse 624, 636 können nicht nur die Erzeugung der Gebiete des entsprechenden Bilds enthalten, sondern können ferner eine verschiedenartige Anfangskorrektur für das Bild wie etwa Prozesse zum Ausführen von Korrekturen für seitliche chromatische Aberration und Verzerrung, von denen erwartet wird, dass sie durch die Pixelanordnung 612 und durch irgendwelche zum Betrachten der Pixelanordnung 612 verwendeten optischen Elemente eingeführt werden, enthalten.
  • In Ausführungsformen, die das frühe Subpixel-Rendering implementieren, führt die GPU 606 im Block 707 des Wegs 703 den fovealen Sub-Rendering-Prozess 660 aus, um das foveale Gebiet mit dem Nicht-RGB-Pixelformat der Pixelanordnung 612 zu erzeugen, während die GPU 606 im Block 708 des Wegs 704 den peripheren Sub-Rendering-Prozess 662 ausführt, um das periphere Gebiet mit dem Nicht-RGB-Pixelformat zu erzeugen. In einigen Ausführungsformen werden die Gebiete in dem Nicht-RGB-Pixelformat nativ gerendert (d. h. ursprünglich in dem Nicht-RGB-Pixelformat direkt von den Zeichenanweisungen, die durch die GPU 606 empfangen werden, um das Rendering des Anzeigebilds zu initiieren, gerendert). In solchen Fällen werden die Subpixel-Rendering-Prozesse 660, 662 als Implementierungen der Rendering-Prozesse 624 bzw. 636 angesehen, so dass die Prozesse der Blöcke 705 und 707 derselbe Prozess sind und die Prozesse der Blöcke 706 und 708 derselbe Prozess sind. In anderen Ausführungsformen werden zuerst das foveale und das periphere Gebiet in dem RGB-Pixelformat gerendert und werden daraufhin die Pixelformate des fovealen und des peripheren Gebiets unter Verwendung eines geeigneten Pixelformat-Umwandlungsalgorithmus in das Nicht-RGB-Pixelformat umgewandelt. In solchen Fällen können die Subpixel-Rendering-Prozesse 660, 662 als Prozesse angesehen werden, die getrennt von den Rendering-Prozessen der Blöcke 705, 706 sind.
  • Da die Rendering-Vorrichtung 602 mit irgendeiner einer Vielzahl von Anzeigevorrichtungen 604 mit einem einer Vielzahl von Nicht-RGB-Pixelformaten verbunden sein kann, kann die Rendering-Vorrichtung 602 keine A-priori-Kenntnis eines bestimmten Nicht-RGB-Pixelformats der Pixelanordnung 612 haben. Dementsprechend fragt die Rendering-Vorrichtung 602 in einer Ausführungsform im Block 715 die Anzeigevorrichtung 604 nach einem Indikator des durch die Anzeigevorrichtung 604 genutzten Nicht-RGB-Pixelformats ab oder erhält sie diesen Indikator auf andere Weise von der Anzeigevorrichtung 604, um das durch die Pixelanordnung 612 genutzte Nicht-RGB-Pixelformat zur Verwendung in den Sub-Rendering-Prozessen der Blöcke 707 und 708 zu bestimmen. Zur Veranschaulichung kann die Rendering-Vorrichtung 602 die Abfrage und den Empfang des Indikators als Antwort über einen Steuerkanal, der in einer oder in beiden der PHYs 632, 644 implementiert ist, oder als Parameter, die in einen Anfangsblock oder in ein anderes Feld eines Pixelstroms eingebettet sind, übertragen. Alternativ können die Rendering-Vorrichtung 602 und die Anzeigevorrichtung 604 diesen Indikator über einen getrennten Seitenbandkanal übermitteln.
  • Im Block 709 des Wegs 703 führt die Kompressionskomponente 608 den fovealen Kompressionsprozess 626 aus, um das foveale Gebiet zu komprimieren, um ein komprimiertes foveales Gebiet zu erzeugen, während die Kompressionskomponente 608 im Block 710 des Wegs 704 den peripheren Kompressionsprozess 638 ausführt, um das periphere Gebiet zu komprimieren, um ein komprimiertes peripheres Gebiet zu erzeugen. Für die Kompressionsprozesse 626, 638 kann irgendeines einer Vielzahl von Kompressionsalgorithmen wie etwa Display-Stream-Compression oder Kombinationen von Kompressionsalgorithmen genutzt werden. Ferner kann der foveale Kompressionsprozess 626 einen anderen Kompressionsalgorithmus als der periphere Kompressionsprozess 638 nutzen. Als ein Beispiel kann der foveale Kompressionsprozess 626 einen verlustfreien Kompressionsalgorithmus nutzen, da ein hochauflösendes foveales Gebiet mit hoher Wiedergabetreue wahrscheinlicher als ein hochauflösendes peripheres Gebiet mit hoher Wiedergabetreue zu einer befriedigenden Anwendererfahrung führt, während der periphere Kompressionsprozess 638 einen verlustbehafteten Kompressionsalgorithmus nutzen kann, da ein bestimmter Verlust an Bildinformationen in dem peripheren Gebiet für die verbesserte Effizienz des verlustbehafteten Kompressionsalgorithmus eine akzeptable Abwägung sein kann. Darüber hinaus werden in einigen Ausführungsformen der SPR-Prozess 660 und der foveale Kompressionsprozess 626 als dieselbe Operation kombiniert oder implementiert, falls die frühe SPR (über die Blöcke 707, 708) implementiert wird; gleichfalls werden der SPR-Prozess 662 und der periphere Kompressionsprozess 6238 als dieselbe Operation kombiniert oder implementiert, was bestimmte Optimierungen bereitstellen kann, wenn die Logik, die diese Prozesse implementiert, kombiniert wird.
  • Im Block 711 des Wegs 703 werden Pixeldaten, die das resultierende komprimierte foveale Gebiet darstellen, zur Übertragung zu der Anzeigevorrichtung 604 über die PHY 632 an die Schnittstelle 628 gestreamt, während im Block 712 des Wegs 703 Pixeldaten, die das resultierende komprimierte periphere Gebiet darstellen, zur Übertragung zu der Anzeigevorrichtung 604 über die PHY 640 zu der Schnittstelle 640 gestreamt werden. Die durch die Kompressionsprozesse 626, 638 ermöglichte Kompression führt zu einer verringerten Bandbreitenanforderung zum Übertragen der Gebiete des Anzeigebilds. Ferner verringert in Ausführungsformen, die ein frühes Subpixel-Rendering nutzen, die Verringerung der Pixelwerte, die erforderlich sind, um das Anzeigebild darzustellen, die Bandbreitenanforderungen zum Übertragen der Gebiete der Anzeigebilder über die PHYs 632, 640 weiter. Dies ermöglicht weniger komplexe Implementierungen der PHYs 632, 640 und/oder Implementierungen der PHYs 632, 640, die wegen der niedrigeren Taktungsanforderungen, die notwendig sind, um Daten mit der niedrigeren Taktrate zu übertragen, weniger Leistung verbrauchen.
  • Während die Pixeldaten für das komprimierte foveale und periphere Gebiet bei dem Anzeigecontroller 610 empfangen werden, führt der Anzeigecontroller 610 im Block 713 des Wegs 703 den fovealen Dekompressionsprozess 634 aus, um das komprimierte foveale Gebiet zu dekomprimieren, während der Anzeigecontroller 610 im Block 714 des Wegs 704 den peripheren Dekompressionsprozess 646 ausführt, um das komprimierte periphere Gebiet zu dekomprimieren.
  • Da das periphere Gebiet und/oder das foveale Gebiet mit einer niedrigeren Auflösung als der Auflösung der Pixelanordnung 612 und des fovealen Gebiets gerendert wurden, ist es üblicherweise nützlich, das bzw. die Gebiete mit niedrigerer Auflösung auf die höhere Auflösung der Pixelanordnung aufwärts zu skalieren, bevor irgendwelche Prozesse ausgeführt werden, die das foveale Gebiet und das periphere Gebiet gemeinsam nutzen. Wie angemerkt wurde, wird diese Aufwärtsskalierung in herkömmlichen Anzeigesystemen in der Rendering-Vorrichtung ausgeführt, bevor das Bild zu der Anzeigevorrichtung übertragen wird, was somit zu einer größeren Menge von Daten zur Übertragung über die PHY führt, die die Rendering-Vorrichtung und die Anzeigevorrichtung verbindet. Im Gegensatz dazu überträgt die Rendering-Vorrichtung in dem Verfahren 700 das periphere Gebiet (und in einigen Ausführungsformen das foveale Gebiet) ohne Aufwärtsskalierung (d. h. in ihrer ursprünglichen Form mit niedrigerer Auflösung) von der Anzeigevorrichtung 604 und benötigt sie dadurch eine niedrigere Bandbreite für die Übertragung. Dementsprechend führt der Anzeigecontroller 610 im Block 716 des Wegs 704 den Skalierungsprozess 648 aus, um das periphere Gebiet auf die höhere Auflösung des fovealen Gebiets oder der Pixelanordnung 612 aufwärts zu skalieren, um das empfangene dekomprimierte periphere Gebiet für die Weiterverarbeitung vorzubereiten. Gleichfalls führt der Anzeigecontroller 610 im Block 715 des Wegs 703 einen Skalierungsprozess aus, um das foveale Gebiet auf die höhere Auflösung aufwärts zu skalieren, falls das foveale Gebiet mit einer niedrigeren Auflösung gerendert wurde, um das empfangene dekomprimierte periphere Gebiet für die Weiterverarbeitung vorzubereiten. Als Teil des Übertragungsprozesses für das periphere Gebiet kann die Rendering-Vorrichtung 602 Größeninformationen bereitstellen, die die beabsichtigte Größe des peripheren Gebiets und den Ort des fovealen Gebiets angeben. Diese Größeninformationen können in den Datenstrom für das periphere Gebiet (z. B. als ein oder mehrere Anfangsblöcke oder während eines vertikalen Austastintervalls oder horizontalen Austastintervalls) eingebettet werden oder können zwischen der Rendering-Vorrichtung 602 und der Anzeigevorrichtung 604 über einen getrennten Seitenbandkanal bereitgestellt werden. Mit diesen Größeninformationen kann der Skalierungsprozess 648 irgendwelche einer Vielzahl gut bekannter Aufwärtsskalierungstechniken implementieren, um das periphere Gebiet aufwärts zu skalieren. Zum Beispiel kann die Aufwärtsskalierung unter Verwendung eines Pixelreplikations-basierten Prozesses und/oder eines Pixelinterpolations-basierten Prozesses und/oder eines Bewegungsvorhersage-basierten Prozesses implementiert werden.
  • Wenn das periphere Gebiet auf die höhere Auflösung aufwärtsskaliert worden ist, führt der Anzeigecontroller 610 im Block 720 den Verschmelzungsprozess 650 aus, um das foveale Gebiet und das periphere Gebiet an den Rändern des fovealen Gebiets räumlich und zeitlich zu verschmelzen, um eine geänderte Darstellung des in der Rendering-Vorrichtung 602 erzeugten ursprünglichen Bilds zu erzeugen. Falls die Pixelanordnung 612 ein Nicht-RGB-Pixelformat implementiert und falls bei der Rendering-Vorrichtung 602 keine frühe SPR implementiert wurde, führt der Anzeigecontroller 610 im Block 718 SPR-Prozesse 656, 658 (6) aus, um das RGB-Pixelformat des fovealisierten Gebiets und des peripheren Gebiets (nach der Aufwärtsskalierung) vor dem durch den Block 720 repräsentieren Verschmelzungsprozess 650 in das Nicht-RGB-Format umzusetzen. Alternativ kann nach dem Verschmelzungsprozess ein SPR-Prozess ausgeführt werden, um das Pixelformat der geänderten Darstellung des ursprünglichen Bilds aus einem RGB-Format in das Nicht-RGB-Format umzusetzen. Falls die Pixelanordnung 612 andernfalls ein RGB-Pixelformat nutzt oder ein frühes SPR implementiert wurde, kann der Prozess im Block 718 übersprungen werden. Im Block 722 führt der Anzeigecontroller 610 an dem geänderten Bild einen oder mehrere Kompensationsprozesse 654 aus. Diese Kompensationsprozesse 654 können z. B. einen Prozess zur Korrektur einer optischen Verzerrung wie etwa einen Gammafarbkorrekturprozess, einen Korrekturprozess zur Verbesserung der Gleichförmigkeit für eine OLEDbasierte Pixelanordnung 612 oder einen Korrekturprozess zum Linearisieren des Flüssigkristallansprechens für eine LCD-basierte Pixelanordnung 612 enthalten. Ferner ist der Kompensationsprozess 654 in der Weise dargestellt, dass er bei dem Anzeigecontroller 610 ausgeführt wird, während in anderen Ausführungsformen ein oder mehrere Kompensationsprozesse 654 stattdessen früher in der Pipeline bei der GPU 606 implementiert werden können.
  • Nach dem Verschmelzen und der Korrektur ist das resultierende Bild zur Anzeige bei der Pixelanordnung 612 bereit. Um das resultierende Bild anzuzeigen, steuert der Anzeigecontroller dementsprechend, wie im Gebiet gut bekannt ist, im Block 724 die Pixelanordnung 612 durch sequentielles Lesen von Zeilen von Pixeldaten des resultierenden Bilds in einen Zeilenpuffer (nicht gezeigt) der Spaltensteuerkomponente 614 und Steuern der Zeilensteuerkomponente 616 und der Spaltensteuerkomponente 614 in Übereinstimmung mit entsprechenden Anzeigezeitgebungstakten an, um die Pixel der Pixelanordnung 612 bei der entsprechenden Zeile in Übereinstimmung mit der gepufferten Zeile von Pixeldaten leuchten zu lassen. Der Prozess des Verfahrens 700 wird für jedes Bild der Folge von Bildern wiederholt, wobei in HMD-basierten Anzeigesystemen oder in anderen auf zwei Anzeigen beruhenden Systemen zwei parallele Instanzen des Verfahrens 700 ausgeführt werden, wodurch stereoskopische Bilder dargestellt werden, die eine AR- oder VR-Szene für einen Anwender darstellen.
  • Wie oben erläutert wurde, können die foveale PHY 632 und die periphere PHY 644 als getrennte PHYs oder zusammen als eine einzelne PHY implementiert werden. Die Verwendung getrennter PHYs hat den Vorteil, dass nur ein Teil der Pixeldaten eines Bilds über irgendeine PHY übertragen werden, so dass PHYs mit niedrigerer Leistung oder niedrigerer Komplexität implementiert werden können, aber auf Kosten der Nutzung mehrerer PHYs, um eine Folge von Bildern zu der Anzeigevorrichtung 604 zu übertragen. Im Gegensatz dazu vermeidet die Verwendung einer einzigen PHY die Komplexität der Implementierung mehrerer PHYs für die Übertragung der Bildfolge, wobei aber die kombinierte Übertragung eines fovealen Gebiets und eines oder mehrerer peripherer Gebiete einfach durch Anhängen des einen oder der mehreren peripheren Gebiete an das foveale Gebiet häufig mit einem herkömmlichen PHY-Protokoll inkompatibel ist, da das foveale Gebiet und die peripheren Gebiete unterschiedliche vertikale Auflösungen besitzen, da diese Protokolle erwarten, dass jede Zeile des übertragenen Bilds dieselbe Länge besitzt. 8-13 stellen beispielhafte Techniken zum Kombinieren von Pixelströmen für ein foveales Gebiet und für ein oder mehrere periphere Gebiete zu einem kombinierten Pixelstrom, der mit den Anforderungen fester Zeilenlänge vieler herkömmlicher PHY-Implementierungen kompatibel ist, dar.
  • Übergehend zu 8 ist ein Anzeigesystem 800 (eine Ausführungsform des Anzeigesystems 600) mit einer Rendering-Vorrichtung 802 (eine Ausführungsform der Rendering-Vorrichtung 602), die mit einer Anzeigevorrichtung 804 (einer Ausführungsform der Anzeigevorrichtung 604) über eine einzelne PHY 806 gekoppelt ist, gezeigt. Wie gezeigt ist, enthält die PHY 806 einen Satz 809 von Drähten oder anderen Signalleitern, die an einem Ende mit einer Schnittstelle 808 und an dem anderen Ende mit einer Schnittstelle 810 verbunden sind. Die PHY 806 implementiert ein Signalisierungsprotokoll, das erwartet oder fordert, dass irgendeine übertragene Pixelanordnung Zeilen konstanter Breite besitzt. Mit der Schnittstelle 808 bei der Rendering-Vorrichtung 802 ist eine Pixelstromkombinationskomponente 812 mit einem Puffer 816 verbunden, während die Schnittstelle 810 bei der Anzeigevorrichtung 804 mit einer Pixelstromtrennungskomponente 814 mit einem Puffer 818 verbunden ist. Die Komponenten 812, 814 können als festcodierte Logik, als ein oder mehrere Prozessoren, die Software ausführen, oder als eine Kombination davon implementiert sein.
  • Im Betrieb streamt der dargestellte foveale Datenwegabschnitt 820-1 (der den Abschnitt des fovealen Datenwegs 620 repräsentiert, der bei der Rendering-Vorrichtung 602 implementiert wird) Pixeldaten, die das foveale Gebiet eines Bilds darstellen, das zur Anzeige erzeugt wird, zu der Pixelstromkombinationskomponente 812 und streamt der periphere Datenwegabschnitt 822-1 (der den Abschnitt des peripheren Datenwegs 622 repräsentiert, der in der Rendering-Vorrichtung 602 implementiert wird) Pixeldaten, die das periphere Gebiet des Bilds darstellen, zu der Pixelstromkombinationskomponente 812. Die Pixelstromkombinationskomponente 812 puffert diese Pixelströme, während sie empfangen werden, in dem Puffer 816. Daraufhin kombiniert die Pixelstromkombinationskomponente 812 jede Zeile der Pixelanordnung des Bildgebiets, das die höhere vertikale Auflösung besitzt (hier zur leichten Bezugnahme als das „Basisgebiet“ bezeichnet), mit einer eingestellten Anzahl von Pixeln von einer oder mehreren Zeilen der Pixelanordnung jedes Bildgebiets mit einer niedrigeren vertikalen Auflösung (hier als ein „Nicht-Basisgebiet“ bezeichnet), um eine entsprechende Zeile einer kombinierten Pixelanordnung zu erzeugen, so dass jede Zeile der kombinierten Pixelanordnung dieselbe Anzahl von Pixeln besitzt und somit zur Übertragung über die PHY 806 geeignet ist. Als Teil dieses Prozesses bestimmt die Pixelstromkombinationskomponente 812 die Anzahl der Pixel aus einem Nicht-Basis-Gebiet, die an eine entsprechende Zeile von Pixeln des Basisbilds anzuhängen sind, wobei diese Anzahl als der „Partitionszählwert“ für das Nicht-Basisgebiet bezeichnet wird. Für jedes Nicht-Basisbild-Gebiet wird ein Partitionszählwert bestimmt.
  • Bei der Anzeigevorrichtung 804 empfängt die Pixelstromtrennungskomponente 814 den Datenstrom, der die kombinierte Pixelanordnung darstellt, und puffert sie den Datenstrom, während er empfangen wird, in dem Puffer 818. Daraufhin verwendet die Pixelstromtrennungskomponente 814 Größeninformationen 824, die von der Pixelstromkombinationskomponente 812 empfangen werden (und die die horizontalen und die vertikalen Auflösungen der Bildgebiete angeben), um die kombinierte Pixelanordnung in das wiederhergestellte Basisbildgebiet und in das eine oder die mehreren Nichtbasisgebiete zu unterteilen. Daraufhin werden wie oben beschrieben das Bildgebiet, das das foveale Gebiet bildet, für den dargestellten fovealen Datenwegabschnitt 820-2 (der den Abschnitt des fovealen Datenwegs 620 bei der Anzeigevorrichtung darstellt) bereitgestellt und das bzw. die Bildgebiete, die das eine oder die mehreren peripheren Gebiete bilden, für den dargestellten peripheren Datenwegabschnitt 822-2 (der den Abschnitt des peripheren Datenwegs 622 bei der Anzeigevorrichtung darstellt) zur Weiterverarbeitung bereitgestellt.
  • Die durch die Pixelstromkombinationskomponente 812 genutzte Bildgebietkombinationstechnik kann besser anhand von 9 und 10 verstanden werden. In der schematischen Darstellung 900 aus 9 ist ein Basisbildgebiet 902 (das in diesem Beispiel das foveale Gebiet ist) angrenzend an ein einzelnes Nicht-Basisbild-Gebiet 904 (das in diesem Beispiel das periphere Gebiet ist) gezeigt, wobei die horizontalen und vertikalen Dimensionen der Felder, die die Gebiete 902, 904 darstellen, die relativen horizontalen und vertikalen Auflösungen der Gebiete 902, 904 repräsentieren. Falls ein Versuch unternommen würde, beide Gebiete 902, 904 einfach durch Anhängen jeder Zeile des Nicht-Basisbild-Gebiets 904 an eine entsprechende Zeile des Basisbildgebiets 902 über die PHY 806 zu übertragen, würden Protokollprobleme entstehen, da die Menge 906 von Zeilen des Basisbildgebiets 902 keine entsprechende Zeile von dem Nicht-Basisbild-Gebiet 904 zum Anhängen hätte, so dass die Übertragung der Gebiete 902, 904 zur Übertragung von Pixelzeilen mit unterschiedlichen Längen führen würde.
  • Wie durch die schematische Darstellung 901 dargestellt ist, stellt die besondere durch die Pixelstromkombinationskomponente 812 benutzte Technik kombinierte Zeilen mit gleichförmiger Länge dadurch bereit, dass sie tatsächlich das Nicht-Basisgebiet 904 zu einem umgeformten Nicht-Basisgebiet 908 umformt, das effektiv dieselbe vertikale Auflösung wie das Basisbildgebiet 902 (und eine entsprechend verringerte horizontale Auflösung, so dass der Pixelzählwert des Nicht-Basisgebiets 904 konstant bleibt) besitzt. Somit besitzt jede Zeile des Basisbildgebiets 902 eine entsprechende Zeile in dem umgeformten nicht basierten Gebiet 908, so dass das Anhängen dieser Paare von Zeilen zu einer kombinierten Pixelanordnung 910 führt, in der die Zeilen dieselbe Breite besitzen, was somit die effiziente Übertragung der kombinierten Pixelanordnung 910 über die PHY 806 ermöglicht.
  • Wie durch 10 dargestellt ist, wird der Bildgebietumformungs- und Bildgebietkombinationsprozess ähnlich für Implementierungen implementiert, durch die ein Bild in ein foveales Gebiet und mehrere periphere Gebiete unterteilt wird. Wie durch die schematische Darstellung 1000 gezeigt ist, kann ein Bild foveal in der Weise gerendert werden, dass dies zu einem Basisbildgebiet 1002 und zu Nicht-Basisgebieten 1003 und 1004 führt, wobei die horizontalen und vertikalen Dimensionen der Felder, die die Gebiete 1002, 1003 und 1004 darstellen, die horizontalen und vertikalen Auflösungen der Gebiete 1002, 1003 und 1004 darstellen. Wie durch die schematische Darstellung 1001 gezeigt ist, werden Nicht-Basisgebiete 1003, 1004 durch die Pixelstromkombinationskomponente 812 in der Weise umgeformt, dass sie dieselbe vertikale Auflösung wie das Basisbildgebiet 1002 mit entsprechend verringerten horizontalen Auflösungen besitzen, was zu umgeformten Nicht-Basisbild-Gebieten 1006, 1008 führt. Daraufhin wird jede Zeile des Basisbildgebiets 1002 mit einer „Zeile“ von Pixeln aus dem umgeformten Nicht-Basisbild-Gebiet 1006 und mit einer „Zeile“ von Pixeln aus dem umgeformten Nicht-Basisbild-Gebiet 1008 kombiniert, um eine entsprechende Zeile der resultierenden kombinierten Pixelanordnung 1010 zu bilden. Da jede Zeile der kombinierten Pixelanordnung 1010 dieselbe Breite besitzt, ist die kombinierte Pixelanordnung 1010 zur Übertragung über die PHY 806 gut geeignet.
  • 11 stellt ein beispielhaftes Verfahren 1100 für den Umformungs- und Kombinationsprozess, der durch die Pixelstromkombinationskomponente 812 genutzt wird, um mehrere Bildgebiete mit ungleicher vertikaler Auflösung zu einer kombinierten Pixelanordnung mit einer konstanten Zeilenbreite zu kombinieren, in Übereinstimmung mit einigen Ausführungsformen dar. Im Folgenden ist angenommen, dass die Bildfrequenz für alle Bildgebiete dieselbe ist. Das Verfahren 1100 wird im Block 1102 damit initiiert, dass die Pixelstromkombinationskomponente 812 die horizontale und die vertikale Auflösung jedes der Bildgebiete eines durch die Rendering-Vorrichtung 802 gerenderten Bilds bestimmt. Diese Auflösungen können für jedes Bild der Folge von Bildern, die durch die Rendering-Vorrichtung 802 erzeugt wird, festgesetzt sein, wobei in diesem Fall die Standardeinstellungen verwendet werden, um die horizontalen und vertikalen Auflösungen zu bestimmen. In anderen Ausführungsformen kann die Rendering-Vorrichtung 802 die Auflösungen der Gebiete zwischen Bildern in Abhängigkeit von verschiedenen Faktoren wie etwa der Rate der Augenbewegung, der Bewegungsrate von Bewegungen, die in den Bildern dargestellt werden, usw. dynamisch anpassen. In solchen Fällen kann die GPU 606 die Auflösungswerte für jedes gerenderte Bildgebiet an die Pixelstromkombinationskomponente 812 übermitteln.
  • Im Block 1104 bestimmt die Pixelstromkombinationskomponente 812, ob jedes der Bildgebiete dieselbe vertikale Auflösung besitzt. Wenn das der Fall ist, gibt es keine Notwendigkeit, irgendeines der Bildgebiete umzuformen, so dass die Pixelstromkombinationskomponente 812 die Bildgebiete im Block 1106 durch Kombinieren jeder Zeile eines Bildgebiets mit einer entsprechenden Zeile jedes anderen Bildgebiets zu einer kombinierten Pixelanordnung zur Übertragung kombinieren kann, um eine entsprechende Zeile der kombinierten Pixelanordnung zu erzeugen.
  • Dagegen identifiziert die Pixelstromkombinationskomponente 812 im Block 1108 das Bildgebiet mit der höchsten vertikalen Auflösung als das „Basis“-Bildgebiet und identifiziert sie das andere Bildgebiet bzw. die anderen Bildgebiete als „Nicht-Basisgebiete“, falls die Bildgebiete unterschiedliche vertikale Auflösungen besitzen. Ferner ist die vertikale Auflösung des Basisbildgebiets hier als „Vb“ bezeichnet. Im Block 1110 identifiziert die Pixelstromkombinationskomponente 812 für jedes Nicht-Basisgebiet einen Partitionszählwert. Wie im Folgenden erläutert wird, repräsentiert der Partitionszählwert für ein Nicht-Basisgebiet die Anzahl von Pixeln, die aus einer oder mehreren angrenzenden Zeilen des Nicht-Basisgebiets, die an eine entsprechende Zeile des Basisbildgebiets beim Bilden einer kombinierten Zeile für die kombinierte Pixelanordnung, die konstruiert und übertragen wird, angehängt werden sollen, extrahiert werden. Der Partitionszählwert für ein Nicht-Basisgebiet kann in Übereinstimmung mit dem folgenden Ausdruck (Gleichung 1) bestimmt werden: p a r t i t i o n _ c o u n t = V r × H r V b ,
    Figure DE202017105872U1_0001
    wobei partition_count den Partitionszählwert für das Nicht-Basisbild-Gebiet repräsentiert, Vr die ursprüngliche vertikale Auflösung des Nicht-Basisbild-Gebiets repräsentiert, Hr die ursprüngliche horizontale Auflösung des Nicht-Basisbild-Gebiets repräsentiert und Vb die vertikale Auflösung des Basisbildgebiets repräsentiert. Ferner überträgt die Pixelstromkombinationskomponente 812 Angaben der horizontalen und der vertikalen Auflösungen der Bildgebiete als die Größeninformationen 824 (8) zu der Anzeigevorrichtung 804.
  • Im Block 1112 wählt die Pixelstromkombinationskomponente 812 aus der einen oder den mehreren in dem Puffer 816 gepufferten Zeilen die nächste Zeile des Basisbildgebiets in der Zeilenfolge aus, wobei in der ersten Iteration des Blocks 1112 die Zeile 0 ausgewählt wird. Im Block 1114 extrahiert die Pixelstromkombinationskomponente 812 aus einem Nicht-Basisgebiet eine Anzahl von Pixeln gleich dem Partitionszählwert und hängt sie die extrahierten Pixel an die in der aktuellen Iteration des Blocks 1112 ausgewählte Zeile von Pixeln des Basisbildgebiets an. Falls es mehr als ein Nicht-Basisbild gibt, wird dieser Extraktions- und Anhängeprozess für jedes Nicht-Basisbild-Gebiet wiederholt.
  • Wie aus dem oben definierten Ausdruck zum Berechnen des Partitionszählwerts zu verstehen ist, kann das Nicht-Basisbild-Gebiet nicht aus Pixeln gleich einem ganzzahligen Vielfachen des Partitionszählwerts bestehen. In solchen Fällen können aus dem zu extrahierenden Nicht-Basisbild-Gebiet nicht genug verbleibende Pixel extrahiert werden, die an die letzte Zeile oder an die wenigen letzten Zeilen der kombinierten Pixelanordnung anzuhängen sind. In solchen Fällen kann die Pixelstromkombinationskomponente 812 für jedes fehlende Pixel einen Standardwert einfügen, wobei dieser Standardwert einen Nullwert oder einen „Unbedeutend“-Wert umfassen kann, da dieser Standardwert, wie im Folgenden erläutert wird, durch die Pixelstromtrennungskomponente 814 verworfen wird.
  • Nachdem die Pixel von allen Nicht-Basisbild-Gebieten extrahiert und angehängt worden sind, wird die resultierende kombinierte Zeile von Pixeln als eine Zeile einer kombinierten Pixelanordnung, die über das Verfahren 1100 erzeugt und übertragen wird, im Block 1116 durch die Pixelstromkombinationskomponente 812 zur Übertragung zu der Anzeigevorrichtung 804 über die PHY 806 an die Schnittstelle 808 ausgegeben. Üblicherweise umfasst die Übertragung eines Bilds oder einer anderen Pixelanordnung über eine PHY wie etwa die PHY 806 die Verwendung eines Pixeltakts und horizontaler Austastintervalle, um die Übertragung jedes Pixels abzugrenzen und um das Ende jeder Zeile von Pixeln, die übertragen werden, abzugrenzen. Dementsprechend wird der Pixeltakt zum Übertragen jeder kombinierten Zeile der kombinierten Pixelanordnung auf die Summe der Pixeltakte, die andernfalls verwendet würden, um jedes Bildgebiet einzeln zu übertragen, eingestellt. Zur Veranschaulichung wäre der Pixeltakt CLK_C zum Übertragen jeder Zeile der kombinierten Pixelanordnung CLK_C = CLK_K + CLK_P, falls das gerenderte Bild, das verarbeitet wird, ein foveales Gebiet, das einen Pixeltakt CLK_F besitzt, und ein peripheres Gebiet mit einem Pixeltakt CLK_P besitzt. Falls das gerenderte Bild, das verarbeitet wird, ein foveales Gebiet, das einen Pixeltakt CLK_F besitzt, und zwei periphere Gebiete mit Pixeltakten CLK_P1 bzw. CLK P2 besitzt, wäre der Pixeltakt CLK_C zum Übertragen jeder Zeile der kombinierten Pixelanordnung CLK_C = CLK_K + CLK_P1 + CLK_P2. Aus ähnlichen Gründen würde die horizontale Synchronisationsperiode (Hsync-Periode) und die vertikale Synchronisationsperiode (Vsync-Periode) für die kombinierte Pixelanordnung zur Übertragung auf die Hsync-Periode bzw. auf die Vsync-Periode des Basisbildgebiets eingestellt.
  • Im Block 1118 bestimmt die Pixelstromkombinationskomponente 812, ob alle Zeilen des Basisbildgebiets ausgewählt und verarbeitet worden sind. Wenn das nicht der Fall ist, kehrt das Verfahren 1110 zur Auswahl der nächsten Zeile des Basisbilds und zur nächsten Iteration der Blöcke 1114 und 1116 für die ausgewählte nächste Zeile zum Block 1112 zurück. Andernfalls endet die aktuelle Iteration des Verfahrens 1100 und beginnt eine weitere Iteration für das nächste Bild in einer Anzeigefolge, falls alle Zeilen ausgewählt, verarbeitet und übertragen worden sind.
  • 12 veranschaulicht eine beispielhafte Implementierung des Verfahrens 1110 zum Kombinieren zweiter Bildgebiete in Übereinstimmung mit wenigstens einigen Ausführungsformen. In diesem Beispiel soll ein Bildgebiet 1202 mit einer Auflösung von 10 × 16 Pixeln mit einem Bildgebiet 1204 mit einer Auflösung von 6 × 10 Pixeln kombiniert werden. Da das Bildgebiet 1202 die höhere vertikale Auflösung besitzt, wird es als das Basisbildgebiet 1201 bestimmt und wird das Bildgebiet 1204 somit als ein Nicht-Basisbild-Gebiet 1204 identifiziert. Unter Verwendung von Gleichung 1 wird der Partitionszählwert als 6 Pixel berechnet. Wie durch die schematische Darstellung 1206 dargestellt ist, werden somit die Pixel der ersten Zeile 1208 (Zeile 0) des Basisbildgebiets 1202 ebenso wie eine Menge 1210 der ersten 6 Pixel aus der Zeile 0 des Nicht-Basisbild-Gebiets 1204 extrahiert und werden diese Pixel kombiniert, um die dargestellte Zeile 1212 (Zeile 0) von zweiundzwanzig Pixeln für eine resultierende kombinierte Pixelanordnung zu erzeugen. Wie durch die schematische Darstellung 1214 dargestellt ist, wird die zweite Zeile 1216 (Zeile 1) des Basisbildgebiets 1202 extrahiert, sind die nächsten sechs Pixel aus dem Nicht-Basisbild-Gebiet 1204, um die zweite Zeile 1222 (Zeile 1) der kombinierten Pixelanordnung zu erzeugen. Wie gezeigt ist, bleiben nur vier nicht extrahierte Pixel in der ersten Zeile des Nicht-Basisbild-Gebiets 1204 und wird somit diese Menge 1220 von vier Pixeln aus der ersten Zeile zusammen mit einer Menge 1221 der ersten zwei Pixel in der nächsten Zeile (Zeile 1) des Nicht-Basisbild-Gebiets extrahiert, so dass die Gesamtanzahl der aus dem Nicht-Basisbild-Gebiet für die zweite Zeile 1222 der kombinierten Pixelanordnung extrahierten Pixel gleich dem Partitionszählwert ist. Dieser Prozess würde daraufhin für jede der verbleibenden acht Zeilen des Basisbildgebiets 1202 fortgesetzt, was zu einer kombinierten Pixelanordnung mit zehn Zeilen zu jeweils zweiundzwanzig Pixeln führt.
  • 13 stellt ein beispielhaftes Verfahren 1300 für die Aufteilung einer empfangenen kombinierten Pixelanordnung in ihre Bestandteilbildgebiete durch die Pixelstromtrennungskomponente 814 in Übereinstimmung mit einigen Ausführungsformen dar. Für das Folgende ist angenommen, dass die empfangene kombinierte Pixelanordnung in Übereinstimmung mit dem Verfahren 1100 aus 11 konstruiert wurde und ein einzelnes Nicht-Basisgebiet enthält. Allerdings kann das Verfahren 1300 unter Verwendung der hier gegebenen Richtlinien für mehrere Nicht-Basisgebiete angepasst werden. Das Verfahren 1300 wird im Block 1302 damit initiiert, dass die Pixelstromtrennungskomponente 814 die horizontale und die vertikale Auflösung jedes Bildgebiets bestimmt. Wie oben angemerkt wurde, können diese Informationen mit den Daten, die die kombinierte Pixelanordnung repräsentieren, oder über einen Seitenbandkanal übertragen werden. Alternativ werden die Größe des fovealen Gebiets und der peripheren Gebiete sowohl durch die Rendering-Vorrichtung 802 als auch durch die Anzeigevorrichtung 804 vorgegeben, so dass es nicht nötig ist, diese Informationen getrennt zu bestimmen. Im Block 1304 setzt die Pixelstromtrennungskomponente 814 verschiedene temporäre Variablen einschließlich des Setzens einer Variablen X auf die horizontale Auflösung des Basisbildgebiets, des Setzens einer Variablen Y auf die horizontale Auflösung des Nicht-Basisbild-Gebiets, des Setzens einer Variablen K auf die vertikale Auflösung des Basisbildgebiets, des Setzens einer Variablen J auf die vertikale Auflösung des Nicht-Basisbild-Gebiets, des Setzens einer Variablen S auf den Partitionszählwert, des Setzens einer Variablen MAX auf die Anzahl der Pixel in dem Nicht-Basisbild-Gebiet (d. h. Y · J) und des Initialisierens der Variablen CUR_ROW, Q, I und PIXEL_CNT auf null. Wenn die Pixelstromtrennungskomponente 814 auf diese Weise initialisiert worden ist, beginnt die Pixelstromtrennungskomponente 814 im Block 1306 den Datenstrom, der die kombinierte Pixelanordnung darstellt, zu empfangen und zu puffern. Daraufhin initialisiert die Pixelstromtrennungskomponente 814 eine Iteration eines durch die Blöcke 1308-1334 dargestellten Zeilenfragmentierungsprozesses.
  • Die Variable I wird verwendet, um die Anzahl der für das Basisbildgebiet extrahierten Zeilen nachzuverfolgen, und die Variable K repräsentiert die vertikale Auflösung des Basisbildgebiets. Dementsprechend bestimmt die Pixelstromtrennungskomponente 814 im Block 1308 durch Bestimmen, ob die Variable I >= K ist, ob die Extraktion des Basisbildgebiets abgeschlossen ist. Wenn das der Fall ist, bezeichnet die Pixelstromtrennungskomponente 814 die Wiederherstellung des Basisbildgebiets im Block 1310 als abgeschlossen und stellt sie das resultierende Basisbildgebiet für die anderen Komponenten des Anzeigecontrollers 610 zur Weiterverarbeitung bereit und geht das Verfahren 1300 zum Block 1314 über. Andernfalls extrahiert die Pixelstromtrennungskomponente 814 im Block 1312 aus dem Pixelstrom die nächsten X Pixel (oder die ersten X Pixel für die erste Iteration) und gibt sie diese Menge von X Pixeln als eine entsprechende Zeile des wiederhergestellten Basisbildgebiets aus.
  • Die Variable PIXEL_CNT wird verwendet, um die Anzahl der Pixel zu bestimmen, die bisher für das Nicht-Basisbild-Gebiet extrahiert worden sind. Dementsprechend bestimmt die Pixelstromtrennungskomponente 814 im Block 1314 durch Bestimmen, ob die Variable PIXEL_CNT = MAX ist, ob die Extraktion des Nicht-Basisbild-Gebiets abgeschlossen ist. Wenn das der Fall ist, bezeichnet die Pixelstromtrennungskomponente 814 die Wiederherstellung des Nicht-Basisbild-Gebiets im Block 1316 als abgeschlossen und stellt sie das resultierende Nicht-Basisbild-Gebiet für die anderen Komponenten des Anzeigecontrollers 610 zur Weiterverarbeitung bereit und wird das Verfahren 1300 für das aktuelle Bild abgeschlossen (obgleich das Verfahren 1300 für das nächste Bild in dem Pixelstrom neu initialisiert werden kann). Andernfalls bereitet sich die Pixelstromtrennungskomponente 814 darauf vor, den Rest der Zeile der kombinierten Zeile von Pixeln zu extrahieren.
  • Es wird gewürdigt werden, dass die Gesamtanzahl von Pixeln in dem Nicht-Basisbildabschnitt in einigen Fällen kein ganzzahliges Vielfaches des Partitionszählwerts ist und dass somit die letzte Zeile des kombinierten Bildabschnitts keine volle Zeile tatsächlicher Pixelwerte sein wird, sondern stattdessen eine „Unbedeutend“-Auffüllung erfordern kann; d. h. das Abschließen der letzten Zeile mit einem oder mehreren Unbedeutend-Werten. Als Schutz vor dem Extrahieren dieser Unbedeutend-Werte und davor, dass sie als tatsächliche Pixelwerte verwendet werden, setzt die Pixelstromtrennungskomponente 814 im Block 1318 die Variable S auf den kleineren des Werts S oder des Werts der Differenz zwischen MAX und PIXEL_CNT (d. h. MAX - PIXEL_CNT). Das heißt, bis zu der letzten Zeile ist die Variable S weiter auf den Wert des Partitionszählwerts gesetzt, wobei aber für die letzte Zeile der Wert von S auf die Anzahl der Pixelwerte gesetzt wird, die außer diesen Unbedeutend-Werten verbleiben, falls die letzte Zeile Unbedeutend-Werte enthält.
  • Wenn der Wert von S für diese Iteration bestimmt worden ist, extrahiert die Pixelstromtrennungskomponente 814 im Block 1320 aus dem Pixelstrom die nächsten S Pixel und gibt sie diese Menge von Y Pixeln als eine entsprechende Zeile des wiederhergestellten nicht basierten Gebiets aus. Im Block 1322 bestimmt die Pixelstromtrennungskomponente 814, ob die aktuelle Zeile des Nicht-Basisbilds, das wiederhergestellt wird, eine Anzahl ungefüllter Pixel besitzt, die größer als die Anzahl S von Pixeln ist, die im Block 1320 aus dem Pixelstrom extrahiert worden sind. Das heißt, falls Y die horizontale Auflösung des Nicht-Basisbilds repräsentiert und die Variable CUR_ROW die Anzahl extrahierter Pixel repräsentiert, die für die aktuelle Zeile bereits extrahiert worden sind, kann der Vergleich von S mit der Differenz zwischen Y und CUR_ROW diese Bestimmung repräsentieren. Falls diese Differenz größer S ist, wird die aktuelle Zeile, die wiederhergestellt wird, alle der S extrahierten Pixel zuzüglich zusätzlicher Pixel aus der nächsten Zeile des kombinierten Bildgebiets erfordern, so dass im Block 1324 alle S extrahierten Pixel an die Pixel, die in der aktuellen Zeile bereits vorhanden sind, angehängt werden. Andernfalls bestimmt die Pixelstromtrennungskomponente 814 im Block 1326 durch Bestimmen, ob CUR_ROW = Y ist, ob die aktuelle Zeile abgeschlossen ist. Wenn das der Fall ist, wird im Block 1328 eine neue Zeile des Nicht-Basisbild-Gebiets begonnen und diese neue Zeile als die aktuelle Zeile bestimmt. Ferner werden alle S extrahierten Pixel aus dem Block 1320 als die ersten S Pixel dieser Zeile angehängt oder eingefügt und wird die Variable CUR_ROW auf S gesetzt, um zu widerspiegeln, dass die aktuelle Zeile an diesem Punkt jetzt S Pixel besitzt.
  • Zurückkehrend zum Block 1326 setzt die Pixelstromtrennungskomponente 814 im Block 1330 die Variable Q auf die Differenz zwischen Y und CUR_ROW (d. h. Q = Y - CUR_ROW) und hängt sie die ersten Q Pixel der extrahierten S Pixel an die aktuelle Zeile von Pixeln an und schließt sie dadurch die aktuelle Zeile ab, falls die aktuelle Zeile nicht abgeschlossen ist und die aktuelle Zeile weniger als S Pixel benötigt, um abgeschlossen zu werden. Dementsprechend beginnt die Pixelstromtrennungskomponente 814 im Block 1322 eine neue Zeile des Nicht-Basisbilds und stellt sie diese neue Zeile als die aktuelle Zeile ein, fügt sie die verbleibenden S-Q extrahierten Pixel als die ersten Pixel der aktuellen Zeile ein/hängt sie diese an und setzt sie daraufhin CUR_ROW auf den Wert S-Q, um zu widerspiegeln, dass die aktuelle Zeile gegenwärtig S-Q Pixel enthält.
  • Nach dem Prozess in dem geeigneten einen der Blöcke 1324, 1328 oder 1332 widerspiegelt die Pixelstromtrennungskomponente 814 im Block 1434, dass zu dem Nicht-Basisbild-Gebiet durch Erhöhen von PIXEL_CNT um S S Pixel hinzugefügt worden sind, und widerspiegelt sie ferner, dass im Block 1312 durch Inkrementieren der Variable I um eins eine Zeile des Basisbildgebiets hinzugefügt wurde. Daraufhin kehrt der Ablauf des Verfahrens 1300 für die nächste Iteration zum Block 1308 zurück.
  • Wie oben erläutert wurde, kann ein Anzeigesystem das frühe Subpixel-Rendering bei der Rendering-Vorrichtung nutzen, um die Rechenbetriebsmittel, die zum Rendern eines Bildgebiets genutzt werden, sowie die Bandbreitenanforderungen zum Übertragen des Bildgebiets zu einer Anzeigevorrichtung zu verringern. 14-16 stellen Techniken zum weiteren Verringern der Rechen- und Bandbreitenanforderungen zum Rendern und Übertragen eines Bildgebiets in einem Anzeigesystem, das eine Nicht-RGB-Pixelanordnung nutzt, über einen niedrig-auflösenden RGB-Rendering-Prozess dar. Obgleich dieser niedrigauflösende RGB-Rendering-Prozess im Kontext des Renderns eines Bildgebiets wie etwa eines fovealen Gebiets oder eines peripheren Gebiets in den oben beschriebenen fovealisierten Graphikpipelines beschrieben ist, ist dieser Prozess nicht auf solche Kontexte beschränkt, sondern kann er stattdessen in irgendwelchen einer Vielzahl von Anzeigesystemen genutzt werden, die eine Anzeigevorrichtung mit einer Pixelanordnung mit einem Nicht-RGB-Pixelformat nutzen, in dem eine Farbkomponente mit einer größeren Häufigkeit als die anderen Farbkomponenten des Pixelformats vorhanden ist. Das heißt, obgleich der im Folgenden beschriebene Prozess zum Rendern von Subpixeln mit niedriger Häufigkeit durch die Anzeigesysteme 100, 600 und 800 implementiert werden kann, ist dieser Prozess nicht auf solche Systeme beschränkt. Somit ist eine Bezugnahme auf „Bildgebiet“ in der Beschreibung aus 14-16, soweit nichts anderes angemerkt ist, ebenfalls gleichfalls auf ein gesamtes Bild anwendbar.
  • Nunmehr übergehend zu 14 ist ein Anzeigesystem 1400, das einen niedrigauflösenden RGB-Rendering-Prozess implementiert, in Übereinstimmung mit wenigstens einer Ausführungsform dargestellt. Das Anzeigesystem 1400 enthält eine Rendering-Vorrichtung 1402, die über eine PHY 1406 mit Schnittstellen 1408 und 1410 mit einer Anzeigevorrichtung 1404 gekoppelt ist. Die Rendering-Vorrichtung 1402 enthält die Schnittstelle 1408, wenigstens eine GPU 1412 und ein niedrigauflösendes RGB-Modul 1414. Die Anzeigevorrichtung 1404 enthält die Schnittstelle 1410, eine Pixelanordnung 1416, die ein Nicht-RGB-Pixelformat besitzt, und ein Subpixelskalierungsmodul 1420. In dem Beispiel aus 14 ist das niedrigauflösende RGB-Modul 1414 als ein durch Software implementiertes Modul dargestellt, das durch die GPU 1412 ausgeführt wird, während das niedrigauflösende SPR-Modul 1414 in anderen Ausführungsformen vollständig in festcodierter Logik oder programmierbarer Logik oder als eine Kombination eines durch Software implementierten Moduls und festcodierter Logik oder programmierbarer Logik implementiert werden kann. Das Subpixelskalierungsmodul 1420 kann gleichfalls als festcodierte oder programmierbare Logik, als ein durch Software implementiertes Modul, das durch einen Prozessor des Anzeigecontrollers 1418 ausgeführt wird, oder als eine Kombination davon implementiert werden.
  • Als eine allgemeine Betriebsübersicht arbeitet das niedrigauflösende RGB-Modul 1414 zum Rendern eines Bildgebiets in einem RGB-Format mit einer niedrigeren Auflösung als der Auflösung der Pixelanordnung 1416. Das Nicht-RGB-Pixelformat der Pixelanordnung 1416 besitzt eine Farbkomponente, die eine größere Häufigkeit als die anderen Komponenten der Pixelanordnung 1416 besitzt. Das heißt, das Nicht-RGB-Pixelformat führt dazu, dass Subpixel einer Farbe mit einer größeren Häufigkeit als die Subpixel der anderen Komponente der Pixelanordnung 1416 auftreten. Zur leichten Bezugnahme wird die Farbkomponente, die in dem Nicht-RGB-Pixelformat häufiger auftritt/eine höhere Auflösung besitzt, hier als die „primäre Farbkomponente“ bezeichnet, während die anderen Farbkomponenten des Nicht-RGB-Pixelformats hier als „sekundäre Farbkomponenten“ bezeichnet werden. Zur Veranschaulichung führt das RGB-Pixelformat dazu, dass eine grüne Farbkomponente eine doppelt so hohe Auflösung wie entweder die rote Farbkomponente oder die blaue Farbkomponente besitzt. Somit wäre für das RGBG-Pixelformat die grüne Farbkomponente die primäre Farbkomponente, während die rote und die blaue Farbkomponente die sekundären Farbkomponenten wären.
  • Anstatt ein Bildgebiet in der Weise zu rendern, dass die Subpixel mit den durch die primäre Farbkomponente des Nicht-RGB-Pixelformats der Anzeige vorgeschriebenen Auflösungen vorhanden sind, rendert das niedrigauflösende RGB-Modul 1414 stattdessen in wenigstens einer Ausführungsform ein Bildgebiet mit RGB-Pixeln mit der niedrigeren Häufigkeit der sekundären Farbkomponenten. Um wieder das RGBG-Pixelformat als ein Beispiel zu verwenden, hätte ein RGBG-formatiertes Bild mit einer horizontalen Auflösung von 400 Pixeln 400 grüne Subpixel, aber nur 200 rote Subpixel und 200 blaue Subpixel. Somit würde das niedrigauflösende RGB-Modul 1414 das Bildgebiet in einem solchen Beispiel, anstatt das Bildgebiet mit einer horizontalen Auflösung von 400 RGB-Pixeln gemäß der herkömmlichen Vorgehensweise zu rendern, stattdessen mit einer horizontalen Auflösung von 200 RGB-Pixeln rendern. Durch RGB-Rendering des Bildgebiets mit dieser niedrigeren Auflösung wird das resultierende Bildgebiet durch weniger Daten dargestellt, als sie erforderlich wären, um das Bildgebiet unter Verwendung des RGB-Format mit einer horizontalen Auflösung äquivalent der horizontalen Auflösung der RGBG-basierten Pixelanordnung 1416 darzustellen. Somit sind weniger Bandbreite, Komplexität und Leistung erforderlich, um das Bildgebiet zu berechnen und zu der Anzeigevorrichtung 1404 zu übertragen.
  • Da das bei dem Anzeigecontroller 1418 der Anzeigevorrichtung 1404 empfangene Bildgebiet kein Format besitzt, das mit dem Pixelformat der Pixelanordnung 1416 direkt kompatibel ist, da es in einem anderen Pixelformat ist und eine niedrigere Auflösung besitzt, arbeitet das Subpixelskalierungsmodul 1420 dafür, das empfangene Bild in ein Pixelformat und eine Auflösung umzuwandeln, die mit der Pixelanordnung 1416 kompatibel sind. Als Teil dieses Prozesses aufwärtsskaliert das Subpixelskalierungsmodul 1420 jeden entsprechenden Teil des ankommenden RGB-Stroms, der das Bild darstellt, in eine größere Anzahl von RGBG-Ausgangspixeln. Zur Veranschaulichung unter Verwendung des RGBG-Pixelformats enthält dieser Aufwärtsskalierungsprozess die Aufwärtsskalierung grüner Subpixel von den RGB-Daten des gerenderten Bildabschnitts, während die roten und die blauen Subpixel mit ihrer ursprünglichen Auflösung aufrechterhalten werden, da das RGBG-Pixelformat doppelt so viele grüne Subpixel wie entweder rote oder blaue Subpixel besitzt. Somit wird das resultierende neu formatierte Bildgebiet mit dem Nicht-RGB-Pixelformat der Pixelanordnung 1416 kompatibel gemacht.
  • 15 stellt ein Verfahren 1500 dar, das den niedrigauflösenden RGB-Rendering-Prozess in Übereinstimmung mit einigen Ausführungsformen detaillierter zeigt. Zur Erleichterung der Darstellung wird das Verfahren 1500 anhand eines in 16 gezeigten verhältnismäßig einfachen Beispiels beschrieben. Wie oben ähnlich angemerkt wurde, kann die Rendering-Vorrichtung 1402 dafür ausgelegt sein, mit irgendwelchen einer Vielzahl von Typen von Anzeigevorrichtungen mit Pixelanordnungen mit unterschiedlichen Nicht-RGB-Pixelformaten verbunden zu werden. Somit kann die Rendering-Vorrichtung 1402 keine Vorkenntnis des bestimmten durch die Anzeigevorrichtung 1404 implementierten Nicht-RGB-Pixelformat besitzen. Dementsprechend wird das Verfahren 1500 im Block 1502 initiiert, wobei das niedrigauflösende SPR-Modul 1414 das durch die Pixelanordnung 1416 genutzte Nicht-RGB-Pixelformat bestimmt. In einer Ausführungsform fragt die Rendering-Vorrichtung 1402 die Anzeigevorrichtung 1404 nach einem Indikator des durch die Anzeigevorrichtung 1404 genutzten Nicht-RGB-Pixelformats ab oder erhält sie diesen Indikator auf andere Weise von der Anzeigevorrichtung 1404. Zur Veranschaulichung kann die Rendering-Vorrichtung 1402 die Abfrage senden und den Indikator als Antwort über einen in der PHY 1406 implementierten Steuerkanal oder als Parameter, die in einen Anfangsblock oder in ein anderes Feld eines Pixelstroms eingebettet sind, empfangen. Alternativ können die Rendering-Vorrichtung 1402 und die Anzeigevorrichtung 1404 diesen Indikator über einen getrennten Seitenbandkanal übermitteln. Für das Beispiel aus 16 ist angenommen, dass die Pixelanordnung 1416 das RGBG-Pixelformat implementiert.
  • Im Block 1504 identifiziert das niedrigauflösende RGB-Modul 1414 auf der Grundlage des Nicht-RGB-Pixelformats, welche Farbkomponente die primäre Farbkomponente ist und welche Farbkomponenten die sekundären Farbkomponenten sind, und die Auflösungen von jeder. Zur Veranschaulichung ist für das herkömmliche RGBG-Pixelformat jedes Pixel aus zwei Subpixeln zusammengesetzt, die entweder ein rotes Subpixel und ein grünes Subpixel oder ein blaues Subpixel und ein grünes Subpixel umfassen können. Im Ergebnis hätte für ein Bild mit einer Pixelauflösung von H X V die rote Farbkomponente eine Auflösung von H/2 × V/2, hätte die blaue Farbkomponente eine Auflösung von H/2 × V/2, während die grüne Farbkomponente die höhere Auflösung von H X V besitzt. Somit würde die grüne Farbkomponente als die primäre Farbkomponente identifiziert und würden die rote und die grüne Farbkomponente als die sekundären Farbkomponenten identifiziert.
  • Im Block 1506 rendert das niedrigauflösende RGB-Modul 1414 ein Bildgebiet in dem RGB-Pixelformat und mit einer Auflösung, die auf der Auflösung der sekundären Farbkomponenten des Nicht-RGB-Formats der Pixelanordnung 1416, wie sie in den Blöcken 1502 und 1504 identifiziert ist, beruht. 16 stellt ein Beispiel eines Bildgebiets 1600 dar, das mit dieser niedrigeren Häufigkeit der Sekundärfarbe gerendert wird. In diesem vereinfachten Beispiel besitzt die Pixelanordnung 1416 vier Zeilen und eine horizontale Auflösung von 8 Subpixeln für die grüne Farbkomponente und 4 Subpixeln sowohl für die rote als auch für die blaue Farbkomponente. Dementsprechend wird das Bildgebiet 1600 als eine 4 × 4-Anordnung von RGB-Pixeln gerendert, wobei jedes RGB-Pixel aus einem roten Subpixel, einem grünen Subpixel und einem blauen Subpixel zusammengesetzt ist (wobei z. B. das RGB-Pixel 1602 ein rotes Subpixel 1604, ein grünes Subpixel 1606 und ein blaues Subpixel 1608 besitzt). Es wird gewürdigt werden, dass die Auflösungen in einer typischen Implementierung viel höher als in diesem einfachen Beispiel sind.
  • Im Block 1508 wird das resultierende niedrigauflösende Bildgebiet über die PHY 1406 zu der Anzeigevorrichtung 1404 übertragen. Da das niedrigauflösende Bildgebiet im Vergleich zu der herkömmlichen Vorgehensweise mit einer niedrigeren Auflösung gerendert worden ist, erfordert das niedrigauflösende Bildgebiet weniger Leistung und Bandbreite, um es über die PHY 1406 zu übertragen. Zur Veranschaulichung besitzt das Bildgebiet 1600 aus 16 48 Subpixel (4 Zeilen × 4 Spalten × 3 Subpixel/Pixel) und erfordert das Bildgebiet 1600 unter der Annahme, dass jedes Subpixel durch einen 8-Bit-Wert repräsentiert ist, 384 Bit. Im Gegensatz dazu wäre der Bildabschnitt in einer herkömmlichen Vorgehensweise mit einer Auflösung von 4 × 8 RGB-Pixeln gerendert worden und hätte somit 96 Subpixel und würde somit 768 Bit oder das Doppelte der Menge an Pixeldaten erfordern.
  • Im Block 1510 wird das niedrigauflösende RGB-Bildgebiet bei dem Anzeigecontroller 1418 empfangen und setzt das Subpixelskalierungsmodul 1420 das RGB-Bildgebiet in das Nicht-RGB-Format der Pixelanordnung 1416 um. Als Teil dieses Formatumsetzungsprozesses aufwärtsskaliert das Subpixelskalierungsmodul 1420 die Primärfarbensubpixel in dem RGB-Bildgebiet in der Weise, dass die Primärfarbensubpixel in dem resultierenden hochauflösenden Bildgebiet mit derselben Häufigkeit/Auflösung vorhanden sind, wie sie in dem Nicht-RGB-Pixelformat der Pixelanordnung 1416 zu finden sind, während die Sekundärfarbensubpixel mit derselben Häufigkeit, wie sie in dem RGB-Bildgebiet zu finden sind, und somit mit derselben Häufigkeit, wie sie in der Pixelanordnung 1416 zu finden sind, vorhanden sind. Zur Veranschaulichung anhand des Bildgebiets 1610, das das Bildgebiet 1600, wie es durch den Anzeigecontroller 1418 empfangen wird und nach der Anfangsformatumsetzung, darstellt, werden die roten, grünen und blauen Subpixel der RGB-Pixel des Bildgebiets 1600 verwendet, um RGBG-Pixel zu erzeugen, die entweder eine Kombination roter Subpixel und grüner Subpixel oder eine Kombination blauer Subpixel und grüner Subpixel umfassen. Da das RGB-Bild dieselbe Anzahl grüner Subpixel wie die Anzahlen roter Subpixel und blauer Subpixel besitzt, kann der Aufwärtsskalierungsprozess allerdings die Wiederholung von Primärfarben-Subpixeln (d. h. in diesem Beispiel grünen Subpixeln), um die weggelassenen Subpixel zu ersetzen, wie etwa die Wiederholung der grünen Subpixel 1612, um die weggelassenen grünen Subpixel 1614 in derselben Zeile zu ersetzen, oder die Wiederholung der grünen Subpixel 1616, um die weggelassenen grünen Subpixel 1218 in einer anderen Zeile zu ersetzen, enthalten. Alternativ kann der Aufwärtsskalierungsprozess die Interpolation angrenzender Primärfarbensubpixel, um die weggelassenen Subpixel zu erzeugen, wie etwa die Interpolation unter Verwendung eines oder mehrerer der grünen Subpixel in der Nähe des weggelassenen Subpixels 1620, um einen Wert für das weggelassene Subpixel 1620 in dem Bildgebiet 1610 zu erzeugen, enthalten. Das Bildgebiet 1622 aus 16 stellt das resultierende Bildgebiet dar, das neu eingeführte grüne Subpixel zum Ausfüllen für die grünen Subpixel, die aus dem niedrigauflösenden Bildgebiet, das zuvor gerendert und übertragen wurde, weggelassen worden sind, enthält.
  • Wie gezeigt ist, besitzt das Bildgebiet 1622 das RGBG-Pixelformat und ist es somit zur Anzeige auf der RGBG-datierten Pixelanordnung 1416 kompatibel. Allerdings führt der Formatumsetzungs- und Aufwärtsskalierungsprozess des Blocks 1510 zu einer Zunahme der horizontalen Auflösung ohne entsprechende Zunahme der vertikalen Auflösung des resultierenden Bildabschnitts. Dementsprechend aufwärtsskaliert das Subpixelskalierungsmodul 1420 im Block 1512 den Bildabschnitt 1622 vertikal unter Verwendung irgendeiner einer Vielzahl gut bekannter Aufwärtsskalierungstechniken unter Verwendung einer oder mehrerer der Farbkomponenten, um das Seitenverhältnis des Bildabschnitts für die geeignete Anzeige auf der Pixelanordnung 1416 aufrechtzuerhalten. Somit ist der resultierende horizontal und vertikal skalierte Bildabschnitt zur Weiterverarbeitung in Vorbereitung auf seine Anzeige bei der Pixelanordnung 1416 wie oben beschrieben bereit.
  • Viel von der erfindungsgemäßen Funktionalität und viel von den erfindungsgemäßen Prinzipien, die oben beschrieben sind, sind zur Implementierung mit oder in integrierten Schaltungen (ICs) wie etwa anwendungsspezifischen ICs (ASICs) gut geeignet. Es wird erwartet, dass der Durchschnittsfachmann möglicherweise ungeachtet erheblichen Aufwands und vieler Entwurfswahlen, die z. B. durch die verfügbare Zeit, durch die aktuelle Technologie und durch wirtschaftliche Betrachtungen motiviert sein können, leicht in der Lage ist, solche ICs mit minimalem Experimentieren zu erzeugen, wenn er durch die hier offenbarten Konzepte und Prinzipien geführt wird. Somit wird die weitere Diskussion solcher Software und ICs, wenn überhaupt, im Interesse der Kürze und Minimierung irgendeines Risikos, die Prinzipien und Konzepte in Übereinstimmung mit der vorliegenden Offenbarung zu verdecken, auf das Wesentliche in Bezug auf die Prinzipien und Konzepte in den bevorzugten Ausführungsformen beschränkt.
  • In einigen Ausführungsformen können bestimmte Aspekte der oben beschriebenen Techniken durch einen oder mehrere Prozessoren eines Verarbeitungssystems, das Software ausführt, implementiert werden. Die Software umfasst einen oder mehrere Sätze ausführbarer Anweisungen, die in einem nichttransitorischen computerlesbaren Speichermedium gespeichert oder auf andere Weise konkret verkörpert sind. Die Software kann die Anweisungen und bestimmte Daten enthalten, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dafür manipulieren, einen oder mehrere Aspekte der oben beschriebenen Techniken auszuführen. Das nichttransitorische computerlesbare Speichermedium kann z. B. eine magnetische oder optische Plattenspeichervorrichtung, Festkörperspeichervorrichtungen wie etwa Flash-Speicher, einen Cache, Schreib-Lese-Speicher (RAM) oder eine oder mehrere andere nichtflüchtige Speichervorrichtungen und dergleichen enthalten. Die in dem nichttransitorischen computerlesbaren Speichermedium gespeicherten ausführbaren Anweisungen können in Quellcode, in Assemblersprachencode, in Objektcode oder in einem anderen Anweisungsformat, das durch einen oder mehrere Prozessoren interpretiert wird oder auf andere Weise ausführbar ist, sein.
  • In diesem Dokument können Relationsbegriffe wie etwa erstes und zweites und dergleichen allein verwendet sein, um eine Entität oder Aktion von einer anderen Entität oder Aktion zu unterscheiden, ohne notwendig irgendeine tatsächliche solche Beziehung oder Reihenfolge zwischen diesen Entitäten oder Aktionen zu erfordern oder zu implizieren. Die Begriffe „umfasst“, „umfassend“ oder irgendeine andere Variante davon sollen eine nicht ausschließende Inklusion bedeuten, so dass ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, der/das/die eine Liste von Elementen umfasst, nicht notwendig nur diese Elemente enthält, sondern andere Elemente enthalten kann, die für diesen Prozess, dieses Verfahren, diesen Artikel oder diese Vorrichtung nicht ausdrücklich aufgeführt oder inhärent sind. Ein Element, dem „umfasst ... ein“ vorausgeht, schließt ohne weitere Beschränkungen die Existenz zusätzlicher gleicher Elemente in dem Prozess, in dem Verfahren, in dem Artikel oder in der Vorrichtung, der/das/die das Element umfasst, nicht aus. Der Begriff „ein weiteres“, wie er hier verwendet ist, ist als wenigstens ein zweites oder mehr definiert. Die Begriffe „enthaltend“ und/oder „aufweisend“, wie sie hier verwendet sind, sind wie umfassend definiert. Der Begriff „gekoppelt“, wie er hier mit Bezug auf die elektrooptische Technologie verwendet ist, ist als verbunden, allerdings nicht notwendig direkt und nicht notwendig mechanisch, definiert. Der Begriff „Programm“, wie er hier verwendet ist, ist als eine Folge von Anweisungen definiert, die für die Ausführung in einem Computersystem ausgelegt sind. Eine „Anwendung“ oder „Software“ kann ein Unterprogramm, eine Funktion, eine Prozedur, ein Objektverfahren, eine Objektimplementierung, eine ausführbare Anwendung, ein Applet, ein Servlet, einen Quellcode, einen Objektcode, eine gemeinsam genutzte Bibliothek/dynamisch geladene Bibliothek und/oder eine andere Folge von Anweisungen, die zur Ausführung in einem Computersystem bestimmt sind, enthalten.
  • Die Beschreibung und die Zeichnungen sind nur als Beispiele anzusehen und der Schutzumfang der Offenbarung soll dementsprechend nur durch die folgenden Ansprüche und ihre Entsprechungen beschränkt sein. Es wird angemerkt, dass nicht alle der in der allgemeinen Beschreibung oben beschriebenen Aktivitäten oder Elemente erforderlich sind, dass ein Teil einer spezifischen Aktivität oder Vorrichtung nicht erforderlich sein kann und dass außer den Beschriebenen eine oder mehrere weitere Aktivitäten ausgeführt oder Elemente aufgenommen werden können. Nochmals weiter ist die Reihenfolge, in der Aktivitäten aufgeführt sind, nicht notwendig die Reihenfolge, in der sie ausgeführt werden. Sofern nicht etwas anderes spezifiziert ist, können die Schritte der oben gezeigten Ablaufpläne in irgendeiner Reihenfolge sein und können Schritte in Abhängigkeit von der Implementierung beseitigt, wiederholt und/oder hinzugefügt werden. Außerdem sind die Konzepte mit Bezug auf spezifische Ausführungsformen beschrieben worden. Allerdings wird der Durchschnittsfachmann auf dem Gebiet würdigen, dass verschiedene Modifikationen und Änderungen vorgenommen werden, ohne von dem wie in den folgenden Ansprüchen dargelegten Schutzumfang der vorliegenden Offenbarung abzuweichen. Dementsprechend sind die Beschreibung und die Figuren in einem veranschaulichenden anstatt einem beschränkenden Sinn anzusehen und sollen alle solche Abwandlungen in dem Schutzumfang der vorliegenden Offenbarung enthalten sein.
  • Oben sind Vorzüge, weitere Vorteile und Lösungen für Probleme hinsichtlich spezifischer Ausführungsformen beschrieben worden. Allerdings werden die Vorzüge, Vorteile, Lösungen für Probleme und irgendeines oder mehrere Merkmale, die veranlassen können, dass irgendein Vorzug, irgendein Vorteil oder irgendeine Lösung auftritt oder verstärkt wird, nicht als entscheidendes, erforderliches oder wesentliches Merkmal irgendwelcher oder aller Ansprüche verstanden.
  • In einem anderen Beispiel enthält eine Anzeigevorrichtung 1404 eine Pixelanordnung 1416 und einen Anzeigecontroller 1418. Die Pixelanordnung besitzt ein Nicht-Rot-Grün-Blau (Nicht-RGB-) Pixelformat, das wenigstens eine erste, eine zweite und eine dritte Farbkomponente enthält, wobei Subpixel der ersten Farbkomponente mit einer ersten Auflösung vorhanden sind und Subpixel sowohl der zweiten als auch der dritten Farbkomponente mit einer zweiten Auflösung, die niedriger als die erste Auflösung ist, vorhanden sind. Der Anzeigecontroller ist zum Empfangen eines ersten Bilds 1600 in einem RGB-Pixelformat, in dem in dem ersten Bild mit der zweiten Auflösung jeweils Subpixel der ersten Farbkomponente, Subpixel der zweiten Farbkomponente und Subpixel der dritten Farbkomponente vorhanden sind, konfiguriert. Ferner ist der Anzeigecontroller zum Skalieren von Subpixeln der ersten Farbkomponente in dem ersten Bild von der zweiten Auflösung zu der ersten Auflösung, um ein zweites Bild 1622 mit einem Nicht-RGB-Format zu erzeugen, konfiguriert.

Claims (16)

  1. Anzeigesystem (1400), das umfasst: eine Anzeigevorrichtung (1404), die umfasst: einen Eingang, der mit wenigstens einer Bitübertragungsschicht (1406) gekoppelt ist; eine Pixelanordnung (1416) mit einem Nicht-Rot-Grün-Blau- (Nicht-RGB-) Pixelformat, das wenigstens eine erste, eine zweite und eine dritte Farbkomponente enthält, und wobei die Subpixel der ersten Farbkomponente in der Pixelanordnung mit einer ersten Auflösung vorhanden sind und die Subpixel sowohl der zweiten als auch der dritten Farbkomponente in der Pixelanordnung mit einer zweiten Auflösung, die niedriger als die erste Auflösung ist, vorhanden sind; und einen Anzeigecontroller (1418), der mit dem Eingang und mit der Pixelanordnung gekoppelt ist, wobei der Anzeigecontroller dafür konfiguriert ist, ein erstes Bild (1610) in einem RGB-Pixelformat zu empfangen und wobei in dem ersten Bild mit der zweiten Auflösung jeweils Subpixel der ersten Farbkomponente, Subpixel der zweiten Farbkomponente und Subpixel der dritten Farbkomponente vorhanden sind, und wobei der Anzeigecontroller ferner dafür konfiguriert ist, Subpixel der ersten Farbkomponente in dem ersten Bild von der zweiten Auflösung in die erste Auflösung zu skalieren, um ein zweites Bild (1622) mit dem Nicht-RGB-Pixelformat zu erzeugen.
  2. Anzeigesystem nach Anspruch 1, das ferner umfasst: eine Rendering-Vorrichtung (1402), die mit der Bitübertragungsschicht gekoppelt ist und die eine Graphikverarbeitungseinheit (GPU) (1412) umfasst, die dafür konfiguriert ist, das erste Bild in dem RGB-Pixelformat mit Subpixeln der ersten Farbkomponente, Subpixeln der zweiten Farbkomponente und Subpixeln der dritten Farbkomponente, die jeweils in dem ersten Bild mit der zweiten Auflösung vorhanden sind, zu rendern und das gerenderte erste Bild über die wenigstens eine Bitübertragungsschicht zur Übertragung zu der Pixelanordnung bereitzustellen.
  3. Anzeigesystem nach Anspruch 2, wobei: die GPU ferner dafür konfiguriert ist, die Anzeigevorrichtung abzufragen, um das Nicht-RGB-Pixelformat der Pixelanordnung zu bestimmen.
  4. Anzeigesystem nach Anspruch 2 oder 3, wobei die erste Farbkomponente eine grüne Farbkomponente (1606) umfasst.
  5. Anzeigesystem nach Anspruch 4, wobei das Nicht-RGB-Pixelformat ein Rot-Grün-Blau-Grün- (RGBG-) Pixelformat umfasst.
  6. Anzeigesystem nach Anspruch 5, wobei der Anzeigecontroller dafür konfiguriert ist, Subpixel der ersten Farbkomponente durch Wiederholen von Pixelwerten für grüne Subpixel (1614) in dem zweiten Bild von grünen Subpixeln (1612), die in dem ersten Bild vorhanden sind, zu skalieren.
  7. Anzeigesystem nach Anspruch 5, wobei der Anzeigecontroller dafür konfiguriert ist, Subpixel der ersten Farbkomponente durch Erzeugen von Pixelwerten für grüne Subpixel (1620) in dem zweiten Bild über Interpolation von Mengen zweier oder mehrerer grüner Subpixel, die in dem ersten Bild vorhanden sind, zu skalieren.
  8. Anzeigesystem nach einem der Ansprüche 1 bis 7, wobei der Anzeigecontroller dafür konfiguriert ist, Subpixel der ersten Farbkomponente durch wenigstens eines der Folgenden zu skalieren: Wiederholen von Pixelwerten für Subpixel (1614) der ersten Farbkomponente für das zweite Bild von Subpixeln (1612) der ersten Farbkomponente, die in dem ersten Bild vorhanden sind; und Erzeugen von Pixelwerten für Subpixel (1620) der ersten Farbkomponente für das zweite Bild über Interpolation von Mengen zweier oder mehrerer Pixel der ersten Farbkomponente in dem ersten Bild.
  9. Anzeigesystem nach einem der Ansprüche 1 bis 8, wobei der Anzeigecontroller ferner dafür konfiguriert ist, das zweite Bild vertikal zu skalieren, um ein drittes Bild zur Anzeige auf der Pixelanordnung zu erzeugen.
  10. Anzeigesystem nach einem der Ansprüche 1 bis 9, das ferner umfasst: eine Head-Mounted-Display-Vorrichtung (HMD-Vorrichtung) (104), die eine Anzeige (114) des linken Auges und eine Anzeige (116) des rechten Auges umfasst, wobei die Anzeige des linken Auges oder die Anzeige des rechten Auges die Pixelanordnung enthält.
  11. Computerlesbares Speichermedium in einem Anzeigesystem (1400), das eine Anzeigevorrichtung (1404) mit einer Pixelanordnung (1416) mit einem Nicht-Rot-Grün-Blau- (Nicht-RGB-) Pixelformat, das wenigstens eine erste, eine zweite und eine dritte Farbkomponente enthält, umfasst, und wobei die Subpixel der ersten Farbkomponente in der Pixelanordnung mit einer ersten Auflösung vorhanden sind und die Subpixel der zweiten und der dritten Farbkomponente in der Pixelanordnung mit einer zweiten Auflösung, die niedriger als die erste Auflösung ist, vorhanden sind, wobei das computerlesbare Speichermedium Anweisungen umfasst, die, wenn sie ausgeführt werden, veranlassen, dass der wenigstens eine Prozessor eines Computersystems Operationen ausführt, die umfassen: Empfangen eines ersten Bilds (1600) in einem RGB-Pixelformat bei der Anzeigevorrichtung, und wobei Subpixel der ersten Farbkomponente, Subpixel der zweiten Farbkomponente und Subpixel der dritten Farbkomponente jeweils in dem ersten Bild mit der zweiten Auflösung vorhanden sind; und Skalieren von Subpixeln der ersten Farbkomponente in dem ersten Bild von der zweiten Auflösung in die erste Auflösung, um ein zweites Bild (1622) zu erzeugen, bei der Anzeigevorrichtung.
  12. Computerlesbares Speichermedium nach Anspruch 11, das ferner umfasst: Rendern des ersten Bilds in dem RGB-Pixelformat mit Subpixeln der ersten Farbkomponente, Subpixeln der zweiten Farbkomponente und Subpixeln der dritten Farbkomponente, die jeweils in dem ersten Bild mit der ersten Auflösung vorhanden sind, bei einer Graphikverarbeitungseinheit (GPU) (1412) des Anzeigesystems; und Bereitstellen des ersten Bilds von der GPU für die Anzeigevorrichtung über wenigstens eine Bitübertragungsschicht (1406) zwischen der GPU und der Anzeigevorrichtung.
  13. Computerlesbares Speichermedium nach Anspruch 11 oder 12, wobei die erste Farbkomponente eine grüne Farbkomponente umfasst und wobei das Nicht-RGB-Pixelformat ein Rot- Grün-Blau-Grün- (RGBG-) Pixelformat umfasst.
  14. Computerlesbares Speichermedium nach Anspruch 13, wobei: das Skalieren von Subpixeln der ersten Farbkomponente in dem ersten Bild das Wiederholen von Pixelwerten für grüne Subpixel (1614) des zweiten Bilds von Pixelwerten für grüne Subpixel (1612), die in dem ersten Bild vorhanden sind, umfasst.
  15. Computerlesbares Speichermedium nach Anspruch 13, wobei: das Skalieren von Subpixeln der ersten Farbkomponente in dem ersten Bild das Erzeugen von Pixelwerten für grüne Subpixel (1620) des zweiten Bilds über Interpolation von Mengen zweier oder mehrerer grüner Subpixel, die in dem ersten Bild vorhanden sind, umfasst.
  16. Computerlesbares Speichermedium nach einem der Ansprüche 11 bis 15, wobei: das Skalieren von Subpixeln der ersten Farbkomponente in dem ersten Bild wenigstens eines der Folgenden umfasst: Wiederholen von Pixelwerten für Subpixel (1614) der ersten Farbkomponente in dem zweiten Bild von Pixelwerten von Subpixeln (1612) der ersten Farbkomponente, die in dem ersten Bild vorhanden sind; und Erzeugen von Pixelwerten für Subpixel (1620) der ersten Farbkomponente für das zweite Bild über Interpolation von Mengen zweier oder mehrerer Pixel von Subpixeln der ersten Farbkomponente in dem ersten Bild.
DE202017105872.7U 2016-11-14 2017-09-27 Niedrigauflösendes RGB-Rendering für effiziente Übertragung Active DE202017105872U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/351,205 US20180137602A1 (en) 2016-11-14 2016-11-14 Low resolution rgb rendering for efficient transmission
US15/351,205 2016-11-14

Publications (1)

Publication Number Publication Date
DE202017105872U1 true DE202017105872U1 (de) 2018-04-13

Family

ID=60002067

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202017105872.7U Active DE202017105872U1 (de) 2016-11-14 2017-09-27 Niedrigauflösendes RGB-Rendering für effiziente Übertragung
DE102017122391.6A Pending DE102017122391A1 (de) 2016-11-14 2017-09-27 Niedrigauflösendes RGB-Rendering für effiziente Übertragung

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE102017122391.6A Pending DE102017122391A1 (de) 2016-11-14 2017-09-27 Niedrigauflösendes RGB-Rendering für effiziente Übertragung

Country Status (6)

Country Link
US (1) US20180137602A1 (de)
EP (1) EP3529795A1 (de)
CN (1) CN108109570A (de)
DE (2) DE202017105872U1 (de)
GB (1) GB2556990B (de)
WO (1) WO2018089106A1 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017099616A (ja) * 2015-12-01 2017-06-08 ソニー株式会社 手術用制御装置、手術用制御方法、およびプログラム、並びに手術システム
US11284109B2 (en) * 2016-01-29 2022-03-22 Cable Television Laboratories, Inc. Visual coding for sensitivities to light, color and spatial resolution in human visual system
US10303413B2 (en) * 2016-09-28 2019-05-28 Verizon Patent And Licensing Inc. Apparatuses and methods for linking mobile computing devices for virtual reality experiences
US11222397B2 (en) * 2016-12-23 2022-01-11 Qualcomm Incorporated Foveated rendering in tiled architectures
US10560680B2 (en) * 2017-01-28 2020-02-11 Microsoft Technology Licensing, Llc Virtual reality with interactive streaming video and likelihood-based foveation
CN108665805B (zh) * 2017-04-01 2020-09-25 北京京东方显示技术有限公司 显示面板、显示装置和虚拟现实设备
US10504259B2 (en) 2017-04-24 2019-12-10 Intel Corporation Separately processing regions or objects or interest from a render engine to a display engine or a display panel
CN107153519A (zh) * 2017-04-28 2017-09-12 北京七鑫易维信息技术有限公司 图像传输方法、图像显示方法以及图像处理装置
US10885607B2 (en) * 2017-06-01 2021-01-05 Qualcomm Incorporated Storage for foveated rendering
CN107333119A (zh) * 2017-06-09 2017-11-07 歌尔股份有限公司 一种显示数据的处理方法和设备
JP2019061198A (ja) * 2017-09-28 2019-04-18 セイコーエプソン株式会社 虚像表示装置
US10930075B2 (en) * 2017-10-16 2021-02-23 Microsoft Technology Licensing, Llc User interface discovery and interaction for three-dimensional virtual environments
JP2019120870A (ja) * 2018-01-10 2019-07-22 シャープ株式会社 画像表示装置および画像表示方法
CN108391133A (zh) * 2018-03-01 2018-08-10 京东方科技集团股份有限公司 显示数据的处理方法、处理设备和显示设备
GB2573543B (en) * 2018-05-09 2021-10-27 Advanced Risc Mach Ltd Graphics Processing
US10764581B2 (en) * 2018-05-24 2020-09-01 Lockhead Martin Corporation Multi-resolution regionalized data transmission
US10921499B1 (en) 2018-06-12 2021-02-16 Facebook Technologies, Llc Display devices and methods for processing light
US11145631B1 (en) 2018-06-12 2021-10-12 Facebook Technologies, Llc Display devices and methods of making the same
WO2020033875A1 (en) * 2018-08-10 2020-02-13 Compound Photonics Limited Apparatus, systems, and methods for foveated display
US10650568B2 (en) * 2018-09-13 2020-05-12 Qualcomm Incorporated In-flight adaptive foveated rendering
US11262584B2 (en) * 2018-10-25 2022-03-01 Facebook Technologies, Llc Color foveated display devices and methods of making the same
GB2578769B (en) 2018-11-07 2022-07-20 Advanced Risc Mach Ltd Data processing systems
US10872261B2 (en) * 2018-12-03 2020-12-22 Qualcomm Incorporated Dynamic binning of sensor pixels
KR102581375B1 (ko) * 2018-12-31 2023-09-22 삼성디스플레이 주식회사 표시 장치 및 이의 구동 방법
CN109545122B (zh) 2019-01-02 2021-01-29 京东方科技集团股份有限公司 Vr显示的补偿方法及补偿装置、显示系统
CN109739460B (zh) * 2019-01-04 2022-09-09 京东方科技集团股份有限公司 Vr显示方法及设备、计算机可读存储介质
US20200285055A1 (en) * 2019-03-08 2020-09-10 Varjo Technologies Oy Direct retina projection apparatus and method
GB2583061B (en) * 2019-02-12 2023-03-15 Advanced Risc Mach Ltd Data processing systems
KR102192941B1 (ko) * 2019-03-26 2020-12-18 주식회사 레티널 복수개의 증강 현실용 화상을 이용한 증강 현실용 광학 장치
US11284053B2 (en) 2019-03-29 2022-03-22 Razmik Ghazaryan Head-mounted display and projection screen
US10554940B1 (en) 2019-03-29 2020-02-04 Razmik Ghazaryan Method and apparatus for a variable-resolution screen
US10466489B1 (en) 2019-03-29 2019-11-05 Razmik Ghazaryan Methods and apparatus for a variable-resolution screen
CN111831239B (zh) * 2019-04-15 2023-07-11 深信服科技股份有限公司 一种虚拟桌面残影消除方法、装置、电子设备及存储介质
CN110060619B (zh) * 2019-04-24 2022-05-10 格兰菲智能科技有限公司 子像素渲染方法及装置
US11030937B2 (en) 2019-04-24 2021-06-08 Glenfly Technology Co., Ltd. Sub-pixel rendering method and device
CN110047417B (zh) * 2019-04-24 2022-05-17 格兰菲智能科技有限公司 子像素渲染方法及装置
CN114175630A (zh) * 2019-07-28 2022-03-11 谷歌有限责任公司 利用注视点网格渲染沉浸式视频内容的方法、系统和介质
WO2021046641A1 (en) * 2019-09-09 2021-03-18 North Inc. Method and system for projecting an image within an eye safety limit
TWI827874B (zh) * 2019-11-05 2024-01-01 宏達國際電子股份有限公司 顯示系統
US11100892B2 (en) 2019-12-05 2021-08-24 Rockwell Collins, Inc. Display element, system, and method
US11302289B2 (en) 2020-04-24 2022-04-12 Rockwell Collins, Inc. Display element, system, and method
CN112233028B (zh) * 2020-10-15 2023-10-31 上海通途半导体科技有限公司 一种屏下摄像头的子像素渲染方法与装置
CN112422869A (zh) * 2020-10-28 2021-02-26 苏州华兴源创科技股份有限公司 一种图像转换用芯片、像素结构转换装置和方法
CN112270738B (zh) * 2020-11-16 2024-01-26 上海通途半导体科技有限公司 一种自适应的子像素渲染方法与装置
US20220270539A1 (en) * 2021-02-22 2022-08-25 Novatek Microelectronics Corp. Display driver integrated circuit, image processor, and operation method thereof
JP7380625B2 (ja) * 2021-03-29 2023-11-15 セイコーエプソン株式会社 画像生成装置、端末装置、及び画像生成方法
US11830168B2 (en) * 2021-03-31 2023-11-28 Tobii Ab Method of compressing image data for network transport
US11881143B2 (en) * 2021-10-12 2024-01-23 Meta Platforms Technologies, Llc Display peak power management for artificial reality systems
CN114333676B (zh) * 2021-12-31 2023-12-15 武汉天马微电子有限公司 显示面板的驱动方法、显示面板及显示装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994010679A1 (en) * 1992-11-02 1994-05-11 The 3Do Company Resolution enhancement for video display using multi-line interpolation
US7495722B2 (en) * 2003-12-15 2009-02-24 Genoa Color Technologies Ltd. Multi-color liquid crystal display
US8248433B2 (en) * 2004-03-08 2012-08-21 Nvidia Corporation Error accumulation dithering of image data
US20080198128A1 (en) * 2007-02-15 2008-08-21 Aten International Co., Ltd. Kvm switch capable of providing edid of display for computer coupled thereto and method thereof
WO2011102343A1 (ja) * 2010-02-18 2011-08-25 シャープ株式会社 表示装置
EP2388773A3 (de) * 2010-05-21 2012-09-26 Seiko Epson Corporation Verarbeitung von Farb-Unterpixeln
US8565522B2 (en) * 2010-05-21 2013-10-22 Seiko Epson Corporation Enhancing color images
KR101958287B1 (ko) * 2012-10-16 2019-03-14 엘지디스플레이 주식회사 표시장치 및 그 구동방법
TWI526979B (zh) * 2012-11-05 2016-03-21 輝達公司 進行次像素材質貼圖與過濾之方法
KR102023184B1 (ko) * 2013-02-20 2019-09-20 삼성디스플레이 주식회사 표시장치, 데이터 처리장치 및 그 방법
ES2820499T3 (es) * 2013-09-12 2021-04-21 Shenzhen Yunyinggu Tech Co Ltd Método y aparato para representación de subpíxeles
KR102253039B1 (ko) * 2013-11-04 2021-05-20 삼성디스플레이 주식회사 영상 데이터 인코딩 장치 및 방법
KR102275712B1 (ko) * 2014-10-31 2021-07-09 삼성전자주식회사 렌더링 방법, 렌더링 장치 및 전자 장치
KR102296918B1 (ko) * 2014-11-03 2021-09-02 삼성디스플레이 주식회사 표시 장치, 이의 표시 제어 방법 및 장치
CN104361854A (zh) * 2014-12-05 2015-02-18 京东方科技集团股份有限公司 显示面板驱动方法以及显示面板、显示装置
US20160267884A1 (en) * 2015-03-12 2016-09-15 Oculus Vr, Llc Non-uniform rescaling of input data for displaying on display device
CN104680945B (zh) * 2015-03-23 2018-05-29 京东方科技集团股份有限公司 像素排列方法、像素渲染方法及图像显示装置
CN104867453B (zh) * 2015-06-09 2018-10-12 中国科学院上海高等研究院 显示屏的像素结构转换方法及其装置
KR101733309B1 (ko) * 2015-11-11 2017-05-08 재단법인 다차원 스마트 아이티 융합시스템 연구단 4 칼라 이미지 센서를 위해 듀얼 isp를 갖는 카메라 시스템

Also Published As

Publication number Publication date
GB2556990B (en) 2021-05-12
CN108109570A (zh) 2018-06-01
WO2018089106A1 (en) 2018-05-17
US20180137602A1 (en) 2018-05-17
GB201715632D0 (en) 2017-11-08
GB2556990A (en) 2018-06-13
EP3529795A1 (de) 2019-08-28
DE102017122391A1 (de) 2018-05-17

Similar Documents

Publication Publication Date Title
DE202017105872U1 (de) Niedrigauflösendes RGB-Rendering für effiziente Übertragung
DE202017105882U1 (de) Fovealisierte Zweiwege-Graphikpipeline
US10262387B2 (en) Early sub-pixel rendering
JP7195935B2 (ja) 画像表示方法、表示システム及びコンピューター読取可能記憶媒体
DE68926502T2 (de) Senkrechte filtervorrichtung für nach einem gitter abgetastete anzeige
US10325546B2 (en) Array substrate, display panel, driving method thereof and display device
US10043483B2 (en) Pixel arrangement structure, array substrate, display apparatus and display control method
DE102015108057A1 (de) Aktualisierungsabhängiges adaptives Dithering für ein Display mit variabler Aktualisierungsrate
KR20150008712A (ko) 신호 처리 방법, 신호 처리 장치, 및 신호 처리 장치를 포함하는 표시 장치
US11917167B2 (en) Image compression method and apparatus, image display method and apparatus, and medium
US10304362B2 (en) Liquid crystal panel for 3D display, driving method and pixel optimization method thereof
US10726815B2 (en) Image processing apparatus, display panel and display apparatus
WO2016033925A1 (zh) 显示方法及显示装置
US20100033496A1 (en) Methods and Storing Colour Pixel Data and Driving a Display, Means for Preforming Such Methods, and Display Apparatus Using the Same
US20220138901A1 (en) Image display method, image processing method, image processing device, display system and computer-readable storage medium
US10504414B2 (en) Image processing apparatus and method for generating display data of display panel
EP1239451A2 (de) Methode und Vorrichtung zur Abbildung von Subpixeln eines Farb-Displays von Quad-Subpixel- auf Streifen-Subpixel-Format
DE102021102343A1 (de) Eine technik aus der mitte heraus zum auffrischen einer anzeige mit niedriger latenzzeit

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years