DE112016002377T5 - Streamen von sphärischem video - Google Patents

Streamen von sphärischem video Download PDF

Info

Publication number
DE112016002377T5
DE112016002377T5 DE112016002377.4T DE112016002377T DE112016002377T5 DE 112016002377 T5 DE112016002377 T5 DE 112016002377T5 DE 112016002377 T DE112016002377 T DE 112016002377T DE 112016002377 T5 DE112016002377 T5 DE 112016002377T5
Authority
DE
Germany
Prior art keywords
video
frame
quality
stream
playback device
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
DE112016002377.4T
Other languages
English (en)
Inventor
Riley Adams
Christian Luc DUVIVIER
Andrew Scherkus
Rob Suderman
Jeff Prouty
Dillon Richard Cower
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE112016002377T5 publication Critical patent/DE112016002377T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • 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, rendering scenes according to MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Abstract

Ein Verfahren umfasst das Empfangen eines ersten Videostreams an einer Wiedergabevorrichtung, wobei der erste Videostream eine erste Qualität aufweist, das Empfangen von mindestens zwei zweiten Videostreams an der Wiedergabevorrichtung, wobei die mindestens zwei zweiten Videostreams jeweils einem Abschnitt des ersten Videostreams entsprechen und die mindestens zwei zweiten Videostreams eine zweite Qualität aufweisen und die zweite Qualität verglichen mit der ersten Qualität eine höhere Qualität ist, das Wiedergeben des ersten Videostreams an der Wiedergabevorrichtung, das Auswählen eines dritten Videostreams von den mindestens zwei zweiten Videostreams basierend auf einer Betrachtungsperspektive eines Benutzers der Wiedergabevorrichtung und das Wiedergeben des dritten Videostreams zusammen mit dem ersten Videostream an der Wiedergabevorrichtung.

Description

  • QUERVERWEISE ZU VERWANDTEN ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität gegenüber der Patentanmeldung Nr. 62/167,260, eingereicht am 27. Mai 2015 mit dem Titel „SPHERICAL VIDEO STREAMING AND PLAYBACK“, die hierin durch Bezugnahme vollständig aufgenommen wird.
  • TECHNISCHES GEBIET
  • Ausführungsformen betreffen das Streamen von sphärischem Video.
  • ALLGEMEINER STAND DER TECHNIK
  • Das Streamen von sphärischem Video (oder anderen dreidimensionalen Videos) kann einen signifikanten Betrag an Systemressourcen verbrauchen. Ein codiertes sphärisches Video kann beispielsweise eine große Anzahl von Bits für die Übertragung umfassen, die einen signifikanten Betrag an Bandbreite sowie an Verarbeitung und Speicher verbrauchen kann, die mit Codierern und Decodern verknüpft ist.
  • KURZDARSTELLUNG
  • Beispielhafte Ausführungsformen beschreiben Systeme und Verfahren zum Optimieren des Streamens von Video, 3D-Video und/oder sphärischem Video. Beispielhafte Ausführungsformen beschreiben Systeme und Verfahren zum Optimieren der Wiedergabe von Video, Wiedergabe vom 3D-Video und/oder Wiedergabe von sphärischem Video.
  • Bei einem allgemeinen Aspekt umfasst ein Verfahrendas Empfangen eines ersten Videostreams an einer Wiedergabevorrichtung, wobei der erste Videostream eine erste Qualität aufweist, das Empfangen von mindestens zwei zweiten Videostreams an der Wiedergabevorrichtung, wobei die mindestens zwei zweiten Videostreams jeweils einem Abschnitt des ersten Videostreams entsprechen und die mindestens zwei zweiten Videostreams eine zweite Qualität aufweisen und die zweite Qualität verglichen mit der ersten Qualität eine höhere Qualität ist, das Wiedergeben des ersten Videostreams an der Wiedergabevorrichtung, das Auswählen eines dritten Videostreams von den mindestens zwei zweiten Videostreams basierend auf einer Betrachtungsperspektive eines Benutzers der Wiedergabevorrichtung und das Wiedergeben des dritten Videostreams zusammen mit dem ersten Videostream an der Wiedergabevorrichtung.
  • Implementierungen können eines oder mehrere der folgenden Merkmale beinhalten. Beispielsweise kann das Verfahren ferner das Bestimmen, ob sich die Betrachtungsperspektive des Benutzers der Wiedergabevorrichtung geändert hat, das Auswählen eines vierten Videostreams von den mindestens zwei zweiten Videostreams basierend auf der geänderten Betrachtungsperspektive und das Wiedergeben des vierten Videostreams zusammen mit dem ersten Videostream an der Wiedergabevorrichtung umfassen. Die erste Qualität basiert auf einer Bitrate und Auflösung, die Bitrate basiert auf einem minimalen Kommunikationskanalvermögen und die Auflösung basiert auf einer mit der Wiedergabevorrichtung verknüpften minimalen Pixeldichte. Das Verfahren kann beispielsweise ferner das Puffern des ersten Videostreams umfassen, wobei das Wiedergeben des dritten Videostreams zusammen mit dem ersten Videostream an der Wiedergabevorrichtung das Ersetzen eines entsprechenden Abschnitts des ersten Videostreams mit dem dritten Videostream umfasst, das Rendern des Resultats auf der Wiedergabevorrichtung, zu bestimmen, ob ein Problem mit dem dritten Videostream existiert, und nach dem Bestimmen, dass ein Problem mit dem dritten Videostream existiert, wird der gepufferte erste Videostream an der Wiedergabevorrichtung gerendert.
  • Die Wiedergabevorrichtung ist ein Head Mount Display (HMD) und das Wiedergeben des dritten Videostreams zusammen mit dem ersten Videostream an der Wiedergabevorrichtung umfasst das Rendern des ersten Videostreams an einem von einem Display des linken Auges oder des rechten Auges des HMD und Rendern des dritten Videostreams auf einem anderen von dem Display des linken Auges oder des rechten Auges des HMD. Die mindestens zwei zweiten Videostreams weisen zu unterschiedlichen Zeitstempeln codierte zugehörige Keyframes auf.
  • Das Verfahren kann beispielsweise ferner das Bestimmen, ob sich jeder der mindestens zwei zweiten Videostreams innerhalb eines Ansehbarkeitsschwellenwerts der Wiedergabevorrichtung befindet, umfassen, und nach dem Bestimmen, dass sich die mindestens zwei zweiten Videostreams innerhalb des Ansehbarkeitsschwellenwerts der Wiedergabevorrichtung befinden, das Decodieren der mindestens zwei zweiten Videostreams, und nach dem Bestimmen, dass sich die mindestens zwei zweiten Videostreams nicht innerhalb des Ansehbarkeitsschwellenwerts der Wiedergabevorrichtung befinden, das Überspringen des Decodierens der mindestens zwei zweiten Videostreams.
  • Bei einem anderen allgemeinen Aspekt umfasst ein Verfahren das Codieren eines Frames eines Videos bei einer ersten Qualität, das Codieren von mindestens zwei Abschnitten des Frames des Videos bei einer zweiten Qualität, wobei die zweite Qualität verglichen mit der ersten Qualität eine höhere Qualität ist, das Speichern des Frames des Videos und das Speichern der mindestens zwei Abschnitte des Frames des Videos.
  • Implementierungen können eines oder mehrere der folgenden Merkmale beinhalten. Das Verfahren kann beispielsweise ferner das Streamen des Frames des Videos und das Streamen der mindestens zwei Abschnitte des Frames des Videos umfassen. Das Codieren der mindestens zwei Abschnitte des Frames des Videos bei der zweiten Qualität umfasst das Codieren von jedem von den mindestens zwei Abschnitten des Frames des Videos unter Verwendung von Keyframes mit unterschiedlichen Zeitstempeln. Das Verfahren kann beispielsweise ferner das Empfangen eines Hinweises auf einen Betrag an Bewegung umfassen, die mit einer Wiedergabevorrichtung verknüpft ist, und das Anpassen einer Größe, die mit den mindestens zwei Abschnitten des Frames des Videos verknüpft ist, basierend auf der Bewegung. Das Empfangen einer Anforderung, ein Video zu streamen, das Konstruieren eines Frames unter Verwendung des Frames des Videos und von einem der mindestens zwei Abschnitte des Frames des Videos und das Streamen des konstruierten Frames. Der Frame des Videos ist mit einem sphärischen Video verknüpft, das Codieren des Frames des Videos umfasst das Projizieren des Frames des Videos als eine Würfelkarte und das Codieren der Würfelkarte unter Verwendung eines gleichwinkligen Sampling-Algorithmus.
  • Der Frame des Videos ist mit einem sphärischen Video verknüpft und das Verfahren umfasst ferner das Projizieren des Frames des Videos als eine Würfelkarte und das Auswählen einer Würfelseite der Würfelkarte. Das Codieren des Frames des Videos umfasst das Codieren der Würfelseite bei der ersten Qualität und das Codieren der mindestens zwei Abschnitte des Frames des Videos umfasst das Codieren von mindestens zwei Abschnitten der Würfelseite bei der zweiten Qualität. Das Verfahren kann beispielsweise ferner das Streamen des Frames des Videos, das Streamen der mindestens zwei Abschnitte des Frames des Videos, das Empfangen eines Hinweises, dass die Wiedergabe auf einer Wiedergabevorrichtung pausiert wurde, das Codieren des Frames des Videos bei der zweiten Qualität und das Streamen des Frames des bei der zweiten Qualität codierten Videos umfassen. Die erste Qualität basiert auf mindestens einem von einem Stream mit niedriger Framerate und hoher Auflösung, einem Monostream, einem reduzierten Farbenstream und einem Schwarzweissstream. Das Verfahren kann beispielsweise ferner das Streamen des Frames des Videos als mehrere codierte Frames und Fallenlassen von mindestens einem Frame der mehreren codierten Frames während des Streamens des Videos umfassen, um eine dritte Qualität zu erreichen.
  • Bei noch einem weiteren allgemeinen Aspekt umfasst ein Server und/oder ein Streaming-Server einen Codierer, Speicher und eine Steuerung. Der Codierer ist konfiguriert, einen Frame eines Videos bei einer ersten Qualität zu codieren und mindestens zwei Abschnitte des Frames des Videos bei einer zweiten Qualität zu codieren, wobei die zweite Qualität verglichen mit der ersten Qualität eine höhere Qualität ist. Der Speicher ist konfiguriert, den Frame des Videos zu speichern und die mindestens zwei Abschnitte des Frames des Videos zu speichern. Die Steuerung ist konfiguriert, ein Video zu streamen, das den codierten Frame und einen oder mehrere von den codierten mindestens zwei Abschnitten des Frames des Videos umfasst.
  • Implementierungen können eines oder mehrere der folgenden Merkmale beinhalten. Beispielsweise umfasst das Codieren der mindestens zwei Abschnitte des Frames des Videos bei der zweiten Qualität das Codieren von jedem von den mindestens zwei Abschnitten des Frames des Videos unter Verwendung von Keyframes mit unterschiedlichen Zeitstempeln. Der Frame des Videos ist mit einem sphärischen Video verknüpft und der Codierer ist ferner konfiguriert, den Frame des Videos als eine Würfelkarte zu projizieren und eine Würfelseite der Würfelkarte auszuwählen. Das Codieren des Frames des Videos umfasst das Codieren der Würfelseite bei der ersten Qualität und das Codieren der mindestens zwei Abschnitte des Frames des Videos umfasst das Codieren von mindestens zwei Abschnitten der Würfelseite bei der zweiten Qualität.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Beispielhafte Ausführungsformen werden aus der nachfolgenden detaillierten Beschreibung und den begleitenden Zeichnungen vollständiger verstanden, wobei gleiche Elemente mit gleichen Bezugsnummern dargestellt sind, die lediglich zur Veranschaulichung angegeben sind und somit die beispielhaften Ausführungsformen nicht einschränken, und wobei:
  • Die 1 bis 4 veranschaulichen verschiedene Verfahren gemäß mindestens einer beispielhaften Ausführungsform.
  • 5 veranschaulicht ein Zeitdiagramm von mindestens einer beispielhaften Ausführungsform.
  • Die 6 bis 14 veranschaulichen verschiedene Verfahren gemäß mindestens einer beispielhaften Ausführungsform.
  • 15 ist ein Blockdiagramm eines beispielhaften Systems zum Erfassen und Rendern stereoskopischer Bilder und/oder von Video in einer virtuellen Realität-(VR)-3D-Umgebung.
  • 16A veranschaulicht ein Videocodierersystem gemäß mindestens einer beispielhaften Ausführungsform.
  • 16B veranschaulicht ein Videokameradecodierersystem gemäß mindestens einer beispielhaften Ausführungsform.
  • 17A veranschaulicht ein Ablaufdiagramm für ein Videocodierersystem gemäß mindestens einer beispielhaften Ausführungsform.
  • 17B veranschaulicht ein Ablaufdiagramm für ein Videokameradecodierersystem gemäß mindestens einer beispielhaften Ausführungsform.
  • 18 veranschaulicht eine zweidimensionale (2D) Darstellung einer Sphäre gemäß mindestens einer beispielhaften Ausführungsform.
  • 19 veranschaulicht ein System gemäß mindestens einer beispielhaften Ausführungsform.
  • 20 ein schematisches Blockdiagramm einer Computervorrichtung und einer mobilen Computervorrichtung ist, die verwendet werden können, um die hierin beschriebenen Techniken zu implementieren.
  • Es ist zu beachten, dass diese Figuren dazu dienen, die allgemeinen Merkmale von Verfahren, Struktur und/oder Materialien zu veranschaulichen, die in bestimmten beispielhaften Ausführungsformen verwendet werden, und um die nachfolgende schriftliche Beschreibung zu ergänzen. Diese Zeichnungen sind jedoch nicht maßstabsgerecht und bilden möglicherweise die genauen strukturellen oder Leistungsmerkmale jedweder gegebenen Ausführungsform nicht genau ab und sollten nicht als Definition oder Beschränkung des Bereichs von Werten oder Eigenschaften, die in beispielhaften Ausführungsformen umfasst sind, verstanden werden. Beispielsweise können die relativen Dicken und die Anordnung von strukturellen Elementen aus Gründen der Deutlichkeit reduziert oder übertrieben sein. Die Verwendung von ähnlichen oder identischen Bezugsnummern in den verschiedenen Zeichnungen soll das Vorhandensein eines ähnlichen oder identischen Elements oder Merkmals angeben.
  • Während beispielhafte Ausführungsformen verschiedene Modifikationen und alternative Formen beinhalten können, werden Ausführungsformen davon als Beispiel in den Zeichnungen gezeigt und hierin ausführlich beschrieben. Es versteht sich jedoch, dass keine Absicht besteht, beispielhafte Ausführungsformen auf die bestimmten offenbarten Formen zu beschränken, sondern vielmehr beispielhafte Ausführungsformen alle Modifikationen, Äquivalente und Alternativen einbeziehen sollen, die sich innerhalb des Umfangs der Ansprüche befinden. Gleiche Nummern bezeichnen gleiche Elemente überall in der Beschreibung der Figuren.
  • Die 1 bis 4 und 6 bis 14 sind Ablaufdiagramme von Verfahren gemäß beispielhaften Ausführungsformen. Die in Bezug auf die 1 bis 4 und 6 bis 14 beschriebenen Schritte können aufgrund der Ausführung von Softwarecode, der in einem Speicher (z. B. mindestens einem Speicher 1610) gespeichert ist, der mit einer Vorrichtung (z. B. wie gezeigt in 16) verknüpft ist, ausgeführt werden, und von mindestens einem Prozessor (z. B. mindestens einem Prozessor 1605), der mit der Vorrichtung verknüpft ist, ausgeführt werden. Es sind jedoch alternative Ausführungsformen, wie z. B. ein als Spezialprozessor ausgeführtes System, denkbar. Obwohl die nachfolgend beschriebenen Schritte als, durch einen Prozessor ausgeführt beschrieben sind, werden die Schritte nicht zwangsläufig durch ein und denselben Prozessor ausgeführt. Mit anderen Worten kann mindestens ein Prozessor die nachfolgend in Bezug auf die 1 bis 4 und 6 bis 14 beschriebenen Schritte ausführen.
  • Gemäß beispielhaften Implementierungen in Bezug auf ein sphärisches Video und/oder eines Frames von sphärischem Video können mehrere unterschiedliche Betrachtungsperspektiven, die unterschiedliche Teile der Sphäre abdecken, codiert sein. In einem Intervall kann ein Stream (des sphärischen Videos), der die Qualität am besten fokussiert, wo der Benutzer zusieht, ausgewählt oder dahin gewechselt werden (z. B. während sich der Benutzer bewegt). Gemäß beispielhaften Implementierungen kann eine Videoschicht mit niedriger Auflösung der vollen Sphäre des sphärischen Videos gestreamt werden und ein dynamisch gewechseltes hochauflösendes Video kann gestreamt werden und oben auf dem niedrigauflösenden Video zusammengesetzt werden. Zwischen einem Stream von hoher Qualität und einem Stream von niedriger Qualität, die jeweils einen Abschnitt der Sphäre abdecken, kann basierend auf einer Betrachtungsperspektive eines Benutzers dynamisch gewechselt werden. Die Begrenzung zwischen Video mit hoher Auflösung und Video mit niedriger Auflösung kann gemischt werden (z. B. können Pixel dazwischen abgewechselt werden), um eine Änderung in der Auflösung zu maskieren. Eine Art volle Quadtree-Struktur von Videokacheln kann verwendet werden, um Detail einzufüllen und die Auflösung und daher die Qualität eines gerenderten Videos zu erhöhen. Außerdem kann ein einzelner dynamisch gewechselter Stream, der eine hohe Auflösung für den angesehenen Abschnitt der Sphäre packt, und auch eine niedrigauflösende Darstellung des Rests der Sphäre im gleichen Frame verwendet werden. Beispielhafte Implementierungen können ein Bild aufweisen, um die volle Sphäre zu zeigen, im Falle, dass der Benutzer sich schnell dreht, aber nur ein hochauflösendes Bild bzw. hochauflösende Bilder zu liefern, wo der Benutzer schaut. Beispielhafte Implementierungen können Kompromisse bei der clientseitigen Komplexität (Synchronisieren/Decodieren mehrerer Streams), bei Serverspeicherkosten und dergleichen berücksichtigen.
  • 1 veranschaulicht ein Verfahren zum Wechseln zwischen Streams eines sphärischen Streaming-Videos gemäß mindestens einer beispielhaften Ausführungsform. Wie gezeigt in 1 wird in Schritt S105 ein Frame eines sphärischen Videos bei einer ersten Qualität codiert. Der Frame kann beispielsweise bei einer Qualität (z. B. Bitrate und Auflösung) codiert werden, die konfiguriert ist, eine minimale Benutzererfahrung bereitzustellen, wenn das sphärische Video auf einem Display (z. B. einem Head Mount Display (HMD)) wiedergeben wird. Daher kann die Bitrate auf einem minimalen Kommunikationskanalvermögen basieren und die Auflösung kann auf einer minimalen Pixeldichte basieren.
  • In Schritt S110 wird der codierte Frame in einer Servervorrichtung als ein Frame eines ersten Videostreams gespeichert. Der codierte Frame kann beispielsweise für die zukünftige Wiedergabe basierend auf einer Anforderung von einer Benutzervorrichtung gespeichert werden.
  • In Schritt S115 werden mehrere Abschnitte des Frames basierend auf einer Betrachtungsperspektive bei einer zweiten Qualität codiert. Beispielsweise kann die zweite Qualität eine höhere Qualität sein als die erste Qualität. Die zweite Qualität kann auf einer Auflösung mit einer höheren Pixeldichte bei der Wiedergabe basieren und/oder für eine höhere (z. B. mehr Daten) Bitrate konfiguriert sein als die mit der ersten Qualität verknüpfte Bitrate. Die mehreren Abschnitte des Frames können Abschnitte sein, von denen antizipiert wird, dass sie von einem Benutzer von beispielsweise einem HMD angesehen werden. Bei einer Beispielimplementierung wird der gesamte Frame in Abschnitte geteilt und als die mehreren Abschnitte des Frames codiert.
  • In Schritt S120 werden die mehreren Abschnitte des Frames in der Servervorrichtung als die mehreren zweiten Videostreams gespeichert. Beispielsweise können die codierten mehreren Abschnitte des Frames für die zukünftige Wiedergabe basierend auf einer Anforderung von einer Benutzervorrichtung gespeichert werden.
  • In Schritt S125 wird der erste Videostream zu einer Wiedergabevorrichtung gestreamt. Der erste Videostream kann beispielsweise als ein Basis- oder Minimalerfahrungsvideo für die Wiedergabe auf dem HMD gestreamt werden.
  • In Schritt S130 wird mindestens einer von den mehreren der zweiten Videostreams zur Wiedergabevorrichtung gestreamt. Ein zweiter Stream kann beispielsweise von den mehreren zweiten Videostreams basierend auf einer Betrachtungsperspektive (oder auf was ein Betrachter des sphärischen Videos sich gegenwärtig konzentriert) ausgewählt werden.
  • In Schritt S135 wird an der Wiedergabevorrichtung der erste Videostream wiedergeben oder gerendert (zum Anzeigen) auf der Wiedergabevorrichtung. Beispielsweise kann der erste Videostream gerendert und auf dem HMD angezeigt werden. In Schritt S140 wird an der Wiedergabevorrichtung die Wiedergabe von zwei (oder mehr) der mehreren zweiten Videostreams basierend auf einer bestimmten Betrachtungsperspektive gewechselt. Während ein Benutzer des HMD eine Betrachtungsperspektive ändert (z. B. seinen Kopf und/oder seine Augen bewegt), können die unterschiedlichen zweiten Videostreams für die Wiedergabe auf dem HMD ausgewählt werden. Mit anderen Worten wechselt die Wiedergabe auf dem HMD zwischen mindestens zwei der zweiten Videostreams basierend auf einer (bestimmten) geänderten Betrachtungsperspektive.
  • 2 veranschaulicht ein Verfahren zum Puffern eines Streams von niedriger/mittlerer Qualität einer vollen Sphäre. Wie gezeigt in 2 wird in Schritt S205 ein Frame eines sphärischen Videos bei einer ersten Qualität codiert. Der Frame kann beispielsweise bei einer Qualität (z. B. Bitrate und Auflösung) codiert werden, die konfiguriert ist, eine minimale Benutzererfahrung bereitzustellen, wenn das sphärische Video auf einem Display (z. B. einem Head Mount Display (HMD)) wiedergeben wird. Daher kann die Bitrate auf einem minimalen Kommunikationskanalvermögen basieren und die Auflösung kann auf einer minimalen Pixeldichte basieren. Die codierten Frames werden dann zu einer Wiedergabevorrichtung gestreamt (S210). Die codierten Frames werden dann an der Wiedergabevorrichtung gepuffert (S215). Beispielsweise werden die codierten gestreamten Frames in einem Speicher der Wiedergabevorrichtung (oder einem Speicher, der damit verknüpft ist) gepuffert (oder eingereiht).
  • In Schritt S220 werden mehrere Abschnitte des Frames basierend auf einer Betrachtungsperspektive bei einer zweiten Qualität codiert. Beispielsweise kann die zweite Qualität eine höhere Qualität sein als die erste Qualität. Die zweite Qualität kann auf einer Auflösung mit einer höheren Pixeldichte bei der Wiedergabe basieren und/oder für eine höhere (z. B. mehr Daten) Bitrate konfiguriert sein als die mit der ersten Qualität verknüpfte Bitrate. Die mehreren Abschnitte des Frames können Abschnitte sein, von denen antizipiert wird, dass sie von einem Benutzer von beispielsweise einem HMD angesehen werden. Bei einer Beispielimplementierung wird der gesamte Frame in Abschnitte geteilt und als die mehreren Abschnitte des Frames codiert. Die codierten mehreren Abschnitte des Frames werden dann zu einer Wiedergabevorrichtung gestreamt (S225). Die Wiedergabevorrichtung kann den codierten Frame bei einer minimalen oder ersten Qualität und (einen oder mehrere) der mehreren Abschnitte des bei der zweiten Qualität codierten Frames kombinieren. Das Resultat kann dann auf der Wiedergabevorrichtung gerendert werden.
  • In Schritt S230 wird bestimmt, ob ein Problem mit dem codierten Abschnitt der Frames an der Wiedergabevorrichtung existiert. Es kann beispielsweise eine Latenzzeit (z. B. beim Herunterladen des Streams) existieren, die bewirkt, dass das Video unabsichtlich pausiert, während der Stream zu einer Wiedergabeposition aufholt. Wenn ein Problem existiert (S230) mit dem codierten Abschnitt der Frames, wird die Wiedergabe des sphärischen Videos zu einem entsprechenden gepufferten Video gewechselt. Mit anderen Worten, wenn ein Problem existiert, wird der gepufferte Videostream auf der Wiedergabevorrichtung gerendert. Beispielsweise kann die Wiedergabevorrichtung das gepufferte sphärische Video (niedrigerer Qualität), das im Puffer (oder der Warteschlange) gespeichert ist, lesen, decodieren, rendern und anzeigen.
  • Wenn der Benutzer sich kürzlich verhältnismäßig langsam bewegt hat oder sich auf einen Bereich fixiert hat, kann eine beispielhafte Implementierung eine verhältnismäßig kleinere Region der Sphäre in einer verhältnismäßig höheren Qualität streamen. Wenn der Benutzer seinen Kopf häufig herumbewegt hat, kann eine beispielhafte Implementierung einen größeren Abschnitt der Sphäre in mittelmäßiger Qualität streamen. Gemäß einer beispielhaften Implementierung kann ein Durchschnittswert einer Kopfbewegung (Geschwindigkeit, Betrag an abgedeckter Sphäre und dergleichen) über einen Zeitraum bestimmt (oder gemessen) werden, eine geeignete Regionsgröße hoher Qualität kann ausgewählt werden.
  • 3 veranschaulicht ein Verfahren zum Anpassen einer Größe einer Region hoher Qualität basierend auf einem Betrag an Kopfbewegung. Wie gezeigt in 3, wird in Schritt S305 ein Betrag an Kopf- und/oder Augenbewegung bestimmt. Es kann beispielsweise ein Ausrichtungssensor konfiguriert sein, eine Ausrichtung (oder Änderung in der Ausrichtung) der Augen eines Betrachters (oder seines Kopfes) zu detektieren. Beispielsweise kann der Ausrichtungssensor einen Beschleunigungsmesser umfassen, um eine Bewegung zu detektieren, und ein Gyroskop, um eine Ausrichtung zu detektieren. Alternativ oder zusätzlich dazu kann der Ausrichtungssensor eine Kamera oder einen Infrarotsensor umfassen, der auf die Augen oder den Kopf des Betrachters fokussiert ist, um eine Ausrichtung der Augen oder des Kopfes des Betrachters zu bestimmen. Die Menge an Bewegung kann auf einem Schwellenwert oder Bereich von Schwellenwerten basieren.
  • Wenn die Menge an Bewegung sich über einem Schwellenwert befindet oder innerhalb eines Bereichs eines Bereichs von Schwellenwerten (Schritt S310), wird eine Größe eines Abschnitts eines sphärischen Videos basierend auf der Bewegung angepasst. Wenn der Benutzer beispielsweise seinen Kopf verhältnismäßig langsam bewegt oder sich auf einen Bereich fixiert, kann eine beispielhafte Implementierung eine verhältnismäßig kleinere Region der Sphäre in einer verhältnismäßig höheren Qualität streamen. Wenn der Benutzer seinen Kopf häufig herumbewegt hat, kann eine beispielhafte Implementierung einen größeren Abschnitt der Sphäre in mittelmäßiger Qualität streamen.
  • Wenn eine Reihe von vorcodierten Abschnitten der Sphäre, die ein sphärisches Video darstellen, bei einer Qualität codiert werden, kann das sphärische Video (oder ein Abschnitt davon) unter Verwendung der vorcodierten Abschnitte durch Zusammenheften der vorcodierten Abschnitte in einen einzelnen Videobitstream basierend auf beispielsweise einer gegenwärtigen Betrachtungsperspektive rekonstruiert werden. Die Rekonstruktion des sphärischen Videos kann auf Anforderung erfolgen und auf dem Server ausgeführt werden.
  • 4 veranschaulicht ein Verfahren zum Konstruieren eines Videobitstreams auf Anforderung. Wie gezeigt in 4 werden in Schritt S405 mehrere Abschnitte eines Frames eines sphärischen Videos basierend auf einem Bild im Frame erzeugt. Die mehreren Abschnitte können beispielsweise derart erzeugt werden, dass sie gleiche oder ähnliche benachbarte Begrenzungen aufweisen. Die mehreren Abschnitte des Frames von sphärischem Video (S410). Beispielsweise kann jeder Abschnitt basierend auf einer gleichen gewünschten Qualität codiert sein.
  • In Schritt S415 werden die codierten mehreren Abschnitte des Frames von sphärischem Video als mehrere Kacheln gespeichert. Die mehreren Kacheln weisen beispielsweise eine gleiche Größe auf, die eine gleiche Pixelanzahl darstellt. In Schritt S420 eine Anforderung, das sphärische Video zu streamen. Beispielsweise fordert eine Benutzervorrichtung (z. B. HMD) das sphärische Video zur Wiedergabe an. Der Server kann einen Videoframe basierend auf den mehreren Kacheln konstruieren (S425). Beispielsweise können Bits, die Pixel von angrenzenden Kacheln darstellen, in einem Datenpaket unter Verwendung einer Technik gespeichert werden, das, wenn es decodiert wird, in einem rekonstruierten Frame resultiert, der gerendert und auf der Benutzervorrichtung angezeigt werden kann. Der konstruierte Frame als einer von mehreren Frames von sphärischem Video gestreamt (S430).
  • 5A veranschaulicht n Keyframes 525, 530, 535, 540 die zu einer entsprechenden Zeit (T) erzeugt sind 505, 510, 515, 520. Das Keyframetiming kann über Betrachtungsperspektiven gestaffelt werden, um eine Wechsellatenzzeit zu reduzieren. Beispielsweise kann eine erste Betrachtungsperspektive Keyframes bei den Zeitstempeln 0, 2, 4 usw. aufweisen (z. B. Sekunden, Millisekunden und dergleichen) und eine zweite Betrachtungsperspektive kann Keyframes bei 1, 3, 5, 7 usw. (z. B. Sekunden, Millisekunden und dergleichen) aufweisen. Bei Zeitstempel 2 könnte die erste Betrachtungsperspektive ausgewählt werden, bei Zeitstempel 3 könnte die zweite Betrachtungsperspektive ausgewählt werden und bei Zeitstempel 4 könnte die erste Betrachtungsperspektive ausgewählt werden. Der bzw. die gestaffelten (variablen oder unterschiedlichen) Zeitstempel können das schnellere Umschalten zwischen einer Betrachtungsperspektive ermöglichen, als wenn die Betrachtungsperspektiven mit bei einem gleichen Zeitstempelintervall erzeugten Keyframes codiert wurden.
  • Einige Forschung hat gezeigt, dass, wenn einem Auge ein hochauflösendes Bild gezeigt wird und dem anderen Auge ein niedrigauflösendes Bild gezeigt wird, das Gehirn gewissermaßen die „Lücke schließen“ kann und das Bild okay aussieht. Dementsprechend weisen gestaffelte Keyframes über die Augen (z. B. hat das linke Auge einen Stream zu jeder geraden Sekunde und das rechte Auge einen Stream zu jeder ungeraden Sekunde), die wahrgenommene Streamwechselzeit verdoppelt werden könnte beim Wechseln von einem Video geringer Qualität zu einem Video hoher Qualität.
  • Ein variables Keyframe-Intervall könnte auch verwendet werden. Wenn der interessanteste Teil einer Szene eine große Bewegung macht, dann könnte das Keyframe-Intervall für den Zeitraum der Bewegung um diese Bewegung herum verringert werden. Weiter können Fokuspunkte und durchschnittliche Bewegungen aus dem Protokollieren eines Benutzerverhaltens während der Wiedergabe gelernt werden. Oder das Verwenden von Computer-Visionsanalyse bezüglich Herausragungsbewegung könnte anfängliche Bewegungshotspots geben.
  • Wenn Keyframes in einem festen Intervall erzeugt werden sollten (z. B. alle 4 Sekunden), könnten alternative Streams mit Keyframes codiert werden, die an unterschiedlichen Punkten in der Zeitschiene angeordnet sind, um das Wechseln schneller zu ermöglichen. Für vier mit einer einzelnen Betrachtungsperspektive verknüpften Streams, könnte beispielsweise Stream A Keyframes bei 0, 4, 8 Sekunden aufweisen, Stream B könnte Keyframes bei 1, 5, 9 Sekunden aufweisen, Stream C könnte Keyframes bei 2, 6, 10 Sekunden aufweisen und Stream D könnte Keyframes bei 3, 7, 11 Sekunden aufweisen. Dementsprechend könnten Betrachtungsperspektiven bei Wechseln von 0, 1, 2 oder 3 Sekunden erreicht werden, ohne einen einzelnen I-Frame-schweren (z. B. reduzierte Komprimierungseffizienz) Stream zu benötigen.
  • Bei einer Beispielimplementierung könnten diese Clips bei unterschiedlichen Längen codiert werden (z. B. alle 4 Sekunden hat man einen vollen 4-Sekunden-Stream, der mit einem Keyframe startet, dann versetzt um eine Sekunde einen 3-Sekunden-Stream mit einem Keyframe von einer Sekunde in diese Zeitschiene, dann einen 2-Sekunden-Stream versetzt um 2 Sekunden und einen 1-Sekunde-Stream versetzt um 3 Sekunden), um Speicher-Overhead zu reduzieren. Beispielsweise könnte Stream A bei 0 starten und eine Dauer von 4 aufweisen, Stream B könnte bei 1 starten und eine Dauer von 3 aufweisen, Stream C könnte bei 2 starten und eine Dauer von 2 aufweisen und Stream D könnte bei 3 starten und eine Dauer von 1 aufweisen.
  • 5B veranschaulicht ein Verfahren zum Codieren von sphärischem Video unter Verwendung einer Vielzahl von Keyframes mit Zeitstempel. Wie gezeigt in 5B, werden in Schritt S505 mehrere Keyframes zu mehreren Zeiten (oder Zeitstempeln) innerhalb eines sphärischen Videos codiert. Beispielsweise können wie vorstehend beschrieben die Keyframes über Betrachtungsperspektiven und/oder stereoskopische (linkes Auge/rechtes Auge) Ansichten oder Bilder gestaffelt werden. Die Keyframes könnten zu festen Intervallen erzeugt werden.
  • In Schritt S510 wird ein zu codierender Frame mit einem der mehreren Keyframes verknüpft. Beispielsweise könnte eine erste Betrachtungsperspektive mit einem ersten Keyframe verknüpft werden und eine zweite Betrachtungsperspektive könnte mit einem zweiten Keyframe verknüpft werden. Ein Frame des linken Auges könnte mit einem ersten Keyframe verknüpft werden und ein Frame des rechten Auges könnte mit einem zweiten Keyframe verknüpft werden. Der zu codierende Frame wird dann basierend auf dem verknüpften Keyframe codiert (S515).
  • Bei einem Anwendungsfall, bei dem vom Benutzer nicht erwartet wird, einen Abschnitt von geringer Qualität des sphärischen Videos zu sehen, könnte das Decodieren einiger Frames oder Abschnitte eines Frames übersprungen werden. 6 veranschaulicht ein Verfahren zum Überspringen des Decodierens eines Abschnitts von geringer Qualität eines sphärischen Videos. Wie gezeigt in 6, wird in Schritt S605 ein Frame von sphärischem Streaming-Video empfangen. Der Frame umfasst mehrere codierte Abschnitte.
  • In Schritt S610 wird bestimmt, ob sich ein codierter Abschnitt innerhalb eines ansehbaren Schwellenwerts befindet. Wenn sich ein codierter Abschnitt nicht innerhalb des ansehbaren Abschnitts befindet, fährt die Verarbeitung mit Schritt S620 fort und das Decodieren wird nicht ausgeführt oder übersprungen. Anderweitig fährt die Verarbeitung mit Schritt S615 fort, wo der Abschnitt decodiert wird.
  • Eine Äquirektangularprojektion kann für einige sphärische Videos und/oder Bilder ineffizient sein. Beispielsweise wird der Pixeldichte der Pole mehr Pixel zugewiesen, als gewünscht wird, wohingegen ein Betrachter typischerweise mehr am Äquator interessiert ist. Weiter kann eine Aquirektangularprojektion gerade Linien biegen, was das Codieren schwieriger macht. Das Codieren eines sphärischen Bildes unter Verwendung von Würfelkarten kann effizienter sein, da jede Fläche wie ein normales Video aussieht. Daher kann jede Fläche codiert werden, ohne Kompensieren für variierende Pixeldichte zu kompensieren. Würfelkarten können jedoch ein sehr ungleichmäßiges Sampeln der Sphäre (mehr Pixel in Richtung auf die Kanten/Ecken der Flächen) erzeugen. Bei beispielhaften Ausführungsformen kann eine Würfelkarte gleichmäßig über die 90 × 90-Grad-Winkel für jede Fläche gesampelt werden. Dies resultiert in einer Projektion, die ein gleichförmiges (oder etwas gleichförmiges) Sampeln oder gleichwinkliges Sampeln der Sphäre bereitstellt. Als solches ein kann jede Fläche einigermaßen gut mit konventionellen Codecs komprimiert werden. Beispielsweise kann jede Würfelfläche wie eine reguläre Videoprojektion mit einem geringen Fischaugeneffekt erscheinen.
  • 7 veranschaulicht ein Verfahren zum Codieren eines sphärischen Videos. Wie gezeigt in 7 wird in Schritt S705 ein sphärisches Bild oder Frame als eine Würfelkarte projiziert. In Schritt S710 wird die Würfelkarte unter Verwendung eines gleichwinkligen Samplingalgorithmus codiert. Es wird beispielsweise jede Fläche der Würfelkarte mit einer höheren Abtastrate in der Mitte der Fläche gesampelt als an der Kante oder Begrenzung der Fläche.
  • 8 veranschaulicht ein Verfahren zum Streamen eines sphärischen Videos. Wie gezeigt in 8 wird in Schritt S805 eine Würfelseite einer Würfelkartenprojektion eines sphärischen Bildes oder Frames zum Codieren ausgewählt.
  • In Schritt S810 wird die Würfelseite bei einer ersten Qualität codiert. Der Frame kann beispielsweise bei einer Qualität (z. B. Bitrate und Auflösung) codiert werden, die konfiguriert ist, eine minimale Benutzererfahrung bereitzustellen, wenn das sphärische Video auf einem Display (z. B. einem Head Mount Display (HMD)) wiedergeben wird. Daher kann die Bitrate auf einem minimalen Kommunikationskanalvermögen basieren und die Auflösung kann auf einer minimalen Pixeldichte basieren. Weiter kann die Würfelseite unter Verwendung eines gleichwinkligen Sampling-Algorithmus gesampelt werden.
  • In Schritt S815 wird die codierte Würfelseite in einer Servervorrichtung als ein Abschnitt eines Frames eines ersten Videostreams gespeichert. Die codierte Würfelseite kann beispielsweise basierend auf einer Anforderung von einer Benutzervorrichtung für die zukünftige Wiedergabe gespeichert werden.
  • In Schritt S820 werden mehrere Abschnitte der Würfelseite basierend auf einer Betrachtungsperspektive bei einer zweiten Qualität codiert. Beispielsweise kann die zweite Qualität eine höhere Qualität sein als die erste Qualität. Die zweite Qualität kann auf einer Auflösung mit einer höheren Pixeldichte bei der Wiedergabe basieren und/oder für eine höhere (z. B. mehr Daten) Bitrate konfiguriert sein als die mit der ersten Qualität verknüpfte Bitrate. Die mehreren Abschnitte der Würfelseite können Abschnitte sein, von denen antizipiert wird, dass sie von einem Benutzer von beispielsweise einem HMD angesehen werden. Bei einer Beispielimplementierung wird die gesamte Würfelseite in Abschnitte geteilt und als die mehreren Abschnitte des Frames codiert.
  • In Schritt S825 werden die mehreren Abschnitte der Würfelseite in der Servervorrichtung als die mehreren zweiten Videostreams gespeichert. Beispielsweise können die codierten mehreren Abschnitte der Würfelseite basierend auf einer Anforderung von einer Benutzervorrichtung für die zukünftige Wiedergabe gespeichert werden.
  • In Schritt S830 wird der erste Videostream zu einer Wiedergabevorrichtung gestreamt. Der erste Videostream kann beispielsweise als ein Basis- oder Minimalerfahrungsvideo für die Wiedergabe auf dem HMD gestreamt werden.
  • In Schritt S835 wird mindestens einer von den mehreren zweiten Videostreams zur Wiedergabevorrichtung gestreamt. Ein zweiter Stream kann beispielsweise von den mehreren zweiten Videostreams basierend auf einer Betrachtungsperspektive (oder auf was ein Betrachter des sphärischen Videos sich gegenwärtig konzentriert) ausgewählt werden.
  • In Schritt S840 wird an der Wiedergabevorrichtung der erste Videostream wird wiedergeben. Beispielsweise kann der erste Videostream gerendert und auf dem HMD angezeigt werden. In Schritt S845 wird an der Wiedergabevorrichtung die Wiedergabe von zwei (oder mehr) der mehreren zweiten Videostreams basierend auf einer bestimmten Betrachtungsperspektive gewechselt. Während ein Benutzer des HMD eine Betrachtungsperspektive ändert (z. B. seinen Kopf und/oder seine Augen bewegt), können die unterschiedlichen zweiten Videostreams für die Wiedergabe auf dem HMD ausgewählt werden.
  • In beispielhaften Implementierungen kann Video ohne eine gleichförmige Qualität aufzuweisen innerhalb von Frames und zwischen Frames gestreamt werden. Wenn ein Benutzer pausiert und sich umsieht, kann ein Inhalt mit hoher Qualität (z. B. hohe Auflösung) für die gesamte Sphäre des sphärischen Bildes gestreamt werden. Diese Technik könnte unter Verwendung der vorhandenen Streams implementiert werden: Hineinsuchen und Frames von allen erforderlichen Betrachtungsperspektiven decodieren und sie zu einem hochauflösenden Standbild zusammensetzen. Alternativ oder zusätzlich zu einem zusätzlichen Stream könnte ausgewählt und heruntergeladen werden. Bei einer Beispielimplementierung könnte eine höhere als die höchste Videoqualität (z. B. als ein Standbild) verwendet werden, wodurch ein Pausieren, um feine Details zu untersuchen, zu einer besseren Erfahrung gemacht wird.
  • 9 veranschaulicht ein Verfahren zum Streamen eines sphärischen Videos. Wie gezeigt in 9 wird in Schritt S905 bestimmt, ob ein sphärisches Streaming-Video pausiert wurde. Das Streaming-Video wird bei einer ersten Qualität gestreamt. Die Pause kann auf Benutzerinteraktion mit einer Wiedergabevorrichtung basieren und/oder das sphärische Streaming-Video kann konfiguriert sein, bei einem Zeitstempel(n) zu pausieren. Die Wiedergabevorrichtung kann die Pause zum Streaming-Server kommunizieren.
  • In Schritt S910 wird das Streamen des sphärischen Videos bei einer zweiten Qualität ausgelöst. Das Streamen kann die gesamte Sphäre des sphärischen Videos oder einen Abschnitt davon umfassen.
  • In Schritt ist S915 wird das mit der ersten Qualität gestreamte Video mit dem bei der zweiten Qualität gestreamten Video zusammengesetzt. Beispielsweise kann das bei der zweiten Qualität gestreamte Video Pixel einfüllen, die beim bei der ersten Qualität gestreamten Video fehlen. Beispielsweise kann das bei der zweiten Qualität gestreamte Video Pixel im bei der ersten Qualität gestreamten Video ersetzen. Beispielsweise kann das bei der zweiten Qualität gestreamte Video Pixel vom bei der ersten Qualität gestreamten Video überlagern.
  • Bei einem Anwendungsfall, der HMDs umfasst, sollte der Mittelabschnitt des Displays ein Bild hoher Qualität anzeigen. Dementsprechend sollten beispielhafte Implementierungen hochauflösenden Inhalt für die Mitte des Displays streamen. Weiter könnte mit dem Hinzufügen von Eyetracking hochauflösender Inhalt dorthin, wo das Auge sieht, geliefert werden. Auf der Streamingebene könnte ein schmales Video hoher Qualität in der Betrachtungsperspektive gestreamt werden. Auf der Decodierungsebene könnte ein Codec angepasst sein, nur den Mittelbereich vollständig zu decodieren (z. B. unter Verwendung von SVC). Beim Rendern könnte nur der Mittelbereich zur GPU in hoher Qualität hochgeladen werden (es ist auch möglich einige GPU-Bandbreite einzusparen).
  • 10 veranschaulicht ein Verfahren zum Streamen eines sphärischen Videos. Wie gezeigt in 10 wird in Schritt S1005 eine Betrachtungsperspektive für ein sphärisches Streaming-Video basierend auf einer Head Mount Display-(HMD)-Position und/oder Eyetracking bestimmt. Es kann beispielsweise ein Ausrichtungssensor konfiguriert sein, eine Ausrichtung (oder Änderung in der Ausrichtung) der Augen eines Betrachters (oder seines Kopfes) zu detektieren. Beispielsweise kann der Ausrichtungssensor einen Beschleunigungsmesser umfassen, um eine Bewegung zu detektieren, und ein Gyroskop, um eine Ausrichtung zu detektieren. Alternativ oder zusätzlich dazu kann der Ausrichtungssensor eine Kamera oder einen Infrarotsensor umfassen, der auf die Augen oder den Kopf des Betrachters fokussiert ist, um eine Ausrichtung der Augen oder des Kopfes des Betrachters zu bestimmen.
  • In Schritt S1010 wird eine foveale Referenz, die eine Referenz auf die foveale Struktur und foveale Position des menschlichen Auges ist, basierend auf der Betrachtungsperspektive bestimmt. Beispielsweise kann die foveale Referenz eine Betrachtungsperspektive und eine Betrachtungstiefe, die unter Verwendung von Eyetracking bestimmt wird, berücksichtigen. Bei einer Beispielimplementierung kann die Betrachtungstiefe basierend auf einem fovealen Abstand zwischen jedem Auge bestimmt werden. Da sich menschliche Augen auf eine variierende Tiefe fokussieren, kann sich mit anderen Worten der Abstand zwischen der Fovea (z. B. Pupille) jedes Auges ändern. Das sphärische Video wird dann (S1015) derart gestreamt, dass ein Bild hoher Qualität auf dem HMD an der fovealen Referenz angezeigt wird.
  • 11 veranschaulicht ein Verfahren zum Streamen eines sphärischen Videos. Wie gezeigt in 11 wird in Schritt S1105 ein erster Abschnitt eines sphärischen Streaming-Videos bestimmt, bei an einer ersten Qualität gestreamt zu werden, die niedriger ist als eine mit einem zweiten Abschnitt des sphärischen Streaming-Videos verknüpfte zweite Qualität. Beispielsweise könnte der erste Abschnitt eines sphärischen Streaming-Videos als außerhalb einer Betrachtungsperspektive eines Betrachters bestimmt werden. Daher ist ein Video hoher Qualität wahrscheinlich nicht wichtig für eine Benutzererfahrung.
  • In Schritt S1110 wird das Streamen des sphärischen Videos ausgelöst, sodass der erste Abschnitt des sphärischen Streaming-Videos mindestens eines von (1) einer niedrigen Framerate, einem Stream mit hoher Auflösung, (2) einem Monostream und/oder (3) einer reduzierten Farbe (oder schwarzweiss) ist. Beispielsweise kann ein Stream mit hoher Auflösung und einer niedrigen Framerate bevorzugt sein, da das Bild selbst klarer ist, obwohl die Änderungen an dem Bild weniger reibungslos sein können. Ein Monostream kann gegenüber einem 3D-Stream mit geringer Qualität bevorzugt sein. Eine reduzierte Farbe eines Bildes kann nicht so scharf sein, aber das Bild kann klarer sein.
  • Streams können basierend auf dem erwarteten Verhalten des Beobachters gewechselt werden. Beispielsweise kann eine beispielhafte Implementierung in der Lage sein, vorherzusagen, wo der Benutzer einer Wiedergabevorrichtung als Nächstes hinsehen wird. Beim Überwachen einer Kopfbewegung eines Benutzers wird dieser dazu tendieren, ihn nach links/rechts zu drehen, wenn er die Szene erforscht. Indem die Richtung und die relative Bewegung bestimmt werden, kann der Stream durch das Vorhersagen, wo der Kopf des Benutzers beim nächsten Keyframe sein wird, geändert werden. Dies kann verwendet werden, um sicherzustellen, dass hochauflösender Inhalt so häufig wie möglich ansehbar ist.
  • 12 veranschaulicht ein Verfahren zum Streamen von einem sphärischen Video. Wie gezeigt in 12 wird in Schritt S1205 ein Verhalten eines Benutzers eines Head Mount Displays (HMD) bestimmt. Es kann beispielsweise ein Ausrichtungssensor konfiguriert sein, eine Ausrichtung (oder Änderung in der Ausrichtung) der Augen eines Betrachters (oder seines Kopfes) zu detektieren. Beispielsweise kann der Ausrichtungssensor einen Beschleunigungsmesser umfassen, um eine Bewegung zu detektieren, und ein Gyroskop, um eine Ausrichtung zu detektieren. Alternativ oder zusätzlich dazu kann der Ausrichtungssensor eine Kamera oder einen Infrarotsensor umfassen, der auf die Augen oder den Kopf des Betrachters fokussiert ist, um eine Ausrichtung der Augen oder des Kopfes des Betrachters zu bestimmen. Historisch (z. B. eine letzte Bewegung) Ausrichtungsänderungen können verwendet werden, um das Verhalten oder die nächste Bewegung zu bestimmen.
  • In Schritt S1210 wird von einem Stream des sphärischen Videos vorhergesagt, dass er auf das HMD gestreamt wird, basierend auf dem bestimmten Verhalten. Beispielsweise kann eine Links-Rechts-Bewegung (oder Verhalten) bestimmt werden. Die Links-Rechts-Bewegung kann verwendet werden, um einen nächsten zu streamenden Stream (z. B. hohe Qualität) vorherzusagen. Der nächste zu streamende Stream kann beim nächsten Keyframeintervall codiert werden. Dann wird in Schritt S1215 der vorhergesagte Stream des sphärischen Videos zum HMD (oder einer Computervorrichtung, die mit dem HMD verknüpft ist) gestreamt.
  • Skalierbare Videocodierung (SVC) kann konfiguriert sein, eine schnellere Anpassung der Qualität zu ermöglichen als Streamwechseln. Ein Hybrid aus Streamwechseln und skalierbarem Stream könnte auch bevorzugt sein.
  • 13 veranschaulicht ein Verfahren zum Streamen von einem sphärischen Video. Wie gezeigt in 13 in Schritt S1305 ein sphärisches Video bei einer ersten Qualität. In Schritt S1310 wird das Streamen des sphärischen Videos ausgelöst. Es kann beispielsweise eine Wiedergabevorrichtung anfordern, dass das Video über eine Kommunikationsverbindung gestreamt wird. In Schritt S1315 wird mindestens ein Frame des sphärischen Videos während des Streamens des sphärischen Videos fallen gelassen, um eine zweite Qualität für das sphärische Video zu erreichen. Die zweite Qualität für das sphärische Video ist niedriger als die erste Qualität für das sphärische Video. Es könnte beispielsweise jeder zweite Frame in einem Anwendungsfall fallengelassen werden, wo der Stream als ein Stream von geringer Qualität gekennzeichnet ist. Bei einer Beispielimplementierung könnte der Stream von einer Kennzeichnungung von geringer Qualität zu hoher Qualität wechseln. Dementsprechend könnte das Fallenlassen von Frames beendet werden und/oder geringere Frames könnten fallen gelassen werden, was in einem Stream höherer Qualität resultiert.
  • Das Verwenden mosaikartiger Netze und eine Ausführung von Verzerrungskorrektur auf der Eckpunktebene kann eine stückweise Annäherung der Verzerrungskorrektur geben. Unter der Annahme von gleicher Dreiecksgröße entspricht dies beispielsweise dem Ausführen der Verzerrungskorrektur nach dem Rendern an dem fertiggestellten Netz. Ein zusätzlicher Renderingdurchgang kann jedoch nicht erforderlich sein. Das Verwenden mosaikartiger Netze kann die folgenden Vorteile aufweisen (1) Nach-Verzerrung erfordert das Rendern zu einem Netz mit größerer Textur, (2) das Sampeln kann pro Bildschirmpixel ausgeführt werden, (3) entfernt einen Renderingdurchgang, (3) nicht ansehbare Bilder können vor der Renderzeit entfernt werden und (4) chromatische Aberration kann auf Kosten der Verdreifachung der Menge an Geometrie, die verarbeitet wird, korrigiert werden.
  • 14 veranschaulicht ein Verfahren zum Streamen von einem sphärischen Video. Wie gezeigt in 14 werden in Schritt S1405 decodierte Pixel in mehrere Eckpunktreihen gruppiert. Beispielsweise können die angrenzenden Pixel in eine Polygon-(z. B. dreieckige)-Form gruppiert werden.
  • In Schritt S1410 werden die mehreren Eckpunktreihen in ein mosaikartiges Netz gruppiert. Beispielsweise kann das mosaikartige Netz die Form eines Würfels aufweisen.
  • In Schritt S1415 wird eine Verzerrungskorrektur auf das mosaikartige Netz angewandt. Beispielsweise kann die Wiedergabevorrichtung (z. B. HMD) eine bekannte oder bestimmte Verzerrung aufweisen, die beispielsweise mit einer Linse und/oder einem Display verknüpft ist. Diese Verzerrung kann durch Anwenden einer Korrektur auf das mosaikartige Netz korrigiert werden. Dann wird in Schritt S1420 das verzerrungskorrigierte mosaikartige Netz, zum Anzeigen auf dem HMD gerendert.
  • 15 ist ein Blockdiagramm eines beispielhaften Systems 1500 zum Erfassen und Rendern stereoskopischer Panoramen in einer virtuellen Realität-(VR)-3D-Umgebung. Im beispielhaften System 1500 kann ein Kameraträgersystem 1502 Bilder über ein Netzwerk 1504 erfassen und bereitstellen oder kann alternativ die Bilder direkt an ein Bildverarbeitungssystem 1506 zur Analyse und zum Verarbeiten bereitstellen. Bei einigen Implementierungen des Systems 1500 kann eine mobile Vorrichtung 1508 als das Kameraträgersystem 1502 fungieren, um Bilder überall im Netzwerk 1504 bereitzustellen. Sobald die Bilder erfasst wurden, kann das Bildverarbeitungssystem 1506 eine Anzahl an Berechnungen und Prozesse an den Bildern ausführen und beispielsweise die verarbeiteten Bilder an eine Head Mounted Display-(HMD)-Vorrichtung 1510 zum Rendern über das Netzwerk 1504 bereitstellen. Bei einigen Implementierungen kann das Bildverarbeitungssystem 1506 auch die verarbeiteten Bilder an die mobile Vorrichtung 1508 und/oder an die Computervorrichtung 1512 zum Rendern, Speichern oder für weiteres Verarbeiten bereitstellen.
  • Die HMD-Vorrichtung 1510 kann ein Headset der virtuellen Realität, eine Brille, ein Okular oder eine andere tragbare Vorrichtung darstellen, die fähig ist, Inhalte mit virtueller Realität anzuzeigen. Im Betrieb die HMD-Vorrichtung 1510 eine VR-Anwendung (nicht gezeigt) ausführen, die gegenüber einem Benutzer empfangene und/oder verarbeitete Bilder wiedergeben kann. Bei einigen Implementierungen kann die VR-Anwendung durch eine oder mehrere von den Vorrichtungen 1506, 1508 oder 1512 gehostet werden, die in 15 gezeigt sind. Bei einem Beispiel kann die HMD-Vorrichtung 1510 eine Videowiedergabe einer Szene bereitstellen, die durch das Kameraträgersystem 1502 erfasst wurde. Bei einem weiteren Beispiel kann die HMD-Vorrichtung 1510 die Wiedergabe von Standbildern, die in eine einzelne panoramaartige Szene zusammengeheftet sind, bereitstellen.
  • Das Kameraträgersystem-1502 kann zur Verwendung als eine Kamera konfiguriert sein (die auch als Erfassungsvorrichtung bezeichnet werden kann) und/oder Verarbeitungsvorrichtung, um Bilddaten zum Rendern von Inhalt in einer VR-Umgebung zu sammeln. Obwohl das Kameraträgersystem 1502 als ein Blockdiagramm beschrieben mit bestimmter Funktionalität hierin gezeigt ist, kann das Trägersystem 1502 andere Formen annehmen und zusätzlich Zusatzfunktionalität aufweisen. Der Einfachheit halber beim Beschreiben der Funktionalität des Systems 1500 zeigt 15 beispielsweise das Kameraträgersystem 1502 ohne um das Trägersystem herum angeordnete Kameras, um Bilder zu erfassen. Andere Implementierungen des Kameraträgersystems 1502 können jegliche Anzahl von Kameras umfassen, die um den Umfang eines kreisförmigen Kameraträgersystems herum angeordnet sein können, wie beispielsweise das Trägersystem 1502.
  • Wie gezeigt in 15 umfasst das Kameraträgersystem 1502 eine Anzahl an Kameras 1530 und ein Kommunikationssystem 1532. Die Kameras 1530 können eine einzelne Fotokamera oder eine einzelne Videokamera umfassen. Bei einigen Implementierungen können die Kameras 1530 mehrere Fotokameras oder mehrere Videokameras umfassen, die nebeneinander entlang dem Außenumfang (z. B. Ring) des Trägersystems 1502 angeordnet (z. B. gesetzt) sind. Die Kameras 1530 können eine Videokamera, ein Bildsensor, eine Stereokamera, eine Infrarotkamera und/oder eine mobile Vorrichtung sein. Das Kommunikationssystem 1532 kann zum Hochladen und Herunterladen von Bildern, Befehlen und/oder anderem mit einer Kamera in Zusammenhang stehendem Inhalt verwendet werden. Die Kommunikation kann verdrahtet oder drahtlos sein und kann über ein privates oder öffentliches Netzwerk erfolgen.
  • Das Kameraträgersystem 1502 kann konfiguriert sein, als stationäres Trägersystem oder als ein drehbares Trägersystem zu fungieren. Jede Kamera auf dem Trägersystem ist versetzt von einem Drehpunkt für das Trägersystem angeordnet (z. B. platziert). Das Kameraträgersystem 1502 kann konfiguriert sein, um 360 Grad drehbar zu sein, um beispielsweise alles oder einen Abschnitt einer 360-Grad-Ansicht einer Szene zu durchlaufen und zu erfassen. Bei einigen Implementierungen kann das Trägersystem 1502 konfiguriert sein, in einer Ruhelage zu arbeiten, und bei einer derartigen Konfiguration können zusätzliche Kameras zu dem Trägersystem hinzugefügt werden, um zusätzlichen Blickwinkel nach außen für eine Szene zu erfassen.
  • Bei einigen Implementierungen umfasst das Kameraträgersystem 1502 mehrere digitale Videokameras, die in einer Seite-an-Seite- oder einer fortlaufenden Anordnung angeordnet sind, sodass ihre Linsen jeweils in eine radial nach außen gerichtete Richtung zeigen, um einen unterschiedlichen Abschnitt der umgebenden Szene oder Umgebung anzusehen. Bei einigen Implementierungen sind die mehreren digitale Videokameras in einer tangentialen Konfiguration mit einer Betrachtungsrichtungstangente zum kreisförmigen Kameraträgersystem 1502 angeordnet. Das Kameraträgersystem 1502 kann beispielsweise mehrere digitale Videokameras umfassen, die derart angeordnet sind, dass ihre Linsen jeweils in einer radial nach außen gerichteten Richtung weisen, während sie tangential zu einer Basis des Trägersystems angeordnet sind. Die digitalen Videokameras können derart gerichtet werden, dass sie Inhalt in unterschiedlichen Richtungen erfassen, um Abschnitte mit unterschiedlichen Winkeln der umgebenden Szene anzusehen.
  • Bei einigen Implementierungen sind die Kameras in Stereopaaren an dem Kameraträgersystem 1502 angeordnet. Bei einer derartigen Konfiguration ist jede erste Kamera in jedem Stereopaar tangential zu einer Kreisbahn der Kameraträgersystembasis angeordnet (z. B. platziert) und (z. B. mit der Kameralinse) in einer Richtung nach links zeigend ausgerichtet. Jede zweite Kamera in jedem Stereopaar ist tangential zur Kreisbahn der Kameraträgersystembasis angeordnet (z. B. platziert) und (z. B. mit der Kameralinse) in einer Richtung nach rechts zeigend ausgerichtet.
  • Beispielhafte Einstellungen für die auf dem Kameraträgersystem verwendeten Kameras 1502 können einen Progressive Scan-Modus bei ungefähr 60 Frames pro Sekunde umfassen (d. h., ein Modus, bei dem jede Rasterlinie gesampelt wird, um jeden Frame des Videos zu erzeugen, anstatt jede zweite Linie, wie es der Standardaufnahmemodus der meisten Videokameras ist). Außerdem kann jede der Kameras mit identischen (oder ähnlichen) Einstellungen konfiguriert sein. Indem jede Kamera mit identischen (oder ähnlichen) Einstellungen konfiguriert wird, kann dies den Vorteil bereitstellen, Bilder zu erfassen, die nach der Erfassung in einer wünschenswerten Art und Weise aneinandergeheftet werden können. Beispielhafte Einstellungen können das Einstellen von einer oder mehreren der Kameras auf den gleichen Zoom, die gleiche Bildschärfe, Belichtung und Verschlusszeit sowie das Einstellen der Kameras, sodass sie einen Weißabgleich aufweisen, wobei die Stabilisierungsmerkmale entweder korreliert oder ausgeschaltet sind, umfassen.
  • Bei einigen Implementierungen kann das Kameraträgersystem 1502 vor dem Verwenden kalibriert werden, um ein oder mehrere Bilder oder Video zu erfassen. Jede Kamera auf dem Kameraträgersystem 1502 kann beispielsweise kalibriert und/oder konfiguriert sein, ein Panoramavideo aufzunehmen. Die Einstellungen können das Konfigurieren des Trägersystems umfassen, sodass es beispielsweise bei einer bestimmten Drehgeschwindigkeit um einen 360-Grad-Durchlauf mit einem breiten Sichtfeld und im Uhrzeigersinn oder Gegenuhrzeigersinn arbeitet. Bei einigen Implementierungen können die Kameras auf dem Trägersystem 1502 konfiguriert sein, beispielsweise einen Frame pro Grad eines 360-Grad-Durchlaufs eines Erfassungswegs um eine Szene herum zu erfassen. Bei einigen Implementierungen können die Kameras auf dem Trägersystem 1502 konfiguriert sein, beispielsweise mehrere Frames pro Grad eines 360-Grad-(oder weniger)-Durchlaufs eines Erfassungswegs um eine Szene herum zu erfassen. Bei einigen Implementierungen können die Kameras auf dem Trägersystem 1502 konfiguriert sein, beispielsweise mehrere Frames um einen Durchlauf eines Erfassungswegs herum um eine Szene herum zu erfassen, ohne insbesondere gemessene Frames pro Grad erfassen zu müssen.
  • Bei einigen Implementierungen können die Kameras konfiguriert (z. B. eingerichtet) sein, synchron zu arbeiten, um Video von den Kameras auf dem Kameraträgersystem zu einem spezifischen Zeitpunkt zu erfassen. Bei einigen Implementierungen können die Kameras konfiguriert sein, synchron zu arbeiten, um bestimmte Abschnitte von Video von einem oder mehreren der Kameras über einen Zeitraum zu erfassen. Ein weiteres Beispiel des Kalibrierens des Kameraträgersystems kann das Konfigurieren umfassen, wie eingehende Bilder gespeichert werden. Es können beispielsweise eingehende Bilder als Bilder oder Video gespeichert werden (z. B. .avi-Dateien, mpg-Dateien) und diese gespeicherten Bilder können ins Internet, zu einem anderen Server oder einer anderen Vorrichtung hochgeladen werden oder lokal mit jeder Kamera auf dem Kameraträgersystem 1502 gespeichert werden. Bei einigen Implementierungen können eingehende Bilder als codiertes Video gespeichert werden.
  • Das Bildverarbeitungssystem 1506 umfasst ein Interpolationsmodul 1514, ein Erfassungskorrekturmodul 1516 und ein Heftmodul 1518. Das Interpolationsmodul 1516 stellt Algorithmen dar, die beispielsweise verwendet werden können, um Abschnitte von Digitalbildern und digitalem Video zu sampeln und eine Anzahl an interpolierten Bildern zu bestimmen, von denen es wahrscheinlich ist, dass sie zwischen angrenzenden vom Kameraträgersystem erfassten Bildern 1502 auftreten. Bei einigen Implementierungen kann das Interpolationsmodul 1514 konfiguriert sein, interpolierte Bildfragmente, Bildabschnitte und/oder vertikale oder horizontale Bildstreifen zwischen angrenzenden Bildern zu bestimmen. Bei einigen Implementierungen kann das Interpolationsmodul 1514 konfiguriert sein, Flussfelder (und/oder Flussvektoren) zwischen in Beziehung stehenden Pixeln in angrenzenden Bildern zu bestimmen. Flussfelder können verwendet werden, um sowohl Transformationen zu kompensieren, denen Bilder unterzogen wurden, als auch für das Verarbeiten von Bildern, die Transformationen unterzogen wurden. Es können beispielsweise Flussfelder verwendet werden, um eine Transformation eines bestimmten Pixelrasters eines erlangten Bildes zu kompensieren. Bei einigen Implementierungen kann das Interpolationsmodul 1514 durch Interpolation von Umgebungsbildern ein oder mehrere Bilder erzeugen, die nicht Teil der erfassten Bilder sind, und kann die erzeugten Bilder in die erfassten Bilder verschachteln, um zusätzliche Inhalte mit virtueller Realität für eine Szene zu erzeugen.
  • Das Erfassungskorrekturmodul 1516 kann konfiguriert sein, erfasste Bilder durch Kompensieren einer nichtidealen Erfassungseinrichtung zu korrigieren. Beispielhafte Erfassungseinrichtungen können mittels nicht begrenzendem Beispiel eine kreisförmige Kameratrajektorie, eine parallele Haupt-(Kamera)-Achse, eine Betrachtungsrichtung, die zur Kameratrajektorie senkrecht ist, eine Betrachtungsrichtung, die zur Kameratrajektorie tangential ist, und/oder andere Erfassungsbedingungen umfassen. Bei einigen Implementierungen kann das Erfassungskorrekturmodul 1516 konfiguriert sein, eines oder beide von einer nicht kreisförmigen Kameratrajektorie während der Bilderfassung und/oder einer nichtparallelen Hauptachse während der Bilderfassung zu kompensieren.
  • Das Erfassungskorrekturmodul 1516 kann konfiguriert sein, eine bestimmte Reihe von Bildern anzupassen, um Inhalt, der unter Verwendung mehrerer Kameras erfasst wurde, zu kompensieren, bei denen die Kameratrennung größer als ungefähr 30 Grad ist. Wenn beispielsweise der Abstand zwischen den Kameras 40 Grad beträgt, kann das Erfassungskorrekturmodul 1516 jeden fehlenden Inhalt in einer bestimmten Szene basierend auf zu wenig Bildfeld durch Sammeln von Inhalt von zusätzlichen Kameras oder durch Interpolieren des fehlenden Inhalts berücksichtigen.
  • Bei einigen Implementierungen kann das Erfassungskorrekturmodul 1516 auch konfiguriert sein, die Reihe von Bildern anzupassen, um Kameraausrichtungsfehler aufgrund von Kamerahaltungsfehlern und dergleichen zu kompensieren. Wenn Kamerahaltungsfehler (z. B. Fehler aufgrund von Ausrichtung und Position der Kamera) während der Bilderfassung auftreten, kann das Modul 1516 beispielsweise zwei oder mehr Spalten von Pixeln von mehreren Bildframes mischen, um Artefakte einschließlich Artefakten aufgrund dürftiger Belichtung (oder Änderungen der Belichtung von Bildframe zu Bildframe) und/oder aufgrund von Ausrichtungsfehlern von einer oder mehreren Kameras zu entfernen. Das Heftmodul 1518 kann konfiguriert sein, stereoskopische 3D-Bilder basierend auf definierten, erlangten und/oder interpolierten Bildern zu erzeugen. Das Heftmodul 1518 kann zum Mischen/Zusammenheften von Pixeln und/oder Bildstreifen von mehreren Bildabschnitten konfiguriert sein. Zusammenheften kann beispielsweise auf Flussfeldern wie bestimmt, durch das Interpolationsmodul 1514 basieren. Das Heftmodul 1518 kann interpolierte Bildframes (vom Interpolationsmodul 1514) empfangen, die nicht Teil der Reihe von Bildern sind, und die Bildframes in die Reihe von Bildern verschachteln. Das Verschachteln kann umfassen, dass das Modul 1518 die Bildframes und die Reihe von Bildern basierend mindestens teilweise auf dem optischen Fluss, der durch das Interpolationsmodul 1514 erzeugt wird, aneinanderheftet. Die zusammengeheftete Kombination kann verwendet werden, um ein Omnistereopanorama zum Anzeigen in einem VR-HMD zu erzeugen. Die Bildframes können auf erfassten Videostreams basieren, die von einer Anzahl an Stereopaaren von Kameras, die auf einem bestimmten Trägersystem angeordnet sind, gesammelt wurden. Solch ein Trägersystem kann ungefähr 6 bis zu ungefähr 8 Kamerastereopaare umfassen. Andere Kombinationen solch eines Trägersystems können beispielsweise 12 bis 16 nicht gepaarte Kameras umfassen. Bei einigen Implementierungen kann das Trägersystem ein oder zwei Kamerastereopaare umfassen. Bei einigen Implementierungen kann das Trägersystem so viele Kamerastereopaare umfassen, die nebeneinander auf das Trägersystem gesetzt werden können. Bei einigen Implementierungen kann das Heftmodul 1518 Haltungsinformationen verknüpft mit mindestens einem Stereopaar verwenden, um einen Abschnitt der Reihe von Bildern vor dem Ausführen des Verschachtelns vorab zusammenzuheften.
  • Bei einigen Implementierungen des Bildverarbeitungssystems 1506 kann das Heftmodul 1518 eine optionale Komponente sein. Wenn beispielsweise Bilder in einer korrekten überstreichenden Bewegung über 360 Grad ohne Fehler erfasst werden, kann das Aneinanderheften der Bilder nicht erforderlich sein, um ein stereoskopisches 3D-Panorama einer Szene zu erlangen.
  • Das Bildverarbeitungssystem 1506 umfasst auch ein Projektionsmodul 1520 und ein Bildkorrekturmodul 1522. Das Projektionsmodul 1520 kann konfiguriert sein, stereoskopische 3D-Bilder durch Projizieren von Bildern in eine ebene Perspektivebene zu erzeugen. Das Projektionsmodul 1520 kann beispielsweise eine Projektion der bestimmten Reihe von Bildern erlangen und kann eine Umprojektion eines Abschnitts der Reihe von Bildern durch Konvertieren von einigen der Bilder von einer ebenen perspektivischen Projektion in eine sphärische (d. h. äquirektanguläre) perspektivische Projektion konfigurieren. Die Konvertierungen umfassen Projektionsmodelliertechniken.
  • Projektionsmodellieren kann das Definieren eines Projektionszentrums und einer Projektionsebene umfassen. In den in dieser Offenbarung beschriebenen Beispielen kann das Projektionszentrum einen optischen Mittelpunkt bei einem Ursprung (0,0,0) eines vordefinierten xyz-Koordinatensystems darstellen. Die Projektionsebene kann vor dem Projektionszentrum angeordnet sein, wobei eine Kamera derart gerichtet ist, dass sie Bilder entlang einer z-Achse im xyz-Koordinatensystem erfasst. Im Allgemeinen kann eine Projektion unter Verwendung der Schnittfläche der ebenen Perspektivebene eines bestimmten Bildstrahls von einer Koordinate (x, y, z) zum Projektionszentrum berechnet werden. Konvertierungen der Projektion können durch Manipulieren der Koordinatensysteme unter Verwendung von Matrixberechnungen erfolgen.
  • Projektionsmodellieren für stereoskopische Panoramen umfasst generell das Verwenden von Mehrperspektivebildern, die kein einzelnes Projektionszentrum aufweisen. Die Mehrperspektive ist typischerweise als eine Kreisform (z. B. sphärisch) (siehe 13B) gezeigt. Rendern kann die Sphäre als eine Annäherung beim Umwandeln von einem Koordinatensystem in ein anderes verwenden.
  • Im Allgemeinen stellt eine sphärische (d. h. äquirektangulare) Projektion eine Ebene bereit, die eine Sphärenform aufweist, wobei das Zentrum der Sphäre das Projektionszentrum gleichmäßig umgibt. Ein perspektivische Projektion stellt eine Ansicht bereit, die Bilder von 3D-Objekten auf einer ebenen (z. B. 2D-Fläche) Perspektivebene bereitstellt, um die tatsächliche visuelle Wahrnehmung eines Benutzers anzunähern. Im Allgemeinen können Bilder auf flachen Bildebenen (z. B. Computermonitor, LCD-Bildschirm einer mobilen Vorrichtung) gerendert werden, sodass die Projektion in ebener Perspektive gezeigt wird, um eine unverzerrte Ansicht bereitzustellen. Eine ebene Projektion ermöglicht jedoch keine 360-Grad-Sichtfelder, sodass erfasste Bilder (z. B. Video) in äquirektangularer (d. h. sphärischer) Perspektive gespeichert und in eine ebene Perspektive zur Renderzeit reprojiziert werden können.
  • Nachdem bestimmte Umprojektionen abgeschlossen sind, kann das Projektionsmodul 1520 umprojizierte Abschnitte von Bildern zum Rendern in einem HMD senden. Das Projektionsmodul 1520 kann beispielsweise Abschnitte einer Umprojektion an ein Display für das linke Auge im HMD 1510 und Abschnitte der Umprojektionen an ein Display für das rechte Auge im HMD 1510 bereitstellen. Bei einigen Implementierungen kann das Projektionsmodul 1520 konfiguriert sein, Vertikalparallaxe durch Umprojizieren von einer ebenen perspektivischen Projektion in eine sphärische perspektivische Projektion zu berechnen und zu reduzieren.
  • Das Bildkorrekturmodul 1522 kann konfiguriert sein, stereoskopische 3D-Bilder durch Kompensieren von Verzerrung zu erzeugen, einschließlich, aber nicht beschränkt auf, perspektivische Verzerrung. Bei einigen Implementierungen kann das Bildkorrekturmodul 1522 einen bestimmten Abstand bestimmen, bei dem ein optischer Fluss für 3D-Stereo aufrechterhalten wird, und es kann die Bilder segmentieren, um nur Abschnitte einer Szene zu zeigen, in der solch ein Fluss aufrechterhalten wird. Das Bildkorrekturmodul 1522 kann beispielsweise bestimmen, dass der optische Fluss von 3D-Stereobildern zwischen ungefähr einem radialen Meter von einer Außenkante des kreisförmigen Kameraträgersystems 1502 beispielsweise bis zu ungefähr fünf radialen Metern von der Außenkante des Kameraträgersystems 1502 aufrechterhalten wird. Dementsprechend kann das Bildkorrekturmodul 1522 sicherstellen, dass das Muster zwischen einem Meter und fünf Metern zum Rendern im HMD 1510 in einer Projektion ausgewählt wird, die verzerrungsfrei ist, während auch geeignete 3D-Stereoffekte bereitgestellt werden, die eine geeignete Parallaxe zu einem Benutzer des HMD 1510 sind.
  • Bei einigen Implementierungen kann das Bildkorrekturmodul 1522 einen optischen Fluss durch Anpassen bestimmter Bilder abschätzen. Die Anpassungen können beispielsweise das Berichtigen eines Abschnitts von Bildern, Bestimmen einer abgeschätzten Kamerahaltung, die mit dem Abschnitt von Bildern verknüpft ist, und das Bestimmen eines Flusses zwischen Bildern im Abschnitt umfassen. In einem nicht begrenzenden Beispiel kann das Bildkorrekturmodul 1522 einen Unterschied in einer Drehung zwischen zwei bestimmten Bildern kompensieren, in denen ein Fluss berechnet wird. Diese Korrektur kann derart fungieren, dass sie die Flusskomponente entfernt, die durch einen Drehungsunterschied (d. h. Drehungsfluss) bewirkt wird. Solch eine Korrektur resultiert in durch die Übersetzung bewirktem Fluss (z. B. Parallaxe-Fluss), der die Komplexität von Flussabschätzungsberechnungen, während des Herstellens der resultierenden Bilder korrekt und robust reduzieren kann. Bei einigen Implementierungen können Prozesse zusätzlich zur Bildkorrektur vor dem Rendern an den Bildern ausgeführt werden. Beispielsweise können Heft-, Misch- oder zusätzliche Korrekturprozesse an den Bildern ausgeführt werden, bevor das Rendern erfolgt.
  • Bei einigen Implementierungen kann das Bildkorrekturmodul 1522 die Projektionsverzerrung korrigieren, die durch Bildinhalt bewirkt ist, der mit Kamerageometrien erfasst wurde, die nicht auf ebenen perspektivischen Projektionen basieren. Beispielsweise können Korrekturen an den Bildern durch Interpolieren von Bildern von einer Anzahl an unterschiedlichen Betrachtungswinkeln und durch Konditionieren von Betrachtungsstrahlen angewandt werden, die mit den Bildern als von einem gemeinsamen Ursprung herstammend verknüpft sind. Die interpolierten Bilder können in erfasste Bilder verschachtelt werden, um virtuellen Inhalt zu erzeugen, der am menschlichen Auge mit einem angenehmen Niveau einer Drehungsparallaxe für das menschliche Auge korrekt erscheint.
  • Im beispielhaften System 1500 können die Vorrichtungen 1506, 1508 und 1512 ein Laptop, ein Desktop-Computer, eine mobile Computervorrichtung oder eine Spielkonsole sein. Bei einigen Implementierungen können die Vorrichtungen 1506, 1508 und 1512 eine mobile Computervorrichtung sein, die innerhalb der HMD-Vorrichtung 1510 angeordnet (z. B. platziert/lokalisiert) werden kann. Die mobile Computervorrichtung kann eine Anzeigevorrichtung umfassen, die beispielsweise als der Bildschirm für die HMD-Vorrichtung 1510 verwendet werden kann. Die Vorrichtungen 1506, 1508 und 1512 können Hardware und/oder Software umfassen, um eine VR-Anwendung auszuführen. Außerdem können die Vorrichtungen 1506, 1508 und 1512 Hardware und/oder Software umfassen, die 3D-Bewegung der HMD-Vorrichtung 1510 erkennen, überwachen und nachverfolgen kann, wenn diese Vorrichtungen vor der HMD-Vorrichtung 1510 platziert oder innerhalb eines Bereichs von Positionen relativ dazu gehalten werden. Bei einigen Implementierungen können die Vorrichtungen 1506, 1508 und 1512 zusätzlichen Inhalt an die HMD-Vorrichtung 1510 über das Netzwerk 1504 bereitstellen. Bei einigen Implementierungen können die Vorrichtungen 1502, 1506, 1508, 1510 und 1512 mit einer oder mehreren zueinander verbunden sein/eine Schnittstelle bilden entweder gepaart mit oder verbunden durch Netzwerk 1504. Die Verbindung kann verdrahtet oder drahtlos sein. Das Netzwerk 1504 kann ein allgemeines Kommunikationsnetzwerk oder ein privates Kommunikationsnetzwerk sein.
  • Das System 1500 kann elektronischen Informationsspeicher umfassen. Der elektronische Informationsspeicher kann ein nicht flüchtiges Speichermedium umfassen, das elektronisch Informationen speichert. Der elektronische Speicher kann konfiguriert sein, erfasste Bilder, erlangte Bilder, vorverarbeitete Bilder, nachverarbeitete Bilder usw. zu speichern. Mit irgendwelchen der offenbarten Kameraträgersysteme erfasste Bilder können als ein oder mehrere Videostreams verarbeitet und gespeichert oder als individuelle Frames gespeichert werden. Bei einigen Implementierungen kann ein Speichern während der Erfassung erfolgen und Rendern kann direkt nach Abschnitten von Erfassung erfolgen, um schnelleren Zugriff auf panoramaartigen Stereoinhalt zu ermöglichen, früher als wenn die Erfassung und Verarbeitung gleichzeitig erfolgen würden.
  • Im Beispiel von 16A kann ein Videocodierersystem 1600 mindestens eine Computervorrichtung sein oder umfassen und sollte als praktisch jede Computervorrichtung darstellend verstanden werden, die konfiguriert ist, die hierin beschriebenen Verfahren auszuführen. Als solches kann das Videocodierersystem 1600 als verschiedene Komponenten umfassend, die verwendet werden können, um die hierin beschriebenen Techniken oder unterschiedliche oder zukünftige Versionen davon zu implementieren, verstanden werden. Beispielsweise ist das Videocodierersystem 1600 als mindestens einen Prozessor 1605 sowie mindestens einen Speicher 1610 (z. B. ein nicht flüchtiges computerlesbares Speichermedium) umfassend veranschaulicht.
  • 16A veranschaulicht das Videocodierersystem gemäß mindestens einer beispielhaften Ausführungsform. Wie gezeigt in 16A umfasst das Videocodierersystem 1600 den mindestens einen Prozessor 1605, den mindestens einen Speicher 1610, eine Steuerung 1620 und einen Videocodierer 1625. Der mindestens eine Prozessor 1605, der mindestens eine Speicher 1610, die Steuerung 1620 und der Videocodierer 1625 sind kommunikativ über Bus 1615 gekoppelt.
  • Es ist denkbar, dass der mindestens eine Prozessor 1605 verwendet werden kann, um Befehle auszuführen, die in dem mindestens einen Speicher 1610 gespeichert sind, um die verschiedenen hierin beschriebenen Merkmale und Funktionen oder zusätzliche oder alternative Merkmale und Funktionen dadurch zu implementieren. Natürlich können der mindestens eine Prozessor 1605 und der mindestens eine Speicher 1610 für verschiedene andere Zwecke verwendet werden. Es ist insbesondere offensichtlich, dass der mindestens eine Speicher 1610 als ein Beispiel unterschiedlicher Arten von Speicher und zugehöriger Hardware und Software darstellend verstanden werden kann, die verwendet werden könnten, um irgendwelche der hierin beschriebenen Module zu implementieren.
  • Der mindestens eine Speicher 1610 kann konfiguriert sein, Daten und/oder Informationen zu speichern, die mit dem Videocodierersystem 1600 verknüpft sind. Der mindestens eine Speicher 1610 kann eine geteilte Ressource sein. Beispielsweise kann das Videocodierersystem 1600 ein Element eines größeren Systems (z. B. eines Servers, eines Personal-Computers, einer mobilen Vorrichtung und dergleichen) sein. Daher kann der mindestens eine Speicher 1610 konfiguriert sein, Daten und/oder Informationen zu speichern, die mit anderen Elementen (z. B. Bild/Video-Serving, Webbrowsing oder verdrahtete/drahtlose Kommunikation) innerhalb des größeren Systems verknüpft sind.
  • Die Steuerung 1620 kann konfiguriert sein, verschiedene Steuersignale zu erzeugen und die Steuersignale zu verschiedenen Blöcken im Videocodierersystem 1600 zu kommunizieren. Die Steuerung 1620 kann konfiguriert sein, die Steuersignale zu erzeugen, um die nachfolgend beschriebenen Techniken zu implementieren. Die Steuerung 1620 kann konfiguriert sein, den Videocodierer 1625 zu steuern, um ein Bild, eine Sequenz von Bildern, einen Videoframe, eine Videosequenz und dergleichen gemäß beispielhaften Ausführungsformen zu codieren. Die Steuerung 1620 kann beispielsweise Steuersignale erzeugen, die Videoqualität entsprechen.
  • Der Videocodierer 1625 kann konfiguriert sein, eine Videostreameingabe 5 zu empfangen und komprimierte (z. B. codierte) Videobits 10 auszugeben. Der Videocodierer 1625 kann die Videostreameingabe 5 in diskrete Videoframes umwandeln. Die Videostreameingabe 5 kann auch ein Bild sein und dementsprechend können die komprimierten (z. B. codierten) Videobits 10 auch komprimierte Bildbits sein. Der Videocodierer 1625 kann ferner jeden diskreten Videoframe (oder jedes Bild) in eine Matrix von Blöcken (im Folgenden als Blöcke bezeichnet) umwandeln. Beispielsweise kann eine Videoframe (oder Bild) in eine 16×16-, eine 16×8-, eine 8×8-, eine 4×4- oder 2×2-Matrix von Blöcken umgewandelt werden, von denen jede eine Anzahl an Pixeln aufweist. Obwohl fünf beispielhafte Matrizen aufgeführt sind, sind beispielhafte Ausführungsformen nicht darauf begrenzt.
  • Die komprimierten Videobits 10 können die Ausgabe des Videocodierersystems 1600 darstellen. Beispielsweise können die komprimierten Videobits 10 einen codierten Videoframe (oder ein codiertes Bild) darstellen. Beispielsweise können die komprimierten Videobits 10 zur Übertragung zu einer Empfangsvorrichtung (nicht gezeigt) bereit sein. Beispielsweise können die Videobits zu einem Systemtransceiver (nicht gezeigt) zur Übertragung zur Empfangsvorrichtung gesendet werden.
  • Der mindestens eine Prozessor 1605 kann konfiguriert sein, Computeranweisungen auszuführen, die mit der Steuerung 1620 und/oder dem Videocodierer 1625 verknüpft sind. Der mindestens eine Prozessor 1605 kann eine geteilte Ressource sein. Beispielsweise kann das Videocodierersystem 1600 ein Element eines größeren Systems (z. B. einer mobilen Vorrichtung) sein. Daher kann der mindestens eine Prozessor 1605 konfiguriert sein, Computeranweisungen auszuführen, die mit anderen Elementen (z. B. Bild/Video-Serving, Webbrowsing oder verdrahtete/drahtlose Kommunikation) innerhalb des größeren Systems verknüpft sind.
  • Im Beispiel von 16B kann ein Videodecodierersystem 1650 mindestens eine Computervorrichtung sein oder umfassen und sollte als praktisch jede Computervorrichtung darstellend verstanden werden, die konfiguriert ist, die hierin beschriebenen Verfahren auszuführen. Als solches kann das Videodecodierersystem 1650 als verschiedene Komponenten umfassend, die verwendet werden können, um die hierin beschriebenen Techniken oder unterschiedliche oder zukünftige Versionen davon zu implementieren, verstanden werden. Beispielsweise ist das Videodecodierersystem 1650 als mindestens einen Prozessor 1655 sowie mindestens einen Speicher 1660 (z. B. ein nicht flüchtiges computerlesbares Speichermedium) umfassend veranschaulicht.
  • Daher versteht es sich, dass der mindestens eine Prozessor 1655 verwendet werden kann, um Befehle auszuführen, die in dem mindestens einen Speicher 1660 gespeichert sind, um die verschiedenen hierin beschriebenen Merkmale und Funktionen oder zusätzliche oder alternative Merkmale und Funktionen dadurch zu implementieren. Natürlich können der mindestens eine Prozessor 1655 und der mindestens eine Speicher 1660 für verschiedene andere Zwecke verwendet werden. Es ist insbesondere offensichtlich, dass der mindestens eine Speicher 1660 als ein Beispiel unterschiedlicher Arten von Speicher und zugehöriger Hardware und Software darstellend verstanden werden kann, die verwendet werden könnten, um irgendwelche der hierin beschriebenen Module zu implementieren. Gemäß beispielhaften Ausführungsformen können das Videocodierersystem 1600 und das Videodecodierersystem 1650 in einem gleichen größeren System (z. B. einem Personal-Computer, einer mobilen Vorrichtung und dergleichen) umfasst sein.
  • Der mindestens eine Speicher 1660 kann konfiguriert sein, Daten und/oder Informationen zu speichern, die mit dem Videodecodierersystem 1650 verknüpft sind. Der mindestens eine Speicher 1660 kann eine geteilte Ressource sein. Beispielsweise kann das Videodecodierersystem 1650 ein Element eines größeren Systems (z. B. eines Personal-Computers, einer mobilen Vorrichtung und dergleichen) sein. Daher kann der mindestens eine Speicher 1660 konfiguriert sein, Daten und/oder Informationen zu speichern, die mit anderen Elementen (z. B. Webbrowsing oder drahtloser Kommunikation) innerhalb des größeren Systems verknüpft sind.
  • Die Steuerung 1670 kann konfiguriert sein, verschiedene Steuersignale zu erzeugen und die Steuersignale zu verschiedenen Blöcken im Videodecodierersystem 1650 zu kommunizieren. Die Steuerung 1670 kann konfiguriert sein, die Steuersignale zu erzeugen, um die nachfolgend beschriebenen Videocodierungs-/-decodierungstechniken zu implementieren. Die Steuerung 1670 kann konfiguriert sein, den Videodecodierer 1675 zu steuern, um einen Videoframe gemäß beispielhaften Ausführungsformen zu decodieren.
  • Der Videodecodierer 1675 kann konfiguriert sein, eine Eingabe komprimierter (z. B. codiert) Videobits 10 zu empfangen und einen Videostream 5 auszugeben. Der Videodecodierer 1675 kann diskrete Videoframes der komprimierten Videobits 10 in den Videostream 5 umwandeln. Die komprimierten (z. B. codierten) Videobits 10 können auch komprimierte Bildbits sein und dementsprechend kann der Videostream 5 auch ein Bild sein.
  • Der mindestens eine Prozessor 1655 kann konfiguriert sein, Computerbefehle auszuführen, die mit der Steuerung 1670 und/oder dem Videodecodierer 1675 verknüpft sind. Der mindestens eine Prozessor 1655 kann eine geteilte Ressource sein. Beispielsweise kann das Videodecodierersystem 1650 ein Element eines größeren Systems (z. B. eines Personal-Computers, einer mobilen Vorrichtung und dergleichen) sein. Daher kann der mindestens eine Prozessor 1655 konfiguriert sein, Computeranweisungen auszuführen, die mit anderen Elementen (z. B. Webbrowsing oder drahtloser Kommunikation) innerhalb des größeren Systems verknüpft sind.
  • Die 17A und 17B veranschaulichen entsprechend ein Ablaufdiagramm für den Videocodierer 1625, der in 16A gezeigt ist, und den Videodecodierer 1675, der in 16B gezeigt ist, gemäß mindestens einer beispielhaften Ausführungsform. Der Videocodierer 1625 (vorstehend beschrieben) umfasst einen sphärischen zu 2D-Darstellungsblock 1705, einen Vorhersageblock 1710, einen Transformationsblock 1715, einen Quantisierungsblock 1720, einen Entropiecodierungsblock 1725, einen Rückquantisierungsblock 1730, einen Rücktransformationsblock 1735, einen Rekonstruktionsblock 1740 und einen Schleifenfilterblock 1745. Andere strukturelle Variationen des Videocodierers 1625 können verwendet werden, um den eingegebenen Videostream 5 zu codieren. Wie gezeigt in 17A stellen gestrichelte Linien einen Rekonstruktionspfad unter den mehreren Blöcken dar und durchgezogene Linien stellen einen Vorwärtspfad unter den mehreren Blöcken dar.
  • Jeder der vorstehend beschriebenen Blöcke kann als Softwarecode ausgeführt werden, der in einem Speicher (z. B. mindestens einem Speicher 1610) gespeichert ist, verknüpft mit einem Videocodierersystem (z. B. wie gezeigt in 16A) und kann von mindestens einem Prozessor (z. B. mindestens einem Prozessor 1605) ausgeführt werden, der mit dem Videocodierersystem verknüpft ist. Es sind jedoch alternative Ausführungsformen wie ein als ein Spezialprozessor verkörperter Videocodierer denkbar. Beispielsweise kann jeder der vorstehend beschriebenen Blöcke (allein und/oder in Kombination) eine anwenderspezifisch-integrierte Schaltung oder ASIC sein. Beispielsweise kann der ASIC als der Transformationsblock 1715 und/oder der Quantisierungsblock 1720 konfiguriert sein.
  • Die sphärische zu 2D-Darstellungsblock 1705 kann konfiguriert sein, einen sphärischen Frame oder ein Bild zu einer 2D-Darstellung des sphärischen Frames oder Bildes zuzuordnen. 18 veranschaulicht beispielsweise die Sphäre 1800 (z. B. als ein Frame oder ein Bild). Die Sphäre 1800 (oder ein Abschnitt davon) kann auf eine 2D-Fläche projiziert werden. Die Projektion kann beispielsweise äquirektangular, semi-äquirektangular oder kubisch sein.
  • Der Vorhersageblock 1710 kann konfiguriert sein, Videoframe-Kohärenz zu verwenden (z. B. Pixel, die sich verglichen mit zuvor codierten Pixeln nicht geändert haben). Eine Vorhersage kann zwei Arten umfassen. Beispielsweise kann eine Vorhersage Intra-Frame-Vorhersage und Zwischen-Frame-Vorhersage umfassen. Intra-Frame-Vorhersage steht in Zusammenhang mit dem Vorhersagen der Pixelwerte in einem Block eines Bildes relativ zu Referenzmustern in angrenzenden zuvor codierten Blöcken des gleichen Bildes. Bei der Intra-Frame-Vorhersage wird eine Probe von rekonstruierten Pixeln innerhalb des gleichen Frames zum Zweck des Reduzierens des Restfehlers vorhergesagt, der durch den Transformations-(z. B. Entropiecodierungsblock 1725) und Entropiecodierungs-(z. B. Entropiecodierungsblock 1725)-Teil eines vorhersagenden Transformationscodecs codiert wird. Zwischen-Frame-Vorhersage steht in Zusammenhang mit dem Vorhersagen der Pixelwerte in einem Block eines Bildes relativ zu Daten eines zuvor codierten Bildes.
  • Der Transformationsblock 1715 kann konfiguriert sein, die Werte der Pixel von der räumlichen Domäne zu konvertieren, um Transformationskoeffizienten in einer Transformationsdomäne umzuwandeln. Die Transformationskoeffizienten können einer zweidimensionalen Matrix von Koeffizienten entsprechen, die für gewöhnlich die gleiche Größe wie der Originalblock ist. Mit anderen Worten kann es soviel Transformationskoeffizienten geben wie Pixel im Originalblock. Aufgrund der Umwandlung kann ein Abschnitt der Transformationskoeffizienten Werte, die gleich Null sind, aufweisen.
  • Der Transformationsblock 1715 kann zum Transformieren des Rests (von dem Vorhersageblock 1710) in Transformationskoeffizienten in beispielsweise der Frequenzdomäne konfiguriert sein. Gewöhnlich umfassen Transformationen die Karhunen-Loeve-Transformation (KLT), die diskrete Cosinustransformation (DCT), die Singularwertzerlegungstransformation (SVD) und die asymmetrische diskrete Sinustransformation (ADST).
  • Der Quantisierungsblock 1720 kann konfiguriert sein, die Daten in jedem Transformationskoeffizienten zu reduzieren. Quantisierung kann das Zuordnen von Werten innerhalb eines verhältnismäßig großen Bereichs zu Werten in einem verhältnismäßig kleinen Bereich einbeziehen, was daher die Menge an erforderlichen Daten reduziert, um die quantisierten Transformationskoeffizienten darzustellen. Der Quantisierungsblock 1720 kann die Transformationskoeffizienten in diskrete Werte der Menge transformieren, die als quantisierte Transformationskoeffizienten oder Quantisierungsniveaus bezeichnet werden. Beispielsweise kann der Quantisierungsblock 1720 konfiguriert sein, Nullen zu den mit einem Transformationskoeffizienten verknüpften Daten hinzuzufügen. Beispielsweise kann ein Codierstandard 128 Quantisierungsniveaus in einem Skalarquantisierungsprozess definieren.
  • Die quantisierten Transformationskoeffizienten werden dann durch den Entropiecodierungsblock 1725 entropiecodiert. Die entropiecodierten Koeffizienten werden zusammen mit den Informationen, die zum Decodieren des Blocks erforderlich sind, wie beispielsweise die Art der verwendeten Vorhersage, Bewegungsvektoren und Quantisiererwert, dann als die komprimierten Videobits 10 ausgegeben. Die komprimierten Videobits 10 können unter Verwendung verschiedener Techniken, wie Lauflängenkodierung (RLE) und Nulllaufcodierung formatiert werden.
  • Der Rekonstruktionspfad in 17A ist vorhanden, um sicherzustellen, dass sowohl der Videocodierer 1625 als auch der Videodecodierer 1675 (nachfolgend beschrieben in Bezug auf 17B) die gleichen Bezugsframes verwenden, um komprimierte Videobits 10 (oder komprimierte Bildbits) zu decodieren. Der Rekonstruktionspfad führt Funktionen aus, die Funktionen ähnlich sind, die während des Decodierprozesses erfolgen, die ausführlicher beschrieben werden, einschließlich Rückquantisierung der der quantisierten Transformationskoeffizienten am Rückquantisierungsblock 1730 und Rücktransformieren der rückquantisierten Transformationskoeffizienten am Rücktransformationsblock 1735, um einen abgeleiteten Restblock (abgeleiteter Rest) zu erzeugen. Im Rekonstruktionsblock 1740 kann der Vorhersageblock, der am Vorhersageblock 1710 vorhergesagt wurde, zum abgeleiteten Rest hinzugefügt werden, um einen rekonstruierten Block zu erzeugen. Die Schleifenfilterstufe 1745 kann dann auf den rekonstruierten Block angewandt werden, um Verzerrung, wie beispielsweise blockierende Artefakte, zu reduzieren.
  • Der vorstehend beschriebene Videocodierer 1625 in Bezug auf 17A umfasst die gezeigten Blöcke. Beispielhafte Ausführungsformen sind jedoch nicht darauf begrenzt. Zusätzliche Blöcke können basierend auf den unterschiedlichen verwendeten Videocodierungskonfigurationen und/oder -techniken hinzugefügt werden. Weiter kann jeder der Blöcke, der im Videocodierer 1625 gezeigt und vorstehend in Bezug auf 17A beschrieben ist, optionale Blöcke sein basierend auf den verwendeten unterschiedlichen Videocodierungskonfigurationen und/oder -techniken.
  • 17B ist ein schematisches Blockdiagramm eines Decoders 1675, der konfiguriert ist, komprimierte Videobits 10 (oder komprimierte Bildbits) zu decodieren. Der Decoder 1675 umfasst ähnlich der Rekonstruktionsbahn des Codierers 1625, die zuvor beschrieben wurde, einen Entropiedecodierblock 1750, einen Rückquantisierungsblock 1755, einen Rücktransformationsblock 1760, einen Rekonstruktionsblock 1765, einen Schleifenfilterblock 1770, einen Vorhersageblock 1775, einen Deblockierungsfilterblock 1780 und einen 2D-Darstellung-zu-sphärisch-Block 1785.
  • Die Datenelemente innerhalb der komprimierten Videobits 10 können durch den Entropiedecodierblock 1750 (unter Verwendung von beispielsweise Context Adaptive Binary Arithmetic Decoding) decodiert werden, um eine Reihe von quantisierten Transformationskoeffizienten zu erzeugen. Der Rückquantisierungsblock 1755 dequantisiert die quantisierten Transformationskoeffizienten und der Rücktransformationsblock 1760 rücktransformiert (unter Verwendung von ADST) die dequantisierten Transformationskoeffizienten, um einen abgeleiteten Rest zu erzeugen, der identisch mit dem sein kann, der durch die Rekonstruktionsstufe im Codierer 1625 erzeugt wurde.
  • Unter Verwendung von Headerinformationen, die von den komprimierten Videobits 10 decodiert wurden, kann der Decoder 1675 den Vorhersageblock 1775 verwenden, um den gleichen Vorhersageblock zu erzeugen, wie er im Codierer 1675 erzeugt wurde. Beim Rekonstruktionsblock 1765 kann der Vorhersageblock zum abgeleiteten Restblock hinzugefügt werden, um einen rekonstruierten Block zu erzeugen. Die Schleifenfilterstufe 1770 kann auf den rekonstruierten Block angewandt werden, um blockierende Artefakte zu reduzieren. Der Deblockierungsfilterblock 1780 kann auf den rekonstruierten Block angewandt werden, um eine Blockierungsverzerrung zu reduzieren, und das Ergebnis wird als Videostream 5 ausgegeben.
  • Der 2D-Darstellung-zu-sphärisch-Block 1785 kann konfiguriert sein, eine 2D-Darstellung eines sphärischen Frames oder Bildes zu einem sphärischen Frame oder Bild zuzuordnen. 18 veranschaulicht beispielsweise die Sphäre 1800 (z. B. als ein Frame oder ein Bild). Die Sphäre 1800 könnte zuvor auf eine 2D-Fläche projiziert worden sein. Die Projektion kann beispielsweise äquirektangular, semi-äquirektangular oder kubisch sein. Das Zuordnen der 2D-Darstellung eines sphärischen Frames oder Bildes zu dem sphärischen Frame oder Bild kann die Umkehrung des vorhergehenden Zuordnens sein.
  • Der vorstehend in Bezug auf 17B beschriebene Videodecodierer 1675 umfasst die gezeigten Blöcke. Beispielhafte Ausführungsformen sind jedoch nicht darauf begrenzt. Zusätzliche Blöcke können basierend auf den unterschiedlichen verwendeten Videocodierungskonfigurationen und/oder -techniken hinzugefügt werden. Weiter kann jeder der Blöcke, der im Videodecodierer 1675 gezeigt und vorstehend in Bezug auf 17B beschrieben ist, basierend auf den verwendeten unterschiedlichen Videocodierungskonfigurationen und/oder -techniken optionale Blöcke sein.
  • Der Codierer 1625 und der Decoder können konfiguriert sein, entsprechend sphärisches Video und/oder sphärische Bilder zu codieren und sphärisches Video und/oder sphärische Bilder zu decodieren. Ein sphärisches Bild ist ein Bild, das mehrere sphärisch organisierte Pixel umfasst. Mit anderen Worten ist ein sphärisches Bild ein Bild, das in allen Richtungen kontinuierlich ist. Dementsprechend kann sich ein Betrachter eines sphärischen Bildes neu positionieren (z. B. seinen Kopf oder seine Augen bewegen) in jeder Richtung (z. B. nach oben, nach unten, links, rechts oder jede Kombination davon) und sieht kontinuierlich einen Abschnitt des Bildes.
  • Ein sphärisches Bild kann Perspektive aufweisen. Beispielsweise könnte ein sphärisches Bild ein Bild eines Erdballs sein. Eine Perspektive innerhalb könnte eine Ansicht von einer Mitte des Erdballs sein, von der nach außen gesehen wird. Oder die Perspektive innerhalb könnte auf dem Erdball sein, von dem in den Raum gesehen wird. Eine äußere Perspektive könnte eine Ansicht vom Raum sein, von dem auf den Erdball herabgesehen wird. Als ein weiteres Beispiel kann Perspektive darauf basieren, was ansehbar ist. Mit anderen Worten kann eine ansehbare Perspektive diejenige sein, die durch einen Betrachter gesehen werden kann. Die ansehbare Perspektive kann ein Abschnitt des sphärischen Bildes sein, das sich vor dem Betrachter befindet. Wenn beispielsweise von einer Perspektive innerhalb gesehen wird, könnte ein Betrachter auf dem Boden (z. B. Erde) liegen und in den Raum hinaussehen. Der Betrachter kann in dem Bild den Mond, die Sonne oder spezifische Sterne sehen. Obwohl sich der Boden, auf dem der Betrachter liegt, in dem sphärischen Bild beinhaltet ist, befindet sich der Boden außerhalb der gegenwärtig ansehbaren Perspektive. Bei diesem Beispiel könnte der Betrachter seinen Kopf wenden und der Boden würde in einer peripheren ansehbaren Perspektive beinhaltet sein. Der Betrachter könnte sich umdrehen und der Boden befände sich in der ansehbaren Perspektive, wohingegen der Mond, die Sonne oder die Sterne sich nicht darin befänden.
  • Eine ansehbare Perspektive von einer äußeren Perspektive kann ein Abschnitt des sphärischen Bildes sein, das (z. B. durch einen anderen Abschnitt des Bildes) nicht blockiert ist, und/oder ein Abschnitt des sphärischen Bildes, der nicht aus der Ansicht heraus ist. Ein weiterer Abschnitt des sphärischen Bildes kann von einer äußeren Perspektive in eine ansehbare Perspektive durch Bewegen (z. B. Drehen) des sphärischen Bildes und/oder durch eine Bewegung des sphärischen Bildes gebracht werden. Daher ist die ansehbare Perspektive ein Abschnitt des sphärischen Bildes, der sich innerhalb eines ansehbaren Bereichs eines Betrachters des sphärischen Bildes befindet.
  • Ein sphärisches Bild ist ein Bild, das sich in Bezug auf Zeit nicht ändert. Ein sphärisches Bild von einer Perspektive innerhalb in Bezug auf die Erde kann beispielsweise den Mond und die Sterne in einer Position zeigen. Wohingegen sich ein sphärisches Video (oder eine Sequenz von Bildern) in Bezug auf Zeit ändern kann. Ein sphärisches Video von einer Perspektive innerhalb in Bezug auf die Erde kann beispielsweise den Mond und die Sterne zeigen, die sich bewegen (z. B. aufgrund der Erddrehung) und/oder einen Strahl eines Flugzeugs über das Bild (z. B. den Himmel) hinweg.
  • 18 ist eine zweidimensionale (2D) Darstellung einer Sphäre. Wie gezeigt in 18 veranschaulicht die Sphäre 1800 (z. B. als ein sphärisches Bild) eine Richtung der Perspektive innerhalb 1805, 1810, der Perspektive außerhalb 1815 und der ansehbaren Perspektive 1820, 1825, 1830. Die ansehbare Perspektive 1820 kann ein Abschnitt eines sphärischen Bildes 1835 wie gesehen von der Perspektive innerhalb 1810 sein. Die ansehbare Perspektive 1820 kann ein Abschnitt der Sphäre 1800 wie gesehen aus der Perspektive innerhalb 1805 sein. Die ansehbare Perspektive 1825 kann ein Abschnitt der Sphäre 1800 wie gesehen, von der Perspektive außerhalb 1815 sein.
  • 19 veranschaulicht ein System 1900 gemäß mindestens einer beispielhaften Ausführungsform. Wie gezeigt in 19 umfasst das System 1900 die Steuerung 1620, die Steuerung 1670, den Codierer 1625, einen Ansichtsframespeicher 1930 und einen Ausrichtungssensor 1925. Die Steuerung 120 umfasst ferner ein Ansichtspositionssteuerungsmodul 1905 und ein Kachelauswahlmodul 1910. Die Steuerung 1670 umfasst ferner ein Ansichtspositionsbestimmungsmodul 1915 und ein Kachelanforderungsmodul 1920.
  • Gemäß einer beispielhaften Implementierung detektiert der Ausrichtungssensor 1925 eine Ausrichtung (oder Änderung in der Ausrichtung) der Augen (oder des Kopfes) eines Betrachters, das Ansichtspositionsbestimmungsmodul 1915 bestimmt eine Ansicht, Perspektive oder Betrachtungsperspektive basierend auf der detektierten Ausrichtung und das Kachelanforderungsmodul 1920 kommuniziert die Ansicht, Perspektive oder Betrachtungsperspektive als Teil einer Anforderung für eine Kachel oder mehrere Kacheln oder einen Videostream. Gemäß einer weiteren beispielhaften Implementierung detektiert der Ausrichtungssensor 1925 eine Ausrichtung (oder Änderung in der Ausrichtung) basierend auf einer Bildverschiebungsausrichtung, wie sie auf einem Display gerendert wird. Beispielsweise kann ein Benutzer eine Maus, ein Trackpad oder eine Geste (z. B. auf einer berührungsempfindlichen Anzeige) verwenden, um einen Abschnitt des sphärischen Videos oder Bildes, wie es auf der Anzeige gerendert wird, auszuwählen, zu bewegen, zu ziehen, zu erweitern und/oder dergleichen.
  • Die Anforderung für die Kachel kann zusammen mit oder getrennt von einer Anforderung für einen Frame des sphärischen Videos kommuniziert werden. Die Anforderung für die Kachel kann zusammen oder getrennt von einer Anforderung für einen Frame des sphärischen Videos kommuniziert werden. Beispielsweise kann die Anforderung für die Kachel als Reaktion auf eine geänderte Ansicht, Perspektive oder Betrachtungsperspektive erfolgen, die in einer Notwendigkeit resultiert, zuvor angeforderte und/oder eingereihte Kacheln zu ersetzen.
  • Das Ansichtspositionssteuerungsmodul 1905 empfängt und verarbeitet die Anforderung für die Kachel, die mehreren Kacheln und/oder den Stream. Das Ansichtspositionssteuerungsmodul 1905 kann beispielsweise einen Frame und eine Position der Kachel oder der mehreren Kacheln im Frame basierend auf der Ansicht bestimmen. Dann kann das Ansichtspositionssteuerungsmodul 1905 das Kachelauswahlmodul 1910 anweisen, die Kachel, die mehreren Kacheln oder den Stream auszuwählen. Das Auswählen der Kachel, der mehreren Kacheln oder kann das Weitergeben eines Parameters an den Codierer 1625 umfassen. Der Parameter kann während des Codierens des sphärischen Videos, des Streams und/oder der Kachel verwendet werden. Alternativ kann das Auswählen der Kachel oder der mehreren Kacheln das Auswählen der Kachel oder der mehreren Kacheln aus dem Ansichtsframepeicher 1930 umfassen. Die ausgewählten Kachele oder ausgewählten mehreren Kacheln können dann an den Codierer 1625 weitergegeben werden. Bei einer weiteren Beispielimplementierung kann das Auswählen der Kachel oder der mehreren Kacheln das Auswählen einer Kachel, mehrerer Kacheln oder eines Streams aus dem Ansichtsframespeicher 1930 als eine vorcodierte (oder vorverarbeitete) Kachel, mehrere Kacheln oder Stream umfassen.
  • Dementsprechend kann der Ausrichtungssensor 1925 konfiguriert sein, eine Ausrichtung (oder Änderung in der Ausrichtung) der Augen eines Betrachters (oder seines Kopfes) zu detektieren. Beispielsweise kann der Ausrichtungssensor 1925 einen Beschleunigungsmesser umfassen, um eine Bewegung zu detektieren, und ein Gyroskop, um eine Ausrichtung zu detektieren. Alternativ oder zusätzlich dazu kann der Ausrichtungssensor 1925 eine Kamera oder einen Infrarotsensor umfassen, der auf die Augen oder den Kopf des Betrachters fokussiert ist, um eine Ausrichtung der Augen oder des Kopfes des Betrachters zu bestimmen. Alternativ oder zusätzlich zum Ausrichtungssensor 1925 kann einen Abschnitt des sphärischen Videos oder Bildes, wie auf dem Display gerendert bestimmen, um eine Ausrichtung des sphärischen Videos oder Bildes zu detektieren. Der Ausrichtungssensor 1925 kann konfiguriert sein, eine Ausrichtung und Änderung in Ausrichtungsinformationen zum Ansichtspositionsbestimmungsmodul 1915 zu kommunizieren.
  • Das Ansichtspositionsbestimmungsmodul 1915 kann konfiguriert sein, eine Ansicht oder perspektivische Ansicht (z. B. ein Abschnitt eines sphärischen Videos, das ein Betrachter gegenwärtig ansieht) in Bezug auf das sphärische Video zu bestimmen. Die Ansicht, Perspektive oder Betrachtungsperspektive kann als eine Position, ein Punkt oder Fokuspunkt auf dem sphärischen Video bestimmt werden. Beispielsweise könnte die Ansicht eine Breitengrad- und Längengradposition auf dem sphärischen Video sein. Die Ansicht, Perspektive oder Betrachtungsperspektive kann als eine Seite eines Würfels basierend auf dem sphärischen Video bestimmt werden. Die Ansicht (z. B. Breitengrad- und Längengradposition oder Seite) kann zum Ansichtspositionssteuerungsmodul 1905 unter Verwendung von beispielsweise Hypertext Transfer-Protokoll (HTTP) kommuniziert werden.
  • Das Ansichtspositionssteuerungsmodul 1905 kann konfiguriert sein, eine Ansichtsposition (z. B. Frame und Position innerhalb des Frames) von einer Kachel oder mehreren Kacheln innerhalb des sphärischen Videos zu bestimmen. Das Ansichtspositionssteuerungsmodul 1905 kann ein Rechteck auswählen, das auf die Ansichtsposition, den Punkt oder den Fokuspunkt (z. B. Breitengrad- und Längengradposition oder Seite) zentriert ist. Das Kachelauswahlmodul 1910 kann konfiguriert sein, das Rechteck als Kachel oder mehrere Kacheln auszuwählen. Das Kachelauswahlmodul 1910 kann konfiguriert sein den Codierer 1625 anzuweisen (z. B. über einen Parameter oder eine Konfigurationseinstellung), die ausgewählte Kachel oder die ausgewählten mehreren Kacheln zu codieren, und/oder das Kachelauswahlmodul 1910 kann konfiguriert sein, die Kachel oder die mehreren Kacheln aus dem Ansichtsframespeicher 1930 auszuwählen.
  • Es ist offensichtlich, dass das System 1600 und 1650, das in den 16A und 16B veranschaulicht ist, als ein Element und/oder eine Erweiterung der generischen Computervorrichtung 2000 und/oder der generischen mobilen Computervorrichtung 2050, die nachfolgend in Bezug auf 20 beschrieben wird, implementiert sein kann. Alternativ oder zusätzlich dazu kann das System 1600 und 1650, das in den 16A und 16B veranschaulicht ist, in einem getrennten System von der generischen Computervorrichtung 2000 und/oder der generischen mobilen Computervorrichtung 2050 mit einigen oder allen der Merkmale, die nachfolgend in Bezug auf die generische Computervorrichtung 2000 und/oder die generische mobile Computervorrichtung 2050 beschrieben werden, implementiert sein kann.
  • 20 ist ein schematisches Blockdiagramm einer Computervorrichtung und einer mobilen Computervorrichtung, die verwendet werden können, um die hierin beschriebenen Techniken zu implementieren. 20 ist ein Beispiel einer generischen Computervorrichtung 2000 und einer generischen mobilen Computervorrichtung 2050, die mit den hier beschriebenen Techniken verwendet werden können. Die Computervorrichtung 2000 soll verschiedene Formen von digitalen Computern wie Laptops, Desktops, Arbeitsstationen, Personal Digital Assistants, Fernseher, Server, Blade-Server, Mainframes und andere geeignete Computer darstellen. Die Computervorrichtung 2050 soll verschiedene Formen mobiler Vorrichtungen, wie Personal Digital Assistants, Mobiltelefone, Smartphones und andere ähnliche Computervorrichtungen darstellen. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen nur beispielhaft sein und sollen Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Erfindungen nicht einschränken.
  • Die Computervorrichtung 2000 umfasst einen Prozessor 2002, einen Speicher 2004, eine Speichervorrichtung 2006, eine Hochgeschwindigkeitsschnittstelle 2008, die mit Speicher 2004 und Hochgeschwindigkeitserweiterungsanschlüssen 2010 verbindet, und eine Niedergeschwindigkeitsschnittstelle 2012, die mit dem Niedergeschwindigkeitsbus 2014 und der Speichervorrichtung 2006 verbindet. Alle Komponenten 2002, 2004, 2006, 2008, 2010 und 2012 sind unter Verwendung verschiedener Busse miteinander verbunden und können auf einem gängigen Motherboard oder gegebenenfalls in anderer Weise angebracht sein. Der Prozessor 2002 kann Befehle zur Ausführung innerhalb der Computervorrichtung 2000 verarbeiten, die Befehle umfassen, die in dem Speicher 2004 oder auf der Speichervorrichtung 2006 gespeichert sind, um grafische Informationen für eine GUI auf einer externen Eingabe-/Ausgabevorrichtung wie dem Display 2016, das mit der Hochgeschwindigkeitsschnittstelle 2008 gekoppelt ist, anzuzeigen. Bei anderen Implementierungen können mehrere Prozessoren und/oder mehrere Busse, wie jeweils anwendbar, zusammen mit mehreren Speichern und Speicherarten verwendet sein. Es können außerdem auch mehrere Computervorrichtungen 2000 verbunden sein, wobei jede Vorrichtung Teile der notwendigen Vorgänge bereitstellt (z. B. als eine Serverbank, eine Gruppe von Blade-Servern oder ein Mehrprozessorsystem).
  • Der Speicher 2004 speichert Informationen innerhalb der Computervorrichtung 2000. Bei einer Implementierung ist der Speicher 2004 eine nicht flüchtige Speichereinheit oder -einheiten. Bei einer anderen Implementierung ist der Speicher 2004 eine nicht flüchtige Speichereinheit oder -einheiten. Der Speicher 2004 kann auch eine andere Form von computerlesbarem Medium sein, wie beispielsweise ein magnetischer oder optischer Datenträger.
  • Die Speichervorrichtung 2006 ist in der Lage, Massenspeicher für die Computervorrichtungen 2000 bereitzustellen. Bei einer Implementierung kann die Speichervorrichtung 2006 ein computerlesbares Medium sein oder beinhalten, wie ein Floppy-Disk-Laufwerk, ein Festplattenlaufwerk, ein optisches Laufwerk, eine Magnetbandeinheit, ein Flash-Speicher oder eine andere ähnliche Solid-State-Speichervorrichtung oder eine Reihe von Vorrichtungen, einschließlich Vorrichtungen in einem Speichernetzwerk oder anderen Konfigurationen. Ein Computerprogrammprodukt kann greifbar in einem Informationsträger verkörpert sein. Das Computerprogrammprodukt kann auch Befehle enthalten, die bei Ausführung ein oder mehrere Verfahren wie diejenigen, die vorstehend beschrieben sind, ausführen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium wie der Speicher 2004, die Speichervorrichtung 2006 oder Speicher auf Prozessor 2002.
  • Die Hochgeschwindigkeitssteuerung 2008 verwaltet bandbreitenintensive Operationen für die Computervorrichtung 2000, während die Niedergeschwindigkeitssteuerung 2012 niedrigere bandbreitenintensive Operationen verwaltet. Eine solche Zuordnung von Funktionen ist nur beispielhaft. Bei einer Implementierung ist die Hochgeschwindigkeitssteuerung 2008 mit Speicher 2004, Display 2016 (z. B. über einen Grafikprozessor oder -beschleuniger) und mit den Hochgeschwindigkeitserweiterungsanschlüssen 2010, die verschiedene Erweiterungskarten (nicht gezeigt) aufnehmen können, gekoppelt. Bei der Implementierung ist die Niedergeschwindigkeitssteuerung 2012 mit der Speichervorrichtung 2006 und dem Niedergeschwindigkeitserweiterungsanschluss 2014 gekoppelt. Der Niedergeschwindigkeitserweiterungsanschluss, der verschiedene Kommunikationsanschlüsse (z. B. USB, Bluetooth, Ethernet, Funkethernet) umfassen kann, kann an ein oder mehrere Eingabe-/Ausgabevorrichtungen wie eine Tastatur, eine Zeigevorrichtung, einen Scanner oder eine Netzwerkvorrichtung wie einen Switch oder Router z. B. durch einen Netzwerkadapter gekoppelt sein.
  • Die Computervorrichtung 2000 kann in einer Anzahl von unterschiedlichen Formen implementiert sein, wie es in der Figur gezeigt ist. So kann sie beispielsweise als ein Standardserver 2020 oder in einer Gruppe solcher Server mehrfach implementiert sein. Sie kann außerdem als Teil eines Rackserversystems 2024 implementiert sein. Zusätzlich kann sie in einem Personal Computer wie einem Laptop 2022 implementiert sein. Alternativ können Komponenten von Computervorrichtung 2000 mit anderen Komponenten in einer mobilen Vorrichtung (nicht dargestellt), wie z. B. Vorrichtung 2050, kombiniert sein. Jede dieser Vorrichtungen kann eine oder mehrere der Computervorrichtungen 2000, 2050 enthalten und ein gesamtes System kann aus mehreren Computervorrichtungen 2000, 2050, die miteinander kommunizieren, zusammengesetzt sein.
  • Die Computervorrichtung 2050 umfasst neben anderen Komponenten einen Prozessor 2052, einen Speicher 2064, eine Eingabe-/Ausgabevorrichtung wie ein Display 2054, eine Kommunikationsschnittstelle 2066 und einen Transceiver 2068. Die Vorrichtung 2050 kann ebenfalls mit einer Speichervorrichtung, wie z. B. einem Microdrive, oder einer anderen Vorrichtung ausgestattet sein, um zusätzlichen Speicher bereitzustellen. Alle Komponenten 2050, 2052, 2064, 2054, 2066 und 2068 sind unter Verwendung verschiedener Busse miteinander verbunden und mehrere der Komponenten können auf einem gängigen Motherboard oder gegebenenfalls in anderer Weise angebracht sein.
  • Der Prozessor 2052 kann Befehle in der Computervorrichtung 2050 ausführen, einschließlich im Speicher 2064 gespeicherter Befehle. Der Prozessor kann als ein Chipsatz von Chips implementiert sein, die separate und mehrere analoge und digitale Prozessoren umfassen. Der Prozessor kann beispielsweise die Koordination der anderen Komponenten der Vorrichtung 2050 bereitstellen, wie beispielsweise die Steuerung von Benutzerschnittstellen, von Anwendungen, die von Vorrichtung 2050 ausgeführt werden, und von drahtloser Kommunikation durch die Vorrichtung 2050.
  • Der Prozessor 2052 kann mit einem Benutzer über die Steuerschnittstelle 2058 und die Anzeigeschnittstelle 2056, die mit einem Display 2054 gekoppelt ist, kommunizieren. Das Display 2054 kann beispielsweise ein TFT-LCD-(Dünnschichttransistor-Flüssigkristallanzeige) oder ein OLED-(organische Leuchtdiode)-Display oder eine andere geeignete Anzeigetechnologie sein. Die Anzeigeschnittstelle 2056 kann geeignete Schaltungen zum Ansteuern des Display 2054 umfassen, um einem Benutzer grafische und andere Informationen zu präsentieren. Die Steuerschnittstelle 2058 kann Befehle von einem Benutzer empfangen und sie zur Eingabe in den Prozessor 2052 konvertieren. Zusätzlich kann eine externe Schnittstelle 2062 in Verbindung mit dem Prozessor 2052 vorgesehen sein, um eine Nahbereichskommunikation von Vorrichtung 2050 mit anderen Vorrichtungen zu ermöglichen. Die externe Schnittstelle 2062 kann beispielsweise bei manchen Implementierungen eine drahtgestützte Verbindung oder bei anderen Implementierungen eine drahtlose Verbindung sein, und es können auch mehrere Schnittstellen verwendet werden.
  • Der Speicher 2064 speichert Informationen innerhalb der Computervorrichtung 2050. Der Speicher 2064 kann als ein oder mehrere von einem computerlesbaren Medium oder Medien, einem flüchtigen Speicher oder Speichern oder einem nicht flüchtigen Speicher oder Speichern implementiert sein. Der Erweiterungsspeicher 2074 kann ebenfalls bereitgestellt und mit der Vorrichtung 2050 über die Erweiterungsschnittstelle 2072 verbunden werden, die zum Beispiel eine SIMM-(Single In Line Memory Module)-Kartenschnittstelle umfassen kann. Ein solcher Erweiterungsspeicher 2074 kann zusätzlichen Speicherplatz für die Vorrichtung 2050 bereitstellen oder kann auch Anwendungen oder andere Informationen für die Vorrichtung 2050 speichern. Insbesondere kann der Erweiterungsspeicher 2074 Befehle zum Ausführen oder Ergänzen der vorstehend beschriebenen Prozesse umfassen und er kann außerdem sichere Informationen umfassen. Demnach kann der Erweiterungsspeicher 2074 beispielsweise als ein Sicherheitsmodul für Vorrichtung 2050 bereitgestellt und mit Befehlen programmiert werden, die eine sichere Benutzung von Vorrichtung 2050 erlauben. Zusätzlich dazu können über die SIMM-Karten sichere Anwendungen zusammen mit zusätzlichen Informationen, wie dem Ablegen von Identifizierungsinformationen auf der SIMM-Karte auf eine Weise, die nicht gehackt werden kann, bereitgestellt werden.
  • Der Speicher kann zum Beispiel Flashspeicher und/oder NVRAM-Speicher umfassen, wie nachstehend beschrieben. Bei einer Implementierung ist ein Computerprogrammprodukt in einem Informationsträger greifbar verkörpert. Das Computerprogrammprodukt enthält Befehle, die bei Ausführung ein oder mehrere Verfahren wie die vorstehend beschriebenen durchführen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium, wie der Speicher 2064, die Speichererweiterung 2074 oder der Prozessorspeicher 2052, das beispielsweise über den Transceiver 2068 oder die externe Schnittstelle 2062 empfangen werden kann.
  • Die Vorrichtung 2050 kann über die Kommunikationsschnittstelle 2066 drahtlos kommunizieren, die bei Bedarf eine digitale Signalverarbeitungsschaltung umfassen kann. Die Kommunikationsschnittstelle 2066 kann Verbindungen mit verschiedenen Kommunikationstypen oder -protokollen, wie beispielsweise unter anderen GSM-Sprachanrufe, SMS, EMS oder MMS-Messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000 oder GPRS, konstruieren. Eine solche Kommunikation kann beispielsweise durch Funkfrequenztransceiver 2068 stattfinden. Zusätzlich kann eine Kurzstreckenkommunikation stattfinden, wie unter Verwendung eines Bluetooth-, WLAN- oder anderen solchen Transceivers (nicht gezeigt). Außerdem kann das GPS-(Global Positioning System)-Empfängermodul 2070 zusätzliche navigations- und ortsbezogene drahtlose Daten für die Vorrichtung 2050 bereitstellen, die gegebenenfalls von Anwendungen verwendet werden können, die auf der Vorrichtung 2050 ausgeführt werden.
  • Die Vorrichtung 2050 kann ebenfalls unter Verwendung des Audiocodec 2060, der gesprochene Informationen von einem Benutzer empfangen und diese in nutzbare digitale Informationen konvertieren kann, hörbar kommunizieren. Der Audiocodec 2060 kann ebenfalls hörbaren Ton für einen Benutzer erzeugen, wie beispielsweise durch einen Lautsprecher zum Beispiel in einer Handvorrichtung von Vorrichtung 2050. Ein derartiger Ton kann einen Ton von Sprachanrufen beinhalten, kann aufgenommene Töne (z. B. Sprachnachrichten, Musikdateien usw.) beinhalten und kann auch Töne, beinhalten, die von Anwendungen erzeugt werden, die auf Vorrichtung 2050 betrieben werden.
  • Die Computervorrichtung 2050 kann in einer Anzahl von unterschiedlichen Formen implementiert sein, wie es in der Figur gezeigt ist. Sie kann beispielsweise als ein Mobiltelefon 2080 implementiert sein. Sie kann außerdem als Teil eines Smartphones 2082, Personal Digital Assistant oder einer anderen ähnlichen mobilen Vorrichtung implementiert sein.
  • Einige der vorstehenden beispielhaften Ausführungsformen werden als Prozesse oder Verfahren anhand von Ablaufdiagrammen beschrieben. Obwohl die Ablaufdiagramme die Operationen als sequentielle Prozesse darstellen, können viele der Operationen parallel, gleichzeitig oder simultan ausgeführt werden. Zusätzlich kann die Reihenfolge der Operationen neu angeordnet werden. Die Prozesse können beendet werden, wenn die Operationen abgeschlossen sind, können aber auch zusätzliche Schritte aufweisen, die nicht in der Figur dargestellt sind. Die Prozesse können Verfahren, Funktionen, Prozeduren, Subroutinen, Subprogrammen usw. entsprechen.
  • Die vorstehend erörterten Verfahren, von denen einige durch die Ablaufdiagramme veranschaulicht sind, können durch Hardware, Software, Firmware, Middleware, Mikrocode, Hardwarebeschreibungssprachen oder eine beliebige Kombination davon implementiert werden. Sofern durch Software, Firmware, Middleware oder Microcode implementiert, kann der Programmcode oder Codesegmente, um die erforderlichen Aufgaben ausführen, auf einem maschinen- oder computerlesbaren Medium, wie z. B. einem Speichermedium, gespeichert werden. Ein Prozessor bzw. Prozessoren können die erforderlichen Aufgaben durchführen.
  • Spezifische strukturelle und funktionelle Details, die hier offenbart sind, sind lediglich zum Zwecke der Beschreibung beispielhafter Ausführungsformen angegeben. Beispielhafte Ausführungsformen können in vielen alternativen Formen umgesetzt werden und sollten nicht als auf die hierin beschriebenen Ausführungsformen begrenzt angesehen werden.
  • Es versteht sich, dass obgleich die Begriffe erste, zweite usw. hier verwendet sein können, um verschiedene Elemente zu beschreiben, die verschiedenen Elemente nicht durch diese Begriffe eingeschränkt werden sollten. Diese Begriffe werden nur dazu verwendet, ein Element vom anderen zu unterscheiden. Es könnte beispielsweise ein erstes Element ein zweites Element genannt werden und ähnlich könnte ein zweites Element ein erstes Element genannt werden, ohne vom Umfang der beispielhaften Ausführungsformen abzuweichen. Wie hier verwendet, schließt der Ausdruck „und/oder“ sämtliche Kombinationen von einem oder mehreren der zugehörigen angegebenen Elemente ein.
  • Es versteht sich, dass wenn ein Element als mit einem anderen Element verbunden oder gekoppelt bezeichnet wird, es mit dem anderen Element direkt verbunden oder gekoppelt sein kann, oder dazwischen geschaltete Elemente vorhanden sein können. Im Gegensatz dazu sind keine dazwischenliegenden Elemente vorhanden, wenn auf ein Element als direkt verbunden mit oder direkt gekoppelt mit einem anderen Element verwiesen wird. Andere Worte, die verwendet werden, um die Beziehung zwischen Elementen zu beschrieben, sollten in gleicher Weise interpretiert werden (z. B. „zwischen“ gegenüber „direkt zwischen“, „angrenzend“ gegenüber „direkt angrenzend“ usw.).
  • Die hier verwendete Terminologie dient lediglich der Beschreibung bestimmter Ausführungsformen und soll die beispielhaften Ausführungsformen in keiner Weise einschränken. Wie hierin verwendet sind die Singularformen „ein“ und „der/die/das“ dazu beabsichtigt, die Mehrzahlformen ebenfalls einzuschließen, sofern aus dem Kontext nicht eindeutig das Gegenteil hervorgeht. Es sei weiter klargestellt, dass die Begriffe „umfasst“, „umfassend“, „beinhaltet“ und/oder „beinhaltend“, sofern hier verwendet, das Vorhandensein von angeführten Funktionen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, aber nicht das Vorhandensein oder das Hinzufügen von ein oder mehreren anderen Funktionen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Gruppen davon ausschließen.
  • Es ist außerdem zu beachten, dass in einigen alternativen Implementierungen die angegebenen Funktionen/Handlungen in einer anderen als der in den Figuren dargestellten Reihenfolge auftreten können. Zwei Figuren, die nacheinander gezeigt sind, können je nach den involvierten Funktionalitäten/Handlungen tatsächlich gleichzeitig oder manchmal in umgekehrter Reihenfolge ausgeführt werden.
  • Sofern nicht anders definiert haben alle Begriffe (einschließlich technischer und wissenschaftlicher Begriffe), die hier verwendet werden, die gleiche Bedeutung, die gewöhnlich von einem Fachmann für die beispielhaften Ausführungsformen verwendet wird. Es sei weiter klargestellt, dass Begriffe, die z. B. in allgemein verwendeten Wörterbüchern definiert sind, so auszulegen sind, dass sie im Einklang mit ihrer Bedeutung im Kontext der relevanten Technik verwendet werden und nicht in einem idealisierten oder allzu formalen Sinne, sofern sie hier nicht ausdrücklich derart definiert sind.
  • Teile der vorstehenden beispielhaften Ausführungsformen und die entsprechende ausführliche Beschreibung sind im Sinne von Software oder Algorithmen und symbolischen Darstellungen der Operationen an Datenbits innerhalb eines Computerspeichers dargestellt. Diese Beschreibungen und Darstellungen sind von einem Durchschnittsfachmann verwendete Mittel, um das Wesentliche seiner Arbeit einem anderen Durchschnittsfachmann zu vermitteln. Ein Algorithmus, so wie der Begriff hier verwendet und im Allgemeinen verstanden wird, wird als selbstkonsistente Sequenz von Schritten verstanden, die zu einem erwünschten Ergebnis führen. Bei diesen Schritten handelt es sich um solche, die eine physische Manipulation physischer Quantitäten erfordern. Gewöhnlich, obwohl nicht notwendigerweise, nehmen diese Mengen die Form von optischen, elektrischen oder magnetischen Signalen an, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Es hat sich grundsätzlich aus Gründen des allgemeinen Sprachgebrauchs als geeignet erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder Ähnliches zu bezeichnen.
  • Bei den vorstehenden beispielhaften Ausführungsformen umfasst die Bezugnahme auf Handlungen und symbolische Darstellungen von Operationen (z. B. in Form von Ablaufdiagrammen), die als Programmmodule oder funktionale Prozesse implementiert werden können, Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren, und sie können unter Verwendung bestehender Hardware an vorhandenen Strukturelementen beschrieben und/oder implementiert werden. Diese bestehende Hardware kann eine oder mehrere zentrale Recheneinheiten (CPUs), digitale Signalprozessoren (DSPs), anwendungsspezifische integrierte Schaltungen, feldprogrammierbare Gate-Arrays-(FPGAs)-Computer oder dergleichen beinhalten.
  • Es sollte jedoch beachtet werden, dass all diese und ähnliche Begriffe den geeigneten physikalischen Mengen zuzuordnen sind, und lediglich geeignete Bezeichnungen sind, die auf diese Mengen angewandt werden. Wenn nicht spezifisch anders angegeben oder wie offensichtlich aus der Erörterung hierin, verweisen die Begriffe, wie z. B. „Verarbeiten“ oder „Berechnen“ oder „Ausrechnen“ oder „Bestimmen“ oder „Darlegen“ und dergleichen, auf die Handlungen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Computervorrichtung, die Daten, die als physische (elektronische) Mengen innerhalb der Register und Speicher des Computersystems dargestellt sind, in andere Daten transformiert und manipuliert, die gleichermaßen als physische Mengen innerhalb der Computersystemspeicher oder -register oder innerhalb anderer solcher Informationsspeicher, Übertragungs- oder Displayvorrichtungen dargestellt sind.
  • Es ist außerdem zu beachten, dass die softwareimplementierten Aspekte der beispielhaften Ausführungsformen normalerweise auf irgendeiner Form eines nicht flüchtigen Programmspeichermediums codiert oder über irgendeine Art von Übertragungsmedium implementiert sind. Das Programmspeichermedium kann magnetisch (z. B. eine Diskette oder ein Festplattenlaufwerk) oder optisch (z. B. eine nicht beschreibbare „CD-ROM“) sein und als Nur-Lese oder Direktzugriffsspeicher dienen. Auf gleiche Weise kann das Übertragungsmedium verdrillte Adernpaare, Koaxialkabel, Lichtwellenleiter oder ein anderes geeignetes, dem Fach bekanntes Übertragungsmedium sein. Die beispielhaften Ausführungsformen sind nicht auf die Aspekte der beschriebenen Implementierungen beschränkt.
  • Und schließlich sollte auch beachtet werden, dass, obgleich die beigefügten Ansprüche spezielle Kombinationen von hier beschriebenen Merkmalen darstellen, der Umfang der vorliegenden Offenbarung nicht auf die nachstehend beanspruchten speziellen Kombinationen beschränkt ist, sondern stattdessen eine beliebige Kombination von hierin offenbarten Merkmalen oder Ausführungsformen umfasst, unabhängig davon, ob diese spezifische Kombination in den beigefügten Ansprüchen zu diesem Zeitpunkt speziell aufgezählt wurde oder nicht.

Claims (20)

  1. Verfahren, umfassend: Empfangen eines ersten Videostreams an einer Wiedergabevorrichtung, wobei der erste Videostream eine erste Qualität aufweist; Empfangen von mindestens zwei zweiten Videostreams an der Wiedergabevorrichtung, wobei die mindestens zwei zweiten Videostreams jeweils einem Abschnitt des ersten Videostreams entsprechen und die mindestens zwei zweiten Videostreams eine zweite Qualität aufweisen und die zweite Qualität verglichen mit der ersten Qualität eine höhere Qualität ist; Wiedergeben des ersten Videostreams an der Wiedergabevorrichtung; Auswählen eines dritten Videostreams von den mindestens zwei zweiten Videostreams basierend auf einer Betrachtungsperspektive eines Benutzers der Wiedergabevorrichtung; und Wiedergeben des dritten Videostreams zusammen mit dem ersten Videostream an der Wiedergabevorrichtung.
  2. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, dass sich die Betrachtungsperspektive des Benutzers der Wiedergabevorrichtung geändert hat; Auswählen eines vierten Videostreams von den mindestens zwei zweiten Videostreams basierend auf der geänderten Betrachtungsperspektive; und Wiedergeben des vierten Videostreams zusammen mit dem ersten Videostream an der Wiedergabevorrichtung.
  3. Verfahren nach Anspruch 1, wobei die erste Qualität auf Bitrate und Auflösung basiert, die Bitrate auf einem minimalen Kommunikationskanalvermögen basiert und die Auflösung auf einer minimalen Pixeldichte basiert, die mit der Wiedergabevorrichtung verknüpft ist.
  4. Verfahren nach Anspruch 1, ferner umfassend: Puffern des ersten Videostreams, wobei das Wiedergeben des dritten Videostreams zusammen mit dem ersten Videostream an der Wiedergabevorrichtung umfasst: Ersetzen eines entsprechenden Abschnitts des ersten Videostreams mit dem dritten Videostream, Rendern des Resultats an der Wiedergabevorrichtung, Bestimmen, dass ein Problem mit dem dritten Videostream existiert, und nach dem Bestimmen, dass ein Problem mit dem dritten Videostream existiert, wird der gepufferte erste Videostream an der Wiedergabevorrichtung gerendert.
  5. Verfahren nach Anspruch 1, wobei die Wiedergabevorrichtung ein Head Mount Display (HMD) ist und das Wiedergeben des dritten Videostreams zusammen mit dem ersten Videostream an der Wiedergabevorrichtung umfasst: Rendern des ersten Videostreams an einer von einem Display für das linke Auge oder für das rechte Auge des HMD, und Rendern des dritten Videostreams an einem anderen von dem Dispay für das linke Auge oder für das rechte Auge des HMD.
  6. Verfahren nach Anspruch 1, wobei die mindestens zwei zweiten Videostreams verknüpfte Keyframes aufweisen, die bei unterschiedlichen Zeitstempeln codiert sind.
  7. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, ob sich jeder der mindestens zwei zweiten Videostreams innerhalb eines Ansehbarkeitsschwellenwerts der Wiedergabevorrichtung befindet; nach dem Bestimmen, dass sich die mindestens zwei zweiten Videostreams innerhalb des Ansehbarkeitsschwellenwerts der Wiedergabevorrichtung befinden, Decodieren der mindestens zwei zweiten Videostreams; und nach dem Bestimmen, dass sich die mindestens zwei zweiten Videostreams nicht innerhalb des Ansehbarkeitsschwellenwerts der Wiedergabevorrichtung befinden, Überspringen des Decodierens der mindestens zwei zweiten Videostreams.
  8. Verfahren, umfassend: Codieren eines Frames eines Videos bei einer ersten Qualität; Codieren von mindestens zwei Abschnitten des Frames des Videos bei einer zweiten Qualität, wobei die zweite Qualität verglichen mit der ersten Qualität eine höhere Qualität ist; Speichern des Frames des Videos; und Speichern der mindestens zwei Abschnitte des Frames des Videos.
  9. Verfahren nach Anspruch 8, ferner umfassend: Streamen des Frames des Videos; und Streamen der mindestens zwei Abschnitte des Frames des Videos.
  10. Verfahren nach Anspruch 8, wobei das Codieren der mindestens zwei Abschnitte des Frames des Videos bei der zweiten Qualität das Codieren von jedem von mindestens zwei Abschnitten des Frames des Videos unter Verwendung von Keyframes mit unterschiedlichen Zeitstempeln umfasst.
  11. Verfahren nach Anspruch 8, ferner umfassend: Empfangen eines Hinweises auf einen Betrag an Bewegung, die mit einer Wiedergabevorrichtung verknüpft ist; und Anpassen einer Größe, die mit den mindestens zwei Abschnitten des Frames des Videos verknüpft ist, basierend auf der Bewegung.
  12. Verfahren nach Anspruch 8, ferner umfassend: Empfangen einer Anforderung, ein Video zu streamen; Konstruieren eines Frames unter Verwendung des Frames des Videos und einem der mindestens zwei Abschnitte des Frames des Videos; und Streamen des konstruierten Frames.
  13. Verfahren nach Anspruch 8, wobei der Frame des Videos mit einem sphärischen Video verknüpft ist, das Codieren des Frames des Videos umfasst: Projizieren des Frames des Videos als eine Würfelkarte, und Codieren der Würfelkarte unter Verwendung eines gleichwinkligen Sampling-Algorithmus.
  14. Verfahren nach Anspruch 8, wobei der Frame des Videos mit einem sphärischen Video verknüpft ist und das Verfahren ferner umfasst: Projizieren des Frames des Videos als eine Würfelkarte, und Auswählen einer Würfelseite der Würfelkarte, wobei das Codieren des Frames des Videos das Codieren der Würfelseite bei der ersten Qualität umfasst, und das Codieren der mindestens zwei Abschnitte des Frames des Videos das Codieren von mindestens zwei Abschnitten der Würfelseite bei der zweiten Qualität umfasst.
  15. Verfahren nach Anspruch 8, ferner umfassend: Streamen des Frames des Videos; Streamen der mindestens zwei Abschnitte des Frames des Videos; Empfangen eines Hinweises, dass eine Wiedergabe an einer Wiedergabevorrichtung pausiert wurde; Codieren des Frames des Videos bei der zweiten Qualität; und Streamen des Frames des Videos, das bei der zweiten Qualität codiert wurde.
  16. Verfahren nach Anspruch 8, wobei die erste Qualität auf mindestens einem von einem Stream mit niedriger Framerate und hoher Auflösung, einem Monostream, einem reduzierten Farbenstream und einem Schwarzweissstream basiert.
  17. Verfahren nach Anspruch 8, ferner umfassend: Streamen des Frames des Videos als mehrere codierte Frames; und Fallenlassen von mindestens einem Frame der mehreren codierten Frames während des Streamens des Videos, um eine dritte Qualität zu erreichen.
  18. Streaming-Server, umfassend: einen Codierer, der konfiguriert ist: einen Frame eines Videos bei einer ersten Qualität zu codieren, mindestens zwei Abschnitte des Frames des Videos bei einer zweiten Qualität zu codieren, wobei die zweite Qualität verglichen mit der ersten Qualität eine höhere Qualität ist; Speicher, der konfiguriert ist: den Frame des Videos zu speichern, und die mindestens zwei Abschnitte des Frames des Videos zu speichern; und eine Steuerung, die konfiguriert ist zum: Streamen eines Videos, das den codierten Frame und einen oder mehrere von den codierten mindestens zwei Abschnitten des Frames des Videos umfasst.
  19. Streaming-Server nach Anspruch 18, wobei das Codieren der mindestens zwei Abschnitte des Frames des Videos bei der zweiten Qualität das Codieren von jedem vonmindestens zwei Abschnitten des Frames des Videos unter Verwendung von Keyframes mit unterschiedlichen Zeitstempeln umfasst.
  20. Streaming-Server nach Anspruch 18, wobei der Frame des Videos mit einem sphärischen Video verknüpft ist und der Codierer ferner konfiguriert ist zum: Projizieren des Frames des Videos als eine Würfelkarte, und Auswählen einer Würfelseite der Würfelkarte, wobei das Codieren des Frames des Videos das Codieren der Würfelseite bei der ersten Qualität umfasst, und das Codieren der mindestens zwei Abschnitte des Frames des Videos das Codieren von mindestens zwei Abschnitten der Würfelseite bei der zweiten Qualität umfasst.
DE112016002377.4T 2015-05-27 2016-05-27 Streamen von sphärischem video Pending DE112016002377T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562167260P 2015-05-27 2015-05-27
US62/167,260 2015-05-27
PCT/US2016/034684 WO2016191694A1 (en) 2015-05-27 2016-05-27 Streaming spherical video

Publications (1)

Publication Number Publication Date
DE112016002377T5 true DE112016002377T5 (de) 2018-02-08

Family

ID=56121202

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016002377.4T Pending DE112016002377T5 (de) 2015-05-27 2016-05-27 Streamen von sphärischem video

Country Status (7)

Country Link
US (1) US10880346B2 (de)
EP (1) EP3304487A1 (de)
JP (1) JP6501904B2 (de)
KR (1) KR102013403B1 (de)
CN (1) CN107439010B (de)
DE (1) DE112016002377T5 (de)
WO (1) WO2016191694A1 (de)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10204658B2 (en) 2014-07-14 2019-02-12 Sony Interactive Entertainment Inc. System and method for use in playing back panorama video content
US10652603B2 (en) * 2015-07-09 2020-05-12 Triton Us Vp Acquision Co. Transitioning between broadcast and unicast streams
US9858706B2 (en) * 2015-09-22 2018-01-02 Facebook, Inc. Systems and methods for content streaming
US10096130B2 (en) * 2015-09-22 2018-10-09 Facebook, Inc. Systems and methods for content streaming
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US9767363B2 (en) * 2015-10-30 2017-09-19 Google Inc. System and method for automatic detection of spherical video content
US9984499B1 (en) 2015-11-30 2018-05-29 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US10593028B2 (en) * 2015-12-03 2020-03-17 Samsung Electronics Co., Ltd. Method and apparatus for view-dependent tone mapping of virtual reality images
JP6741784B2 (ja) 2016-04-08 2020-08-19 ヴィズビット インコーポレイテッド ビューを意識した360度ビデオストリーミング
US10602191B2 (en) 2016-05-13 2020-03-24 Gopro, Inc. Apparatus and methods for video compression
US10681326B2 (en) * 2016-05-19 2020-06-09 AVAGO TECHNOLOGlES INTERNATIONAL SALES PTE. LIMITED 360 degree video system with coordinate compression
US11019257B2 (en) 2016-05-19 2021-05-25 Avago Technologies International Sales Pte. Limited 360 degree video capture and playback
US10848668B2 (en) 2016-05-19 2020-11-24 Avago Technologies International Sales Pte. Limited 360 degree video recording and playback with object tracking
US10432855B1 (en) * 2016-05-20 2019-10-01 Gopro, Inc. Systems and methods for determining key frame moments to construct spherical images
EP3249928A1 (de) * 2016-05-23 2017-11-29 Thomson Licensing Verfahren, vorrichtung und strom aus der formatierung eines immersiven videos für alte und immersive wiedergabevorrichtungen
US11089280B2 (en) 2016-06-30 2021-08-10 Sony Interactive Entertainment Inc. Apparatus and method for capturing and displaying segmented content
WO2018025660A1 (ja) * 2016-08-05 2018-02-08 ソニー株式会社 画像処理装置および画像処理方法
WO2018049221A1 (en) 2016-09-09 2018-03-15 Vid Scale, Inc. Methods and apparatus to reduce latency for 360-degree viewport adaptive streaming
KR102545195B1 (ko) * 2016-09-12 2023-06-19 삼성전자주식회사 가상 현실 시스템에서 컨텐트 전송 및 재생 방법 및 장치
KR102598082B1 (ko) * 2016-10-28 2023-11-03 삼성전자주식회사 영상 표시 장치, 모바일 장치 및 그 동작방법
CN108156363A (zh) * 2016-12-05 2018-06-12 贝马体育科技有限公司 360度视频播放器及方法
US10509965B2 (en) * 2016-12-15 2019-12-17 Google Llc Methods, systems, and media for detecting two-dimensional videos placed on a sphere in abusive spherical video content by tiling the sphere
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
EP3571845B1 (de) * 2017-01-20 2021-06-30 PCMS Holdings, Inc. Sichtfeldvorhersageverfahren auf basis von kontextinformationen für 360-grad-vr-video
US10623735B2 (en) 2017-01-21 2020-04-14 OrbViu Inc. Method and system for layer based view optimization encoding of 360-degree video
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10319149B1 (en) 2017-02-17 2019-06-11 Snap Inc. Augmented reality anamorphosis system
US10074381B1 (en) 2017-02-20 2018-09-11 Snap Inc. Augmented reality speech balloon system
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
CN108513119A (zh) * 2017-02-27 2018-09-07 阿里巴巴集团控股有限公司 图像的映射、处理方法、装置和机器可读介质
US10754514B1 (en) 2017-03-01 2020-08-25 Matroid, Inc. Machine learning in video classification with schedule highlighting
WO2018184528A1 (en) 2017-04-05 2018-10-11 Mediatek Inc. Method and apparatus for processing projection-based frame with at least one projection face generated using non-uniform mapping
US11004173B2 (en) * 2017-03-13 2021-05-11 Mediatek Inc. Method for processing projection-based frame that includes at least one projection face packed in 360-degree virtual reality projection layout
US11057643B2 (en) 2017-03-13 2021-07-06 Mediatek Inc. Method and apparatus for generating and encoding projection-based frame that includes at least one padding region and at least one projection face packed in 360-degree virtual reality projection layout
US11184599B2 (en) 2017-03-15 2021-11-23 Pcms Holdings, Inc. Enabling motion parallax with multilayer 360-degree video
US10887600B2 (en) * 2017-03-17 2021-01-05 Samsung Electronics Co., Ltd. Method and apparatus for packaging and streaming of virtual reality (VR) media content
JP6872631B2 (ja) 2017-03-23 2021-05-19 ヴィド スケール インコーポレイテッド 360度適応ストリーミングのエクスペリエンスを改善するためのメトリックおよびメッセージ
CN110520903B (zh) 2017-03-28 2023-11-28 三星电子株式会社 基于用户移动信息显示图像的方法和装置
US10819907B2 (en) 2017-03-30 2020-10-27 Mediatek Inc. Method and apparatus for signaling spherical region information in ISOBMFF
US10979663B2 (en) * 2017-03-30 2021-04-13 Yerba Buena Vr, Inc. Methods and apparatuses for image processing to optimize image resolution and for optimizing video streaming bandwidth for VR videos
US10387730B1 (en) 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
CN108810636B (zh) * 2017-04-28 2020-04-14 华为技术有限公司 视频播放方法、虚拟现实设备、服务器、系统及存储介质
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US10873775B2 (en) * 2017-06-12 2020-12-22 Netflix, Inc. Staggered key frame video encoding
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
DE112018002432T5 (de) 2017-08-18 2020-01-23 Mediatek Inc. Verfahren und Vorrichtung zum Reduzieren von Artefakten in einem projektionsbasierten Rahmen
US10740974B1 (en) 2017-09-15 2020-08-11 Snap Inc. Augmented reality system
WO2019073113A1 (en) * 2017-10-09 2019-04-18 Nokia Technologies Oy APPARATUS, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
EP3470974A1 (de) * 2017-10-10 2019-04-17 Thomson Licensing Auswahl von animiertem betrachtungswinkel in einer immersiven virtuellen umgebung
CN109698949B (zh) * 2017-10-20 2020-08-21 腾讯科技(深圳)有限公司 基于虚拟现实场景的视频处理方法、装置和系统
EP3493552A1 (de) * 2017-11-30 2019-06-05 Thomson Licensing Verfahren zur verwaltung einer streaming-verarbeitung eines auf einer netzwerkeinrichtung gespeicherten räumlich unterteilten multimedia-videos und entsprechendes endgerät
KR101981868B1 (ko) * 2017-12-12 2019-08-28 가천대학교 산학협력단 가상 현실 비디오 품질 제어
US10554953B2 (en) * 2017-12-17 2020-02-04 Google Llc Distortion of video for seek in 360 degree video
CN108366249A (zh) * 2018-01-17 2018-08-03 安徽中骄智能科技有限公司 一种基于wifi模块的虚拟现实vr数据快速处理系统
CN111742530B (zh) 2018-02-22 2022-07-19 索尼公司 流传输数据的方法、提供网络辅助的方法以及用户设备
CN108520492B (zh) * 2018-03-16 2022-04-26 中国传媒大学 全景视频映射方法及系统
CN116708847A (zh) 2018-03-22 2023-09-05 Vid拓展公司 方法、系统及非暂时性计算机可读介质
US10812828B2 (en) 2018-04-10 2020-10-20 At&T Intellectual Property I, L.P. System and method for segmenting immersive video
US11153482B2 (en) * 2018-04-27 2021-10-19 Cubic Corporation Optimizing the content of a digital omnidirectional image
EP3752956B1 (de) 2018-05-21 2023-12-13 Google LLC Verfahren, systeme und medien zur erkennung von auf einer kugel platzierten zweidimensionalen videos in missbräuchlichen kugelförmigen videoinhalten
US10666863B2 (en) * 2018-05-25 2020-05-26 Microsoft Technology Licensing, Llc Adaptive panoramic video streaming using overlapping partitioned sections
US10764494B2 (en) 2018-05-25 2020-09-01 Microsoft Technology Licensing, Llc Adaptive panoramic video streaming using composite pictures
US11917127B2 (en) 2018-05-25 2024-02-27 Interdigital Madison Patent Holdings, Sas Monitoring of video streaming events
US10623791B2 (en) 2018-06-01 2020-04-14 At&T Intellectual Property I, L.P. Field of view prediction in live panoramic video streaming
US10812774B2 (en) 2018-06-06 2020-10-20 At&T Intellectual Property I, L.P. Methods and devices for adapting the rate of video content streaming
US10616621B2 (en) 2018-06-29 2020-04-07 At&T Intellectual Property I, L.P. Methods and devices for determining multipath routing for panoramic video content
US11695978B2 (en) * 2018-07-05 2023-07-04 Mux, Inc. Methods for generating video-and audience-specific encoding ladders with audio and video just-in-time transcoding
US10708494B2 (en) 2018-08-13 2020-07-07 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic video content
US11019361B2 (en) 2018-08-13 2021-05-25 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic view of a camera for capturing video content
CN109089097A (zh) * 2018-08-28 2018-12-25 恒信东方文化股份有限公司 一种基于vr图像处理的焦点对象选取方法
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US11032590B2 (en) 2018-08-31 2021-06-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for providing panoramic video content to a mobile device from an edge server
US10999583B2 (en) 2018-09-14 2021-05-04 Apple Inc. Scalability of multi-directional video streaming
CN110956583B (zh) * 2018-09-26 2022-05-10 华为技术有限公司 球面图像处理方法、装置及服务器
US11184461B2 (en) 2018-10-23 2021-11-23 At&T Intellectual Property I, L.P. VR video transmission with layered video by re-using existing network infrastructures
CN109413448A (zh) * 2018-11-05 2019-03-01 中山大学 基于深度强化学习的移动设备全景视频播放系统
US10638165B1 (en) * 2018-11-08 2020-04-28 At&T Intellectual Property I, L.P. Adaptive field of view prediction
JP6688367B1 (ja) * 2018-11-12 2020-04-28 Nttテクノクロス株式会社 動画配信装置、端末、動画配信システム、動画配信方法、及びプログラム
US10939139B2 (en) 2018-11-29 2021-03-02 Apple Inc. Adaptive coding and streaming of multi-directional video
CN109712222B (zh) * 2018-12-29 2023-12-19 超级魔方(北京)科技有限公司 一种图像处理方法及装置
KR102174795B1 (ko) 2019-01-31 2020-11-05 주식회사 알파서클 가상현실을 표현하는 분할영상 사이의 전환시점을 제어하여 프레임 동기화를 구현하는 가상현실 영상전환방법 및 가상현실 영상재생장치
KR102174794B1 (ko) * 2019-01-31 2020-11-05 주식회사 알파서클 복수의 분할영상 중 재생되는 영상의 전환시점을 제어하는 가상현실 분할영상 전환방법 및 가상현실 영상재생장치
CN111935557B (zh) * 2019-05-13 2022-06-28 华为技术有限公司 视频处理方法、装置及系统
US11956295B2 (en) 2019-09-27 2024-04-09 Apple Inc. Client-end enhanced view prediction for multi-view video streaming exploiting pre-fetched data and side information
WO2021107934A1 (en) * 2019-11-26 2021-06-03 Hewlett-Packard Development Company, L.P. Increase image quality in video streaming sessions
KR102295264B1 (ko) * 2019-11-28 2021-08-30 주식회사 알파서클 하나의 스트리밍영상을 이용하여 복수의 가상현실영상을 재생하는 가상현실영상재생장치 및 방법
US11284141B2 (en) 2019-12-18 2022-03-22 Yerba Buena Vr, Inc. Methods and apparatuses for producing and consuming synchronized, immersive interactive video-centric experiences
KR20210107409A (ko) 2020-02-24 2021-09-01 삼성전자주식회사 엣지 컴퓨팅 서비스를 이용한 영상 컨텐츠 전송 방법 및 장치
US11736455B1 (en) * 2020-07-01 2023-08-22 Amazon Technologies, Inc. Techniques for performing video-based verification
CN112804511B (zh) * 2021-01-04 2022-04-01 烽火通信科技股份有限公司 一种动态渲染全景视频的方法和装置
CN115955580B (zh) * 2023-03-14 2023-06-06 江西财经大学 基于可伸缩编码的全景视频边缘缓存方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577981A (en) * 1994-01-19 1996-11-26 Jarvik; Robert Virtual reality exercise machine and computer controlled video system
US7330875B1 (en) * 1999-06-15 2008-02-12 Microsoft Corporation System and method for recording a presentation for on-demand viewing over a computer network
GB2356757B (en) * 1999-11-29 2004-02-04 Seos Displays Ltd Image display apparatus
US6920175B2 (en) * 2001-01-03 2005-07-19 Nokia Corporation Video coding architecture and methods for using same
US7428000B2 (en) * 2003-06-26 2008-09-23 Microsoft Corp. System and method for distributed meetings
KR100596705B1 (ko) * 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
US20060095398A1 (en) * 2004-11-04 2006-05-04 Vasudev Bhaskaran Automatic defocussing of displayed multimedia information on client by monitoring static and dynamic properties of the client
CN101073268A (zh) * 2004-12-10 2007-11-14 皇家飞利浦电子股份有限公司 使用单层编码和优先级区分流的无线视频流
US8458753B2 (en) * 2006-02-27 2013-06-04 Time Warner Cable Enterprises Llc Methods and apparatus for device capabilities discovery and utilization within a content-based network
JP4983917B2 (ja) * 2007-05-23 2012-07-25 日本電気株式会社 動画像配信システム、変換装置および動画像配信方法
US8238420B1 (en) * 2008-01-24 2012-08-07 Adobe Systems Incorporated Video content transcoding for mobile devices
US8319825B1 (en) * 2008-06-16 2012-11-27 Julian Urbach Re-utilization of render assets for video compression
US9294789B2 (en) * 2008-12-09 2016-03-22 Adobe Systems Incorporated Enhanced live multibitrate video encoding
US8380790B2 (en) * 2008-12-15 2013-02-19 Microsoft Corporation Video conference rate matching
US8964008B2 (en) * 2011-06-17 2015-02-24 Microsoft Technology Licensing, Llc Volumetric video presentation
JP5953963B2 (ja) * 2012-06-13 2016-07-20 ソニー株式会社 頭部装着型映像表示装置
US9401043B2 (en) 2013-01-18 2016-07-26 Pixar Photon beam diffusion
US9019337B2 (en) 2013-02-21 2015-04-28 Avaya Inc. System and method for managing a presentation
JP5941000B2 (ja) * 2013-03-12 2016-06-29 日本電信電話株式会社 映像配信装置及び映像配信方法
DE102014207607B4 (de) * 2013-04-25 2019-09-19 Avago Technologies International Sales Pte. Ltd. System und Verfahren zur Verarbeitung von Videodaten
US10137361B2 (en) * 2013-06-07 2018-11-27 Sony Interactive Entertainment America Llc Systems and methods for using reduced hops to generate an augmented virtual reality scene within a head mounted system
JP6178705B2 (ja) * 2013-11-15 2017-08-09 日本電信電話株式会社 映像配信システム、映像配信装置及び映像配信プログラム
KR102257621B1 (ko) * 2014-05-19 2021-05-28 엘지전자 주식회사 썸네일 이미지를 디스플레이 하는 헤드 마운티드 디스플레이 디바이스 및 그 제어 방법
US9661312B2 (en) * 2015-01-22 2017-05-23 Microsoft Technology Licensing, Llc Synthesizing second eye viewport using interleaving
JP2018514093A (ja) * 2015-01-28 2018-05-31 ネクストブイアール・インコーポレイテッド ズーム関連方法および装置

Also Published As

Publication number Publication date
KR20170123656A (ko) 2017-11-08
JP2018525852A (ja) 2018-09-06
US10880346B2 (en) 2020-12-29
JP6501904B2 (ja) 2019-04-17
EP3304487A1 (de) 2018-04-11
CN107439010B (zh) 2022-01-04
WO2016191694A1 (en) 2016-12-01
CN107439010A (zh) 2017-12-05
KR102013403B1 (ko) 2019-08-22
US20160352791A1 (en) 2016-12-01

Similar Documents

Publication Publication Date Title
DE112016002377T5 (de) Streamen von sphärischem video
US10277914B2 (en) Measuring spherical image quality metrics based on user field of view
US10674078B2 (en) Image mapping and processing method, apparatus and machine-readable media
US10313665B2 (en) Behavioral directional encoding of three-dimensional video
CN109792562B (zh) 视频数据的基于内容的流分割
Chiariotti A survey on 360-degree video: Coding, quality of experience and streaming
CN112204993B (zh) 使用重叠的被分区的分段的自适应全景视频流式传输
US20160353146A1 (en) Method and apparatus to reduce spherical video bandwidth to user headset
DE112016004216T5 (de) Allgemeine Sphärische Erfassungsverfahren
US11432009B2 (en) Techniques for encoding and decoding immersive video
DE112018000280T5 (de) Entblockungsfilterung für 360-video
DE112013004778T5 (de) Kodierung von Bildern unter Verwendung eines 3D-Netzes von Polygonen und entsprechenden Strukturen
DE102017009149A1 (de) Aufzeichnung und Wiedergabe von 360-Grad-Videos mit Objektverfolgung
DE112017005235T5 (de) Erhalten und signalisieren einer region oder eines viewports in streaming-medien
DE102017009145A1 (de) Erfassung und Wiedergabe von 360-Grad-Videos
JP7177034B2 (ja) レガシー及び没入型レンダリングデバイスのために没入型ビデオをフォーマットする方法、装置、及びストリーム
DE102017118714A1 (de) Mehrstufiges Kameraträgersystem für die stereoskope Bildaufnahme
KR20200051605A (ko) 화상 처리 장치 및 파일 생성 장치
JP2018522430A (ja) ユーザヘッドセットへの球状ビデオ帯域幅を減少させる方法および装置
KR20200051599A (ko) 화상 처리 장치 및 파일 생성 장치
DE112018004592T5 (de) Wiedergabevorrichtung und -verfahren und erzeugungsvorrichtung und -verfahren
DE102018130085A1 (de) Erzeugen eines 2d-videos aus einem 360-video
EP3625965B1 (de) Verarbeitungsverfahren und verarbeitungssystem für videodaten
DE102018002049B4 (de) 360-grad-video mit kombiniertem projektionsformat
AT518256A4 (de) Erzeugung eines für eine stereoskopische wiedergabe vorgesehenen panoramabilds und eine solche wiedergabe

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06T0003400000

Ipc: H04N0021472800