DE112019003229T5 - Videoverarbeitung in virtuellen Realitätsumgebungen - Google Patents

Videoverarbeitung in virtuellen Realitätsumgebungen Download PDF

Info

Publication number
DE112019003229T5
DE112019003229T5 DE112019003229.1T DE112019003229T DE112019003229T5 DE 112019003229 T5 DE112019003229 T5 DE 112019003229T5 DE 112019003229 T DE112019003229 T DE 112019003229T DE 112019003229 T5 DE112019003229 T5 DE 112019003229T5
Authority
DE
Germany
Prior art keywords
video
video data
stream
choppy
alternative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112019003229.1T
Other languages
English (en)
Inventor
Sharon Talmor-Marcovici
Michael Glik
Yaniv Frishman
Elad Levy
Shani Ben-Haim
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112019003229T5 publication Critical patent/DE112019003229T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/268Signal distribution or switching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43637Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Geräte, Systeme, Herstellungsartikel und Verfahren zur Verarbeitung von Video in virtuellen Realitätsumgebungen sind offenbart. Eine beispielhafte virtuelle Realitätsanzeigevorrichtung, um Video in einer virtuellen Realitätsumgebung zu verarbeiten, beinhaltet einen Videoanalysator, um unruhige Videodaten in dem Stream von Videodaten zu erkennen, und eine Videobibliothek, um alternative Videodaten bereitzustellen. Die beispielhafte Vorrichtung beinhaltet außerdem einen Selektor, um den Stream von Videodaten, eine Angabe der unruhigen Videodaten und die alternativen Videodaten zu empfangen. Der Selektor ist dazu, die alternativen Videodaten auszuwählen, um die unruhigen Videodaten auf der Basis der Angabe der unruhigen Videodaten zu ersetzen, und einen modifizierten Stream von Videodaten auszugeben, der den Stream von Videodaten mit den alternativen Videodaten anstelle der unruhigen Videodaten beinhaltet. Die beispielhafte Vorrichtung beinhaltet außerdem eine Ausgabeanzeige, um den modifizierten Stream von Videodaten anzuzeigen.

Description

  • GEBIET DER OFFENBARUNG
  • Diese Offenbarung betrifft allgemein virtuelle Realität und spezieller Systeme, Geräte, Verfahren und Herstellungsartikel zur Verarbeitung von Video in virtuellen Realitätsumgebungen.
  • HINTERGRUND
  • In einer virtuellen Realität deckt die Videoanzeige im Gegensatz zu anderen Video-Streaming-Anwendungen das gesamte optische Blickfeld eines Benutzers ab. Folglich erwartet das Sehsystem des Benutzers eine Synchronisation zwischen der Bewegung des Benutzers und einer optisch wahrgenommenen Bewegung, wie sie durch das virtuelle Realitätsvideo angezeigt wird, andernfalls kann der Benutzer unter Bewegungskrankheit leiden.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines beispielhaften Systems zur Verarbeitung von Video in virtuellen Realitätsumgebungen gemäß den Lehren dieser Offenbarung.
    • 2A ist ein Blockdiagramm einer beispielhaften Sequenz von Video-Frames.
    • 2B ist eine Darstellung von Videobildern der Video-Frames von 2A.
    • 3A ist ein Blockdiagramm einer beispielhaften Video-Frame-Sequenz, die ein unruhiges Video erzeugt.
    • 3B ist ein Blockdiagramm einer beispielhaften modifizierten Sequenz von Video-Frames.
    • 3C ist eine Darstellung von Videobildern der Video-Frames von 3B.
    • 4A ist ein Schaubild, das eine beispielhafte Auswirkung von Videoruckeln auf ein Benutzererlebnis zeigt.
    • 4B ist ein Schaubild, das ein beispielhaftes bevorzugtes Benutzererlebnis zeigt.
    • 5 ist ein Ablaufdiagramm, das für maschinenlesbare Anweisungen repräsentativ ist, die ausgeführt werden können, um Elemente der beispielhaften am Kopf angebrachten Anzeige von 1 zu implementieren.
    • 6 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform, die dazu strukturiert ist, den beispielhaften Host von 1 zu implementieren.
    • 7 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform, die dazu strukturiert ist, die Anweisungen von 5 auszuführen, um die beispielhafte am Kopf angebrachte Anzeige von 1 zu implementieren.
  • Die Figuren sind nicht maßstabgetreu. Außerdem werden allgemein dieselben Bezugsziffern überall in der bzw. den Zeichnungen und der begleitenden geschriebenen Beschreibung verwendet, um auf dieselben oder ähnliche Teile zu verweisen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Virtuelle Realitätssysteme im High-End-Bereich verwenden Kabelverbindungen, um eine am Kopf angebrachte Anzeige, die von dem Benutzer getragen wird, an einen Personalcomputer oder eine andere Videoquelle zu koppeln. Bei traditionellen, verkabelten virtuellen Realitätssystemen unterbricht das Kabel das Erlebnis eines Eintauchens in die virtuelle Realitätsumgebung, weil, wenn der Benutzer das Kabel berührt oder anderweitig fühlt, das Gefühl, das extern zu der virtuellen Realitätsumgebung ist, den Benutzer aus dem virtuellen Realitätserlebnis zieht. Das Kabel bindet zudem den Benutzer und schränkt die Bewegung des Benutzers im Raum ein, was den Benutzer ebenfalls aus dem virtuellen Realitätserlebnis ziehen kann. Wie hierin verwendet, kann der Begriff „Benutzer“ sich auf einen beliebigen Spieler, eine beliebige Person, einen beliebigen Patienten oder einen beliebigen anderen Menschen beziehen, der bzw. die die hierin offenbarten Vorrichtungen verwendet, um eine virtuelle Realitätsumgebung zu erleben. Darüber hinaus werden die Begriffe „virtuelle Realität“ und „virtuelle Realitätsumgebung“ überall in dieser Offenbarung austauschbar verwendet. Außerdem werden die Begriffe „Video“, „Streaming-Video“, „Videodaten“ und „Stream von Videodaten“ überall in dieser Offenbarung austauschbar verwendet.
  • Kabellose Technologie, wie beispielsweise Wireless-Gigabit-Alliance-Technologie (WiGig-Technologie), wurde zur Verwendung mit virtuellen Realitätssystemen implementiert, um Benutzern zu ermöglichen, virtuelle Realität zu erleben, ohne das Risiko, dass das virtuelle Realitätserlebnis durch Berühren des Kabels oder die durch die räumlichen Bewegungseinschränkungen aufgrund der Kabelbindung unterbrochen wird.
  • Die Hauptleistungsindikatoren für kabellose virtuelle Realität sind eine niedrige Videolatenz und Bewegungsverfolgungsdaten. Eine niedrige Latenz des Videos übt großen Einfluss auf das Benutzererlebnis aus, weil am Kopf angebrachte Anzeigen Videofelder aufweisen, die eine hohe Videoauflösung und eine hohe Video-Frame-Rate aufweisen, die mit einem hohen Durchsatz des codierten Videos arbeiten. Bewegungsverfolgungsdaten sind aufgrund der niedrigen Motion-to-Photon-Latenz-Standards für virtuelle Realität ebenfalls für das Benutzererlebnis relevant. Die Motionto-Photon-Latenz ist die Zeit, die erforderlich ist, um eine Benutzerbewegung auf einem Anzeigebildschirm vollständig widerzuspiegeln. Eine niedrige Motion-to-Photon-Latenz überzeugt den Verstand des Benutzers, dass der Benutzer sich an einem anderen Ort befindet, was das virtuelle Realitätserlebnis verbessert. Eine hohe Motion-to-Photon-Latenz führt dazu, dass eine virtuelle Realitätsanzeige einer Benutzerbewegung nachhinkt, was zu einem schlechten virtuellen Realitätserlebnis und/oder Bewegungskrankheit und Übelkeit führt.
  • Kabellose virtuelle Realitätssysteme haben eine variable Bandbreitenkapazität, die bei einigen Verbindungsbedingungen keine Videobandbreite mit ausreichend niedriger Latenz liefern kann. Wenn ein Video-Frame nicht rechtzeitig an einen Videodecoder der am Kopf angebrachten Anzeige geliefert wird (z. B. aufgrund einer erhöhten Latenz), lässt der Videodecoder den späten Video-Frame fallen. In diesem Beispiel wird der Benutzer eine unruhige Videoanzeige, wie beispielsweise Videoruckeln und/oder Bildeinfrieren, sehen. Unruhige Videodaten beinhalten Videodaten, die außerhalb einer Latenzbeschränkung geliefert werden, um zu bewirken, dass die Anzeige ein Video präsentiert, das nicht flüssig oder nahtlos ist oder nicht anderweitig ohne Störung oder Übertragungsprobleme wahrgenommen wird. Somit kann kabellose virtuelle Realität ein virtuelles Erlebnis eines Benutzers in Szenarios beeinträchtigen, in denen die kabellose Verbindung kein Video mit der erwarteten Dienstqualität, d. h. innerhalb einer Latenzbeschränkung, bereitstellen kann.
  • Wenn das virtuelle Realitätsvideo für verhältnismäßig lange Zeiträume (wie beispielsweise länger als etwa 300 Millisekunden) unruhig ist und/oder das virtuelle Realitätsvideo eine wahrgenommene Latenz aufweist, die verhältnismäßig hoch ist (wie beispielsweise länger als etwa 10 Millisekunden), ist der Unterschied zwischen einer Bewegung eines Benutzers und einer optisch wahrgenommenen Bewegung auf der am Kopf angebrachten Anzeige zu stark. Folglich leidet der Benutzer unter Bewegungskrankheit, einschließlich beispielsweise Orientierungslosigkeit, Schwindelgefühl, Übelkeit, Kopfschmerzen und/oder anderen Beschwerden.
  • Einige frühere kabellose virtuelle Realitätssysteme zeigen frühere Video-Frames erneut an, wenn neue Video-Frame-Daten aufgrund von Latenzproblemen nicht rechtzeitig angekommen sind oder überhaupt nicht angekommen sind (z. B. verworfen wurden) und nicht decodiert und auf einem Anzeigefeld in der am Kopf angebrachten Anzeige wie gewünscht präsentiert werden können. Das erneute Anzeigen von früheren Video-Frames erfüllt jedoch die Erwartungen an das virtuelle Realitätsbenutzererlebnis nicht, da entweder die wahrgenommene Videolatenz zu hoch ist oder aufgrund einer Fehlausrichtung zwischen Kopf- oder einer anderen Benutzerbewegung und dem angezeigten Bild Bewegungskrankheit verursacht wird. Andere frühere kabellose virtuelle Realitätssysteme stoppen das Video völlig, was bewirken kann, dass die Anzeige schwarz wird, und bewirken kann, dass der Benutzer sich unbehaglich fühlt und eine Systemfehlfunktion vermutet.
  • Hierin offenbart sind Systeme, Geräte, Verfahren und Herstellungsartikel zur Verarbeitung von Video in einer virtuellen Realitätsumgebung. Das Video kann verarbeitet werden, um Elemente (z. B. Frames), die Bewegungskrankheit verursachen können, zu eliminieren. Um zu verhindern, dass dem Benutzer übel wird, und um das kabellose virtuelle Realitätsgesamterlebnis zu verbessern, werden Szenarios mit verringerter Videoleistung identifiziert und von dem Benutzer durch Anzeigen eines alternativen Videos in der am Kopf angebrachten Anzeige verborgen. In hierin offenbarten Beispielen werden Fälle oder Momente eines unruhigen virtuellen Realitätsvideos (z. B. Videoruckeln und/oder Bildeinfrieren), das von einer Transportschicht mit einer variablen Bandbreitenkapazität verursacht wird, vor einer Anzeige oder während einer Anzeige an den Benutzer identifiziert. Das unruhige virtuelle Realitätsvideo, das auf Videofeldern einer am Kopf angebrachten Anzeige angezeigt werden soll, wird durch alternative Videodaten ersetzt, einschließlich beispielsweise einer alternativen nichtvirtuellen Realitätsvideoanzeige, um Bewegungskrankheit bei dem Benutzer der virtuellen Realität zu verhindern. In einigen Beispielen wird das unruhige virtuelle Realitätsvideo identifiziert, bevor das unruhige Video oder das alternative Video dem Benutzer angezeigt wird (z. B. während einer Anzeige eines anderen, ruhigen Videos). Darüber hinaus wird in einigen Beispielen das unruhige virtuelle Realitätsvideo vor einer Anzeige an den Benutzer identifiziert, wenn beispielsweise ein alternatives Video dem Benutzer angezeigt wird und das fortfahrende eingehende Video unruhig bleibt. Außerdem wird in einigen Beispielen ein unruhiges Video dem Benutzer angezeigt und während der Anzeige identifiziert und während der Anzeige des unruhigen Videos für eine Grenzzeitdauer durch ein alternatives Video ersetzt.
  • In einigen Beispielen ist die alternative nichtvirtuelle Realitätsvideoanzeige eine einfarbige Anzeige. Die einfarbige Anzeige kann mehrere Frames mit einer einzigen Farbe beinhalten. Die einfarbige Anzeige weist für alle Pixel der Anzeige dieselbe Farbe auf. In einigen Beispielen ist die einfarbige Anzeige von einer Farbe mit mittlerer Helligkeitsintensität. Eine hohe Intensität kann als ein störender Blitz erscheinen und eine niedrige Intensität kann als eine Systemfehlfunktion erscheinen. Eine einfarbige Anzeige stellt ein besseres Benutzererlebnis bereit als das erneute Anzeigen von früheren Video-Frames oder das völlige Stoppen des Videos (was bewirken kann, dass die Anzeige schwarz wird, und dem Benutzer eine Systemfehlfunktion signalisieren kann). Eine einfarbige Anzeige weist keine Fokusebene auf. Folglich weist ein Benutzer in einer virtuellen Realitätsumgebung keine Fehlausrichtung der Bewegung des Benutzers mit der auf der am Kopf angebrachten Anzeige gezeigten Bewegung auf, wenn eine einzige Farbe angezeigt wird. Aufgrund der einfarbigen Anzeige zeigt die am Kopf angebrachte Anzeige, wenn der Benutzer sich bewegt, keine andere oder unterbrochene Bewegung, da der Benutzer die einfarbige Anzeige sieht. Folglich gibt es keine Ablenkung, Verwirrung oder Orientierungslosigkeit, und Bewegungskrankheit wird verhindert. Andererseits verursacht eine erneute Anzeige eines früheren Frames von virtuellen Realitätsvideodaten oder eine Anzeige eines anderen unruhigen Videos eine Fehlausrichtung mit den Bewegungen des Benutzers und kann Bewegungskrankheit verursachen. Eine Fehlausrichtung von sogar nur einem Video-Frame kann für den Benutzer erkennbar sein, und wenn die Fehlausrichtung für mehrere Video-Frames anhält, können Gefühle eines Unbehagens einer Bewegungskrankheit resultieren.
  • In einigen Beispielen werden die Benutzer in Bezug auf die Bedeutung der einfarbigen Anzeige benachrichtigt oder anderweitig angewiesen. Beispielsweise können die Benutzer benachrichtigt werden, dass, wenn der Benutzer eine einfarbige Anzeige beobachtet, keine Systemfehlfunktion vorliegt, sondern der Benutzer sich in einem Bereich befindet oder anderweitig einen schlechten Empfang mit den kabellosen Signalen erfährt. Somit kann das Vorliegen einer einfarbigen Anzeige einen Benutzer dazu anregen, sich zu in einer Bemühung zu bewegen, die Signalqualität zu erhöhen. Eine einfarbige Anzeige von einer Farbe mit mittlerer Intensität kann von einer schwarzen Anzeige unterschieden werden, die eine Signalfehlfunktion signalisieren könnte.
  • 1 ist ein Blockdiagramm eines beispielhaften Systems 100 zur Verarbeitung von Video in virtuellen Realitätsumgebungen gemäß den Lehren dieser Offenbarung. Das beispielhafte System 100 beinhaltet einen beispielhaften Host 102. In diesem Beispiel beinhaltet der Host 102 einen beispielhaften Grafikprozessor (GPU) 104, einen beispielhaften Encoder 106, einen beispielhaften Taktgeber 108 und einen beispielhaften Transceiver 110. Der GPU 104 erzeugt einen Stream-Videodatensatz, der Video-Frames beinhaltet, die von dem Encoder 106 codiert werden. Der Taktgeber 108 versieht den Stream-Videodatensatz, der von dem Encoder 106 codiert wurde, mit einem Zeitstempel. Der Stream von mit einem Zeitstempel versehenen Videodaten wird mittels dem Transceiver 110 über eine kabellose Verbindung oder Transportschicht 112 an eine beispielhafte am Kopf angebrachte Anzeige 114 übertragen.
  • Die beispielhafte am Kopf angebrachte Anzeige 114 beinhaltet einen beispielhaften Empfänger 116, einen beispielhaften Taktgeber 118, einen beispielhaften Decoder 120, einen beispielhaften Selektor 122, einen beispielhaften Videoanalysator 124, eine beispielhafte Videobibliothek 126 und eine beispielhafte Ausgabeanzeige 128. In einigen Beispielen können der Empfänger 116 (oder ein anderer kabelloser Funk) und der Decoder 120 von der am Kopf angebrachten Anzeige 114 getrennt sein. In derartigen Beispielen werden die Komponenten, um die am Kopf angebrachte Anzeige 114 kabellos zu machen, ein Add-On-Kit sein, das von der am Kopf angebrachten Anzeige 114 getrennt ist. In anderen Beispielen sind diese Komponenten direkt in die am Kopf angebrachte Anzeige 114 integriert.
  • Der Empfänger 116 empfängt kabellose Kommunikationen, einschließlich beispielsweise virtuelles Realitätsvideo, das den Stream von mit einem Zeitstempel versehenen Videodaten beinhaltet, über die kabellose Verbindung 112 von dem Host 102. Der Taktgeber 108 in Kommunikation mit dem Empfänger 116 versieht den Stream-Videodatensatz mit einem Zeitstempel, wenn die Videodaten empfangen werden. Somit wird der Datensatz mit einem Zeitstempel versehen, wenn die Daten sowohl in die kabellose Verbindung 112 eingehen als auch daraus abgehen. Der Taktgeber 108 des Hosts 102 und der Taktgeber 118 der am Kopf angebrachten Anzeige 114 sind synchronisiert. Der Empfänger 116 kommuniziert den Stream von Videodaten, der die Zeitstempel beinhaltet, an sowohl den Decoder 120 als auch den Videoanalysator 124. Der Decoder 120 decodiert den Stream-Videodatensatz und sendet den decodierten oder nicht komprimierten Stream von Videodaten an den Selektor 122.
  • Der Videoanalysator 124 analysiert den Stream von Videodaten, um zu bestimmen, ob Verzögerungen vorliegen, die ein unruhiges Video produzieren werden. In einigen Beispielen bestimmt der Videoanalysator 124 die Latenz-pro-Paket durch Vergleichen des Zeitstempels von dem Taktgeber 108 des Hosts 102 mit dem Zeitstempel von dem Taktgeber 118 der am Kopf angebrachten Anzeige 114. Der Videoanalysator 124 vergleicht die Latenz-pro-Paket mit einem Transportschicht-Latenzbudget, um zu bestimmen, welche Pakete rechtzeitig ankommen (d. h. innerhalb des Latenzbudgets). Das Transportschicht-Latenzbudget wird gemäß einer Systemkonfiguration bestimmt, in der ein vorherbestimmtes Budget für additive kabellose Latenz vorliegt.
  • Der Videoanalysator 124 vergleicht die Anzahl von Videopaketen, die rechtzeitig (d. h. innerhalb des Latenzbudgets) am Empfänger 116 oder am Decoder 120 pro Zeitintervall ankommen, mit dem Schätzwert der Anzahl von Paketen, die in jenem Zeitintervall erwartet werden. Ein unruhiges Video (aufgrund von fehlenden Videopaketen oder Videopaketen, die nicht rechtzeitig ankommen) tritt auf, wenn die Anzahl von Paketen, die rechtzeitig (d. h. innerhalb des Latenzbudgets) in einem Zeitintervall an dem Empfänger 116 oder am Decoder 120 ankommen, niedriger als in jenem Zeitintervall erwartet ist. Die erwartete Anzahl von Paketen hängt auch von der codierten Videostruktur ab, die ein implementationsspezifischer Parameter ist, der anwendungsabhängig ist und bei Auszählung der am Kopf angebrachten Anzeige 114 konfiguriert wird.
  • In einigen Beispielen sind die Zeitintervalle, die von dem Videoanalysator 124 analysiert werden, gleitende Zeitfenster. In einigen Beispielen überlappen die Intervalle zum Teil und die Zeitfenster schreiten voran, wenn die Zeit voranschreitet. Der Videoanalysator 124 berücksichtigt außerdem die Hysterese, wenn bestimmt wird, ob ein Zeitfenster als unruhig eingestuft werden soll.
  • Der Videoanalysator 124 stuft das Zeitfenster durch Vergleichen der Anzahl von Videopaketen, die rechtzeitig (d. h. innerhalb des Latenzbudgets) während des Zeitfensters ankommen, mit Grenzwerten, die auf dem Schätzwert der Anzahl von Paketen, die in jenem Zeitintervall erwartet werden, basieren, ein. Dieser Schätzwert ist gemäß Eingabeparametern der Mindestanzahl von Paketen pro Video-Frame und Video-Frame-Rate. Diese Eingabeparameter sind anwendungsabhängig und werden bei Auszählung der am Kopf angebrachten Anzeige 114 konfiguriert.
  • Zu Hysteresezwecken werden zwei Grenzwertanzahlen von Paketen definiert. Der Videoanalysator 124 vergleicht die Anzahl von Videopaketen, die rechtzeitig während eines Zeitfensters ankommen, und vergleicht die Anzahl mit einem ersten Grenzwert, der ein unterer Grenzwert ist, der ein schlechtes oder unruhiges Video definiert. Wenn eine unzureichende Anzahl von Videopaketen rechtzeitig während des Zeitfensters ankommt, um den ersten Grenzwert zu erreichen oder zu übersteigen (d. h. den unteren Grenzwert zu erreichen oder zu übersteigen), wird das Fenster als schlecht eingestuft. Wenn die Anzahl von Videopaketen, die rechtzeitig während des Zeitfensters ankommen, den ersten Grenzwert erreicht oder übersteigt, vergleicht der Videoanalysator 124 die Anzahl von Videopaketen, die rechtzeitig während des Zeitfensters ankommen, mit einem zweiten Grenzwert, der ein oberer Grenzwert ist und der ein gutes oder ruhiges Video definiert. Wenn die Anzahl von rechtzeitigen Videopaketen den zweiten Grenzwert (d. h. die Mindestanzahl von erwarteten Paketen für eine gute Leistung in jenem Zeitraum) erreicht oder übersteigt, wird das Zeitfenster als gut eingestuft. Andernfalls bestimmt der Videoanalysator 124, dass die Anzahl von rechtzeitigen Videopaketen den ersten Grenzwert erreicht oder übersteigt, jedoch nicht den zweiten Grenzwert erreicht oder übersteigt, und stuft das Zeitfenster als neutral ein.
  • In einigen Beispielen stuft der Videoanalysator 124 ein Zeitfenster durch Beurteilen der Aktivität des Decoders 120 als ein ruhiges/unruhiges virtuelles Video aufweisend ein. Beispielsweise vergleicht der Videoanalysator 124 die Anzahl von Video-Frames, die rechtzeitig am Decoder 120 pro Zeitintervall ankommen oder von dem Decoder 120 gemäß einer Video-Frame-Präsentationszeit verarbeitet werden, mit der Anzahl von Video-Frames, die in jenem Zeitintervall erwartet werden. Wenn die Anzahl von Frames, die am Decoder 120 empfangen oder von diesem verarbeitet wurden, nicht die erwartete Anzahl erreicht oder übersteigt, kann das assoziierte Fenster als schlecht oder unruhig eingestuft werden.
  • In einigen Beispielen stuft der Videoanalysator 124 ein Zeitfenster durch Beurteilen der kabellosen Verbindung 112 als ein ruhiges/unruhiges virtuelles Video aufweisend ein. Beispielsweise empfängt der Videoanalysator 124 Informationen in Bezug auf die Ausgabe des Videoencoders 106 in dem Zeitfenster, um einen gewünschten Videodurchsatz zu ermitteln. Der Videoanalysator 124 vergleicht den gewünschten Videodurchsatz für jenes Zeitfenster mit entweder (1) einem effektiven Bitübertragungsschicht-Ratenschätzwert (PHY-Ratenschätzwert) in jenem Zeitfenster (beispielsweise gemäß Statistiken auf der Basis von einem Modulations- und Codierungsschema (MCS), einer Paketfehlerrate (PER), Verbindungsausfallperioden usw.) oder (2) einem Messwert eines tatsächlichen Videodurchsatzes in jenem Zeitfenster.
  • In einigen Beispielen kommuniziert der Videoanalysator 124 einen ruhigen oder unruhigen Status von Videodaten für ein Intervall an den Selektor 122. Beispielsweise stellt der Videoanalysator 124 eine Angabe von Ruhig, Unruhig, Gut, Schlecht, Neutral usw. an den Selektor 122 bereit. In einigen Beispielen kommuniziert der Videoanalysator 124 Latenz-Informationen an den Selektor 122 zusätzlich oder alternativ zu den ruhigen oder unruhigen (oder guten/schlechten/neutralen) Status-Informationen.
  • Wenn ein Szenario von verhältnismäßig langen Zeiträumen (z. B. Hunderten von Millisekunden und/oder auf der Basis einer Anzahl von identifizierten schlechten Fenstern), in denen Videodaten unruhig sind, identifiziert wird, wählt der Selektor 122 alternative Videodaten (z. B. einen bzw. mehrere einfarbige Frames) aus der Videobibliothek 126 aus, um sie zur Anzeige an einen Benutzer anstelle eines unruhigen virtuellen Realitätsvideos an die Ausgabeanzeige 128 zu kommunizieren. In einigen Beispielen werden die alternativen Videodaten eingeblendet und ausgeblendet, wenn zu der virtuellen Realitätsvideoanzeige zurückgekehrt wird. In einigen Beispielen beinhaltet der Selektor 122 einen Multiplexer (MUX).
  • Wenn der Videoanalysator 124 ein Fenster als gut identifiziert oder einstuft und die Ausgabeanzeige 128 eine Anzeige des decodierten Streams von Videodaten aufweist, fährt der Selektor 122 damit fort, den decodierten Stream von Videodaten an die Ausgabeanzeige 128 auszugeben. In einigen Beispielen, wenn der Videoanalysator 124 ein Fenster als gut identifiziert oder einstuft und die Ausgabeanzeige 128 eine Anzeige von alternativen Videodaten (z. B. eine einfarbige Anzeige) aufweist, ändert der Selektor 122 die Ausgabe von den alternativen Videodaten zu dem decodierten Stream von Videodaten an die Ausgabeanzeige 128.
  • Wenn der Videoanalysator 124 ein Fenster als neutral identifiziert oder einstuft, initiiert der Selektor 122 keine Änderungen der Anzeige an der Ausgabeanzeige 128.
  • In einigen Beispielen weist das alternative Video eine Mindestanzeigezeit auf, um das Benutzererlebnis zu verbessern und ein flimmerndes Video zu verhindem (z. B. Ein-/Ausschalten des alternativen Videos in zwei oder mehr Abfolgen), wenn Abgrenzungslatenzprobleme vorliegen.
  • 2A ist ein Blockdiagramm einer beispielhaften Sequenz von Video-Frames. Die Zeitsequenz von 2A beinhaltet keinerlei Latenzprobleme. 2B ist eine Darstellung von Videobildern der Video-Frames von 2A. In der virtuellen Realitätsumgebung würde der Benutzer alle Frames der 2A und 2B erleben.
  • 3A ist ein Blockdiagramm einer beispielhaften Video-Frame-Sequenz, die ein unruhiges Video erzeugt. In 3A liegen kabellose Latenzprobleme vor und folglich wird der zweite Frame auf unerwünschte Weise verzögert. Die entsprechenden Videobilder aus der Sequenz von Video-Frames würden unruhig erscheinen. Beispielsweise kann Frame 1 erscheinen, als ob er einfriert, bis Frame 2 empfangen, decodiert und angezeigt wird.
  • Wenn der Videoanalysator 124 identifiziert, dass Frame 2 ein unruhiges Video verursachen wird, werden die Informationen an den Selektor 122 gesendet, der alternative Videodaten aus der Videobibliothek 126 auswählt, um Frame 2 zu ersetzen. 3B ist ein Blockdiagramm einer beispielhaften modifizierten Sequenz von Video-Frames, in der Frame 2 durch Frame(s) X, das alternative Video, ersetzt wurde. Das alternative Video kann mehrere Frames beinhalten. Nach dem alternativen Video (z. B. Frame(s) X) kann das ruhige virtuelle Realitätsvideo mit Frame N fortfahren. Frame N ist in einigen Beispielen äquivalent zu Frame 3, so dass das virtuelle Realitätsvideo fortfährt, wo es nach dem unruhigen Video aufgehört hatte. In anderen Beispielen ist Frame N ein Frame, der nach Frame 3 übertragen wird. 3C ist eine Darstellung von Videobildern der Video-Frames von 3B gezeigt. Wie in 3C gezeigt, ist bzw. sind Frame(s) X eine einfarbige Anzeige, die in dem in 3C gezeigten Beispiel mehrere Frames beinhaltet. Obwohl in 3C eine graue Farbe gezeigt ist, kann eine beliebige Farbe verwendet werden. Wie hierin offenbart, wird in einigen Beispielen eine Farbe oder eine mittlere Helligkeitsintensität verwendet.
  • Obwohl aufgrund des Einfügens von Frame(s) X eine Unterbrechung in den virtuellen Realitätsdaten zwischen Frame 1 und Frame 3 vorliegt, weist bzw. weisen Frame(s) X keine Fokusebene auf. Folglich würde der Benutzer, der den modifizierten Video-Stream der 3B und 3C erlebt, keine Bewegungskrankheit, Übelkeit oder andere Beschwerden erfahren, die von einem unruhigen Video (einschließlich Ruckeln und Bildeinfrieren) und/oder einem Ersatzvideo, das eine Fehlausrichtung mit den Bewegungen des Benutzers und dem Video, das auf der am Kopf angebrachten Anzeige 114 angezeigt wird, erzeugen würde, verursacht werden.
  • 4A ist ein Schaubild, das eine beispielhafte Auswirkung von Videoruckeln auf ein Benutzererlebnis (UX) auf der Basis von tatsächlichen Daten, die während einer realen Benutzerstudie gesammelt wurden, zeigt. Wie in 4A gezeigt, wenn ein unruhiges Video vorliegt, einschließlich beispielsweise Ruckeln, erfuhren nahezu alle Benutzer Unbehagen von Verdruss bis zu einem körperlichen Unwohlsein (d. h. Orientierungslosigkeit, Schwindel und Übelkeit fühlend und/oder Bewegungskrankheit erfahrend). 4B zeigt, dass, nachdem ein unruhiges Video durch alternative Videodaten (z. B. einen einfarbigen Frame) ersetzt wurde, das Benutzererlebnis für die große Mehrheit der Benutzer verbessert wurde.
  • Obwohl eine beispielhafte Weise eines Implementierens des Systems 100 zur Verhinderung von Bewegungskrankheit in virtuellen Realitätsumgebungen in 1 dargestellt ist, können eines bzw. einer oder mehrere der Elemente, Prozesse und/oder Geräte, die in 1 dargestellt sind, auf beliebige andere Weise kombiniert, aufgeteilt, neu angeordnet, weggelassen, eliminiert und/oder implementiert werden. Des Weiteren können der beispielhafte GPU 104, der beispielhafte Encoder 106, der beispielhafte Taktgeber 108, der beispielhafte Transceiver 110, der beispielhafte Empfänger 116, der beispielhafte Taktgeber 118, der beispielhafte Decoder 120, der beispielhafte Selektor 122, der beispielhafte Videoanalysator 124, die beispielhafte Videobibliothek 126, die beispielhafte Ausgabeanzeige 128 und/oder allgemeiner der beispielhafte Host 102 oder die beispielhafte am Kopf angebrachte Anzeige 114 von 1 durch Hardware, Software, Firmware und/oder eine beliebige Kombination von Hardware, Software und/oder Firmware implementiert sein. Somit könnte ein beliebiger bzw. eine beliebige von dem beispielhaften GPU 104, dem beispielhaften Encoder 106, dem beispielhaften Taktgeber 108, dem beispielhaften Transceiver 110, dem beispielhaften Empfänger 116, dem beispielhaften Taktgeber 118, dem beispielhaften Decoder 120, dem beispielhaften Selektor 122, dem beispielhaften Videoanalysator 124, der beispielhaften Videobibliothek 126, der beispielhaften Ausgabeanzeige 128 und/oder mehr und/oder allgemeiner dem beispielhaften Host 102 oder der beispielhaften am Kopf angebrachten Anzeige 114 durch eine bzw. einen oder mehrere analoge oder digitale Schaltungen, logische Schaltungen, programmierbare Prozessoren, programmierbare Steuerungen, Grafikprozessoren (GPU), digitale Signalprozessoren (DSP), anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD) und/oder feldprogrammierbare Logikvorrichtungen (FPLD) implementiert sein. Beim Lesen eines beliebigen der Geräte- oder Systemansprüche dieses Patents zum Abdecken einer reinen Software- und/oder Firmware-Implementation ist mindestens einer bzw. eine von dem beispielhaften GPU 104, dem beispielhaften Encoder 106, dem beispielhaften Taktgeber 108, dem beispielhaften Transceiver 110, dem beispielhaften Empfänger 116, dem beispielhaften Taktgeber 118, dem beispielhaften Decoder 120, dem beispielhaften Selektor 122, dem beispielhaften Videoanalysator 124, der beispielhaften Videobibliothek 126 und/oder der beispielhaften Ausgabeanzeige 128 hierdurch ausdrücklich definiert, um eine nichtflüchtige computerlesbare Speichervorrichtung oder Speicherdiskette, wie einen Speicher, eine Digital-Versatile-Disk (DVD), eine Compact-Disk (CD), eine Blu-ray-Disk usw., zu beinhalten, die die Software und/oder Firmware beinhaltet. Noch weiter kann das beispielhafte System 100 zur Verhinderung von Bewegungskrankheit in virtuellen Realitätsumgebungen von 1 ein bzw. einen oder mehrere Elemente, Prozesse und/oder Vorrichtungen neben den oder anstelle der in 1 dargestellten beinhalten und/oder kann mehr als ein bzw. einen von beliebigen oder allen der dargestellten Elemente, Prozesse und Vorrichtungen beinhalten. Wie hierin verwendet, umspannt die Phrase „in Kommunikation“, einschließlich Variationen davon, eine direkte Kommunikation und/oder eine indirekte Kommunikation durch eine oder mehrere Zwischenkomponenten und erfordert keine direkte physikalische (z. B. verkabelte) Kommunikation und/oder konstante Kommunikation, sondern beinhaltet vielmehr zusätzlich dazu eine selektive Kommunikation in periodischen Intervallen, geplanten Intervallen, aperiodischen Intervallen und/oder einmaligen Ereignissen.
  • Ein Ablaufdiagramm, das für beispielhafte Hardwarelogik, maschinenlesbare Anweisungen, Hardware-implementierte Zustandsmaschinen und/oder eine beliebige Kombination davon zum Implementieren der am Kopf angebrachten Anzeige 114 von 1 repräsentativ ist, ist in 5 gezeigt. Die maschinenlesbaren Anweisungen können ein ausführbares Programm oder ein Teil eines ausführbaren Programms zur Ausführung durch einen Computerprozessor, wie den Prozessor 1012, der in der beispielhaften Prozessorplattform 700 gezeigt ist, die im Folgenden in Verbindung mit 7 erörtert wird, sein. Das Programm kann in einer Software verkörpert sein, die auf einem nichtflüchtigen computerlesbaren Speichermedium gespeichert ist, wie einer CD-ROM, einer Diskette, einer Festplatte, einer DVD, einer Blu-ray-Disk oder einem Speicher, der mit dem Prozessor 712 assoziiert ist, das gesamte Programm und/oder Teile davon könnten jedoch alternativ dazu von einem Gerät ausgeführt werden, bei dem es sich nicht um den Prozessor 712 handelt, und/oder in Firmware oder dedizierter Hardware verkörpert sein. Obwohl das beispielhafte Programm unter Bezugnahme auf das in 5 dargestellte Ablaufdiagramm beschrieben wird, können des Weiteren alternativ dazu viele andere Verfahren zum Implementieren der am Kopf angebrachten Anzeige 114 verwendet werden. Die Reihenfolge der Ausführung der Blöcke kann beispielsweise geändert werden und/oder einige der beschriebenen Blöcke können geändert, eliminiert oder kombiniert werden. Zusätzlich oder alternativ dazu können beliebige oder alle der Blöcke durch eine oder mehrere Hardwareschaltungen (z. B. einzelne und/oder integrierte analoge und/oder digitale Schaltkreise, ein FPGA, eine ASIC, ein Komparator, ein Operationsverstärker (op-amp), eine logische Schaltung usw.) implementiert werden, die dazu strukturiert sind, die entsprechende Operation ohne Ausführen von Software oder Firmware durchzuführen.
  • Wie oben erwähnt, kann der beispielhafte Prozess von 5 unter Verwendung von ausführbaren Anweisungen (z. B. computer- und/oder maschinenlesbare Anweisungen) implementiert werden, die auf einem nichtflüchtigen computer- und/oder maschinenlesbaren Medium gespeichert sind, wie einem Festplattenlaufwerk, einem Flash-Speicher, einem Festwertspeicher, einer Compact-Disk, einer Digital-Versatile-Disk, einem Cache, einem Direktzugriffsspeicher und/oder einer beliebigen anderen Speichervorrichtung oder Speicherdiskette, in der Informationen für eine beliebige Dauer (z. B. für längere Zeiträume, permanent, für kurze Momente, zum vorübergehenden Zwischenspeichern und/oder zum Cachen der Informationen) gespeichert werden. Wie hierin verwendet, ist der Begriff nichtflüchtiges computerlesbares Medium ausdrücklich definiert, um einen beliebigen Typ einer computerlesbaren Speichervorrichtung und/oder Speicherdiskette zu beinhalten und sich ausbreitende Signale auszuschließen und Übertragungsmedien auszuschließen.
  • „Beinhaltend‟ und „umfassend“ (und alle Formen und Zeitformen davon) werden hierin verwendet, um uneingeschränkte Begriffe zu sein. Somit ist zu verstehen, dass jedes Mal, wenn ein Anspruch eine beliebige Form von „beinhalten“ oder „umfassen“ (z. B. umfasst, beinhaltet, umfassend, beinhaltend, aufweisend usw.) als einen Oberbegriff oder innerhalb eines Anspruchsvortrags einer beliebigen Art einsetzt, zusätzliche Elemente, Begriffe usw. vorliegen können, ohne außerhalb des Schutzumfangs des entsprechenden Anspruchs oder Vortrags zu fallen. Wie hierin verwendet, wenn die Phrase „mindestens“ als der Wechselbegriff in beispielsweise einem Oberbegriff eines Anspruchs verwendet wird, ist er auf dieselbe Weise uneingeschränkt, wie die Begriffe „umfassend“ und „beinhaltend“ uneingeschränkt sind. Der Begriff „und/oder“, wenn er beispielsweise in einer Form wie A, B und/oder C verwendet wird, bezieht sich auf eine beliebige Kombination oder eine beliebige Teilmenge von A, B, C, wie (1) A allein, (2) B allein, (3) C allein, (4) A mit B, (5) A mit C, (6) B mit C und (7) A mit B und mit C.
  • Das Programm 500 von 5 beinhaltet den Videoanalysator 124 der am Kopf angebrachten Anzeige 114, der einen Paketzählwert bezieht, der eine Anzahl von Videopaketen angibt, die rechtzeitig (d. h. innerhalb eines Latenzbudgets) an dem Empfänger 116 der am Kopf angebrachten Anzeige 114 (Block 502) in einem Zeitfenster angekommen sind. Der Paketzählwert kann auf der Basis von Daten, die am Empfänger 116 empfangen werden, der Aktivität des Decoders 120 und/oder der Aktivität oder Charakteristika der kabellosen Verbindung 112 bestimmt werden, wie oben offenbart.
  • Der Videoanalysator 124 vergleicht den Paketzählwert mit Grenzwerten (Block 504). In diesem Beispiel vergleicht der Videoanalysator 124 den Paketzählwert mit einem unteren Grenzwert und einem oberen Grenzwert. In anderen Beispielen kann eine andere Anzahl von Grenzwerten verwendet werden. Der Videoanalysator 124 bestimmt, ob der Paketzählwert niedriger als der untere Grenzwert ist (Block 506). Wenn der Paketzählwert niedriger als der untere Grenzwert ist, sind die Videodaten, die in dem Zeitfenster empfangen werden, für die Produktion eines ruhigen Videos unzureichend. Somit bestimmt der Videoanalysator 124, dass das Fenster ein schlechtes Fenster ist (Block 508). Die Videodaten, die einem schlechten Fenster entsprechen, werden ein Ruckeln, eingefrorene Bilder und/oder ein Video mit anderen unruhigen Charakteristika produzieren.
  • Wenn von einem Fenster bestimmt wird, dass es schlecht ist, ersetzt der Selektor 122 die Videodaten in dem schlechten Fenster durch alternative Videodaten, die von der Videobibliothek 126 empfangen werden, und kommuniziert die alternativen Videodaten an die Ausgabeanzeige 128, um das alternative Video anzuzeigen (Block 510). Das alternative Video wird für eine Mindestzeitdauer, wie beispielsweise eine ausreichende Zeitdauer, um zu ermöglichen, dass zusätzliche Videopakete an der am Kopf angebrachten Anzeige 114 rechtzeitig ankommen, um ein niedriges Latenzerfordernis für die Anzeige von ruhigem Video zu erfüllen, angezeigt.
  • Der Videoanalysator 124 justiert das Zeitfenster (Block 512) und der beispielhafte Prozess 500 fährt damit fort, dass der Videoanalysator 124 den Paketzählwert für das nächste Zeitfenster bezieht (Block 502).
  • Wie oben offenbart, vergleicht der Videoanalysator 124 den Paketzählwert mit Grenzwerten (Block 504) und bestimmt, ob der Paketzählwert niedriger als der untere Grenzwert ist (Block 506). Wenn der Paketzählwert nicht niedriger als der untere Grenzwert ist (d. h. der Paketzählwert ist gleich dem oder höher als der untere Grenzwert), bestimmt der Videoanalysator 124, ob der Paketzählwert höher als oder gleich einem oberen Grenzwert ist (Block 514). Wenn der Paketzählwert höher als oder gleich dem unteren Grenzwert ist, werden die Videodaten, die in dem Zeitfenster empfangen werden, rechtzeitig empfangen und sind für die Produktion eines ruhigen Videos ausreichend. Somit bestimmt der Videoanalysator 124, dass das Fenster ein gutes Fenster ist (Block 516).
  • Wenn der Videoanalysator 124 bestimmt, dass der Paketzählwert für ein Zeitfenster ausreichend ist, um ein ruhiges Video zu produzieren, bestimmt der Selektor 122, ob ein alternatives Video (z. B. ein einfarbiger Frame) an der Ausgabeanzeige 128 der am Kopf angebrachten Anzeige 114 angezeigt wird (Block 518). Wenn ein alternatives Video nicht auf der Ausgabeanzeige 128 angezeigt wird, wählt der Selektor 122 die Streaming-Videodaten zur Anzeige (d. h. einen unmodifizierten Stream von Videodaten) aus (oder fährt damit fort, diese auszuwählen) (Block 520). Das Programm 500 fährt damit fort, dass der Videoanalysator 124 das Zeitfenster justiert (Block 512) und den Paketzählwert für das nächste Zeitfenster bezieht (Block 502).
  • Wenn der Videoanalysator 124 bestimmt, dass der Paketzählwert für ein Zeitfenster den oberen Grenzwert erreicht und ausreichend ist, um ein ruhiges Video zu produzieren (Block 514), und somit ein gutes Fenster ist (Block 516), und der Selektor 122 bestimmt, dass ein alternatives Video (z. B. ein einfarbiger Frame) an der Ausgabeanzeige 128 der am Kopf angebrachten Anzeige 114 angezeigt wird (Block 518), bestimmt der Selektor 122, ob das alternative Video für eine Mindestzeitdauer angezeigt wurde (Block 522). Wenn das alternative Video nicht für eine Mindestzeitdauer angezeigt wurde, fährt der Selektor 122 damit fort, das alternative Video an die Ausgabeanzeige 128 zur Anzeige zu kommunizieren (Block 510). Das Programm 500 fährt damit fort, dass der Videoanalysator 124 das Zeitfenster justiert (Block 512) und den Paketzählwert für das nächste Zeitfenster bezieht (Block 502).
  • Wenn der Selektor 122 bestimmt, dass ein alternatives Video für eine Mindestzeitdauer angezeigt wurde (Block 522), wechselt der Selektor 122 die Videodaten, um zu bewirken, dass die Ausgabeanzeige 128 die Streaming-Videodaten (d. h. die unmodifizierten Videodaten) anzeigt (Block 520). Das Programm 500 fährt damit fort, dass der Videoanalysator 124 das Zeitfenster justiert (Block 512) und den Paketzählwert für das nächste Zeitfenster bezieht (Block 502).
  • Wie oben offenbart, vergleicht der Videoanalysator 124 den Paketzählwert mit Grenzwerten (Block 504) und bestimmt, ob der Paketzählwert niedriger als der untere Grenzwert ist (Block 506). Wenn der Paketzählwert nicht niedriger als der untere Grenzwert ist (d. h. der Paketzählwert ist gleich dem oder höher als der untere Grenzwert), bestimmt der Videoanalysator 124, ob der Paketzählwert höher als oder gleich einem oberen Grenzwert ist (Block 514). Wenn der Paketzählwert den unteren Grenzwert erreicht, jedoch nicht größer als oder gleich dem oberen Grenzwert ist, werden die Videodaten, die in dem Zeitfenster empfangen werden, nicht mit einer akzeptablen Latenzmenge empfangen, um ein ruhiges Video sicherzustellen, werden jedoch nicht notwendigerweise ein unruhiges Video verursachen. Somit bestimmt der Videoanalysator 124, dass das Fenster ein neutrales Fenster ist (Block 524). Für ein neutrales Fenster nimmt der Selektor 122 keine Änderungen an der Anzeige vor.
  • Das Programm 500 fährt damit fort, dass der Videoanalysator 124 das Zeitfenster justiert (Block 512) und den Paketzählwert für das nächste Zeitfenster bezieht (Block 502).
  • 6 ist ein Blockdiagramm einer beispielhaften Prozessorplattform 600, die dazu strukturiert ist, den Host 102 von 1 zu implementieren. 7 ist ein Blockdiagramm einer beispielhaften Prozessorplattform 700, die strukturiert ist, um die Anweisungen von 5 auszuführen, um die am Kopf angebrachte Anzeige 114 von 1 zu implementieren. Die Prozessorplattformen 600, 700 können beispielsweise ein Server, ein Personalcomputer, eine Workstation, eine selbstlernende Maschine (z. B. ein neuronales Netzwerk), ein Mobilgerät (z. B. ein Mobiltelefon, ein Smartphone, ein Tablet, wie ein iPad™), ein Minicomputer (PDA), eine Internet-Einrichtung, ein DVD-Player, ein CD-Player, ein digitaler Videorecorder, ein Blu-ray-Player, eine Spielkonsole, ein persönlicher Videorecorder, ein Digitalempfänger, ein Headset oder eine andere tragbare Vorrichtung oder ein beliebiger anderer Typ einer Datenverarbeitungsvorrichtung sein.
  • Die Prozessorplattformen 600, 700 des dargestellten Beispiels beinhalten jeweilige Prozessoren 612, 712. Die Prozessoren 612, 712 der dargestellten Beispiele sind Hardware. Beispielsweise können die Prozessoren 612, 712 durch einen oder mehrere integrierte Schaltungen, logische Schaltungen, Mikroprozessoren, GPU, DSP oder Steuerungen von einer beliebigen gewünschten Familie oder einem beliebigen gewünschten Hersteller implementiert sein. Der Hardwareprozessor kann eine halbleiterbasierte (z. B. siliziumbasierte) Vorrichtung sein. In diesem Beispiel implementiert der Prozessor 612 den GPU 104, den Encoder 106, den Taktgeber 108 und den Transceiver 110. Ebenfalls in diesem Beispiel implementiert der Prozessor 712 den Empfänger 116, den Taktgeber 118, den Decoder 120, den Selektor 122, den Videoanalysator 124, die Videobibliothek 126 und die Ausgabeanzeige 128 (oder einen Teil der Ausgabeanzeige 128).
  • Die Prozessoren 612, 712 der dargestellten Beispiele beinhalten einen jeweiligen lokalen Speicher 613, 713 (z. B. einen Cache). Die Prozessoren 612, 712 der dargestellten Beispiele sind mittels jeweiliger Busse 618, 718 in Kommunikation mit einem jeweiligen Hauptspeicher, der einen flüchtigen Speicher 612, 714 und einen nichtflüchtigen Speicher 616, 716 beinhaltet. Der flüchtige Speicher 614, 714 kann durch einen synchronen dynamischen Direktzugriffsspeicher (SDRAM), einen dynamischen Direktzugriffsspeicher (DRAM), einen dynamischen RAMBUS®-Direktzugriffsspeicher (RDRAM®) und/oder einen beliebigen anderen Typ einer Direktzugriffsspeichervorrichtung implementiert sein. Der nichtflüchtige Speicher 616, 716 kann durch einen Flash-Speicher und/oder einen beliebigen anderen gewünschten Typ einer Speichervorrichtung implementiert sein. Der Zugriff auf den Hauptspeicher 614, 616, 714, 716 wird durch eine Speichersteuerung gesteuert.
  • Die Prozessorplattformen 600, 700 der dargestellten Beispiele beinhalten außerdem eine jeweilige Schnittstellenschaltung 620, 720. Die Schnittstellenschaltung 620, 720 kann durch einen beliebigen Typ eines Schnittstellenstandards implementiert sein, wie eine Ethernet-Schnittstelle, ein universeller serieller Bus (USB), eine Bluetooth®-Schnittstelle, eine Nahfeldkommunikationsschnittstelle (NFC-Schnittstelle) und/oder eine PCI-Express-Schnittstelle.
  • In den dargestellten Beispielen sind eine oder mehrere Eingabevorrichtungen 622, 722 mit den jeweiligen Schnittstellenschaltungen 620, 720 verbunden. Die Eingabevorrichtungen 622, 722 ermöglichen einem Benutzer, Daten und/oder Befehle in die jeweiligen Prozessoren 612, 712 einzugeben. Die Eingabevorrichtung kann durch beispielsweise einen Audiosensor, ein Mikrofon, eine Kamera (Standfoto oder Video), eine Tastatur, eine Taste, eine Maus, einen Berührungsbildschirm, ein Tastfeld, ein Isopoint und/oder ein Spracherkennungssystem implementiert sein.
  • Eine oder mehrere Ausgabevorrichtungen 624, 724 sind ebenfalls mit den jeweiligen Schnittstellenschaltungen 620, 720 der dargestellten Beispiele verbunden. Die Ausgabevorrichtungen 624, 724 können beispielsweise durch Anzeigevorrichtungen (z. B. eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeige (LCD), eine Kathodenstrahlröhrenanzeige (CRT), eine In-Place-Switching-Anzeige (IPS-Anzeige), ein Berührungsbildschirm usw.), eine taktile Ausgabevorrichtung, einen Drucker und/oder einen Lautsprecher implementiert sein. Die Schnittstellenschaltungen 620, 720 der dargestellten Beispiele beinhalten somit in der Regel eine Grafiktreiberkarte, einen Grafiktreiberchip und/oder einen Grafiktreiberprozessor.
  • Die Schnittstellenschaltungen 620, 720 der dargestellten Beispiele beinhalten außerdem eine Kommunikationsvorrichtung, wie einen Sender, einen Empfänger, einen Transceiver, ein Modem, ein Residential Gateway, einen kabellosen Zugangspunkt und/oder eine Netzwerkschnittstelle, um einen Austausch von Daten mit externen Maschinen (z. B. Datenverarbeitungsvorrichtungen einer beliebigen Art) mittels jeweiligen Netzwerken 626, 726 zu erleichtern. Die Kommunikation kann mittels beispielsweise einer Ethernet-Verbindung, einem digitalen Teilnehmeranschluss (DSL), einer Telefonleitung, einem Koaxialkabelsystem, einem Satellitensystem, einem kabellosen Sichtliniensystem, einem Mobiltelefonsystem, WiGig (IEEE 802.11ad / IEEE 802.11ay), WiFi usw. sein.
  • Die Prozessorplattformen 600, 700 der dargestellten Beispiele beinhalten außerdem eine oder mehrere Massenspeichervorrichtungen 628, 728 zum Speichern von Software und/oder Daten. Beispiele von derartigen Massenspeichervorrichtungen 628, 728 beinhalten Diskettenlaufwerke, Festplattenlaufwerke, Compact-Disk-Laufwerke, Blu-ray-Laufwerke, Redundant-Array-of-Independent-Di sks-Systeme (RAID-Systeme) und Digital-Versatile-Disk-Laufwerke (DVD-Laufwerke).
  • Die maschinenausführbaren Anweisungen 632, 732 und das beispielhafte Programm 500 von 5 können in den Massenspeichervorrichtungen 628, 728, in dem flüchtigen Speicher 614, 714, in dem nichtflüchtigen Speicher 616, 716 und/oder auf einem herausnehmbaren greifbaren computerlesbaren Speichermedium, wie einer CD oder DVD, gespeichert werden.
  • Aus dem Vorstehenden wird man zu schätzen wissen, dass beispielhafte Geräte, Systeme, Herstellungsartikel und Verfahren offenbart wurden, die Video verarbeiten, um Elemente zu entfernen, die Bewegungskrankheit in virtuellen Realitätsumgebungen verursachen können. Ein alternatives Video, wie beispielsweise eine einfarbige Anzeige, ersetzt ein unruhiges Video, das von Datenübertragungslatenzproblemen verursacht wird. Eine einfarbige Anzeige stellt ein besseres Benutzererlebnis als das unruhige Video (wie beispielsweise Ruckeln und/oder eingefrorene Bilder) oder das erneute Anzeigen von früheren Video-Frames bereit. Eine einfarbige Anzeige weist keine Fokusebene auf und ein Benutzer in einer virtuellen Realitätsumgebung erfährt während der Anzeige der einfarbigen Frames keine Fehlausrichtung einer Benutzerbewegung mit einer Bewegung (oder einem Fehlen einer Bewegung), die auf einer Anzeige in einer am Kopf angebrachten Anzeige, angezeigt wird. Das Benutzererlebnis wird verbessert, da die Benutzer weniger Bewegungskrankheit oder andere Beschwerden erleben, wenn sie der alternativen Anzeige (z. B. der einzigen Farbe) ausgesetzt werden, als der Benutzer während der Latenzprobleme (d. h. dem unruhigen Video) erleben würde.
  • Darüber hinaus arbeiten hierin offenbarte Beispiele auf der Seite der am Kopf angebrachten Anzeige. Ein Vorteil eines Ausführens eines Algorithmus, wie eines eigenständigen Algorithmus, auf der Seite der am Kopf angebrachten Anzeige besteht darin, dass eine kabellose Verbindung unterbrochen werden kann und die am Kopf angebrachte Anzeige damit fortfahren wird, ein unruhiges Video zu erkennen, ohne Anweisungen von der Host-Seite über den Äther empfangen zu haben.
  • Die offenbarten Systeme, Vorrichtungen, Verfahren, Geräte und Herstellungsartikel verbessern die Effizienz eines Verwendens einer Datenverarbeitungsvorrichtung durch Ersetzen eines unruhigen Videos, das durch Computerkommunikationslatenzprobleme erzeugt wurde, um ein Benutzererlebnis zu verbessern. Die offenbarten Verfahren, Geräte und Herstellungsartikel zielen dementsprechend auf eine oder mehrere Verbesserungen der Funktionsweise eines Computers und/oder Datenverarbeitungssystems ab.
  • Darüber hinaus helfen hierin offenbarte Lösungen dabei, Bedenken zu mildern, dass Originalausrüstungshersteller und/oder Benutzer mit einem Einsetzen und/oder Verwenden von kabellosen virtuellen Realitätssystemen aufgrund einer Nutzung von potentiell unzuverlässigen Transportschichten, die von Dritten bereitgestellt werden, haben können. Des Weiteren können hierin offenbarte Lösungen auch mit einer erhöhten Unterstützung für Videolatenz, um unruhiges Video zu verhindern, ergänzt oder verstärkt worden sein.
  • Hierin offenbart sind beispielhafte Systeme, Geräte, Herstellungsartikel und Verfahren zur Verarbeitung von Video in virtuellen Realitätsumgebungen. Beispiel 1 beinhaltet eine virtuelle Realitätsanzeigevorrichtung, um Video in einer virtuellen Realitätsumgebung zu verarbeiten, wobei die Vorrichtung einen Videoanalysator, um unruhige Videodaten in einem Stream von Videodaten zu erkennen, und eine Videobibliothek, um alternative Videodaten bereitzustellen, beinhaltet. Die Vorrichtung von Beispiel 1 beinhaltet außerdem einen Selektor, um den Stream von Videodaten, eine Angabe der unruhigen Videodaten und die alternativen Videodaten zu empfangen. Der Selektor ist außerdem dazu, die alternativen Videodaten auszuwählen, um die unruhigen Videodaten auf der Basis der Angabe der unruhigen Videodaten zu ersetzen, und einen modifizierten Stream von Videodaten auszugeben, der den Stream von Videodaten mit den alternativen Videodaten anstelle der unruhigen Videodaten beinhaltet. Die Vorrichtung von Beispiel 1 beinhaltet außerdem eine Ausgabeanzeige, um den modifizierten Stream von Videodaten anzuzeigen.
  • Beispiel 2 beinhaltet die Vorrichtung von Beispiel 1, wobei die alternativen Videodaten dazu sind, wenn sie angezeigt werden, eine einfarbige Anzeige zu erzeugen.
  • Beispiel 3 beinhaltet die Vorrichtung von Beispiel 1, wobei der Videoanalysator dazu ist, ein unruhiges Video auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream pro einem Zeitintervall ankommen, mit einer geschätzten Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, zu erkennen.
  • Beispiel 4 beinhaltet die Vorrichtung von Beispiel 3, wobei die geschätzte Anzahl auf einem bzw. einer oder mehreren von einem Transportschicht-Latenzbudget, einer Videoauflösung, einer Encoderkompressionsrate oder einer Anzahl von Frames pro Sekunde basiert.
  • Beispiel 5 beinhaltet die Vorrichtung von Beispiel 1, wobei der Videoanalysator dazu ist, unruhige Videodaten auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die in dem Video-Stream pro einem Zeitintervall ankommen, mit einem ersten Grenzwert und einem zweiten Grenzwert zu erkennen, wobei der zweite Grenzwert sich von dem ersten Grenzwert unterscheidet.
  • Beispiel 6 beinhaltet die Vorrichtung von Beispiel 5, wobei der Videoanalysator dazu ist, unruhige Videodaten zu erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, niedriger als der erste Grenzwert ist.
  • Beispiel 7 beinhaltet die Vorrichtung von Beispiel 5, wobei der Videoanalysator dazu ist, ruhige Videodaten zu erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, größer als oder gleich dem zweiten Grenzwert ist.
  • Beispiel 8 beinhaltet die Vorrichtung von Beispiel 1, wobei der Selektor nach einer Grenzzeitdauer und bei Erkennen von ruhigen Videodaten durch den Videoanalysator den Stream von Videodaten ohne die alternativen Videodaten ausgeben soll.
  • Beispiel 9 beinhaltet die Vorrichtung von Beispiel 1, wobei die Ausgabeanzeige dazu ist, ein gesamtes Blickfeld eines Benutzers abzudecken.
  • Beispiel 10 beinhaltet die Vorrichtung von Beispiel 1, wobei unruhige Videodaten Videodaten beinhalten, die außerhalb einer Latenzbeschränkung geliefert wurden, um zu bewirken, dass die Anzeige eines oder mehrere von einem eingefrorenen Bild oder Videoruckeln ausgibt.
  • Beispiel 11 beinhaltet eine virtuelle Realitätsanzeigevorrichtung, um Video in einer virtuellen Realitätsumgebung zu verarbeiten, wobei die Vorrichtung ein Mittel zum Erkennen von unruhigen Videodaten in einem Stream von Videodaten und eine Videobibliothek, um alternative Videodaten bereitzustellen, beinhaltet. Die Vorrichtung von Beispiel 11 beinhaltet außerdem ein Mittel zum Auswählen von Daten durch: Empfangen des Streams von Videodaten, einer Angabe der unruhigen Videodaten und der alternativen Videodaten; Auswählen der alternativen Videodaten, um die unruhigen Videodaten auf der Basis der Angabe der unruhigen Videodaten zu ersetzen; und Ausgeben eines modifizierten Streams von Videodaten, der den Stream von Videodaten mit den alternativen Videodaten anstelle der unruhigen Videodaten beinhaltet. Die Vorrichtung von Beispiel 11 beinhaltet außerdem ein Mittel zum Anzeigen des modifizierten Streams von Videodaten.
  • Beispiel 12 beinhaltet die Vorrichtung von Beispiel 11, wobei die alternativen Videodaten dazu sind, wenn sie angezeigt werden, eine einfarbige Anzeige zu erzeugen.
  • Beispiel 13 beinhaltet die Vorrichtung von Beispiel 11, wobei das Mittel zum Erkennen dazu ist, ein unruhiges Video auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die in dem Video-Stream in einer Latenz, die kleiner als oder gleich einem Transportschicht-Latenzbudget ist, pro einem Zeitintervall ankommen, mit einer geschätzten Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, zu erkennen.
  • Beispiel 14 beinhaltet die Vorrichtung von Beispiel 13, wobei die geschätzte Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, auf einer Kombination von Video-Frames pro Sekunde, der vom Videoencoder geschätzten Größe von ausgegebenen Paketen und Transportschicht-Paketgrößen basiert.
  • Beispiel 15 beinhaltet die Vorrichtung von Beispiel 11, wobei das Mittel zum Erkennen dazu ist, unruhige Videodaten auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die in dem Video-Stream pro einem Zeitintervall ankommen, mit einem ersten Grenzwert und einem zweiten Grenzwert zu erkennen, wobei der zweite Grenzwert sich von dem ersten Grenzwert unterscheidet.
  • Beispiel 16 beinhaltet die Vorrichtung von Beispiel 15, wobei das Mittel zum Erkennen dazu ist, unruhige Videodaten zu erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, niedriger als der erste Grenzwert ist.
  • Beispiel 17 beinhaltet die Vorrichtung von Beispiel 15, wobei das Mittel zum Erkennen dazu ist, ruhige Videodaten zu erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, größer als oder gleich dem zweiten Grenzwert ist.
  • Beispiel 18 beinhaltet die Vorrichtung von Beispiel 11, wobei das Mittel zum Auswählen nach einer Grenzzeitdauer und bei Erkennen von ruhigen Videodaten durch das Mittel zum Erkennen dazu ist, den Stream von Videodaten ohne die alternativen Videodaten auszugeben.
  • Beispiel 19 beinhaltet die Vorrichtung von Beispiel 11, wobei das Mittel zum Anzeigen dazu ist, ein gesamtes Blickfeld eines Benutzers abzudecken.
  • Beispiel 20 beinhaltet die Vorrichtung von Beispiel 11, wobei unruhige Videodaten Videodaten beinhalten, die außerhalb einer Latenzbeschränkung geliefert wurden, um zu bewirken, dass die Anzeige eines oder mehrere von einem eingefrorenen Bild oder Videoruckeln ausgibt.
  • Beispiel 21 beinhaltet ein nichtflüchtiges computerlesbares Speichermedium, das computerlesbare Anweisungen beinhaltet, die bei Ausführung bewirken, dass eine oder mehrere Maschinen mindestens Folgendes durchführen: Erkennen von unruhigen Videodaten in einem Stream von Videodaten; Bereitstellen von alternativen Videodaten; Empfangen des Streams von Videodaten, einer Angabe der unruhigen Videodaten und der alternativen Videodaten; Auswählen der alternativen Videodaten, um die unruhigen Videodaten auf der Basis der Angabe der unruhigen Videodaten zu ersetzen; und Ausgeben eines modifizierten Streams von Videodaten, der den Stream von Videodaten mit den alternativen Videodaten anstelle der unruhigen Videodaten beinhaltet.
  • Beispiel 22 beinhaltet das Speichermedium von Beispiel 21, wobei die alternativen Videodaten dazu sind, wenn sie angezeigt werden, eine einfarbige Anzeige zu erzeugen.
  • Beispiel 23 beinhaltet das Speichermedium von Beispiel 21, wobei die Anweisungen weiterhin bewirken, dass die eine oder die mehreren Maschinen ein unruhiges Video auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream pro einem Zeitintervall ankommen, mit einer geschätzten Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, erkennen.
  • Beispiel 24 beinhaltet das Speichermedium von Beispiel 23, wobei die geschätzte Anzahl auf einem bzw. einer oder mehreren von einem Transportschicht-Latenzbudget, einer Videoauflösung, einer Encoderkompressionsrate oder einer Anzahl von Frames pro Sekunde basiert.
  • Beispiel 25 beinhaltet das Speichermedium von Beispiel 21, wobei die Anweisungen weiterhin bewirken, dass die eine oder die mehreren Maschinen unruhige Videodaten auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream pro einem Zeitintervall ankommen, mit einem ersten Grenzwert und einem zweiten Grenzwert erkennen, wobei der zweite Grenzwert sich von dem ersten Grenzwert unterscheidet.
  • Beispiel 26 beinhaltet das Speichermedium von Beispiel 25, wobei die Anweisungen weiterhin bewirken, dass die eine oder die mehreren Maschinen unruhige Videodaten erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, niedriger als der erste Grenzwert ist.
  • Beispiel 27 beinhaltet das Speichermedium von Beispiel 25, wobei die Anweisungen weiterhin bewirken, dass die eine oder die mehreren Maschinen ruhige Videodaten erkennen, wenn die Anzahl von Videopaketen, die in dem Video-Stream ankommen, größer als oder gleich dem zweiten Grenzwert ist.
  • Beispiel 28 beinhaltet das Speichermedium von Beispiel 21, wobei die Anweisungen weiterhin nach einer Grenzzeitdauer und bei Erkennen von ruhigen Videodaten durch die eine oder mehreren Maschinen bewirken, dass die eine oder die mehreren Maschinen den Stream von Videodaten ohne die alternativen Videodaten ausgeben.
  • Beispiel 29 beinhaltet das Speichermedium von Beispiel 21, wobei die Ausgabe dazu ist, ein gesamtes Blickfeld eines Benutzers abzudecken.
  • Beispiel 30 beinhaltet das Speichermedium von Beispiel 21, wobei unruhige Videodaten Videodaten beinhalten, die außerhalb einer Latenzbeschränkung geliefert wurden, um zu bewirken, dass eine Anzeige eines oder mehrere von einem eingefrorenen Bild oder Videoruckeln ausgibt.
  • Beispiel 31 beinhaltet ein Verfahren zur Verarbeitung von Video in einer virtuellen Realitätsumgebung, wobei das Verfahren ein Erkennen von unruhigen Videodaten in einem Stream von Videodaten und ein Bereitstellen von alternativen Videodaten beinhaltet. Das Verfahren von Beispiel 31 beinhaltet außerdem ein Empfangen des Streams von Videodaten, einer Angabe der unruhigen Videodaten und der alternativen Videodaten. Darüber hinaus beinhaltet das Verfahren nach Beispiel 31 ein Auswählen der alternativen Videodaten, um die unruhigen Videodaten auf der Basis der Angabe der unruhigen Videodaten zu ersetzen, und ein Ausgeben eines modifizierten Streams von Videodaten, der den Stream von Videodaten mit den alternativen Videodaten anstelle der unruhigen Videodaten beinhaltet.
  • Beispiel 32 beinhaltet das Verfahrensbeispiel 31, wobei die alternativen Videodaten dazu sind, wenn sie angezeigt werden, eine einfarbige Anzeige zu erzeugen.
  • Beispiel 33 beinhaltet das Verfahrensbeispiel 31 und beinhaltet weiterhin ein Erkennen eines unruhigen Videos auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die in dem Video-Stream in einer Latenz, die kleiner als oder gleich einem Transportschicht-Latenzbudget ist, pro einem Zeitintervall ankommen, mit einer geschätzten Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden.
  • Beispiel 34 beinhaltet das Verfahrensbeispiel 33, wobei die geschätzte Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, auf einer Kombination von Video-Frames pro Sekunde, der vom Videoencoder geschätzten Größe von ausgegebenen Paketen und Transportschicht-Paketgrößen basiert.
  • Beispiel 35 beinhaltet das Verfahrensbeispiel 31 und beinhaltet weiterhin ein Erkennen von unruhigen Videodaten auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream pro einem Zeitintervall ankommen, mit einem ersten Grenzwert und einem zweiten Grenzwert, wobei der zweite Grenzwert sich von dem ersten Grenzwert unterscheidet.
  • Beispiel 36 beinhaltet das Verfahrensbeispiel 35 und beinhaltet weiterhin ein Erkennen von unruhigen Videodaten, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, niedriger als der erste Grenzwert ist.
  • Beispiel 37 beinhaltet das Verfahrensbeispiel 35 und beinhaltet weiterhin ein Erkennen von ruhigen Videodaten, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, größer als oder gleich dem zweiten Grenzwert ist.
  • Beispiel 38 beinhaltet das Verfahrensbeispiel 31, wobei das Verfahren weiterhin nach einer Grenzzeitdauer und bei Erkennen von ruhigen Videodaten ein Ausgeben des Streams von Videodaten ohne die alternativen Videodaten beinhaltet.
  • Beispiel 39 beinhaltet das Verfahrensbeispiel 31 und beinhaltet weiterhin ein Abdecken eines gesamten Blickfelds eines Benutzers mit der Ausgabe von modifizierten Video-Stream-Daten.
  • Beispiel 40 beinhaltet das Verfahrensbeispiel 31, wobei unruhige Videodaten Videodaten beinhalten, die außerhalb einer Latenzbeschränkung geliefert wurden, um zu bewirken, dass eine Anzeige eines oder mehrere von einem eingefrorenen Bild oder Videoruckeln ausgibt.
  • Obwohl bestimmte beispielhafte Verfahren, Vorrichtungen und Herstellungsartikel hierin offenbart wurden, ist der Abdeckungsumfang dieses Patents nicht darauf beschränkt. Im Gegensatz dazu deckt dieses Patent alle Verfahren, Vorrichtungen und Herstellungsgegenstände ab, die angemessen in den Schutzumfang der Ansprüche dieses Patents fallen.

Claims (40)

  1. Virtuelle Realitätsanzeigevorrichtung zur Verarbeitung von Video in einer virtuellen Realitätsumgebung, wobei die Vorrichtung umfasst: einen Videoanalysator, um unruhige Videodaten in einem Stream von Videodaten zu erkennen; eine Videobibliothek, um alternative Videodaten bereitzustellen; einen Selektor zum: Empfangen des Streams von Videodaten, einer Angabe der unruhigen Videodaten und der alternativen Videodaten, Auswählen der alternativen Videodaten, um die unruhigen Videodaten zu ersetzen, auf der Basis der Angabe der unruhigen Videodaten und Ausgeben eines modifizierten Streams von Videodaten, der den Stream von Videodaten mit den alternativen Videodaten anstelle der unruhigen Videodaten beinhaltet; und eine Ausgabeanzeige, um den modifizierten Stream von Videodaten anzuzeigen.
  2. Vorrichtung nach Anspruch 1, wobei die alternativen Videodaten dazu sind, wenn sie angezeigt werden, eine einfarbige Anzeige zu erzeugen.
  3. Vorrichtung nach Anspruch 1, wobei der Videoanalysator dazu ist, ein unruhiges Video auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream pro einem Zeitintervall ankommen, mit einer geschätzten Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, zu erkennen.
  4. Vorrichtung nach Anspruch 3, wobei die geschätzte Anzahl auf einem bzw. einer oder mehreren von einem Transportschicht-Latenzbudget, einer Videoauflösung, einer Encoderkompressionsrate oder einer Anzahl von Frames pro Sekunde basiert.
  5. Vorrichtung nach einem der Ansprüche 1-4, wobei der Videoanalysator dazu ist, unruhige Videodaten auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die in dem Video-Stream pro einem Zeitintervall ankommen, mit einem ersten Grenzwert und einem zweiten Grenzwert zu erkennen, wobei der zweite Grenzwert sich von dem ersten Grenzwert unterscheidet.
  6. Vorrichtung nach Anspruch 5, wobei der Videoanalysator dazu ist, unruhige Videodaten zu erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, niedriger als der erste Grenzwert ist.
  7. Vorrichtung nach Anspruch 5, wobei der Videoanalysator dazu ist, ruhige Videodaten zu erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, größer als oder gleich dem zweiten Grenzwert ist.
  8. Vorrichtung nach Anspruch 1, wobei der Selektor nach einer Grenzzeitdauer und bei Erkennen von ruhigen Videodaten durch den Videoanalysator den Stream von Videodaten ohne die alternativen Videodaten ausgeben soll.
  9. Vorrichtung nach Anspruch 1, wobei die Ausgabeanzeige dazu ist, ein gesamtes Blickfeld eines Benutzers abzudecken.
  10. Vorrichtung nach Anspruch 1, wobei unruhige Videodaten Videodaten beinhalten, die außerhalb einer Latenzbeschränkung geliefert wurden, um zu bewirken, dass die Anzeige eines oder mehrere von einem eingefrorenen Bild oder Videoruckeln ausgibt.
  11. Virtuelle Realitätsanzeigevorrichtung zur Verarbeitung von Video in einer virtuellen Realitätsumgebung, wobei die Vorrichtung umfasst: ein Mittel zum Erkennen von unruhigen Videodaten in einem Stream von Videodaten; eine Videobibliothek, um alternative Videodaten bereitzustellen; ein Mittel zum Auswählen von Daten durch: Empfangen des Streams von Videodaten, einer Angabe der unruhigen Videodaten und der alternativen Videodaten, Auswählen der alternativen Videodaten, um die unruhigen Videodaten zu ersetzen, auf der Basis der Angabe der unruhigen Videodaten und Ausgeben eines modifizierten Streams von Videodaten, der den Stream von Videodaten mit den alternativen Videodaten anstelle der unruhigen Videodaten beinhaltet; und ein Mittel zum Anzeigen des modifizierten Streams von Videodaten.
  12. Vorrichtung nach Anspruch 11, wobei die alternativen Videodaten dazu sind, wenn sie angezeigt werden, eine einfarbige Anzeige zu erzeugen.
  13. Vorrichtung nach Anspruch 11, wobei das Mittel zum Erkennen dazu ist, ein unruhiges Video auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die in dem Video-Stream in einer Latenz, die kleiner als oder gleich einem Transportschicht-Latenzbudget ist, pro einem Zeitintervall ankommen, mit einer geschätzten Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, zu erkennen.
  14. Vorrichtung nach Anspruch 13, wobei die geschätzte Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, auf einer Kombination von Video-Frames pro Sekunde, der vom Videoencoder geschätzten Größe von ausgegebenen Paketen und Transportschicht-Paketgrößen basiert.
  15. Vorrichtung nach einem der Ansprüche 11-14, wobei das Mittel zum Erkennen dazu ist, unruhige Videodaten auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die in dem Video-Stream pro einem Zeitintervall ankommen, mit einem ersten Grenzwert und einem zweiten Grenzwert zu erkennen, wobei der zweite Grenzwert sich von dem ersten Grenzwert unterscheidet.
  16. Vorrichtung nach Anspruch 15, wobei das Mittel zum Erkennen dazu ist, unruhige Videodaten zu erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, niedriger als der erste Grenzwert ist.
  17. Vorrichtung nach Anspruch 15, wobei das Mittel zum Erkennen dazu ist, ruhige Videodaten zu erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, größer als oder gleich dem zweiten Grenzwert ist.
  18. Vorrichtung nach Anspruch 11, wobei das Mittel zum Auswählen nach einer Grenzzeitdauer und bei Erkennen von ruhigen Videodaten durch das Mittel zum Erkennen den Stream von Videodaten ohne die alternativen Videodaten ausgeben soll.
  19. Vorrichtung nach Anspruch 11, wobei das Mittel zum Anzeigen dazu ist, ein gesamtes Blickfeld eines Benutzers abzudecken.
  20. Vorrichtung nach Anspruch 11, wobei unruhige Videodaten Videodaten beinhalten, die außerhalb einer Latenzbeschränkung geliefert wurden, um zu bewirken, dass die Anzeige eines oder mehrere von einem eingefrorenen Bild oder Videoruckeln ausgibt.
  21. Nichtflüchtiges computerlesbares Speichermedium, das computerlesbare Anweisungen umfasst, die bei Ausführung bewirken, dass eine oder mehrere Maschinen mindestens Folgendes durchführen: Erkennen von unruhigen Videodaten in einem Stream von Videodaten; Bereitstellen von alternativen Videodaten; Empfangen des Streams von Videodaten, einer Angabe der unruhigen Videodaten und der alternativen Videodaten; Auswählen der alternativen Videodaten, um die unruhigen Videodaten zu ersetzen, auf der Basis der Angabe der unruhigen Videodaten und Ausgeben eines modifizierten Streams von Videodaten, der den Stream von Videodaten mit den alternativen Videodaten anstelle der unruhigen Videodaten beinhaltet.
  22. Speichermedium nach Anspruch 21, wobei die alternativen Videodaten dazu sind, wenn sie angezeigt werden, eine einfarbige Anzeige zu erzeugen.
  23. Speichermedium nach Anspruch 21, wobei die Anweisungen weiterhin bewirken, dass die eine oder die mehreren Maschinen ein unruhiges Video auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream pro einem Zeitintervall ankommen, mit einer geschätzten Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, erkennen.
  24. Speichermedium nach Anspruch 23, wobei die geschätzte Anzahl auf einem bzw. einer oder mehreren von einem Transportschicht-Latenzbudget, einer Videoauflösung, einer Encoderkompressionsrate oder einer Anzahl von Frames pro Sekunde basiert.
  25. Speichermedium nach einem der Ansprüche 21-24, wobei die Anweisungen weiterhin bewirken, dass die eine oder die mehreren Maschinen unruhige Videodaten auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream pro einem Zeitintervall ankommen, mit einem ersten Grenzwert und einem zweiten Grenzwert erkennen, wobei der zweite Grenzwert sich von dem ersten Grenzwert unterscheidet.
  26. Speichermedium nach Anspruch 25, wobei die Anweisungen weiterhin bewirken, dass die eine oder die mehreren Maschinen unruhige Videodaten erkennen, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, niedriger als der erste Grenzwert ist.
  27. Speichermedium nach Anspruch 25, wobei die Anweisungen weiterhin bewirken, dass die eine oder die mehreren Maschinen ruhige Videodaten erkennen, wenn die Anzahl von Videopaketen, die in dem Video-Stream ankommen, größer als oder gleich dem zweiten Grenzwert ist.
  28. Speichermedium nach Anspruch 21, wobei die Anweisungen weiterhin nach einer Grenzzeitdauer und bei Erkennen von ruhigen Videodaten durch die eine oder die mehreren Maschinen bewirken, dass die eine oder die mehreren Maschinen den Stream von Videodaten ohne die alternativen Videodaten ausgeben.
  29. Speichermedium nach Anspruch 21, wobei die Ausgabe dazu ist, ein gesamtes Blickfeld eines Benutzers abzudecken.
  30. Speichermedium nach Anspruch 21, wobei unruhige Videodaten Videodaten beinhalten, die außerhalb einer Latenzbeschränkung geliefert wurden, um zu bewirken, dass eine Anzeige eines oder mehrere von einem eingefrorenen Bild oder Videoruckeln ausgibt.
  31. Verfahren zur Verarbeitung von Video in einer virtuellen Realitätsumgebung, wobei das Verfahren umfasst: Erkennen von unruhigen Videodaten in einem Stream von Videodaten; Bereitstellen von alternativen Videodaten; Empfangen des Streams von Videodaten, einer Angabe der unruhigen Videodaten und der alternativen Videodaten; Auswählen der alternativen Videodaten, um die unruhigen Videodaten zu ersetzen, auf der Basis der Angabe der unruhigen Videodaten und Ausgeben eines modifizierten Streams von Videodaten, der den Stream von Videodaten mit den alternativen Videodaten anstelle der unruhigen Videodaten beinhaltet.
  32. Verfahren nach Anspruch 31, wobei die alternativen Videodaten dazu sind, wenn sie angezeigt werden, eine einfarbige Anzeige zu erzeugen.
  33. Verfahren nach Anspruch 31, weiterhin beinhaltend ein Erkennen eines unruhigen Videos auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die in dem Video-Stream in einer Latenz, die kleiner als oder gleich einem Transportschicht-Latenzbudget ist, pro einem Zeitintervall ankommen, mit einer geschätzten Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden.
  34. Verfahren nach Anspruch 33, wobei die geschätzte Anzahl von Videopaketen, die in jenem Zeitintervall erwartet werden, auf einer Kombination von Video-Frames pro Sekunde, der vom Videoencoder geschätzten Größe von ausgegebenen Paketen und Transportschicht-Paketgrößen basiert.
  35. Verfahren nach einem der Ansprüche 31-34, weiterhin beinhaltend ein Erkennen von unruhigen Videodaten auf der Basis eines Vergleichens einer Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream pro einem Zeitintervall ankommen, mit einem ersten Grenzwert und einem zweiten Grenzwert, wobei der zweite Grenzwert sich von dem ersten Grenzwert unterscheidet.
  36. Verfahren nach Anspruch 35, weiterhin beinhaltend ein Erkennen von unruhigen Videodaten, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, niedriger als der erste Grenzwert ist.
  37. Verfahren nach Anspruch 35, weiterhin beinhaltend ein Erkennen von ruhigen Videodaten, wenn die Anzahl von Videopaketen, die rechtzeitig in dem Video-Stream ankommen, größer als oder gleich dem zweiten Grenzwert ist.
  38. Verfahren nach Anspruch 31, wobei das Verfahren weiterhin nach einer Grenzzeitdauer und bei Erkennen von ruhigen Videodaten ein Ausgeben des Streams von Videodaten ohne die alternativen Videodaten beinhaltet.
  39. Verfahren nach Anspruch 31, weiterhin beinhaltend ein Abdecken eines gesamten Blickfelds eines Benutzers mit der Ausgabe von modifizierten Video-Stream-Daten.
  40. Verfahren nach Anspruch 31, wobei unruhige Videodaten Videodaten beinhalten, die außerhalb einer Latenzbeschränkung geliefert wurden, um zu bewirken, dass eine Anzeige eines oder mehrere von einem eingefrorenen Bild oder Videoruckeln ausgibt.
DE112019003229.1T 2018-06-28 2019-03-27 Videoverarbeitung in virtuellen Realitätsumgebungen Pending DE112019003229T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/022,060 US11082637B2 (en) 2018-06-28 2018-06-28 Video processing in virtual reality environments
US16/022,060 2018-06-28
PCT/US2019/024254 WO2020005352A1 (en) 2018-06-28 2019-03-27 Video processing in virtual reality environments

Publications (1)

Publication Number Publication Date
DE112019003229T5 true DE112019003229T5 (de) 2021-03-18

Family

ID=65230714

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019003229.1T Pending DE112019003229T5 (de) 2018-06-28 2019-03-27 Videoverarbeitung in virtuellen Realitätsumgebungen

Country Status (3)

Country Link
US (1) US11082637B2 (de)
DE (1) DE112019003229T5 (de)
WO (1) WO2020005352A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10659190B1 (en) * 2019-02-25 2020-05-19 At&T Intellectual Property I, L.P. Optimizing delay-sensitive network-based communications with latency guidance
US11232129B2 (en) 2019-03-26 2022-01-25 At&T Intellectual Property I, L.P. Method for content synchronization and replacement
US11784839B2 (en) * 2019-12-31 2023-10-10 Dish Network Technologies India Private Limited Dynamic low latency mode for a digital video production system
US11902900B2 (en) * 2020-05-29 2024-02-13 Qualcomm Incorporated User equipment (UE)-based discontinuous control channel monitoring
US11523145B2 (en) * 2021-01-04 2022-12-06 Western Digital Technologies, Inc. Data storage device and method for real-time data locking in surveillance storage
CN115174993B (zh) * 2022-08-09 2024-02-13 北京字跳网络技术有限公司 用于视频制作的方法、装置、设备和存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7589789B2 (en) * 1999-05-08 2009-09-15 Lg Electronics Inc. Video converting device and method for digital TV
US20030200548A1 (en) 2001-12-27 2003-10-23 Paul Baran Method and apparatus for viewer control of digital TV program start time
US8982110B2 (en) 2005-03-01 2015-03-17 Eyesmatch Ltd Method for image transformation, augmented reality, and teleperence
US8976160B2 (en) 2005-03-01 2015-03-10 Eyesmatch Ltd User interface and authentication for a virtual mirror
US9269157B2 (en) 2005-03-01 2016-02-23 Eyesmatch Ltd Methods for extracting objects from digital images and for performing color change on the object
US10109315B2 (en) 2005-03-01 2018-10-23 Eyesmatch Ltd Devices, systems and methods for auto-delay video presentation
US8982109B2 (en) 2005-03-01 2015-03-17 Eyesmatch Ltd Devices, systems and methods of capturing and displaying appearances
US8970569B2 (en) 2005-03-01 2015-03-03 Eyesmatch Ltd Devices, systems and methods of virtualizing a mirror
US7948481B2 (en) 2005-03-01 2011-05-24 Nissi Vilcovsky Devices, systems and methods of capturing and displaying appearances
WO2008134897A1 (en) 2007-05-08 2008-11-13 Technologies Ezoom Exponentiel Inc. Method and system for quality service enhancement in networks for media streaming
JP2009103826A (ja) * 2007-10-22 2009-05-14 Funai Electric Co Ltd 液晶表示装置
US8897553B2 (en) 2011-12-13 2014-11-25 The Nielsen Company (Us), Llc Image comparison using color histograms
US10546424B2 (en) 2015-04-15 2020-01-28 Google Llc Layered content delivery for virtual and augmented reality experiences
US20170059305A1 (en) 2015-08-25 2017-03-02 Lytro, Inc. Active illumination for enhanced depth map generation
US10419737B2 (en) * 2015-04-15 2019-09-17 Google Llc Data structures and delivery methods for expediting virtual reality playback
US11328446B2 (en) 2015-04-15 2022-05-10 Google Llc Combining light-field data with active depth data for depth map generation
US20160309065A1 (en) 2015-04-15 2016-10-20 Lytro, Inc. Light guided image plane tiled arrays with dense fiber optic bundles for light-field and high resolution image acquisition
US10565734B2 (en) 2015-04-15 2020-02-18 Google Llc Video capture, processing, calibration, computational fiber artifact removal, and light-field pipeline
US10567464B2 (en) 2015-04-15 2020-02-18 Google Llc Video compression with adaptive view-dependent lighting removal
US10341632B2 (en) 2015-04-15 2019-07-02 Google Llc. Spatial random access enabled video system with a three-dimensional viewing volume
US10085005B2 (en) 2015-04-15 2018-09-25 Lytro, Inc. Capturing light-field volume image and video data using tiled light-field cameras
US10469873B2 (en) 2015-04-15 2019-11-05 Google Llc Encoding and decoding virtual reality video
US10540818B2 (en) 2015-04-15 2020-01-21 Google Llc Stereo image generation and interactive playback
US10412373B2 (en) 2015-04-15 2019-09-10 Google Llc Image capture for virtual reality displays

Also Published As

Publication number Publication date
WO2020005352A1 (en) 2020-01-02
US11082637B2 (en) 2021-08-03
US20190045140A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE112019003229T5 (de) Videoverarbeitung in virtuellen Realitätsumgebungen
EP3011752B1 (de) Konzept zur bestimmung der qualität eines mediadatenstroms mit variierender qualität-zu-bitrate
CN102625106B (zh) 场景自适应的屏幕编码码率控制方法及其系统
DE112015002650B4 (de) Systeme und Verfahren zur prädiktiven Auslieferung von Inhalten mit hohen Bitraten zur Wiedergabe
CN104144351B (zh) 应用虚拟化平台的视频播放方法和装置
US11490157B2 (en) Method for controlling video enhancement, device, electronic device and storage medium
US10110647B2 (en) Method and apparatus for altering bandwidth consumption
DE112014003669T5 (de) Dynamische GPU-Merkmaleinstellung basierend auf Benutzer-beobachteten Bildschirmbereich
CN104320701B (zh) 信号源的切换方法及装置
DE102020111960A1 (de) Dynamische vergabe von rechenressourcen zur erzeugung von höhepunkten in cloudspiel-systemen
US8908776B1 (en) Attention misdirection for streaming video
DE102018129318A1 (de) Anordnen von Segmenten eines Bildes zum Codieren und zur Übertragung an eine Anzeigevorrichtung
CN116440501B (zh) 自适应云游戏视频画面渲染方法和系统
DE102015115896B4 (de) Adaptives Verwalten eines Medienpuffers
DE112013007509T5 (de) Verfahren, Einrichtung und System zum Auswählen von Audio-Video-Daten zum Streamen
WO2017016568A1 (de) Verfahren und telekommunikationsnetz zum streamen und zur wiedergabe von anwendungen
DE102014100183B4 (de) Verfahren und Vorrichtung zum Verwenden eines separaten Rückwärtskanals für Benutzereingaben bei der Replizierung der Anzeige eines mobilen Geräts
CN104053002A (zh) 视频解码方法和视频解码装置
DE102014216887B3 (de) Verfahren zur Anbindung eines mobilen Bedienterminals an ein zu bedienendes Gerät
DE102019128856A1 (de) Verfahren und system für immersives virtual reality (vr) streaming mit reduzierter audiolatenz
DE112007002373T5 (de) Rahmenfilter
DE102013021707A1 (de) Grafik-dienstleister und verfahren zur verwaltung von datenstromparametern
CN112218123A (zh) 一种网络状态自适应图像处理装置及方法
DE112016004480T5 (de) Synchronisierung des Renderns von Medien in heterogenen Netzwerkumgebungen
US20140375755A1 (en) Apparatus and method for changing main screen based on distributed telepresence