DE102019201370A1 - Verarbeitung von multidirektionalen bildern in räumlich geordneten videokodieranwendungen - Google Patents

Verarbeitung von multidirektionalen bildern in räumlich geordneten videokodieranwendungen Download PDF

Info

Publication number
DE102019201370A1
DE102019201370A1 DE102019201370.8A DE102019201370A DE102019201370A1 DE 102019201370 A1 DE102019201370 A1 DE 102019201370A1 DE 102019201370 A DE102019201370 A DE 102019201370A DE 102019201370 A1 DE102019201370 A1 DE 102019201370A1
Authority
DE
Germany
Prior art keywords
image
data
viewport
multidirectional
encoder
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
DE102019201370.8A
Other languages
English (en)
Inventor
Jae Hoon Kim
Dazhong ZHANG
Hang Yuan
Jiefu Zhai
Ming Chen
Xiaosong ZHOU
Chris Y. Chung
Hsi-Jung Wu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE102019201370A1 publication Critical patent/DE102019201370A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Bildverarbeitungstechniken können die Kodierung von Ansichtsfensterdaten, die in Mehrfachansicht-Bilddaten enthalten sind, beschleunigen. Gemäß diesen Techniken kann ein Kodierer den Inhalt eines multidirektionalen Bilddatensatzes entsprechend den von einem Dekodierer bereitgestellten Ansichtsfensterpositionsdaten verschieben. Der Kodierer kann die verschobenen multidirektionalen Bilddaten durch prädiktive Kodierung kodieren und die kodierten multidirektionalen Bilddaten und Daten, die einen Betrag der Verschiebung identifizieren, an den Dekodierer senden. Dadurch kann die Ansichtsfensterposition an Positionen in den Bilddaten verschoben werden, die früher als die Positionen kodiert wurden, die die Ansichtsfensterposition natürlicherweise einnimmt, was die Kodierung beschleunigen kann. Beim Dekodieren kann ein Dekodierer seine aktuelle Ansichtsfensterposition mit den vom Kodierer mit den kodierten Videodaten gelieferten Ansichtsfensterpositionsdaten vergleichen. Der Dekodierer kann die kodierten Videodaten dekodieren und einen Teil der dekodierten Videodaten extrahieren, der einer aktuellen Ansichtsfensterposition für die Anzeige entspricht.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft Kodierungstechniken für multidirektionale Bildgebungsanwendungen.
  • Einige moderne Bildgebungsanwendungen erfassen Bilddaten aus mehreren Richtungen um eine Kamera. Einige Kameras schwenken während der Bilderfassung, was es einer Kamera ermöglicht, Bilddaten über einen Winkelbereich zu erfassen, der das effektive Sichtfeld der Kamera erweitert. Einige andere Kameras weisen mehrere Bildgebungssysteme auf, die Bilddaten in mehreren unterschiedlichen Sichtfeldern aufnehmen. In beiden Fällen kann ein Gesamtbild erstellt werden, das die aus diesen verschiedenen Ansichten erfassten Bilddaten zusammenführt.
  • Eine Vielfalt von Wiedergabeanwendungen ist für multidirektionale Inhalte verfügbar. Eine Wiedergabeanwendung beinhaltet die Extraktion und Anzeige einer Teilmenge des Inhalts eines multidirektionalen Bildes. So kann beispielsweise ein Betrachter ein kopfmontiertes Display verwenden und die Ausrichtung des Displays ändern, um einen Teil des multidirektionalen Bildes zu identifizieren, an dem der Betrachter interessiert ist. Alternativ kann ein Betrachter auch ein stationäres Display verwenden und einen Teil des multidirektionalen Bildes, an dem der Betrachter interessiert ist, über Bedienelemente der Benutzeroberfläche identifizieren. In diesen Wiedergabeanwendungen extrahiert eine Anzeigevorrichtung einen Teil des Bildinhalts aus dem multidirektionalen Bild (zur Vereinfachung als „Ansichtsfenster“ bezeichnet) und zeigt ihn an. Die Anzeigevorrichtung zeigt keine anderen Teile des multidirektionalen Bildes an, die sich außerhalb des vom Ansichtsfenster abgedeckten Bereichs befinden.
  • Folglich empfängt in solchen Anwendungen eine Anzeigevorrichtung Bilddaten, die die zur Anzeige benötigten Daten übersteigen. Wenn empfangene Daten durch Videokompressionstechniken kodiert werden, kann eine Dekodiervorrichtung verwendet werden, um komprimierte Bilddaten des multidirektionalen Bildes in seiner Gesamtheit zu dekodieren, bevor das multidirektionale Bild auf der Anzeige zur Wiedergabe präsentiert wird. Ein Dekodieren solcher Bilddaten beinhaltet Verarbeitungslatenzen, die die Darstellung der Ansichtsfensterdaten verzögern können.
  • Dementsprechend sehen die Erfinder im Stand der Technik einen Bedarf an Videokodierungstechniken, die Daten von multidirektionalen Bildern kodieren, aber unnötige Latenzen bei der Erzeugung von Ansichtsfensterdaten für Anzeigeanwendungen vermeiden.
  • Figurenliste
    • 1 veranschaulicht ein System gemäß einem Aspekt der vorliegenden Offenbarung.
    • 2 veranschaulicht bildlich eine Wiedergabeanwendung für ein Senkengerät gemäß einem Aspekt der vorliegenden Offenbarung.
    • 3 veranschaulicht ein Verfahren gemäß einem Aspekt der vorliegenden Offenbarung.
    • 4 veranschaulicht ein Bild eines omnidirektionalen Videos, das von einem Quellgerät kodiert werden kann.
    • 5 veranschaulicht ein verschobenes Bild, das durch das Verfahren von 3 erhalten werden kann.
    • 6 ist ein Funktionsblockdiagramm eines Kodierungssystems gemäß einem Aspekt der vorliegenden Offenbarung.
    • 7 ist ein Funktionsblockdiagramm eines Dekodierungssystems gemäß einem Aspekt der vorliegenden Offenbarung.
    • 8 ist ein Funktionsblockdiagramm eines Kodierungssystems gemäß einem Aspekt der vorliegenden Offenbarung.
    • 9 ist ein Funktionsblockdiagramm eines Dekodierungssystems gemäß einem Aspekt der vorliegenden Offenbarung.
    • 10 veranschaulicht ein Verfahren gemäß einem Aspekt der vorliegenden Offenbarung.
    • 11 veranschaulicht ein Bild eines omnidirektionalen Videos, das von einem Quellgerät kodiert werden kann.
    • 12 veranschaulicht ein verschobenes Bild, das durch das Verfahren von
    • 10 erhalten werden kann, wenn es mit den exemplarischen Ansichtsfensterdaten von 11 in einem Aspekt der vorliegenden Offenbarung arbeitet.
    • 13 veranschaulicht ein verschobenes Bild, das durch das Verfahren von 10 erhalten werden kann, wenn es mit den exemplarischen Ansichtsfensterdaten von 11 in einem anderen Aspekt der vorliegenden Offenbarung arbeitet.
    • Die 14-16 veranschaulichen exemplarische multidirektionale Bildformate, die sich für die Techniken der vorliegenden Offenbarung eignen.
  • DETAILLIERTE BESCHREIBUNG
  • Aspekte der vorliegenden Offenbarung stellen Bildverarbeitungstechniken bereit, die die Kodierung von Ansichtsfensterdaten beschleunigen und dabei unnötige Latenzen beim Erzeugen von Ansichtsfensterdaten für Anzeigeanwendungen vermeiden. Gemäß diesen Techniken kann ein Kodierer den Inhalt eines multidirektionalen Bilddatensatzes entsprechend den von einem Dekodierer bereitgestellten Ansichtsfensterpositionsdaten verschieben. Der Kodierer kann die verschobenen multidirektionalen Bilddaten durch prädiktive Kodierung kodieren und die kodierten multidirektionalen Bilddaten und Daten, die einen Betrag der Verschiebung identifizieren, an den Dekodierer senden. Dadurch kann die Ansichtsfensterposition an Positionen in den Bilddaten verschoben werden, die früher als die Positionen kodiert wurden, die die Ansichtsfensterposition natürlicherweise einnimmt, was die Kodierung beschleunigen kann. Beim Dekodieren kann ein Dekodierer seine aktuelle Ansichtsfensterposition mit den vom Kodierer mit den kodierten Videodaten gelieferten Ansichtsfensterpositionsdaten vergleichen. Der Dekodierer kann die kodierten Videodaten dekodieren und einen Teil der dekodierten Videodaten extrahieren, der einer aktuellen Ansichtsfensterposition für die Anzeige entspricht.
  • 1 veranschaulicht ein System 100 gemäß einem Aspekt der vorliegenden Offenbarung. Das System 100 ist dabei so dargestellt, dass es ein Quellgerät 110 und ein Senkengerät 120 aufweist, die durch ein Netzwerk 130 miteinander verbunden sind. Das Quellgerät 110 kann eine kodierte Darstellung von omnidirektionalem Video an das Senkengerät 120 übertragen. Das Senkengerät 120 kann das kodierte Video empfangen, es dekodieren und einen ausgewählten Teil des dekodierten Videos anzeigen.
  • 1 veranschaulicht das Quellgerät 110 als eine multidirektionale Kamera, die Bilddaten einer örtlichen Umgebung erfasst, bevor sie kodiert werden. In einem weiteren Aspekt kann das Quellgerät 110 omnidirektionales Video von einer externen Quelle (nicht dargestellt) empfangen, wie beispielsweise einem Streaming-Dienst oder einer Speichervorrichtung.
  • Das Senkengerät 120 kann eine Ansichtsfensterposition in einem dreidimensionalen Raum bestimmen, der durch das multidirektionale Bild dargestellt wird. Das Senkengerät 120 kann einen Teil des dekodierten Videos, der angezeigt werden soll, zum Beispiel basierend auf der Ausrichtung des Geräts im freien Raum, auswählen. 1 veranschaulicht das Senkengerät 120 als ein kopfmontiertes Display, aber in anderen Aspekten kann das Senkengerät 120 ein anderer Typ einer Anzeigevorrichtung sein, wie eine stationäre Flachbildschirmanzeige, ein Smartphone, ein Tablet-Computer, eine Spielvorrichtung oder ein tragbarer Mediaplayer. Verschiedene Arten von Benutzersteuerungen können mit jedem solchen Anzeigetyp bereitgestellt werden, durch den ein Betrachter das Ansichtsfenster identifiziert. Der Gerätetyp des Senkengeräts ist für die vorliegende Diskussion unbedeutend, sofern hier nicht anders angegeben.
  • Das Netzwerk 130 stellt eine beliebige Anzahl von Computer- und/oder Kommunikationsnetzwerken dar, die sich von dem Quellgerät 110 zum Senkengerät 120 erstrecken. Das Netzwerk 130 kann ein oder eine Kombination von leitungsvermittelten und/oder paketvermittelten Kommunikationsnetzen beinhalten. Das Netzwerk 130 kann Daten zwischen dem Quellgerät 110 und dem Senkengerät 120 durch eine beliebige Anzahl von drahtgebundenen und/oder drahtlosen Kommunikationsmedien übermitteln. Die Architektur und der Betrieb des Netzwerks 130 sind für die vorliegende Diskussion unerheblich, sofern hier nicht anders angegeben.
  • 1 veranschaulicht eine Kommunikationskonfiguration, bei der kodierte Videodaten in einer einzigen Richtung von dem Quellgerät 110 zu dem Senkengerät 120 übertragen werden. Aspekte der vorliegenden Offenbarung finden Anwendung bei Kommunikationsgeräten, die kodierte Videodaten bidirektional austauschen, von Gerät 110 zur Gerät 120 und auch von Gerät 120 zu Gerät 110. Die Prinzipien der vorliegenden Offenbarung finden Anwendung mit sowohl unidirektionalem als auch bidirektionalem Austausch von Video.
  • 2 veranschaulicht bildlich eine Wiedergabeanwendung für ein Senkengerät 200 gemäß einem Aspekt der vorliegenden Offenbarung. Dort wird das omnidirektionale Video so dargestellt, als ob es entlang einer kugelförmigen Oberfläche 210 existiert, die um das Senkengerät 200 herum vorgesehen ist. Basierend auf der Ausrichtung des Senkengeräts 200, kann das Gerät 200 einen Abschnitt des Videos (zur Vereinfachung als „Ansichtsfenster“ bezeichnet) auswählen und den ausgewählten Abschnitt anzeigen. Wenn sich die Ausrichtung des Senkengeräts 200 ändert, kann das Gerät 200 verschiedene Abschnitte aus dem Video auswählen. In 2 ist beispielsweise das Ansichtsfenster veranschaulicht, das sich von einer ersten Position 230 zu einer zweiten Position 240 entlang der Oberfläche 210 ändert.
  • Aspekte der vorliegenden Offenbarung können Videokompressionstechniken gemäß einem beliebigen aus einer Anzahl von Kodierungsprotokollen anwenden. So kann beispielsweise das Quellgerät 110 (1) Videodaten gemäß einem ITU-T-Kodierungsprotokoll wie H.265 (HEVC), H.264 (AVC) oder einem Vorgänger-Kodierungsprotokoll kodieren. Üblicherweise zerlegen solche Protokolle einzelne Bilder des Videos in räumliche Video-Arrays, die hier „Kacheln“ genannt werden, und sie kodieren die Pixelblöcke in einer regulären Kodierreihenfolge, wie beispielsweise einer Raster-Scanreihenfolge.
  • 3 veranschaulicht ein Verfahren 300 gemäß einem Aspekt der vorliegenden Offenbarung. Gemäß dem Verfahren 300 kann ein Senkengerät 120 Daten an das Quellgerät 110 übertragen, die eine Position eines Ansichtsfensters identifizieren, das von dem Senkengerät 120 angezeigt wird (Nachricht 310). Als Reaktion auf die Ansichtsfensterpositionsdaten kann das Verfahren 300 Kacheln des omnidirektionalen Bildes um einen Betrag verschieben, der den Ansichtsfensterpositionsdaten (Kasten 320) entspricht. Das Verfahren 300 kann das verschobene Bild prädiktiv kodieren (Kasten 330) und danach das kodierte Video des verschobenen Bildes zusammen mit den die Position des Ansichtsfensters identifizierenden Daten zum Senkengerät 120 übertragen (Nachricht 340).
  • Das Senkengerät 120 kann die kodierten Videodaten empfangen und dekodieren (Kasten 350). Das Senkengerät 120 kann auch Daten aus dem dekodierten Bild extrahieren, die dem Ansichtsfenster entsprechen und es anzeigen (Kasten 360).
  • Das Verfahren 300 von 3 kann sich im Laufe einer Videokodierungssitzung in mehreren Iterationen wiederholen. Es wird erwartet, dass das Senkengerät 120 seine Ansichtsfensterposition (Nachricht 310) in periodischen Intervallen berichtet und, zwischen solchen Berichten von Ansichtsfensterpositionen, kodiert das Quellgerät 110 neu empfangene Bilder einer Videosequenz, nachdem sie verschoben wurden, um die dann aktuelle Ansichtsfensterposition zu berücksichtigen (Kasten 310). Wie hier beschrieben, nutzt die prädiktive Videokodierung oft die zeitliche Redundanz in einer Videosequenz aus, indem sie ein Eingangsbild differentiell in Bezug auf zuvor kodierte Bilder darstellt, die als Referenzbilder dienen sollen. In einem Aspekt kann das Verfahren 300 auch die Referenzbilder verschieben, so dass sie einer neu empfangenen Ansichtsfensterposition entsprechen (Kasten 370). Auf diese Weise kann die Ausrichtung zwischen der Orientierung der Eingangsbilder und der Orientierung der Referenzbilder beibehalten werden, was die Größe der Bewegungsvektoren reduzieren kann, die bei der prädiktiven Kodierung abgeleitet werden.
  • 4 veranschaulicht ein Bild 400 eines omnidirektionalen Videos, das von einem Quellgerät 110 kodiert werden kann. Dort wird das Bild 400 als in eine Vielzahl von Kacheln 410.0-410.n zerlegt dargestellt. Jede Kachel ist in einer Raster-Scanreihenfolge kodiert. So kann der Inhalt der Kachel 410.0 vor dem Inhalt der Kachel 410.1 kodiert werden, der Inhalt der Kachel 410.1 kann vor dem Inhalt der Kachel 410.2 kodiert werden. Der Prozess kann sequentiell fortgesetzt werden, indem jede Kachel entlang einer gemeinsamen Reihe kodiert wird und die Kacheln in einer nachfolgenden Reihe kodiert werden, bis eine endgültige Kachel 410.n einer letzten Reihe von Kacheln kodiert ist. Üblicherweise werden die Kacheln 410.0-410.n mit Bezug auf einen Ursprungspunkt 420 definiert, der für das Quellbild 400 definiert ist.
  • Wie besprochen, kann ein Senkengerät 120 (1) ein Ansichtsfenster 430 aus dem Bild 400 extrahieren, nachdem es von dem Quellgerät 110 (1) kodiert, an das Senkengerät 120 übertragen und dekodiert wurde. Das Senkengerät 120 kann das Ansichtsfenster 400 lokal anzeigen. Das Senkengerät 120 kann Daten an das Quellgerät 110 senden, die eine Position des Ansichtsfensters 430 innerhalb eines Bereichs des Bildes 400 identifizieren. Zum Beispiel kann das Senkengerät 120 Offsetdaten, als Offset-x und Offset-y gezeigt, übertragen, die eine Position des Ansichtsfensters 430 innerhalb des Bereichs des Bildes 400 identifizieren.
  • 5 veranschaulicht ein verschobenes Bild 500, das durch das Verfahren 300 von 3 erhalten werden kann, das auf das exemplarische Bild 400 von 4 angewandt wird. In diesem Beispiel kann das Verfahren 400 die Bilddaten 400 in ganzzahligen Anzahlen von Kacheln verschoben haben, um das Ansichtsfenster 530 so nahe an einem Ursprung 520 des Bildes 500 wie möglich zu lokalisieren. Wenn die Bilddaten verschoben werden, können Kachel-für-Kachel-Kodierungsprozesse dazu führen, dass die Kacheln 510.0-510.3 in der ersten Reihe des verschobenen Bildes 500 zuerst kodiert werden, gefolgt von den Kacheln 510.4-510.7 und 510.8-510.n der nachfolgenden Reihen. Es wird erwartet, dass das Verschieben von Videodaten dazu führt, dass die Bildinhalte des Ansichtsfensters 530 in die erste(n) Reihe(n) gebracht werden, die kodiert ist/sind.
  • Das Dekodieren der kodierten Videodaten kann auch in einer Raster-Scanreihenfolge erfolgen. Wenn somit die kodierten Videodaten des Bildes 500 dekodiert werden, wird erwartet, dass dekodierte Videodaten der Kacheln 510.0-510.3 in der ersten Reihe verfügbar sind, bevor dekodierte Videodaten der Kacheln 510.4-510.7 und 510.8 - 510.n der nachfolgenden Reihen verfügbar sind. Auf diese Weise werden dekodierte Videodaten des Ansichtsfensters 530 mit reduzierter Latenzzeit erhalten und angezeigt.
  • Das Verschieben von Daten in einem omnidirektionalen Bild kann dazu führen, dass der Bildinhalt um die Ränder des Bildes herum „gewickelt“ wird. Wenn also die Kacheln 410.4-410.7 (4) von einer Position in einer mittleren Reihe zu den Kacheln 510.0-510.3 in einer Position in einer oberen Reihe verschoben werden, wickeln sich die Kacheln 410.0-410.3, die früher die Position der oberen Reihe belegten, um eine niedrigste Position des Bildes. In dem Beispiel der 4 und 5 wird das Ansichtsfenster 430 um eine Zeile verschoben und daher werden die Kacheln 410.0-410.3 der oberen Reihe in 4 um eine Zeilenposition in die untere Reihe von Kacheln 510.8-510.n von 5 verschoben.
  • In ähnlicher Weise können die Kacheln in einer Spalten-Richtung verschoben werden, wobei sich die Kacheln von den tiefen Spaltenpositionen 400 in einem Quellbild um die entsprechenden hohen Spaltenpositionen in dem verschobenen Bild 500 wickeln. Somit kann in dem Beispiel von 4 und 5 das Ansichtsfenster 430 um eine Spaltenposition verschoben werden, um die Kachel 510.0 in dem verschobenen Bild zu belegen. Der Bildinhalt, der die Kacheln 410.0, 410.4 und 410.8 belegt, kann aufgrund der Verschiebung entsprechend zu den Spaltenpositionen 510.3, 510.7 und 510.n verschoben werden. 5 veranschaulicht eine Position des Quellenursprungs 540 nach der Verschiebung.
  • Wenn das Quellgerät 110 das verschobene Bild 500 kodiert (Kasten 330, 3), kann das Quellgerät 110 Metadaten in die kodierten Videodaten einschließen, die die Position des Ansichtsfensters innerhalb des kodierten Bildes identifizieren. Zum Beispiel können, wie in 5 dargestellt, die kodierten Videodaten Offset-X'- und Offset-Y'-Indikatoren einschließen, die eine Position des Ansichtsfensters innerhalb des kodierten Bildes identifizieren.
  • Während des Betriebs des Verfahrens 300 von 3 können Kommunikationslatenzen auftreten, die dazu führen, dass sich das Ansichtsfenster an dem Senkengerät 120 von dem Zeitpunkt an ändert, an dem das Senkengerät die Ansichtsfensterposition in Nachricht 310 mitteilt, und dem Zeitpunkt, an dem das Senkengerät 120 Ansichtsfensterdaten in Box 360 anzeigt. In einem Aspekt können die Vorgänge des Verfahrens 300 iterativ durchgeführt werden, wobei das Senkengerät 120 seine Ansichtsfensterposition in verschiedenen Intervallen identifiziert und das Senkengerät 120 kodierte verschobene Bilder als Reaktion empfängt. Darüber hinaus können die Quell- und Senkengeräte 110, 120 an einer Signalisierung beteiligt sein, die die verschiedenen Iterationen von Ansichtsfensterpositionsberichten verfolgt, die von einem Senkengerät 120 in Nachricht 310 identifiziert werden. Unter einem solchen Aspekt kann, wenn ein Senkengerät 120 ein verschobenes Bild in Kasten 350 dekodiert, dieses einen Bildinhalt extrahieren, der einer Ansichtsfensterposition entspricht, die zum Zeitpunkt der Anzeige vorhanden ist. Zum Beispiel kann das Senkengerät 120 bestimmen, ob eine aktuelle Ansichtsfensterposition sich von einer von dem Quellgerät 110 in Box 320 verwendeten Ansichtsfensterposition unterscheidet, und um wieviel. Auf diese Weise kann das Senkengerät 120 Videoinhalt für ein aktuell definiertes Ansichtsfenster sogar bei Vorhandensein von Kommunikationslatenz extrahieren und anzeigen.
  • Quellgeräte 110 können Positionen von Ansichtsfenstern auf verschiedene Arten und Weisen berichten. In einem Aspekt kann die Ansichtsfensterposition unter Verwendung von x- und y-Offsets identifiziert werden, wie in 5 veranschaulicht (Offset-x', Offset-y'). In einem weiteren Aspekt können Ansichtsfensterpositionen mit Hilfe der Drehwinkel θ, φ und α identifiziert werden (2). Tatsächlich kann eine Syntax für ein Kodierungsprotokoll definiert werden, um eine Kodierung mithilfe dieser Techniken zu unterstützen. Eine solche Syntax ist in Tabelle 1 unten definiert: Tabelle 1
    Syntax Bedeutung
    frame_shift true/false um anzuzeigen, dass ein Bild verschoben wurde
    if (frame_shift) {
    offset_x bei definierter Genauigkeit, horizontale Verschiebung des Bildes
    offset_y bei definierter Genauigkeit, vertikale Verschiebung des Bildes
    } else {
    sphere rotated true/false um anzuzeigen, dass die Kugel gedreht wird
    if (sphere rotated) {
    rotation_angle_θ bei definierter Genauigkeit, Drehwinkel entlang der x-Achse
    rotation_angle_φ bei definierter Genauigkeit, Drehwinkel entlang der y-Achse
    rotation_angle_α bei definierter Genauigkeit, Drehwinkel entlang der z-Achse
    }
    }
  • 6 ist ein Funktionsblockdiagramm eines Kodierungssystems 600 gemäß einem Aspekt der vorliegenden Offenbarung. Das System 600 kann eine Bildquelle 610, ein Bildverarbeitungssystem 620, einen Videokodierer 630, einen Videodekodierer 640, einen Referenzbildspeicher 650 und einen Prädiktor 660 beinhalten. Die Bildquelle 610 kann Bilddaten als ein multidirektionales Bild erzeugen, das Bilddaten eines Sichtfelds enthält, das sich um einen Bezugspunkt in mehreren Richtungen erstreckt. Das Bildverarbeitungssystem 620 kann Bildverarbeitungsvorgänge durchführen, um das Bild für die Kodierung zu konditionieren. Gemäß einem Aspekt kann das Bildverarbeitungssystem 620 den Inhalt des multidirektionalen Bildes gemäß der Ansichtsfensterpositionsdaten verschieben, wie in der vorstehenden Diskussion beschrieben. Der Videokodierer 630 kann eine kodierte Darstellung seiner Eingangsbilddaten erzeugen, üblicherweise durch Ausnutzung räumlicher und/oder zeitlicher Redundanzen in den Bilddaten. Der Videokodierer 630 kann eine kodierte Darstellung der Eingangsdaten ausgeben, die bei der Übertragung und/oder Speicherung weniger Bandbreite verbraucht als das ursprüngliche Quellvideo.
  • Der Videodekodierer 640 kann die vom Videokodierer 630 durchgeführten Kodiervorgänge invertieren, um ein rekonstruiertes Bild aus den kodierten Videodaten zu erhalten. Üblicherweise sind die Kodierungsprozesse, die durch den Videokodierer 630 angewendet werden, verlustbehaftete Prozesse, die bewirken, dass das rekonstruierte Bild im Vergleich zu dem ursprünglichen Bild verschiedene Fehler aufweist. Der Videodekodierer 640 kann das Bild ausgewählter kodierter Bilder, die als „Referenzbilder“ bezeichnet werden, rekonstruieren und die dekodierten Referenzbilder im Referenzbildspeicher 650 speichern. Wenn keine Übertragungsfehler vorliegen, replizieren die dekodierten Referenzbilder dekodierte Referenzbilder, die von einem Dekodierer erhalten wurden (in 6 nicht gezeigt).
  • Der Prädiktor 660 kann Prädiktionsreferenzen für neue Eingangsbilder auswählen, wenn sie kodiert sind. Für jeden Abschnitt des Eingangsbildes, das kodiert wird (zur Vereinfachung als „Pixelblock“ bezeichnet), kann der Prädiktor 660 einen Kodierungsmodus auswählen und einen Abschnitt eines Referenzbildes identifizieren, der als eine Prädiktionsreferenzsuche für den Pixelblock dienen kann, der kodiert wird. Der Kodierungsmodus kann ein Intra-Kodierungsmodus sein, in welchem Fall die Prädiktionsreferenz aus einem zuvor kodierten (und dekodierten) Abschnitt des Bildes gezogen werden kann, das kodiert wird. Alternativ kann der Kodierungsmodus ein Inter-Kodierungsmodus sein, in welchem Fall die Prädiktionsreferenz aus einem anderen zuvor kodierten und dekodierten Bild gezogen werden kann.
  • Wenn eine geeignete Prädiktionsreferenz identifiziert wird, kann der Prädiktor 660 die Prädiktionsdaten an den Videokodierer 630 liefern. Der Videokodierer 630 kann Eingangsvideodaten differenziell in Bezug auf Prädiktionsdaten kodieren, die von dem Prädiktor 660 geliefert werden. Üblicherweise werden die Prädiktionsvorgänge und das differentielle Kodieren auf einer Pixelblock-für-Pixelblock-Basis durchgeführt. Prädiktionsreste, die pixelweise Unterschiede zwischen den Eingangspixelblöcken und den Prädiktionspixelblöcken darstellen, können weiteren Kodierungsvorgängen unterzogen werden, um die Bandbreite weiter zu reduzieren.
  • Wie angegeben, sollte die kodierte Videodatenausgabe des Videokodierers 630 bei der Übertragung und/oder Speicherung weniger Bandbreite verbrauchen als die Eingangsdaten. Das Kodierungssystem 600 kann die kodierten Videodaten an eine Ausgabevorrichtung 670, wie einen Sendeempfänger, ausgeben, der die kodierten Videodaten über ein Kommunikationsnetzwerk 130 (1) übertragen kann. Alternativ kann das Kodierungssystem 600 die kodierten Daten an eine Speichervorrichtung (nicht gezeigt) wie ein elektronisches, magnetisches und/oder optisches Speichermedium übertragen.
  • Der Sendeempfänger 670 kann auch Ansichtsfensterpositionsdaten von einem Dekodiergerät (7) empfangen und die Ansichtsfensterpositionsdaten an den Bildprozessor 620 liefern.
  • 7 ist ein Funktionsblockdiagramm eines Dekodierungssystems 700 gemäß einem Aspekt der vorliegenden Offenbarung. Das Dekodierungssystem 700 kann einen Sendeempfänger 710, einen Videodekodierer 720, einen Bildprozessor 730, eine Videosenke 740, einen Referenzbildspeicher 750 und einen Prädiktor 760 beinhalten. Der Sendeempfänger 710 kann kodierte Videodaten von einem Kanal empfangen und zu dem Videodekodierer 720 leiten. Der Videodekodierer 720 kann die kodierten Videodaten mit Bezug auf Prädiktionsdaten dekodieren, die von dem Prädiktor 760 geliefert werden. Der Videodekodierer 720 kann dekodierte Videodaten in einer Darstellung ausgeben, die durch einen Bildprozessor 220 (2) eines Kodierungssystems bestimmt wird, das das kodierte Video erzeugt hat. Der Bildprozessor 730 kann Videodaten aus dem dekodierten Video entsprechend der derzeit an dem Dekodierungssystem geltenden Ansichtsfensterausrichtung extrahieren. Der Bildprozessor 730 kann die extrahierten Ansichtsfensterdaten an die Videosenkenvorrichtung 740 ausgeben.
  • Die Videosenke 740 kann, wie angegeben, dekodiertes Video verbrauchen, das von dem Dekodierungssystem 700 erzeugt wird. Die Videosenken 740 können beispielsweise durch Anzeigevorrichtungen verkörpert werden, die dekodiertes Video wiedergeben, wie beispielsweise die Videosenke 120. Bei anderen Anwendungen können die Videosenken 740 durch Computeranwendungen, zum Beispiel Spielanwendungen, Virtual-Reality-Anwendungen und/oder Videoeditieranwendungen, die das dekodierte Video in ihren Inhalt integrieren, verkörpert sein. In einigen Anwendungen kann eine Videosenke das gesamte multidirektionale Sichtfeld des dekodierten Videos für ihre Anwendung verarbeiten, aber in anderen Anwendungen kann eine Videosenke 740 eine ausgewählte Teilmenge von Inhalten aus dem dekodierten Video verarbeiten. Wenn beispielsweise dekodiertes Video auf einem Flachbildschirm wiedergegeben wird, kann es ausreichen, nur eine ausgewählte Teilmenge des multidirektionalen Videos anzuzeigen. In einer anderen Anwendung kann dekodiertes Video in einem multidirektionalen Format wiedergegeben werden, z. B. in einem Planetarium.
  • Der Sendeempfänger 710 kann auch Ansichtsfensterpositionsdaten von einem Kodiergerät (6) senden, die von dem Bildprozessor 620 bereitgestellt werden.
  • 8 ist ein Funktionsblockdiagramm eines Kodierungssystems 800 gemäß einem Aspekt der vorliegenden Offenbarung. Das System 800 kann einen Pixelblockkodierer 810, einen Pixelblockdekodierer 820, ein In-Loop-Filtersystem 830, einen Referenzbildspeicher 840, einen Prädiktor 850, eine Steuerung 860 und eine Syntaxeinheit 870 beinhalten. Der Pixelblockkodierer und -dekodierer 810, 820 und der Prädiktor 850 können iterativ an einzelnen Pixelblöcken eines Bildes arbeiten, das gemäß einer der vorstehenden Ausführungsformen verschoben wurde. Üblicherweise werden die Pixelblöcke erzeugt, indem die Kacheln in kleinere Einheiten zur Kodierung zerlegt werden. Der Prädiktor 850 kann Daten zur Verwendung während der Kodierung eines neu präsentierten Eingangspixelblocks vorhersagen. Der Pixelblockkodierer 810 kann den neuen Pixelblock durch prädiktive Kodierungstechniken kodieren und kodierte Pixelblockdaten an die Syntaxeinheit 870 übergeben. Der Pixelblockdekodierer 820 kann die kodierten Pixelblockdaten dekodieren, wobei er daraus dekodierte Pixelblockdaten erzeugt. Der In-Loop-Filter 830 kann verschiedene Filtervorgänge an einem dekodierten Bild durchführen, das aus den dekodierten Pixelblöcken zusammengesetzt ist, die durch den Pixelblockdekodierer 820 erhalten werden. Das gefilterte Bild kann in dem Referenzbildspeicher 840 gespeichert werden, wo es als eine Quelle der Vorhersage eines später empfangenen Pixelblocks verwendet werden kann. Die Syntaxeinheit 870 kann einen Datenstrom aus den kodierten Pixelblockdaten zusammenstellen, der einem gültigen Kodierungsprotokoll entspricht.
  • Der Pixelblockkodierer 810 kann einen Subtrahierer 812, eine Transformationseinheit 814, einen Quantisierer 816 und einen Entropiekodierer 818 beinhalten. Der Pixelblockkodierer 810 kann Pixelblöcke von Eingangsdaten am Subtrahierer 812 akzeptieren. Der Subtrahierer 812 kann vorhergesagte Pixelblöcke von dem Prädiktor 850 empfangen und eine Matrix von Pixelresten erzeugen, die eine Differenz zwischen dem Eingangspixelblock und dem vorhergesagten Pixelblock darstellen. Die Transformationseinheit 814 kann eine Transformation auf die von dem Subtrahierer 812 ausgegebenen Probendaten anwenden, um Daten von der Pixeldomäne in eine Domäne von Transformationskoeffizienten umzuwandeln. Der Quantisierer 816 kann eine Quantisierung von Transformationskoeffizienten, die von der Transformationseinheit 814 ausgegeben werden, durchführen. Der Quantisierer 816 kann ein einheitlicher oder ein nicht einheitlicher Quantisierer sein. Der Entropiekodierer 818 kann die Bandbreite der Ausgabe des Koeffizientenquantisierers reduzieren, indem er die Ausgabe kodiert, beispielsweise durch Codewörter variabler Länge.
  • Die Transformationseinheit 814 kann in einer Vielzahl von Transformationsmodi arbeiten, wie durch die Steuerung 860 bestimmt. Zum Beispiel kann die Transformationseinheit 814 eine diskrete Kosinustransformation (DCT), eine diskrete Sinustransformation (DST), eine Walsh-Hadamard-Transformation, eine Haar-Transformation, eine Daubechies-Wavelet-Transformation oder dergleichen anwenden. In einem Aspekt kann die Steuerung 860 einen Kodierungsmodus M auswählen, der von der Transformationseinheit 815 angewendet werden soll, die Transformationseinheit 815 entsprechend konfigurieren und den Kodierungsmodus M in den kodierten Videodaten entweder ausdrücklich oder implizit signalisieren.
  • Der Quantisierer 816 kann gemäß einem Quantisierungsparameter QP arbeiten, der von der Steuerung 860 geliefert wird. In einem Aspekt kann der Quantisierungsparameter QP als mehrwertiger Quantisierungsparameter auf die Transformationskoeffizienten angewendet werden, der beispielsweise über verschiedene Koeffizientenpositionen innerhalb eines Transformationsdomänen-Pixelblocks variieren kann. Somit kann der Quantisierungsparameter Qp als Quantisierungsparameter-Array bereitgestellt werden.
  • Der Entropiekodierer 818 kann, wie sein Name impliziert, eine Entropiekodierung der von dem Quantisierer 816 ausgegebenen Daten durchführen. Zum Beispiel kann der Entropiekodierer 818 eine Lauflängenkodierung, Huffman-Kodierung, Golomb-Kodierung und dergleichen ausführen.
  • Der Pixelblockdekodierer 820 kann Kodierungsvorgänge des Pixelblockkodierers 810 invertieren. Zum Beispiel kann der Pixelblockdekodierer 820 einen Dequantisierer 822, eine inverse Transformationseinheit 824 und einen Addierer 826 einschließen. Der Pixelblockdekodierer 820 kann seine Eingangsdaten von einem Ausgang des Quantisierers 816 nehmen. Obwohl zulässig, muss der Pixelblockdekodierer 820 keine Entropiedekodierung von entropiekodierten Daten durchführen, da die Entropiekodierung ein verlustfreies Ereignis ist. Der Dequantisierer 822 kann Vorgänge des Quantisierers 816 des Pixelblockkodierers 810 invertieren. Der Dequantisierer 822 kann eine einheitliche oder nicht einheitliche Dequantisierung durchführen, wie durch das dekodierte Signal QP angegeben. Ebenso kann die inverse Transformationseinheit 824 Vorgänge der Transformationseinheit 814 invertieren. Der Dequantisierer 822 und die inverse Transformationseinheit 824 können den gleichen Quantisierungsparameter Qp und Transformationsmodus M wie ihre Gegenstücke in dem Pixelblockkodierer 810 verwenden. Quantisierungsvorgänge werden wahrscheinlich Daten in verschiedener Hinsicht kürzen, und daher werden die vom Dequantisierer 822 wiederhergestellten Daten wahrscheinlich Kodierungsfehler aufweisen, wenn sie mit den Daten verglichen werden, die dem Quantisierer 816 im Pixelblockkodierer 810 präsentiert werden.
  • Der Addierer 826 kann die vom Subtrahierer 812 ausgeführten Vorgänge invertieren. Er kann denselben Prädiktionspixelblock von dem Prädiktor 850 empfangen, den der Subtrahierer 812 beim Erzeugen von Restsignalen verwendet. Der Addierer 826 kann den Prädiktionspixelblock zu den rekonstruierten Restwerten hinzufügen, die von der inversen Transformationseinheit 824 ausgegeben werden, und kann rekonstruierte Pixelblockdaten ausgeben.
  • Der In-Loop-Filter 830 kann verschiedene Filtervorgänge für wiederhergestellte Pixelblockdaten durchführen. So kann beispielsweise der In-Loop-Filter 830 einen Deblocking-Filter 832 und einen Sample-Adaptive-Offset-(„SAO“)-Filter 833 beinhalten. Der Deblocking-Filter 832 kann Daten an Nähten zwischen rekonstruierten Pixelblöcken filtern, um Diskontinuitäten zwischen den Pixelblöcken zu reduzieren, die durch die Kodierung entstehen. SAO-Filter können Offsets zu Pixelwerten entsprechend einem SAO-„Typ“ hinzufügen, z. B. basierend auf Kantenrichtung/-form und/oder auf Pixel-/Farben-Komponentenebene. Der In-Loop-Filter 830 kann nach den Parametern arbeiten, die von der Steuerung 860 ausgewählt werden.
  • Der Referenzbildspeicher 840 kann gefilterte Pixeldaten zur Verwendung bei einer späteren Vorhersage von anderen Pixelblöcken speichern. Dem Prädiktor 850 werden verschiedene Arten von Prädiktionsdaten für verschiedene Prädiktionsmodi zur Verfügung gestellt. Beispielsweise nimmt die Intra-Prädiktion für einen Eingangspixelblock eine Prädiktionsreferenz aus dekodierten Daten des gleichen Bildes, in dem sich der Eingangspixelblock befindet. Somit kann der Referenzbildspeicher 840 dekodierte Pixelblockdaten jedes Bildes beim Kodieren speichern. Für denselben Eingangspixelblock kann die Inter-Prädiktion eine Prädiktionsreferenz aus einem oder mehreren zuvor kodierten und dekodierten Bildern annehmen, die als Referenzbilder bezeichnet werden. Somit kann der Referenzbildspeicher 840 diese dekodierten Referenzbilder speichern.
  • Wie besprochen, kann der Prädiktor 850 dem Pixelblockkodierer 810 Prädiktionsdaten zur Verwendung beim Erzeugen von Resten liefern. Der Prädiktor 850 kann einen Inter-Prädiktor 852, einen Intra-Prädiktor 853 und eine Modusentscheidungseinheit 852 beinhalten. Der Inter-Prädiktor 852 kann Pixelblockdaten empfangen, die einen neuen zu kodierenden Pixelblock darstellen, und kann nach Referenzbilddaten aus dem Speicher 840 für Pixelblockdaten aus einem oder mehreren Referenzbildern suchen, um sie bei der Kodierung des Eingangspixelblocks zu verwenden. Der Inter-Prädiktor 852 kann eine Vielzahl von Prädiktionsmodi unterstützen, wie die P-Modus-Kodierung und die B-Modus-Kodierung. Der Inter-Prädiktor 852 kann einen Inter-Prädiktionsmodus und eine Identifizierung von Referenzdaten der Kandidatenprädiktion auswählen, die eine möglichst genaue Übereinstimmung mit dem zu kodierenden Eingangspixelblock bieten. Der Inter-Prädiktor 852 kann Prädiktions-Referenz-Metadaten, wie beispielsweise Bewegungsvektoren, erzeugen, um zu identifizieren, welcher Abschnitt (welche Abschnitte) von welchen Referenzbildern als Quelle(n) der Prädiktion für den Eingangspixelblock ausgewählt wurden.
  • Der Intra-Prädiktor 853 kann die Intra-(I)-Modus-Kodierung unterstützen. Der Intra-Prädiktor 853 kann nach Pixelblockdaten aus dem gleichen Bild wie der zu kodierende Pixelblock suchen, die eine möglichst genaue Übereinstimmung mit dem Eingangspixelblock bieten. Der Intra-Prädiktor 853 kann auch Prädiktionsreferenzindikatoren erzeugen, um zu identifizieren, welcher Teil des Bildes als eine Prädiktionsquelle für den Eingangspixelblock ausgewählt wurde.
  • Die Modusentscheidungseinheit 852 kann einen endgültigen Kodierungsmodus auswählen, der auf den Eingangspixelblock angewendet werden soll. In der Regel wählt die Modusentscheidungseinheit 852, wie oben beschrieben, den Prädiktionsmodus aus, der die niedrigste Verzerrung erreicht, wenn das Video mit einer Soll-Bitrate dekodiert wird. Ausnahmen können auftreten, wenn Kodierungsmodi ausgewählt werden, um andere Richtlinien zu erfüllen, an die sich das Kodierungssystem 800 hält, wie z. B. die Erfüllung eines bestimmten Kanalverhaltens oder die Unterstützung von Richtlinien für Direktzugriff oder Datenaktualisierung. Wenn die Modusentscheidung den endgültigen Kodierungsmodus auswählt, kann die Modusentscheidungseinheit 852 einen ausgewählten Referenzblock aus dem Speicher 840 an den Pixelblockkodierer und -dekodierer 810, 820 ausgeben und kann der Steuerung 860 eine Identifizierung des ausgewählten Prädiktionsmodus zusammen mit den Prädiktionsreferenzindikatoren liefern, die dem ausgewählten Modus entsprechen.
  • Die Steuerung 860 kann den Gesamtbetrieb des Kodierungssystems 800 steuern. Die Steuerung 860 kann Betriebsparameter für den Pixelblockkodierer 810 und den Prädiktor 850 auswählen, die auf Analysen von Eingangspixelblöcken und auch auf externen Einschränkungen wie Soll-Kodierbitraten und anderen Betriebsparametern basieren. Wie für die vorliegende Diskussion relevant, kann sie, wenn sie die Quantisierungsparameter Qp auswählt, einheitliche oder nicht einheitliche Quantisierer und/oder den Transformationsmodus M verwendet, diese Parameter der Syntaxeinheit 870 zur Verfügung stellen, die ihrerseits Daten, die diese Parameter darstellen, in den Datenstrom der vom System 800 ausgegebenen kodierten Videodaten einschließen kann. Die Steuerung 860 kann auch zwischen verschiedenen Betriebsmodi auswählen, mit denen das System Referenzbilder erzeugen kann, und kann Metadaten einschließen, die die für jeden Abschnitt kodierter Daten ausgewählten Modi identifizieren.
  • Während des Betriebs kann die Steuerung 860 die Betriebsparameter des Quantisierers 816 und der Transformationseinheit 815 bei unterschiedlichen Granularitäten von Bilddaten entweder auf einer Pro-Pixelblock-Basis oder auf einer größeren Granularität (zum Beispiel pro Bild, pro Schicht, pro größter Kodiereinheit (largest coding unit „LCU“) oder einem anderen Bereich) überarbeiten. In einem Aspekt können die Quantisierungsparameter auf einer Pro-Pixel-Basis innerhalb eines kodierten Bildes überarbeitet werden.
  • Zusätzlich kann die Steuerung 860, wie besprochen, den Betrieb des In-Loop-Filters 830 und der Prädiktionseinheit 850 steuern. Eine solche Steuerung kann für die Prädiktionseinheit 850 eine Modusauswahl (Lambda, zu testende Modi, Suchfenster, Verzerrungsstrategien usw.) und für den In-Loop-Filter 830 die Auswahl von Filterparametern, Neuordnungsparametern, gewichteter Prädiktion usw. beinhalten.
  • Die Prinzipien der vorliegenden Diskussion können zusammenwirkend mit anderen Kodierungsvorgängen verwendet werden, die für multidirektionales Video vorgeschlagen worden sind. Beispielsweise kann der Prädiktor 850 unter Verwendung von Eingangspixelblockdaten und Referenzpixelblockdaten Prädiktionssuchvorgänge in einer kugelförmigen Projektion durchführen. Der Betrieb derartiger Prädiktionstechniken kann durchgeführt werden wie in der US-Patentanmeldung 15/390,202 , eingereicht am 23. Dezember 2016 und US-Patentanmeldung 15/443,342 , eingereicht am 27. Februar 2017, beschrieben, die beide dem Anmelder der vorliegenden Anmeldung zugeordnet sind, deren Offenbarung hierin durch Bezugnahme aufgenommen wird.
  • 9 ist ein Funktionsblockdiagramm eines Dekodierungssystems 900 gemäß einem Aspekt der vorliegenden Offenbarung. Das Dekodierungssystem 900 kann eine Syntaxeinheit 910, einen Pixelblockdekodierer 920, einen In-Loop-Filter 930, einen Referenzbildspeicher 940, einen Prädiktor 950, eine Steuerung 960 und eine Umformatierungseinheit 970 beinhalten. Die Syntaxeinheit 910 kann einen kodierten Videodatenstrom empfangen und kann die kodierten Daten in ihre Bestandteile zerlegen. Daten, die Kodierungsparameter darstellen, können der Steuerung 960 zur Verfügung gestellt werden, während Daten, die kodierte Reste darstellen (die vom Pixelblockkodierer 810 aus 8 ausgegebenen Daten), dem Pixelblockdekodierer 920 bereitgestellt werden können. Der Pixelblockdekodierer 920 kann die vom Pixelblockkodierer 810 (8) bereitgestellten Kodierungsvorgänge invertieren. Der In-Loop-Filter 930 kann rekonstruierte Pixelblockdaten filtern. Die rekonstruierten Pixelblockdaten können zu Bildern zur Anzeige zusammengestellt und vom Dekodierungssystem 900 als Ausgabevideo ausgegeben werden. Die Bilder können auch im Prädiktionspuffer 940 zur Verwendung in Prädiktionsvorgängen gespeichert werden. Der Prädiktor 950 kann dem Pixelblockdekodierer 920 Prädiktionsdaten liefern, die durch Kodierung der im kodierten Videodatenstrom empfangenen Daten bestimmt werden.
  • Der Pixelblockdekodierer 920 kann einen Entropiedekodierer 922, einen Dequantisierer 924, eine inverse Transformationseinheit 926 und einen Addierer 928 beinhalten. Der Entropiedekodierer 922 kann eine Entropiedekodierung durchführen, um die vom Entropiekodierer 818 (8) durchgeführten Prozesse zu invertieren. Der Dequantisierer 924 kann Vorgänge des Quantisierers 916 des Pixelblockkodierers 810 (8) invertieren. Ebenso kann die inverse Transformationseinheit 926 Vorgänge der Transformationseinheit 814 (8) invertieren. Sie können die Quantisierungsparameter QP und die Transformationsmodi M verwenden, die in dem kodierten Videodatenstrom bereitgestellt werden. Da es wahrscheinlich ist, dass Daten durch die Quantisierung gekürzt werden, weisen die vom Dequantisierer 924 wiederhergestellten Daten wahrscheinlich Kodierungsfehler auf, wenn sie mit den Eingangsdaten verglichen werden, die dessen Gegenstück, dem Quantisierer 916, im Pixelblockkodierer 810 (8) präsentiert werden.
  • Der Addierer 928 kann die vom Subtrahierer 810 (8) ausgeführten Vorgänge invertieren. Er kann einen Prädiktionspixelblock von dem Prädiktor 950 empfangen, wie durch Prädiktionsreferenzen in dem kodierten Videodatenstrom bestimmt. Der Addierer 928 kann den Prädiktionspixelblock zu den rekonstruierten Restwerten hinzufügen, die von der inversen Transformationseinheit 926 ausgegeben werden, und kann rekonstruierte Pixelblockdaten ausgeben.
  • Der In-Loop-Filter 930 kann verschiedene Filtervorgänge für rekonstruierte Pixelblockdaten durchführen. Wie veranschaulicht, kann der In-Loop-Filter 930 einen Deblocking-Filter 932 und einen SAO-Filter 934 beinhalten. Der Deblocking-Filter 932 kann Daten an Nähten zwischen rekonstruierten Pixelblöcken filtern, um Diskontinuitäten zwischen den Pixelblöcken zu reduzieren, die durch die Kodierung entstehen. Der SAO-Filter 934 kann einen Offset zu Pixelwerten entsprechend einem SAO-Typ hinzufügen, z. B. basierend auf Kantenrichtung/-form und/oder Pixelebene. Andere Typen von In-Loop-Filtern können ebenfalls in einer ähnlichen Weise verwendet werden. Die Funktionsweise des Deblocking-Filters 932 und des SAO-Filters 934 würde im Idealfall die Funktionsweise ihrer Gegenstücke im Kodierungssystem 800 (8) nachahmen. Somit wäre, ohne Übertragungsfehler oder andere Anomalien, das vom In-Loop-Filter 930 des Dekodierungssystems 900 erhaltene dekodierte Bild das gleiche wie das vom In-Loop-Filter 810 des Kodierungssystems 800 (8) erhaltene dekodierte Bild; auf diese Weise sollten das Kodierungssystem 800 und das Dekodierungssystem 900 einen gemeinsamen Satz von Referenzbildern in ihren jeweiligen Referenzbildspeichern 840, 940 speichern.
  • Der Referenzbildspeicher 940 kann gefilterte Pixeldaten zur Verwendung bei einer späteren Vorhersage von anderen Pixelblöcken speichern. Der Referenzbildspeicher 940 kann dekodierte Pixelblockdaten jedes Bildes zur Verwendung bei der Intra-Prädiktion beim Kodieren speichern. Der Referenzbildspeicher 940 kann auch dekodierte Referenzbilder speichern.
  • Wie erörtert, kann der Prädiktor 950 die transformierten Referenzblockdaten an den Pixelblockdekodierer 920 liefern. Der Prädiktor 950 kann vorhergesagte Pixelblockdaten liefern, die durch die im kodierten Videodatenstrom gelieferten Vorhersage-Referenzindikatoren bestimmt werden.
  • Die Steuerung 960 kann den Gesamtbetrieb des Kodierungssystems 900 steuern. Die Steuerung 960 kann Betriebsparameter für den Pixelblockdekodierer 920 und den Prädiktor 950 basierend auf den im kodierten Videodatenstrom empfangenen Parametern festlegen. Wie für die vorliegende Diskussion relevant ist, können diese Betriebsparameter Quantisierungsparameter QP für den Dequantisierer 924 und Transformationsmodi M für die inverse Transformationseinheit 910 einschließen. Wie besprochen, können die empfangenen Parameter auf verschiedene Granularitäten der Bilddaten eingestellt werden, z. B. auf Pro-Pixelblock-Basis, Pro-Bild-Basis, Pro-Schicht-Basis, Pro-LCU-Basis oder auf Basis anderer Arten von Bereichen, die für das Eingangsbild definiert sind.
  • In einer Ausführungsform können Kodierungen von Pixelblöcken aufgrund ihrer Beziehung zu den vom Dekodierer berichteten Ansichtsfenstern unterschiedlich durchgeführt werden. Um zu 5 zurückzukehren, können beispielsweise Pixelblöcke (nicht dargestellt), die zu den Kacheln 510.0, 510.1 gehören, in denen sich das Ansichtsfenster 530 befindet, eine relativ höhere Qualität aufweisen als Kodierungen der Pixelblöcke anderer Kacheln 510.2-510.n. In der Regel wird eine solche Kodierung höherer Qualität erreicht, indem Quantisierungsparameter, die während der Kodierung verwendet werden, verringert werden, was einen geringeren Datenverlust verursacht als wenn höhere Quantisierungsparameter verwendet werden.
  • 10 veranschaulicht ein Verfahren 1000 gemäß einem Aspekt der vorliegenden Offenbarung. Gemäß dem Verfahren 1000 kann ein Senkengerät 120 Daten an das Quellgerät 110 übertragen, die eine Position eines Ansichtsfensters identifizieren, das von dem Senkengerät 120 angezeigt wird (Nachricht 1010). Als Reaktion auf die Ansichtsfensterpositionsdaten kann das Verfahren 1000 Bilddaten des omnidirektionalen Bildes um einen Betrag verschieben, der den Ansichtsfensterpositionsdaten (Kasten 1020) entspricht. Das Verfahren 1000 kann das verschobene Bild prädiktiv kodieren (Kasten 1030) und danach das kodierte Video des verschobenen Bildes zusammen mit den die Position des Ansichtsfensters identifizierenden Daten an das Senkengerät 120 übertragen (Nachricht 1040).
  • Das Senkengerät 120 kann die kodierten Videodaten empfangen und dekodieren (Kasten 1050). Das Senkengerät 120 kann auch Daten aus dem dekodierten Bild extrahieren, die dem Ansichtsfenster entsprechen und es anzeigen (Kasten 1060).
  • 11 veranschaulicht ein Bild 1100 eines omnidirektionalen Videos, das von einem Quellgerät 110 kodiert werden kann. Wie besprochen, kann ein Senkengerät 120 (1) ein Ansichtsfenster 1110 aus dem Bild 1100 extrahieren, nachdem es von dem Quellgerät 110 (1) kodiert, an das Senkengerät 120 übertragen und dekodiert wurde und das Ansichtsfenster 1110 lokal anzeigen. Das Senkengerät 120 kann Daten an das Quellgerät 110 senden, die eine Position des Ansichtsfensters 1110 innerhalb eines Bereichs des Bildes 1100 identifizieren. In dem Beispiel von 11 kann das Senkengerät 120 Offset- und Orientierungsdaten, als Offset-θ, und Offset-φ und Offset-α in diesem Beispiel gezeigt, übertragen, die eine Position und Orientierung des Ansichtsfensters 1110 innerhalb des Bereichs des Bildes 1100 identifizieren.
  • 12 veranschaulicht ein verschobenes Bild 1200, das durch das Verfahren 1000 von 10 erhalten werden kann, das auf die exemplarischen Ansichtsfensterdaten von 11 angewandt wird. In diesem Beispiel kann das Verfahren 1000 die Bilddaten 1100 verschoben haben, um das Ansichtsfenster 1210 an einem Ursprung 1220 des Bildes 1200 zu lokalisieren. Dies bewirkt, dass die Daten des Bildes 1200 gemäß den Ansichtsfensterdaten verschoben werden. Nach der Verschiebung befinden sich die Bilddaten, die sich früher an der Position des Ansichtsfensters 1210 befanden, am Ursprung 1220 des Bildes 1200 (dargestellt durch das Ansichtsfenster 1230). Es wird erwartet, dass Videokodierungsprozesse beginnen, indem zuerst Videodaten am Ursprung 1220 kodiert werden und die Kodierung dann in Raster-Scanreihenfolge über das Bild 1200 fortgesetzt wird.
  • Das Dekodieren der kodierten Videodaten wird auch erwartungsgemäß in einer Raster-Scanreihenfolge erfolgen. Wenn also die kodierten Videodaten des Bildes 1200 dekodiert werden, werden zuerst dekodierte Videodaten für Videodaten erstellt, die sich in der Nähe des Ursprungs des Bildes 1220 befinden. Dekodierte Videodaten des verschobenen Ansichtsfensters 1230 sollten früher zur Anzeige verfügbar sein als dekodierte Videodaten anderer Teile der Anzeige.
  • Obwohl in 10 nicht veranschaulicht, ermöglicht das Verfahren 1000 auch die Verschiebung von Referenzbildern, wie in 3 erörtert.
  • In einem Aspekt, der in 13 gezeigt ist, können verschobene Ansichtsfensterdaten Padding-Daten umfassen, um Kommunikationslatenzen zwischen Quell- und Senkenvorrichtungen aufzunehmen. Unter Verwendung der Bilddaten 1100 von 11 werden beispielsweise die Ansichtsfensterdaten 1310 auf den Ursprung 1320 eines neuen zu kodierenden Bildes 1300 verschoben, wobei Verschiebungsbeträge einen Padding-Bereich (dargestellt als Δ) um einen Umfang des verschobenen Ansichtsfensters 1330 aufnehmen können. Anstatt die Ansichtsfensterdaten 1310 direkt auf den Ursprung 1320 des Bildes 1300 zu verschieben, können die Ansichtsfensterdaten 1310 auf eine Position verschoben werden, die durch eine Position Δx, Δy, die sich in der Nähe des Ursprungs 1320 befindet, repräsentiert wird. Es wird erwartet, dass, wenn sich beim Dekodieren die tatsächliche Ansichtsfensterposition am Dekodierer verschoben hat, um Daten aus dem Padding-Bereich um die verschobenen Ansichtsfensterdaten 1330 herum aufzunehmen, der Dekodierer Zugriff auf die Padding-Daten an einem früheren Punkt während der Dekodierung des Bildes 1300 hat, als wenn kein Padding-Bereich verwendet worden wäre. In einem Aspekt, in dem kein Padding-Bereich verwendet wurde, können einige Anwendungsfälle auftreten, in denen die tatsächliche Ansichtsfensterposition verschoben wurde, um Daten an räumlich entfernten Positionen des Bildes 1300 aufzunehmen, wie beispielsweise ein unterer Bereich des Bildes 1300, der erst nach der vollständigen Dekodierung des Bildes 1300 verfügbar würde.
  • Die Prinzipien der vorliegenden Offenbarung lassen sich mit einer Vielfalt von Formaten von multidirektionalen Bildern anwenden.
  • 14 veranschaulicht ein multidirektionales Bildformat gemäß einem Aspekt. Das multidirektionale Bild 1430 kann von einer Kamera 1410 erzeugt werden, die sich entlang einer Achse dreht. Während des Betriebs kann die Kamera 1410 den Bildinhalt erfassen, während sie sich um einen vorbestimmten Winkelabstand 1420 (vorzugsweise um 360°) dreht, und den erfassten Bildinhalt zu einem 360°-Bild zusammenführen. Der Erfassungsvorgang kann ein multidirektionales Bild 1430 ergeben, das ein multidirektionales Sichtfeld darstellt, das entlang einer Scheibe 1422 aufgeteilt wurde, die ein zylindrisches Sichtfeld in eine zweidimensionale Anordnung von Daten unterteilt. In dem multidirektionalen Bild 1430 stellen Pixel an beiden Rändern 1432, 1434 des Bildes 1430 benachbarte Bildinhalte dar, obwohl sie auf verschiedenen Kanten des multidirektionalen Bildes 1430 erscheinen.
  • 15 veranschaulicht ein multidirektionales Bildformat gemäß einem weiteren Aspekt. Im Aspekt von 15 kann eine Kamera 1510 Bildsensoren 1512-1516 besitzen, die Bilddaten in verschiedenen Sichtfeldern von einem gemeinsamen Bezugspunkt aus erfassen. Die Kamera 1510 kann ein multidirektionales Bild 1530 ausgeben, in dem der Bildinhalt gemäß einem Würfelkartenerfassungsvorgang 1520 angeordnet ist, in dem die Sensoren 1512-1516 Bilddaten in verschiedenen Sichtfeldern 1521-1526 (typischerweise sechs) um die Kamera 1510 erfassen. Die Bilddaten der unterschiedlichen Sichtfelder 1521-1526 können gemäß einem Würfelkartenlayout 1530 zusammengefügt werden. In dem in 15 dargestellten Beispiel können sechs Teilbilder, die einer linken Ansicht 1521, einer Vorderansicht 1522, einer rechten Ansicht 1523, einer Rückansicht 1524, einer Draufsicht 1525 und einer Unteransicht 1526 entsprechen, erfasst, zusammengefügt und innerhalb des multidirektionalen Bildes 1530 entsprechend den „Nähten“ des Bildinhalts zwischen den jeweiligen Ansichten 1521-1526 angeordnet werden. So stellen, wie in 15 veranschaulicht, Pixel aus dem Vorderbild 1532, die an die Pixel aus jedem der linken, rechten, oberen und unteren Bilder 1531, 1533, 1535, 1536 angrenzen, Bildinhalte dar, die jeweils an den Inhalt der benachbarten Teilbilder angrenzen. Ebenso stellen Pixel aus dem rechten und hinteren Bild 1533, 1534, die aneinander angrenzen, einen benachbarten Bildinhalt dar. Des Weiteren ist der Inhalt von einer Endkante 1538 des hinteren Bildes 1534 angrenzend an den Inhalt von einer gegenüberliegenden Endkante 1539 des linken Bildes. Das Bild 1530 kann auch Bereiche 1537.1-1537.4 aufweisen, die zu keinem Bild gehören. Die in 15 veranschaulichte Darstellung wird oft als „Würfelkarten“-Bild bezeichnet.
  • Die Kodierung von Würfelkartenbildern kann auf verschiedene Weisen erfolgen. In einer Kodierungsanwendung kann das Würfelkartenbild 1530 direkt kodiert werden, was die Kodierung von Nullbereichen 1537.1-1537.4 beinhaltet, die keinen Bildinhalt haben. In einem solchen Fall, wenn das Ansichtsfensterbild gemäß den in 3 oder 10 beschriebenen Techniken verschoben wird, können die Bildverschiebungen Ansichtsfensterdaten in Bereiche verschieben, die früher durch den Nullbereich 1537.4 belegt waren.
  • In anderen Kodierungsanwendungen kann das Würfelkartenbild 1530 neu gepackt werden, um Nullbereiche 1537.1-1537.4 vor der Kodierung zu eliminieren, dargestellt als Bild 1540. Die in 3 oder 10 beschriebene Technik kann auch auf einen gepackten Bildrahmen 1540 angewendet werden.
  • Die Bilddaten können gemäß den von einem Dekodierer berichteten Ansichtsfensterpositionsdaten verschoben und dann kodiert werden. Beim Dekodieren können die dekodierten Bilddaten zuerst dekodiert, dann entsprechend den Offsets zurückgeschoben und vor der Anzeige entpackt werden.
  • 16 veranschaulicht ein weiteres beispielhaftes multidirektionales Bildformat 1630. Das Bildformat von 16 kann durch eine andere Art von omnidirektionaler Kamera 1600 erzeugt werden, die als Panoramakamera bezeichnet wird. Eine Panoramakamera besteht typischerweise aus einem Paar Fischaugenlinsen 1612, 1614 und zugehörigen Bildgebungsvorrichtungen (nicht dargestellt), die jeweils so angeordnet sind, dass sie Bilddaten in einer halbkugelförmigen Ansicht der Sicht erfassen. Bilder, die aus den halbkugelförmigen Sichtfeldern erfasst wurden, können zusammengefügt werden, um Bilddaten in einem vollen 360° Sichtfeld darzustellen. Zum Beispiel veranschaulicht 16 ein multidirektionales Bild 1630, das Bildinhalte 1631, 1632 aus den halbkugelförmigen Ansichten 1622, 1624 der Kamera enthält und die an einer Naht 1635 verbunden sind. Die hier beschriebenen Techniken finden auch Anwendung mit multidirektionalen Bilddaten in solchen Formaten 1630 Die vorstehende Diskussion hat die Funktionsweise der Aspekte der vorliegenden Offenbarung im Zusammenhang mit Videokodierern und -dekodierern beschrieben. Üblicherweise werden diese Komponenten als elektronische Vorrichtungen bereitgestellt. Videodekodierer und/oder -steuerungen können in integrierten Schaltungen wie anwendungsspezifischen integrierten Schaltungen, anwenderprogrammierbaren Gatteranordnungen und/oder Digitalsignalprozessoren ausgeführt sein. Alternativ dazu können sie in Computerprogrammen ausgeführt sein, die auf Kameravorrichtungen, Personalcomputern, Notebook-Computern, Tablet-Computern, Smartphones oder Computerservern ausgeführt werden. Diese Computerprogramme werden üblicherweise in physischen Speichermedien wie elektronisch, magnetisch und/oder optisch basierten Speichervorrichtungen gespeichert, wo sie auf einen Prozessor gelesen und ausgeführt werden. Dekodierer werden üblicherweise in Geräten der Unterhaltungselektronik verpackt, wie z. B. Smartphones, Tablet-Computer, Spielsysteme, DVD-Player, tragbare Mediaplayer und dergleichen; und sie können auch in Verbraucher-Softwareanwendungen wie Videospiele, Media-Player, Media-Editoren und dergleichen verpackt werden. Und natürlich können diese Komponenten als Hybridsysteme bereitgestellt werden, die Funktionalität wie gewünscht über speziell dafür vorgesehene Hardwarekomponenten und programmierte Universalprozessoren verteilen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15390202 [0050]
    • US 15443342 [0050]

Claims (30)

  1. Bildkodierungsverfahren, umfassend: als Reaktion auf Daten von einem Dekodierer, der eine Position eines Ansichtsfensters identifiziert, Verschieben von multidirektionalen Bilddaten, die gemäß den Ansichtsfensterpositionsdaten kodiert werden sollen, Kodieren der verschobenen multidirektionalen Bilddaten durch prädiktive Kodierung, und Übertragen der kodierten multidirektionalen Bilddaten und der Daten, die einen Betrag der Verschiebung identifizieren, an einen Dekodierer.
  2. Kodierungsverfahren nach Anspruch 1, ferner umfassend, vor dem Verschieben, das Zerlegen der multidirektionalen Bilddaten in eine Vielzahl von Kacheln, wobei: die Kodierung auf einer Kachel-für-Kachel-Basis erfolgt, und die Verschiebung eine Position des Ansichtsfensters in einer Kachel platziert, die früher kodiert wird als eine Kachel, in der das Ansichtsfenster ohne die Verschiebung kodiert werden würde.
  3. Kodierungsverfahren nach Anspruch 2, wobei die prädiktive Kodierung des multidirektionalen Bildes eine Kachel des Bildes, die das Ansichtsfenster enthält, mit einem höheren Qualitätsniveau kodiert als die Kodierung einer Kachel des Bildes, die das Ansichtsfenster nicht enthält.
  4. Kodierungsverfahren nach Anspruch 1, wobei das Verschieben eine Position des Ansichtsfensters an einem Ursprung des verschobenen multidirektionalen Bildes platziert und die Kodierung am Ursprung des verschobenen multidirektionalen Bildes beginnt.
  5. Kodierungsverfahren nach Anspruch 1, wobei das Verschieben eine Position des Ansichtsfensters an einem Ursprung des verschobenen multidirektionalen Bildes versetzt um einen Padding-Betrag platziert und die Kodierung am Ursprung des verschobenen multidirektionalen Bildes beginnt.
  6. Kodierungsverfahren nach Anspruch 1, ferner umfassend das Verschieben eines Referenzbildes, das eine Vorhersagereferenz für die prädiktive Kodierung der multidirektionalen Bilddaten gemäß der Ansichtsfensterposition bereitstellt.
  7. Kodierungsverfahren nach Anspruch 1, wobei die Ansichtsfensterpositionsdaten eine Anzeigebedingung an einem Dekodierer eines zuvor kodierten Bildes darstellen.
  8. Kodierungsverfahren nach Anspruch 1, wobei die Ansichtsfensterpositionsdaten x- und y-Offsetdaten enthalten.
  9. Kodierungsverfahren nach Anspruch 1, wobei die Ansichtsfensterpositionsdaten winkelbezogene Offsetdaten enthalten.
  10. Kodierungsverfahren nach Anspruch 1, wobei das multidirektionale Bild ein Würfelkartenbild ist.
  11. Kodierungsverfahren nach Anspruch 1, wobei das multidirektionale Bild ein omnidirektionales Bild ist.
  12. Bildkodierer, umfassend: einen Bildprozessor, der als Reaktion auf Daten von einem Dekodierer, die eine Position eines Ansichtsfensters identifizieren, ein multidirektionales Bild gemäß den Ansichtsfensterpositionsdaten verschiebt, einen Videokodierer, der einen Eingang aufweist, der mit einem Ausgang des Bildprozessors gekoppelt ist, und einen Sender mit einem Eingang für kodierte Videodaten von dem Videokodierer und für Daten, die einen Betrag der durch den Bildprozessor angewendeten Verschiebung identifizieren.
  13. Kodierer nach Anspruch 12, wobei der Videokodierer die multidirektionalen Bilddaten, die in eine Vielzahl von Kacheln zerlegt werden, auf einer Kachel-für-Kachel-Basis bearbeitet, und der Bildprozessor eine Position des Ansichtsfensters in einer Kachel platziert, die früher kodiert wird als eine Kachel, in der das Ansichtsfenster ohne die Verschiebung kodiert werden würde.
  14. Kodierer nach Anspruch 12, wobei der Bildprozessor eine Position des Ansichtsfensters bei einem Ursprung des verschobenen multidirektionalen Bildes platziert, und der Videokodierer mit der Kodierung am Ursprung des verschobenen multidirektionalen Bildes beginnt.
  15. Kodierer nach Anspruch 12, wobei das Video einen Referenzbildpuffer zum Speichern von Referenzbildern für prädiktive Kodierungsvorgänge umfasst, und der Bildkodierer die Referenzbilder gemäß den Ansichtsfensterpositionsdaten verschiebt.
  16. Kodierer nach Anspruch 12, wobei der Bildprozessor eine Position des Ansichtsfensters an einem Ursprung des verschobenen multidirektionalen Bildes versetzt um einen Padding-Betrag verschiebt, und der Videokodierer mit der Kodierung am Ursprung des verschobenen multidirektionalen Bildes beginnt.
  17. Kodierer nach Anspruch 12, wobei die Ansichtsfensterpositionsdaten eine Anzeigebedingung an einem Dekodierer eines zuvor kodierten Bildes darstellen.
  18. Kodierer nach Anspruch 12, wobei die Ansichtsfensterpositionsdaten x- und y-Offsetdaten enthalten.
  19. Kodierer nach Anspruch 12, wobei die Ansichtsfensterpositionsdaten winkelbezogene Offsetdaten enthalten.
  20. Kodierer nach Anspruch 12, weiter umfassend eine Bildquelle, um das multidirektionale Bild als ein Würfelkartenbild zu erzeugen.
  21. Kodierer nach Anspruch 12, weiter umfassend eine Bildquelle, um das multidirektionale Bild als ein omnidirektionales Bild zu erzeugen.
  22. Bilddekodierungsverfahren, umfassend: Dekodieren kodierter multidirektionaler Bilddaten, die von einem Kodierer empfangen wurden, Extrahieren einer Teilmenge von Daten aus dem dekodierten multidirektionalen Bild durch Vergleichen der vom Kodierer empfangenen Ansichtsfensterpositionsdaten mit den Ansichtsfensterpositionsdaten, die zuvor an den Kodierer übermittelt wurden; und Anzeigen der extrahierten Teilmenge von Daten.
  23. Dekodierungsverfahren nach Anspruch 22, weiter umfassend: Speichern des dekodierten multidirektionalen Bildes in einem Referenzbildpuffer, und Kommunizieren einer Position der extrahierten Teilmenge von Daten als neue Ansichtsfensterposition an den Kodierer.
  24. Dekodierungsverfahren nach Anspruch 22, wobei die Dekodierung auf einer Kachel-für-Kachel-Basis erfolgt, wobei die Kacheln unterschiedliche räumliche Bereiche des dekodierten multidirektionalen Bildes repräsentieren.
  25. Dekodierungsverfahren nach Anspruch 22, wobei: das Dekodieren am Ursprung des multidirektionalen Bildes beginnt; und die Teilmenge aus einer Position des dekodierten multidirektionalen Bildes extrahiert wird, die den Ursprung enthält.
  26. Endgerät, umfassend: einen Empfänger, der einen Eingang für kodierte multidirektionale Bilddaten und Ansichtsfensterpositionsdaten aufweist; einen Videodekodierer, der einen Eingang für die kodierten multidirektionalen Bilddaten gekoppelt an einen Ausgang des Empfängers aufweist; und einen Bildprozessor zum Extrahieren einer Teilmenge von Daten aus dekodierten multidirektionalen Bilddaten, die vom Videodekodierer ausgegeben werden, durch Vergleichen der vom Kodierer empfangenen Ansichtsfensterpositionsdaten mit den Ansichtsfensterpositionsdaten, die zuvor an den Kodierer übermittelt wurden; und eine Anzeige zum Anzeigen der extrahierten Teilmenge von Daten.
  27. Endgerät nach Anspruch 26, wobei der Videodekodierer einen Referenzbildpuffer zum Speichern des dekodierten multidirektionalen Bildes enthält, und das Endgerät einen Sendeempfänger zum Kommunizieren einer Position der extrahierten Teilmenge von Daten als eine neue Ansichtsfensterposition an einen Kodierer umfasst.
  28. Endgerät nach Anspruch 26, wobei der Videodekodierer auf einer Kachel-für-Kachel-Basis arbeitet, wobei die Kacheln unterschiedliche räumliche Bereiche des dekodierten multidirektionalen Bildes repräsentieren.
  29. Endgerät nach Anspruch 26, wobei der Videodekodierer das Dekodieren an einem Ursprung des multidirektionalen Bildes beginnt; und der Bildprozess die Teilmenge aus einer Position des dekodierten multidirektionalen Bildes extrahiert, die den Ursprung enthält.
  30. Endgerät nach Anspruch 26, wobei das Endgerät ein kopfmontiertes Display ist.
DE102019201370.8A 2018-02-05 2019-02-04 Verarbeitung von multidirektionalen bildern in räumlich geordneten videokodieranwendungen Pending DE102019201370A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/888,559 US10652578B2 (en) 2018-02-05 2018-02-05 Processing of multi-directional images in spatially-ordered video coding applications
US15/888,559 2018-02-05

Publications (1)

Publication Number Publication Date
DE102019201370A1 true DE102019201370A1 (de) 2019-08-08

Family

ID=67308559

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019201370.8A Pending DE102019201370A1 (de) 2018-02-05 2019-02-04 Verarbeitung von multidirektionalen bildern in räumlich geordneten videokodieranwendungen

Country Status (3)

Country Link
US (1) US10652578B2 (de)
CN (1) CN110121065B (de)
DE (1) DE102019201370A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8754931B2 (en) * 2010-01-08 2014-06-17 Kopin Corporation Video eyewear for smart phone games
CN106919248A (zh) * 2015-12-26 2017-07-04 华为技术有限公司 应用于虚拟现实的内容传输方法以及设备
CN107547907B (zh) * 2016-06-27 2020-02-21 华为技术有限公司 编解码的方法及设备
US10595069B2 (en) * 2016-12-05 2020-03-17 Adobe Inc. Prioritizing tile-based virtual reality video streaming using adaptive rate allocation
US10560660B2 (en) * 2017-01-04 2020-02-11 Intel Corporation Rectilinear viewport extraction from a region of a wide field of view using messaging in video transmission
CN107147883A (zh) * 2017-06-09 2017-09-08 中国科学院心理研究所 一种基于头动控制的远程摄像系统

Also Published As

Publication number Publication date
CN110121065B (zh) 2021-02-09
US20190246141A1 (en) 2019-08-08
US10652578B2 (en) 2020-05-12
CN110121065A (zh) 2019-08-13

Similar Documents

Publication Publication Date Title
DE102019201370A1 (de) Verarbeitung von multidirektionalen bildern in räumlich geordneten videokodieranwendungen
DE102016125117B4 (de) Bewegungsvektorkodierung mit dynamischen Referenzbewegungsvektoren
DE69937462T2 (de) Effiziente macroblockheaderkodierung zur videokompression
DE69839100T2 (de) Verbesserte Videokodierung unter Verwendung von adaptiven Blockparametern für kodierte/unkodierte Blöcke
DE112007000359B4 (de) Verarbeitung von Videodaten
DE4305578B4 (de) Fehlerverdeckung in decodierten Videosignalen
DE69619220T2 (de) Manipulaton von grafikbildern
DE112017002339T5 (de) Verfahren und Vorrichtung zum Abbilden von Omnidirektionalbildern in ein Anordnungsausgabeformat
DE112018000280T5 (de) Entblockungsfilterung für 360-video
DE102016225270A1 (de) Verfahren, anwendungsprozessor, und mobiles endgerät zum verarbeiten eines referenzbildes
DE112015004764T5 (de) Kontinuierlicher prädiktionsbereich
DE19702048A1 (de) Skalierbarer Videocodierer gemäß MPEG2-Standard
DE102019004405A1 (de) Speicherlatenzverwaltung für eine decodiererseitige bewegungsverfeinerung
DE112017003212T5 (de) Verfahren und System zur Videocodierung mit Kontextdecodierung und Rekonstruktionsumgehung
DE202016008192U1 (de) Auswahl des Referenz-Bewegungsvektors über Referenzeinzelbild Puffer-Nachverfolgung
US20190005709A1 (en) Techniques for Correction of Visual Artifacts in Multi-View Images
DE69937833T2 (de) Verfahren und vorrichtung zur skalierbaren formkodierung
DE102019218316A1 (de) 3d-renderer-zu-videocodierer-pipeline für verbesserte visuelle qualität und geringe latenz
DE102020125206A1 (de) Verfahren und system zur mehrkanalvideocodierung mit frameratenänderung und kanalübergreifender referenzierung
DE102016125604A1 (de) Intelligente Sortierung der rekursiven Blockaufteilung für die erweiterte Intra-Prädiktion bei der Videocodierung
DE202016008178U1 (de) Bewegungsvektorvorhersage mittels eines vorhergehenden Einzelbildresiduums
DE69915843T2 (de) Teilbandkodierung/-dekodierung
CN108040255A (zh) 图像处理装置以及图像处理方法
DE69916662T2 (de) Verfahren und vorrichtung zur bewegungskompensation in einem texturabbildungssystem
DE102018129344A1 (de) Bereichsadaptive, dateneffiziente Erzeugung von Partitionierungsentscheidungen und Modusentscheidungen zur Videocodierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed