-
HINTERGRUND
-
Technisches Gebiet
-
Diese Offenbarung betrifft allgemein digitale Video- oder Bildverarbeitung und Video- oder Bildverarbeitungsanzeige.
-
Beschreibung der verwandten Technik
-
Verschiedene Vorrichtungen, unter anderem Personal Computer-Systeme, Desktop-Computersysteme, Laptop- und Notebook-Computer, Tablet- oder Pad-Vorrichtungen, Digitalkameras, digitale Videorecorder und Mobiltelefone oder Smartphones, können Software und/oder Hardware enthalten, die eine oder mehrere Videoverarbeitungsverfahren implementieren kann bzw. können. Beispielsweise kann eine Vorrichtung eine Einrichtung (z. B. eine integrierte Schaltung (IC), wie etwa ein System-on-Chip (SOC), oder ein Teilsystem einer IC) beinhalten, die digitale Videoeingaben von einer oder mehreren Quellen empfangen und verarbeiten kann und die verarbeiteten Video-Frames entsprechend einem oder mehreren Videoverarbeitungsverfahren ausgibt. Als weiteres Beispiel kann ein Softwareprogramm an einer Vorrichtung implementiert sein, die digitale Videoeingaben von einer oder mehreren Quellen empfangen und gemäß einem oder mehreren Videoverarbeitungsverfahren verarbeiten und die verarbeiteten Video-Frames ausgeben kann.
-
Zum Beispiel kann ein Videocodierer als Einrichtung oder alternativ als Softwareprogramm implementiert sein, in dem eine digitale Videoeingabe gemäß einem Videocodierverfahren in ein anderes Format codiert oder umgewandelt wird, zum Beispiel in ein Format H.264/Advanced Video Coding (AVC) oder ein Format H.265 High Efficiency Video Coding (HEVC). Als weiteres Beispiel kann ein Videodecodierer als Einrichtung oder alternativ als Softwareprogramm implementiert werden, um Video in einem komprimierten Videoformat wie AVC oder HEVC zu empfangen und gemäß einem Videodecodierverfahren in ein anderes (dekomprimiertes) Format zu decodieren und umzuwandeln, beispielsweise in ein Anzeigeformat, das von einer Anzeigevorrichtung verwendet wird. Der H.264/AVC-Standard wurde von der ITU-T in einem Dokument mit dem Titel „ITU-T Recommendation H.264: Advanced video coding for generic audiovisual services” veröffentlicht. Der H.265/HEVC-Standard wurde von der ITU-T in einem Dokument mit dem Titel „ITU-T Recommendation H.265: High Efficiency Video Coding” veröffentlicht.
-
In vielen Systemen kann eine Einrichtung oder ein Softwareprogramm sowohl eine Videocodierkomponente als auch eine Videodecodierkomponente implementieren; eine solche Einrichtung oder ein solches Programm wird allgemein als Codec bezeichnet. Man beachte, dass ein Codec sowohl optische/Bilddaten als auch akustische/Tondaten in einem Video-Stream codieren/decodieren kann.
-
Bei der Verarbeitung digitaler Bilder und Videos werden digitale Bilder (z. B. Video- oder Standbilder) herkömmlicherweise in einem begrenzten dynamischen Bereich aufgenommen, ausgegeben bzw. gerendert und angezeigt, was als Bildgebung mit Standarddynamikbereich (SDR) bezeichnet wird. Außerdem werden Bilder zum Anzeigen üblicherweise unter Verwendung einer relativ geringen Farbskala ausgegeben, was als Bildgebung mit Standardfarbskala bezeichnet wird. Bildgebung mit erweitertem oder großem Dynamikbereich (HDR) bezeichnet eine Technologie und Verfahren, die einen breiteren Luminanzbereich in elektronischen Bildern (wie sie z. B. auf Bildschirmen oder Anzeigevorrichtungen angezeigt werden) hervorbringen als mit Standard-Technologie und -Verfahren für die digitale Bildgebung (was als Bildgebung mit Standarddynamikbereich oder SDR bezeichnet wird) erhalten werden kann. Viele neue Vorrichtungen wie Bildsensoren und Anzeigen unterstützen die HDR-Bildgebung ebenso wie die Bildgebung mit breiter Farbskala (WCG). Diese Vorrichtungen können als HDR-fähige Vorrichtungen oder einfach als HDR-Vorrichtungen bezeichnet werden.
-
ZUSAMMENFASSUNG VON AUSFÜHRUNGSFORMEN
-
Es werden verschiedene Ausführungsformen von Verfahren und Einrichtungen zum adaptiven Verarbeiten, Ausgeben bzw. Rendern und Anzeigen digitaler Bildinhalte, beispielsweise Video-Frames oder Video-Streams, beschrieben. Es werden Ausführungsformen von Videoverarbeitungsverfahren und -einrichtungen beschrieben, die Videodaten zur Anzeige auf einem angesteuerten Anzeigefeld adaptiv rendern können. Die adaptiven Videoverarbeitungsverfahren können verschiedene Informationen berücksichtigen, unter anderem Videoinhalte, Anzeigeeigenschaften und Umweltbedingungen, wozu unter anderem die Lichtverhältnisse und die Position von Betrachtern in Bezug auf das Anzeigefeld gehören, wenn Videoinhalte für ein angesteuertes Anzeigefeld in einem gegebenen Umfeld oder einer Umgebung verarbeitet und gerendert werden. Die adaptiven Videoverarbeitungsverfahren können diese Informationen verwenden, um eine oder mehrere Videoverarbeitungsfunktionen anzupassen, die auf die Videodaten angewendet werden (z. B. Minderung von Rauschen/Artefakten, Skalierung, Schärfung, Tonabbildung, Farbskala-Abbildung, Bildfrequenzumwandlung, Farbkorrektur, Weißpunkt- und/oder Schwarzpunktkorrektur, Farbausgleich usw.), um für das Zielanzeigefeld ein Video zu rendern, das gemäß den Umgebungsverhältnissen oder Betrachtungsbedingungen für das Anzeigefeld adaptiert ist.
-
In manchen Ausführungsformen kann eine adaptive Videoverarbeitung für ein Zielanzeigefeld in einem Decodier-/Anzeigemodul oder in einer Pipeline, die mit dem Zielanzeigefeld assoziiert ist, implementiert werden. Diese Ausführungsformen können als anzeigeseitige, adaptive Videoverarbeitungssysteme bezeichnet werden. In mindestens manchen Ausführungsformen kann eine Decodier-/Anzeige-Pipeline einen codierten Video-Stream für ein Zielanzeigefeld empfangen und decodieren. Der decodierte Videoinhalt kann analysiert werden, um Intra-Frame- und/oder Inter-Frame-Eigenschaften des Videos zu bestimmen, beispielsweise Luminanzeigenschaften (z. B. Breite eines Dynamikbereichs), Farbeigenschaften (z. B. Farbskala), Bewegung zwischen Einzelbildern bzw. Frames, Glanzlichteffekte, Kontrast, helle und dunkle Regionen und so weiter. Es können eine oder mehrere Anzeigeeigenschaften für das Zielanzeigefeld ermittelt werden. Die Anzeigeeigenschaften können unter anderem eine oder mehrere der Folgenden beinhalten: gemessene Antwort, Anzeigeformat, Dynamikbereich der Anzeige, Bittiefe, Hintergrundlichtpegel, Weißpunkt, Streulicht durch schwarze Pixel, Reflektivität, lokales Verstärken oder Abbilden von Kontrasten, aktuelle Anzeigesteuereinstellungen und so weiter. Es können Informationen über die aktuelle Umgebung vom Zielanzeigefeld abgefragt werden. Zum Beispiel kann eine Vorrichtung, die das Anzeigefeld aufweist, einen oder mehrere nach vorn oder nach hinten gerichtete Sensoren beinhalten, die verwendet werden können, um Daten aus einem Umgebungsbereich zu gewinnen (z. B. Licht, Standort eines Betrachters usw.). Die gewonnenen Daten können analysiert werden, um einen oder mehrere Umgebungsmesswerte zu bestimmen. Die Decodier-/Anzeige-Pipeline verarbeitet dann das decodierte Video entsprechend dem Inhalt, den Anzeigeeigenschaften und den aktuellen Umgebungsinformationen, um ein Video zu erzeugen, das für das Zielanzeigefeld und die aktuelle Umgebung adaptiert ist.
-
In manchen Ausführungsformen kann eine adaptive Videoverarbeitung für ein Zielanzeigefeld in einer Server-/Codier-Pipeline implementiert werden. Diese Ausführungsformen können als serverseitige, adaptive Videoverarbeitungssysteme bezeichnet werden. In mindestens manchen Ausführungsformen kann eine Server-/Codier-Pipeline Videoinhalte für ein Zielanzeigefeld abfragen. Das Zielanzeigefeld kann eine Bildgebung mit großem Dynamikbereich (HDR) und mit breiter Farbskala (WCG) unterstützen. Die Server-/Codier-Pipeline kann eine oder mehrere Eigenschaften der eingegebenen Videoinhalte abfragen oder bestimmen. Die Server-/Codier-Pipeline kann Anzeigeinformationen und/oder Umgebungsinformationen für das Zielanzeigefeld abfragen, beispielsweise von einem System, auf dem das Zielanzeigefeld implementiert ist. Die Anzeigeinformationen können Anzeigeeigenschaften angeben, die unter anderem eine oder mehrere der Folgenden beinhalten können: gemessene Antwort, Format, Auflösung, Größe, Dynamikbereich, Bittiefe, Hintergrundlichtpegel, Weißpunkt, Streulicht durch schwarze Pixel, Reflektivität, lokales Verstärken oder Abbilden von Kontrasten, aktuelle Anzeigesteuereinstellungen und so weiter. Die Umgebungsinformationen können unter anderem verschiedene Messwerte in Bezug auf die Lichtverhältnisse und Messwerte in Bezug auf einen Betrachter, beispielsweise die Position eines Betrachters in Bezug auf das Zielanzeigefeld, beinhalten.
-
Die Server-/Codier-Pipeline kann den Videoinhalt gemäß einer Farbskala-Abbildungstechnik einer Farbskala des Zielanzeigefelds abbilden. Die Farbskala-Abbildungstechnik kann gemäß den erhaltenen Informationen ausgewählt, modifiziert oder angepasst werden. Zum Beispiel kann die Farbskala der Quelldaten gemäß den Anzeigeinformationen der Bittiefe und der Farbskala des Zielanzeigefelds abgebildet werden. Als weiteres Beispiel können Kurven, Übertragungsfunktionen und/oder Zuordnungstabellen, die für die Skala-Abbildungstechnik verwendet werden, auf Basis eines oder mehrerer Messwerte, unter anderem aktuell gemessener Werte für die Lichtverhältnisse am Anzeigefeld, die von den Umgebungsinformationen angegeben werden, modifiziert oder angepasst werden.
-
Die Server-/Codier-Pipeline kann den Videoinhalt gemäß einer Tonabbildungstechnik einem Dynamikbereich für das Zielanzeigefeld zuordnen. Die Tonabbildungstechnik kann gemäß den erhaltenen Informationen angepasst werden. Zum Beispiel kann der Dynamikbereich der Quelldaten gemäß den Anzeigeinformationen der Bittiefe des Zielanzeigefelds abgebildet werden. Als weiteres Beispiel können Tonkurven- und/oder Übertragungsfunktionen, die für die Tonzuordnungstechnik verwendet werden, auf Basis eines oder mehrerer Messwerte, unter anderem aktuell gemessener Werte der Lichtverhältnisse am Anzeigefeld, die von den Umgebungsinformationen angegeben werden, modifiziert oder angepasst werden. In manchen Ausführungsformen können die Video-Frames anstelle von oder zusätzlich zu einer globalen Tonkurve in mehrere Regionen unterteilt werden, und lokale Tonkurven können für jede Region mindestens zum Teil auf Basis der Anzeige- und/oder Umgebungsinformationen dynamisch ausgewählt werden.
-
Die Server-/Codier-Pipeline kann den Videoinhalt codieren und den codierten Videoinhalt an die Decodier-/Anzeige-Pipeline schicken, die mit dem Zielanzeigefeld assoziiert ist. Die Decodier-/Anzeige-Pipeline decodiert den Videoinhalt und zeigt ihn an. Da eine anzeigefeldspezifische Tonabbildung und Farbskala-Abbildung auf den Dynamikbereich und die Farbskala, der jeweils vom Zielanzeigefeld unterstützt wird, auf der Server-/Codierseite durchgeführt wird, kann es sein, dass die Decodier-/Anzeige-Pipeline gar keine Änderungen oder Modifikationen benötigt, um eine HDR- und/oder WCG-Bildgebung zu unterstützen.
-
Einige Ausführungsformen können Einrichtungen und Verfahren zur Anpassung der Helligkeit einer Anzeige beinhalten, über welche die durchschnittliche Helligkeit einer Anzeige anhand einer nichtlinearen Funktion herauf- oder herabgesetzt werden kann. Wenn eine nichtlineare Funktion angewendet wird, um die Helligkeit herabzusetzen, wird der Kontrast des Ausgangssignals möglicherweise nicht reduziert, so dass der Dynamikbereich und Lichteffekte bewahrt werden. Die nichtlineare Anpassung der Helligkeit kann automatisch durchgeführt werden, zum Beispiel als Antwort auf eine Umgebungslichtstärke, die von einem bzw. mehreren Sensoren erfasst wird, kann aber auch als Antwort auf eine Anpassung seitens des Anwenders an einem Helligkeitssteuerknopf oder -schieber angewendet werden. Die nichtlineare Anpassung der Helligkeit kann global durchgeführt werden, oder sie kann alternativ dazu an lokalen Regionen eines Bildes oder eines Anzeigefelds durchgeführt werden. Die nichtlineare Funktion kann eine stückweise durchgeführte, lineare Funktion oder eine beliebige andere, nichtlineare Funktion sein.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt eine adaptive Videoverarbeitung in einem Video-Wiedergabesystem gemäß manchen Ausführungsformen.
-
2 zeigt eine adaptive Videoverarbeitung in einem Beispiel für eine Decodier-/Anzeige-Pipeline gemäß manchen Ausführungsformen.
-
3 zeigt ein Beispiel für eine Decodier-/Anzeige-Pipeline, die eine adaptive Videoverarbeitung durchführt, gemäß manchen Ausführungsformen.
-
4 zeigt ein Beispiel für eine Anzeige-Pipe und ein Anzeige-Backend, die eine adaptive Videoverarbeitung durchführen, gemäß manchen Ausführungsformen.
-
5 ist ein Ablaufschema eines Verfahrens für eine adaptive Videoverarbeitung in einer Decodier-/Anzeige-Pipeline gemäß manchen Ausführungsformen.
-
6A und 6B zeigen den menschlichen Wahrnehmungsbereich in Bezug auf ein Beispiel für ein Anzeigefeld.
-
7 zeigt grafisch ein Wahrnehmungsfarbmanagement gemäß manchen Ausführungsformen.
-
8 zeigt ein Beispiel für eine Decodier-/Anzeige-Pipeline, die eine SDR-zu-HDR-Umwandlung an einem SDR-Eingangsvideo durchführt, zur Erzeugung von Anzeige-Videoinhalt, der für eine HDR-Anzeige adaptiert ist, gemäß manchen Ausführungsformen.
-
9 ist ein Ablaufschema eines Verfahrens zur Durchführung einer SDR-zu-HDR-Umwandlung zur Erzeugung von Anzeige-Videoinhalt, der für eine HDR-Anzeige adaptiert ist, gemäß manchen Ausführungsformen.
-
10 zeigt ein Beispiel für ein Videoabspielsystem, in dem eine serverseitige Codier-Pipeline Ausgangs-Videodaten erzeugt, die für ein Zielanzeigefeld adaptiert sind, gemäß manchen Ausführungsformen.
-
11 ist ein Ablaufschema eines Videoabspielverfahrens gemäß manchen Ausführungsformen, bei dem eine serverseitige Codier-Pipeline Ausgangsvideodaten erzeugt, die für ein Zielanzeigefeld adaptiert sind.
-
12 zeigt das Eingabe/Ausgabe-Verhältnis einer Anpassung der Helligkeit mit einem Skalierungsfaktor von 0,5.
-
13 zeigt das Eingabe/Ausgabe-Verhältnis einer nichtlinearen Helligkeitsanpassungsfunktion gemäß mindestens manchen Ausführungsformen.
-
14 ist ein Ablaufschema eines nichtlinearen Helligkeitsanpassungsverfahrens gemäß mindestens manchen Ausführungsformen.
-
15 ist ein Blockschema einer Ausführungsform eines Systems auf einem Chip (SOC), das so konfiguriert sein kann, dass es Aspekte der hierin beschriebenen Systeme und Verfahren implementiert.
-
16 ist ein Blockschema einer Ausführungsform eines Systems, das ein oder mehrere SOCs beinhalten kann.
-
17 zeigt ein Beispiel für ein Computersystem, das so gestaltet sein kann, dass es Aspekte der hierin beschriebenen Systeme und Verfahren gemäß manchen Ausführungsformen implementiert.
-
18 zeigt ein Blockdiagramm einer tragbaren Multifunktionsvorrichtung gemäß manchen Ausführungsformen.
-
19 ist eine Abbildung einer tragbaren Multifunktionsvorrichtung gemäß machen Ausführungsformen.
-
Obwohl die Erfindung in verschiedenen Abwandlungen und alternativen Formen auftreten kann, sind konkrete Ausführungsformen davon beispielhaft in der Zeichnung dargestellt und werden hier im Detail beschrieben. Es versteht sich jedoch, dass die Zeichnung und die detaillierte Beschreibung dazu die Erfindung nicht auf die konkrete offenbarte Form beschränken sollen, sondern im Gegenteil, es ist beabsichtigt, sämtliche Abwandlungen, Äquivalente und Alternativen abzudecken, die unter den Erfindungsgedanken und in den Schutzbereich der vorliegenden Erfindung fallen. Wie in dieser Anmeldung verwendet, wird das Wort „können” im zulassenden Sinn verwendet (d. h. es bedeutet, dass eine Möglichkeit für etwas besteht) und nicht im obligatorischen Sinn (d. h. im Sinne von müssen). Ähnlich bedeuten die Wörter „beinhaltet”, „beinhaltend”, „beinhalten”, etwas beinhalten, aber ohne Beschränkung. Verschiedene Einheiten, Schaltungen oder andere Komponenten können als zum Durchführen einer oder mehrerer Aufgaben „konfiguriert” beschrieben sein. In solchen Kontexten ist „konfiguriert” eine weit gefasste Darstellung einer Struktur, die generell bedeutet, „Schaltungen beinhaltend, die” die Aufgabe(n) während des Betriebs ausführen. Somit kann die Einheit/Schaltung/Komponente so konfiguriert sein, dass sie die Aufgabe ausführt, auch wenn die Einheit/Schaltung/Komponente derzeit nicht eingeschaltet ist. Im Allgemeinen können die Schaltungen, welche die Struktur bilden, die „dafür ausgelegt” entspricht, Hardware-Schaltungen beinhalten. Ähnlich können verschiedene Einheiten/Schaltungen/Komponenten aus praktischen Gründen in der Beschreibung so beschrieben sein, dass sie eine oder mehrere Aufgaben ausführen. Solche Beschreibungen sollten so ausgelegt werden, als würden sie den Ausdruck „konfiguriert” enthalten. Das Nennen einer Einheit/Schaltung/Komponente, die zum Ausführen einer oder mehrerer Aufgaben konfiguriert ist, soll ausdrücklich nicht nach 35 USC § 112, Absatz sechs für die Einheit/Schaltung/Komponente gedeutet werden.
-
DETAILLIERTE BESCHREIBUNG
-
Es werden verschiedene Ausführungsformen von Verfahren und Einrichtungen für eine adaptive Verarbeitung, Rendering und Anzeige von digitalem Bildinhalt, beispielsweise Video-Frames oder Video-Streams, beschrieben. Es werden Ausführungsformen von Videoverarbeitungsverfahren und -einrichtungen beschrieben, die Videodaten für die Anzeige auf einem Zielanzeigefeld adaptiv rendern können. Die adaptiven Videoverarbeitungsverfahren können verschiedene Informationen berücksichtigen, unter anderem Videoinhalte, Anzeigeeigenschaften und Umweltbedingungen, wozu unter anderem die Lichtverhältnisse und die Position von Betrachtern in Bezug auf das Anzeigefeld gehören, wenn Videoinhalte für ein Zielanzeigefeld in einem gegebenen Umfeld oder einer Umgebung verarbeitet und gerendert werden. Die adaptiven Videoverarbeitungsverfahren können diese Informationen verwenden, um eine oder mehrere Videoverarbeitungsfunktionen anzupassen, die auf die Videodaten angewendet werden (z. B. Minderung von Rauschen/Artefakten, Skalierung, Schärfung, Tonabbildung, Farbskala-Abbildung, Bildfrequenzumwandlung, Farbkorrektur, Weißpunkt- und/oder Schwarzpunktkorrektur, Farbausgleich usw.), um für das Zielanzeigefeld ein Video zu rendern, das gemäß den Umgebungsbedingungen oder Sichtverhältnissen für das Anzeigefeld adaptiert ist. Herkömmlicherweise werden Videoverarbeitungsalgorithmen für die Bildgebung mit Standarddynamikbereich (SDR) ausgelegt. Mit dem Aufkommen der Techniken, Systeme und Anzeigen für eine Bildgebung mit großem Dynamikbereich (HDR) ist ein Bedarf an Videoverarbeitungstechniken entstanden, die auf HDR abzielen. Für die HDR-Videoverarbeitung müssen mitunter bestimmte Dinge anders gehandhabt werden als bei der SDR-Videoverarbeitung. Zum Beispiel kann das HDR-Video eine aggressivere Rauschunterdrückung erfordern, aufälliger ruckeln und eine andere Schärfe und Detailtreue („Detail Enhancement”) benötigen als SDR-Video. Somit werden hierin Ausführungsformen der adaptiven Videoverarbeitungsverfahren und -einrichtungen beschrieben, die Videoverarbeitungstechniken implementieren können, die auf HDR-Bildgebung abzielen. Außerdem können Ausführungsformen auch eine Bildgebung mit breiter Farbskala (WCG) unterstützen.
-
Allgemein definiert ist ein Dynamikbereich das Verhältnis zwischen dem größt- und dem kleinstmöglichen Wert einer veränderlichen Größe, beispielsweise bei Signalen wie Ton und Licht. Bei der digitalen Bildverarbeitung ist ein Bild mit großem Dynamikbereich (HDR) ein Bild, das anhand einer HDR-Bildgebungstechnik produziert wird, die einen breiteren Bereich an Leuchtkraft produziert als mit digitalen Standard-Bildgebungstechniken möglich ist. Zum Beispiel kann ein HDR-Bild mehr Bits pro Kanal (z. B. 10, 12, 14 oder mehr Bits pro Luma- und Chroma-Kanal) oder mehr Bits für die Leuchtkraft (den Luma-Kanal) beinhalten als bei der herkömmlichen Bildverarbeitung verwendet werden (in der Regel 8 Bits pro Kanal, z. B. 8 Bits für Chroma und für Luma). Ein Bild, das anhand von digitalen Standard-Bildgebungstechniken produziert wird, kann als eines bezeichnet werden, das einen Standarddynamikbereich (SDR) aufweist und in der Regel 8 Bits pro Kanal verwendet. Allgemein definiert ist Tonabbildung eine Technik, bei der ein Satz von Bildfarbwerten (z. B. Lumawerten aus HDR-Bilddaten) einem anderen zugeordnet wird (z. B. auf SDR-Bilddaten). Tonabbildung kann beispielsweise verwendet werden, um das Aussehen von HDR-Bildern in einem Medium, das einen stärker begrenzten dynamischen Bereich aufweist (z. B. SDR), zu approximieren. Tonabbildung kann allgemein auf Luma-Bilddaten angewendet werden.
-
In manchen Ausführungsformen der hierin beschriebenen Videoverarbeitungsverfahren und -einrichtungen kann eine globale Tonabbildungstechnik (GTM-Technik) für die Umwandlung von Videoinhalt von einem Dynamikbereich auf einen anderen verwendet werden. Bei einer GTM-Technik kann eine globale Tonkurve für einen oder mehrere Video-Frames vorgegeben oder bestimmt werden und für die Umwandlung von Videoinhalt von einem Dynamikbereich auf einen anderen verwendet werden. In manchen Ausführungsformen kann anstelle von oder zusätzlich zu einer GTM-Technik eine lokale Tonabbildungstechnik (LTM-Technik) für die Umwandlung von Videoinhalt von einem Dynamikbereich auf einen anderen verwendet werden. Bei einer LTM-Technik wird ein Bild oder Frame in mehrere Regionen aufgeteilt, wobei für jede Region eine Tonkurve vorgegeben oder bestimmt wird.
-
Nach allgemeiner Definition bezeichnet Farbskala einen bestimmten Teilsatz von Farben, beispielsweise einen Teilsatz von Farben, die unter gegebenen Umständen, beispielsweise in einem bestimmten Farbraum (z. B. einem RGB-Farbraum) oder durch eine Anzeigevorrichtung exakt dargestellt werden können. Farbskala kann auch den vollständigen Satz der Farben bezeichnen, die in einem Bild vorkommen. Eine Farbskala-Abbildungstechnik kann beispielsweise verwendet werden, um die Farben, die in einem Farbraum dargestellt werden, auf einee Farbskala umzuwandeln, der in einem anderen Farbraum verwendet wird. Eine Farbskala-Abbildungstechnik (die auch als Farb- oder Chroma-Abbildung bezeichnet werden kann), kann auch auf Bilddaten (im Allgemeinen auf Chroma-Bilddaten) angewendet werden und in manchen Fällen die Farbskala eines Bildes verschmälern oder beschneiden oder alternativ dazu verwendet werden, um die Farbskala oder -bereich eines Bildes während oder nach der Tonabbildung zu korrigieren oder anzupassen.
-
In der Photometrie ist die SI-Einheit für die Luminanz Candela pro Quadratmeter (cd/m2). Candela ist die SI-Einheit für die Lichtstärke. Außerhalb des SI ist „NIT” ein Begriff für dieselbe Einheit. Lux ist die SI-Einheit für die Beleuchtungsstärke und die Lichtausstrahlung, gemessen in Lichtstrom (Lumen) pro Einheitsfläche. Lux entspricht einem Lumen pro Quadratmeter. Lumen ist die SI-abgeleitete Einheit des Lichtstroms, ein Maß für sichtbares Licht, das von einer Quelle emittiert wird.
-
Adaptive Videoverarbeitungssysteme
-
1 zeigt eine adaptive Videoverarbeitung in einem Beispiel für ein Videoabspielsystem gemäß manchen Ausführungsformen. Ausführungsformen der adaptiven Videoverarbeitungsverfahren und -einrichtungen können beispielsweise in Videoabspielsystemen implementiert werden, die ein Server-/Codiermodul oder eine Server-/Codier-Pipeline 110 und ein Decodier-/Anzeigemodul oder eine Decodier-/Anzeige-Pipeline 130 beinhalten. Die Server-/Codier-Pipeline 110 und die Decodier-/Anzeige-Pipeline 130 können in ein und derselben Vorrichtung oder in verschiedenen Vorrichtungen implementiert werden. Die Server-Codier-Pipeline 110 kann in einer Vorrichtung oder einem System implementiert sein, das bzw. die mindestens eine Videoquelle 100, beispielsweise eine oder mehrere Videokameras, beinhaltet. Die Decodier-/Anzeige-Pipeline 130 kann in einer Vorrichtung oder einem System 120 implementiert werden, das bzw. die ein Zielanzeigefeld 140 aufweist, und das bzw. die in einem Umgebungsbereich 190 angeordnet ist. Ein oder mehrere Zuschauer 180 können sich in dem Umgebungsbereich 190 befinden. Das System 120 kann eine oder mehrere Steuerungen 160 für das Anzeigefeld 140 implementieren, beispielsweise Helligkeits- und Kontraststeuerungen. Das System 120 kann auch einen oder mehrere Sensoren 150, beispielsweise Lichtsensoren oder Kameras, beinhalten. Der Umgebungsbereich 190 kann beispielsweise ein Zimmer (Schlafzimmer, Arbeitszimmer usw.) in einem Haus, eine Außenumgebung, ein Büro oder Konferenzraum in einem Bürogebäude oder ganz allgemein jede Umgebung sein, in der ein System 120 mit einem Anzeigefeld 140 vorhanden sein kann. Der Umgebungsbereich 190 kann eine oder mehrere Lichtquellen 192, beispielsweise Lampen oder Deckenlichter, andere künstliche Lichtquellen, Fenster und, im Freien, die Sonne beinhalten. Man beachte, dass ein System 120 und/oder ein Anzeigefeld innerhalb des Umgebungsbereichs 190 bewegt oder neu positioniert werden kann bzw. können oder aus einem Umgebungsbereich 190 (z. B. einem Zimmer) in einen anderen (z. B. ein anderes Zimmer oder ins Freie) bewegt werden kann bzw. können.
-
Zumindest in manchen Ausführungsformen kann die Server-/Codier-Pipeline 110 ein eingehendes Video von einer Videoquelle 100 (z. B. von einer Videokamera oder einer Vorrichtung oder einem System, die bzw. das die Server-/Codier-Pipeline 110 beinhaltet) empfangen, das eingegebene Video gemäß einem Videokonvertierungsverfahren in ein anderes Format umwandeln, z. B. in ein komprimiertes Videoformat wie H.264/Advanced Video Coding(AVC)-Format oder H.265 High Efficiency Video Coding(HEVC)-Format, und das codierte Video in eine Decodier-/Anzeige-Pipeline 130 streamen 112. Die Decodier-/Anzeige-Pipeline 130 kann den codierten Video-Stream 112 empfangen und decodieren, um ein Anzeigevideo 132 zur Anzeige auf dem Anzeigefeld 140 zu generieren. In manchen Ausführungsformen können auch Metadaten 114, die das Codieren beschreiben, durch die Server-/Codier-Pipeline 110 für die Decodier-/Anzeige-Pipeline 130 bereitgestellt werden. Zum Beispiel können die Metadaten Informationen beinhalten, die Skala-Abbildungs- und/oder Tonabbildungsoperationen beschreiben, welche am Videoinhalt durchgeführt werden. In manchen Ausführungsformen können die Metadaten 114 von der Decodier-/Anzeige-Pipeline 130 bei der Verarbeitung des Video-Streams 112 verwendet werden, um den Inhalt des ausgehenden Anzeigevideos 132 zu generieren. Ein Videoabspielsystem, wie es in 1 dargestellt ist, kann ein oder mehrere adaptive Videoverarbeitungsverfahren und -einrichtungen, wie hierin beschrieben, implementieren, die verschiedene Informationen berücksichtigen können, die unter anderem Videoinhalte, Anzeigeinformationen 142 (z. B. Eigenschaften des Anzeigefelds 140, Steuereingaben 162, Hintergrundbeleuchtungsstärken usw.) und Umgebungsinformationen 152 (z. B. Lichtverhältnisse 192, Standort von Betrachtern 180 usw.) beinhalten, wenn sie Videoinhalte verarbeiten und für ein Zielanzeigefeld 140 in einem Umfeld oder einer Umgebung 190 rendern. Die adaptiven Videoverarbeitungsverfahren und -einrichtungen können diese Informationen verwenden, die sie von einem oder mehreren Sensoren 150, dem Anzeigefeld 140 oder von anderen Quellen abfragen bzw. erhalten, um eine oder mehrere Videoverarbeitungsfunktionen anzupassen, die auf die Videodaten angewendet werden (z. B. Minderung von Rauschen/Artefakten, Skalierung, Schärfung, Tonabbildung, Farbskala-Abbildungstechnik, Bildfrequenzumwandlung, Farbkorrektur, Weißpunkt- und/oder Schwarzpunktkorrektur, Farbausgleich usw.), um für das Zielanzeigefeld 140 ein Video zu rendern, das für Eigenschaften des Anzeigefelds 140 und an herrschende Betrachtungsbedingungen in der Umgebung 190 adaptiert ist.
-
In manchen Ausführungsformen kann eine adaptive Videoverarbeitung für ein Zielanzeigefeld 140 in oder von einer Decodier-/Anzeige-Pipeline 130 implementiert werden. Diese Ausführungsformen können als anzeigeseitige, adaptive Videoverarbeitungssysteme bezeichnet werden. In manchen Ausführungsformen kann eine adaptive Videoverarbeitung für ein Zielanzeigefeld 140 in einer oder durch eine Server-/Codier-Pipeline 110 implementiert werden. Diese Ausführungsformen können als serverseitige, adaptive Videoverarbeitungssysteme bezeichnet werden. In manchen Ausführungsformen können manche adaptiven Videoverarbeitungsfunktionen von der Server-/Codier-Pipeline 110 vor dem Streaming des codierten Videos in die Decodier-/Anzeige-Pipeline 130 durchgeführt werden, wobei von der Decodier-/Anzeige-Pipeline 130 eine zusätzliche, adaptive Videoverarbeitung durchgeführt wird.
-
Ausführungsformen der adaptiven Videoverarbeitungsverfahren und -einrichtungen, einschließlich unter anderem der hierin beschriebenen Komponenten der Server-/Codier-Pipeline 110 und der Komponenten der Decodier-/Anzeige-Pipeline 130, können beispielsweise in Vorrichtungen und Systemen implementiert sein, die eine oder mehrere Bildaufnahmevorrichtungen und/oder eine oder mehrere Anzeigevorrichtungen beinhalten.
-
Eine Bildaufnahmevorrichtung kann jede Vorrichtung sein, die einen optischen Sensor oder einen Lichtsensor aufweist, der in der Lage ist, digitale Bilder oder Video aufzunehmen. Bildaufnahmevorrichtungen können unter anderem, ohne jedoch darauf beschränkt zu sein, Videokameras und Standbildkameras beinhalten, ebenso wie Bildaufnahmevorrichtungen, die sowohl Video als auch Einzelbilder aufnehmen können. Bildaufnahmevorrichtungen können eigenständige Vorrichtungen sein oder können Kameras sein, die in andere Vorrichtungen integriert sind, unter anderem in Smartphones, Mobiltelefonen, PDAs, Tablet- oder Pad-Vorrichtungen, multifunktionellen Vorrichtungen, Rechenvorrichtungen, Laptop-Computern, Notebook-Computern, Netbook-Computern, Desktop-Computern und so weiter. Man beachte, dass Bildaufnahmevorrichtungen Kameras mit kleinem Formfaktor beinhalten können, die sich für die Verwendung in kleinen Vorrichtungen wie Mobiltelefonen, PDAs und Tablet-Vorrichtungen eignen. Die 15 bis 19 zeigen nichtbeschränkende Beispiele, die hierin beschriebene Bildaufnahmevorrichtungen oder Kameras beinhalten können.
-
Anzeigen oder Anzeigevorrichtungen können Bildschirme oder Anzeigefelder beinhalten, die in andere Vorrichtungen integriert sind, unter anderem in Smartphones, Mobiltelefonen, PDAs, Tablet- oder Pad-Vorrichtungen, multifunktionellen Vorrichtungen, Rechenvorrichtungen, Laptop-Computern, Notebook-Computern, Netbook-Computern, Desktop-Computern und so weiter. Anzeigevorrichtungen können auch Videomonitore, Projektoren oder ganz allgemein jede Vorrichtung beinhalten, die digitale Bilder und/oder digitales Video anzeigen oder projizieren kann. Die Anzeigen oder Anzeigevorrichtungen können eine LCD-Technologie (Flüssigkristallanzeigetechnologie), LPD-Technologie (Leuchtpolymeranzeigetechnologie) oder LED-Technologie (Leuchtdiodentechnologie) verwenden, wenngleich auch andere Anzeigetechnologien verwendet werden können. Ausführungsformen der adaptiven Videoverarbeitungsverfahren und -einrichtungen werden allgemein als solche beschrieben, die das Aufnehmen, Verarbeiten, Codieren, Verteilen und Anzeigen von HDR-Videodaten an HDR-fähigen Anzeigevorrichtungen unterstützen. Außerdem können Ausführungsformen auch eine Bildgebung mit breiter Farbskala (WCG) unterstützen. Jedoch können Ausführungsformen hierin beschriebener, adaptiver Videoverarbeitungsverfahren und -einrichtungen auch mit Anzeigevorrichtungen verwendet werden, die keine HDR-Bildgebung unterstützen. Außerdem können manche Ausführungsformen das Anzeigen von Videodaten mit Standarddynamikbereich (SDR) an HDR-fähigen Anzeigevorrichtungen und/oder an Anzeigevorrichtungen, die eine HDR-Bildgebung nicht unterstützen, unterstützen. Ausführungsformen der adaptiven Videoverarbeitungsverfahren und -einrichtungen werden hierin allgemein als solche beschrieben, die Video-Frames oder -Sequenzen verarbeiten. Jedoch können Ausführungsformen angewendet werden, um anstelle von oder zusätzlich zu Video-Frames oder -Sequenzen Einzel- oder Standbilder ebenso wie andere digitale Bilder zu verarbeiten. Daher sei klargestellt, dass, wenn hierin „Video”, „Video-Frame”, „Frame” oder dergleichen verwendet werden, diese Begriffe digitale Bilder allgemein bezeichnen können.
-
Die 15 bis 19 zeigen nicht-beschränkende Beispiele für Vorrichtungen, in denen Ausführungsformen der adaptiven Videoverarbeitungsverfahren und -einrichtungen implementiert werden können. Eine Vorrichtung oder ein System, das eine Bildaufnahmevorrichtung und/oder Anzeigevorrichtung aufweist, kann Hardware und/oder Software beinhalten, die mindestens manche der hierin beschriebenen Funktionen zur Verarbeitung von Videodaten implementiert. In manchen Ausführungsformen kann ein Teil der hierin beschriebenen Funktionen an einer Vorrichtung implementiert sein, während ein anderer Teil an einer anderen Vorrichtung implementiert sein kann. Zum Beispiel kann in manchen Ausführungsformen eine Vorrichtung, die eine Bildaufnahmevorrichtung beinhaltet, eine Sensor-Pipeline implementieren, die Bilder oder Video, die über einen Lichtsensor aufgenommen worden sind, verarbeitet und komprimiert (d. h. codiert), während eine andere Vorrichtung, die ein Anzeigefeld oder einen Bildschirm beinhaltet, eine Anzeige-Pipeline implementieren kann, welche die komprimierten Bilder empfängt und zur Anzeige auf dem Anzeigefeld oder dem Bildschirm verarbeitet (d. h. decodiert). In manchen Ausführungsformen kann mindestens ein Teil der hierin beschriebenen Funktionen durch eine oder mehrere Komponenten oder ein oder mehrere Module eines Systems auf einem Chip (SOC) implementiert werden, das in Vorrichtungen verwendet werden kann, die unter anderem Multifunktionsvorrichtungen, Smartphones, Pad- oder Tablet-Vorrichtungen und andere tragbare Rechenvorrichtungen wie Laptop-, Notebook- und Netbook-Computer beinhalten. 15 zeigt ein Beispiel für SOC, und 16 zeigt ein Beispiel für die Implementierung eines SOC. 17 zeigt ein Beispiel für Computersysteme, in dem die hierin beschriebenen Verfahren und Einrichtungen implementiert sein können. 18 und 19 zeigen Beispiele für Multifunktionsvorrichtungen, in denen die hierin beschriebenen Verfahren und Einrichtungen implementiert werden können.
-
Anzeigeseitige, adaptive Videoverarbeitung
-
Wie in 1 dargestellt ist, kann in manchen Ausführungsformen eine adaptive Videoverarbeitung für ein Zielanzeigefeld 140 in oder von einer Decodier-/Anzeige-Pipeline 130 implementiert werden. Diese Ausführungsformen können als anzeigeseitige, adaptive Videoverarbeitungssysteme bezeichnet werden. Die Decodier-/Anzeige-Pipeline 130 kann beispielsweise in einer Vorrichtung oder einem System 120 implementiert werden, das bzw. die ein Zielanzeigefeld 140 aufweist und das bzw. die in einem Umgebungsbereich 190 angeordnet ist.
-
5 ist ein Ablaufschema eines Verfahrens für eine anzeigeseitige, adaptive Videoverarbeitung in einer Decodier-/Anzeige-Pipeline gemäß manchen Ausführungsformen. Wie bei 500 in 5 dargestellt ist, kann eine Decodier-/Anzeige-Pipeline einen codierten Video-Stream für ein Zielanzeigefeld empfangen und decodieren. Zum Beispiel können codierte HDR-Videodaten von einer Server-/Codier-Pipeline her an der Decodier-/Anzeige-Pipeline empfangen werden; das Zielanzeigefeld kann eine HDR-fähige Anzeigevorrichtung sein. Die Videodaten können beispielsweise gemäß einem komprimierten Videoformat wie einem H.264/AVC- oder H.265/HEVC-Format codiert werden. Eine Decodierkomponente der Decodier-/Anzeige-Pipeline kann das codierte Video decodieren, um decodierten HDR-Videoinhalt zu erzeugen. Wie bei 502 von 5 angegeben ist, können eine oder mehrere Eigenschaften des decodierten Videoinhalts bestimmt werden. Zum Beispiel kann in manchen Ausführungsformen der decodierte Videoinhalt analysiert werden, um Intra-Frame- und/oder Inter-Frame-Eigenschaften des Videos zu bestimmen, beispielsweise Luminanzeigenschaften (z. B. Dynamikbereich), Farbeigenschaften (z. B. Farbskala), Bewegung zwischen Einzelbildern bzw. Frames, Glanzlichteffekte, Kontrast, helle und dunkle Regionen und so weiter.
-
Wie bei 504 in 5 angegeben ist, können eine oder mehrere Anzeigeeinheiten für das angesteuerte Anzeigefeld abgefragt werden. Die Anzeigeeigenschaften können unter anderem eine oder mehrere der Folgenden beinhalten: gemessene Antwort, Anzeigeformat, Dynamikbereich der Anzeige, Bittiefe, Hintergrundlichtpegel, Weißpunkt, Streulicht durch schwarze Pixel, Reflektivität, lokales Verstärken oder Abbilden von Kontrasten, aktuelle Anzeigesteuereinstellungen und so weiter.
-
Wie bei 506 von 5 angegeben ist, können Umgebungsinformationen abgefragt werden. Zum Beispiel kann in manchen Ausführungsformen eine Vorrichtung, die das Anzeigefeld aufweist, einen oder mehrere nach vorne oder nach hinten gerichtete Sensoren (z. B. Kameras, Lichtsensoren usw.) beinhalten, die verwendet werden können, um Daten aus dem Umgebungsbereich zu gewinnen; die gewonnenen Daten können analysiert werden, um einen oder mehrere Umgebungsmesswerte zu bestimmen. Die Umgebungsmesswerte können unter anderem verschiedene Messwerte in Bezug auf die Lichtverhältnisse und Messwerte in Bezug auf einen Betrachter beinhalten, beispielsweise die Position von Betrachtern in Bezug auf das Anzeigefeld, die Größe des Anzeigefelds und den Abstand zum Anzeigefeld. Die gemessenen Werte für die Lichtverhältnisse können beispielsweise Messwerte des Lichtes, das auf das Anzeigefeld fällt, die Stärke von Lichtreflexionen vom Anzeigefeld und Messwerte (z. B. Helligkeit, Farbe, Weißpunkt usw.) in Bezug auf das Sichtfeld (oder den Hintergrund), auf das (bzw. den) der Betrachter/Anwender blickt, beinhalten.
-
Wie bei 508 von 5 angegeben ist, kann die Decodier-/Anzeige-Pipeline das decodierte Video entsprechend dem Inhalt, den Anzeigeeigenschaften und den aktuellen Umgebungsinformationen verarbeiten, um ein Video zu erzeugen, das für das Anzeigefeld und die aktuelle Umgebung adaptiert ist. In manchen Ausführungsformen können auf Basis der Inhaltseigenschaften, Anzeigeeigenschaften und der Umgebungsmessgrößen eine oder mehrere Videoverarbeitungsfunktionen der Decodier-/Anzeige-Pipeline (beispielsweise Minderung von Rauschen/Artefakten, Skalierung und Schärfung, Bildfrequenzumwandlung, Anzeigesteuerung, Skala- und Tonabbildung usw.) angepasst werden, um den decodierten HDR-Videoinhalt für die Anzeige auf dem Zielanzeigefeld zu adaptieren. Wie bei 510 in 5 angegeben ist, kann das verarbeitete Video auf dem Zielanzeigefeld angezeigt werden.
-
Auch wenn dies in 5 nicht dargestellt ist, kann die Decodier-/Anzeige-Pipeline in manchen Ausführungsformen eine Compositing-Komponente beinhalten, die andere digitale Informationen wie Text mit gestreamtem Videoinhalt zusammenführt. In manchen Ausführungsformen kann die Decodier-/Anzeige-Pipeline das eingegebene Video für ein Compositing vor dem Element 508 von 5 in einen linearen Farbraum (z. B. einen linearen RGB- oder YCC-Farbraum) überführen. Die Ausgabe der Compositing-Komponente kann dann entsprechend dem Inhalt, den Anzeigeeigenschaften und den aktuellen Umgebungsinformationen verarbeitet werden, um das Video zu erzeugen, das für das Zielanzeigefeld und die aktuelle Umgebung adaptiert ist.
-
Die Elemente von 5 werden ausführlicher unter Bezugnahme auf die 1 bis 4 beschrieben.
-
Es wird erneut auf 1 Bezug genommen, wo gezeigt ist, dass in Ausführungsformen von anzeigeseitigen, adaptiven Videoverarbeitungssystemen die Decodier-/Anzeige-Pipeline 130 einen codierten Video-Stream 112 erhalten kann, Informationen 142A und Umgebungsinformationen 152A anzeigen kann und unter anderem eine oder mehrere der Folgenden berücksichtigen kann: Videoinhalt, Eigenschaften des Anzeigefelds, Standort eines Betrachters 180 in Bezug auf das angesteuerte Anzeigefeld, Lichtverhältnisse 192 und andere Bedingungen in der Umgebung 190 am Anzeigefeld 140, wenn sie die HDR-Videoverarbeitung durchführt. Codierte HDR-Videodaten 112 können von einer Server-/Codier-Pipeline 110 her an der Decodier-/Anzeige-Pipeline 130 empfangen und decodiert werden. In manchen Ausführungsformen können die decodierten Videodaten analysiert werden, um zum Beispiel Luminanzeigenschaften (z. B. Dynamikbereich), Farbeigenschaften (z. B. Farbbereich), Bewegung zwischen Frames, Glanzlichteffekte, Kontrast, helle und dunkle Regionen und so weiter zu bestimmen. Auf Basis der Analyse des Videoinhalts können eine oder mehrere Videoverarbeitungsfunktionen der Decodier-/Anzeige-Pipeline 130 (z. B. Minderung von Rauschen/Artefakten, Skalierung und Schärfung, Bildfrequenzumwandlung, Anzeigesteuerung usw.) angepasst werden, um den decodierten Videoinhalt für die Anzeige auf dem Zielanzeigefeld 140 zu adaptieren. In manchen Ausführungsformen können eine oder mehrere Anzeigeeigenschaften (z. B. Anzeigeformat, Dynamikbereich, Bittiefe, Hintergrundlichtstärke, Weißpunkt, aktuelle Steuerungseinstellungen 160 usw.) des Zielanzeigefelds 140 für die Anpassung der Videoverarbeitungsfunktionen ebenfalls berücksichtigt werden.
-
In manchen Ausführungsformen können die Videoverarbeitungsfunktionen stattdessen oder außerdem gemäß der Analyse einer oder mehrerer aktueller Umgebungsbedingungen des Anzeigefelds, die von einem oder mehreren Sensoren 150 (z. B. Kameras, Lichtsensoren usw.) an oder in der Nähe des Anzeigefelds 140 erfasst wird bzw. werden, dynamisch angepasst werden, um das angezeigte Video dynamisch an die aktuelle Umgebung 190 anzupassen. In manchen Ausführungsformen können die Videoverarbeitungsfunktionen mindestens zum Teil auf Basis einer oder mehrerer Eigenschaften von Betrachtern 180, beispielsweise eines Standorts, eines Abstands und eines Betrachtungswinkels in Bezug auf das Anzeigefeld 140, die von dem bzw. den Sensoren 150 erfasst werden, angepasst werden. In manchen Ausführungsformen können Informationen 152A über die Umgebung 190 des Anzeigefelds 140, beispielsweise über die Stärke des Umgebungslichts 192, über den Sensor bzw. die Sensoren 150 erhalten werden, und die Videoverarbeitungsfunktionen können angepasst werden, um das Anzeigevideo zumindest zum Teil auf Basis der erhaltenen Umgebungsinformationen 152A für die Umgebung 190 zu adaptieren.
-
In manchen Ausführungsformen können andere Informationen erhalten und verwendet werden, um die Verarbeitung von Video in der Decodier-/Anzeige-Pipeline 130 anzupassen, um das angezeigte Video auf die Stimmung oder die Betrachtungsabsichten des Betrachters auszurichten, die als Betrachtungsmodus bezeichnet werden können. Zum Beispiel können in manchen Ausführungsformen Beleuchtung, Standort, Tageszeit, Biometriewerte und/oder andere Daten verwendet werden, um automatisch einen Betrachtungsmodus für das Video zu bestimmen. Der bestimmte Betrachtungsmodus kann dann verwendet werden, um eine oder mehrere der Videoverarbeitungsfunktionen anzupassen, um das angezeigte Video für den Betrachtungsmodus zu adaptieren. Betrachtungsmodi können von einem ruhigen oder entspannten Betrachtungsmodus bis zu einem Kino- oder dynamischen Betrachtungsmodus reichen. In manchen Ausführungsformen kann stattdessen oder zusätzlich dazu eine Benutzereingabe (z. B. über eine Anzeigefeldsteuerung, Fernsteuerung, Smartphone-App usw.) für die Bestimmung oder Anpassung des Betrachtungsmodus verwendet werden.
-
In manchen Ausführungsformen können zusätzlich zur Durchführung einer anzeigeseitigen, adaptiven Videoverarbeitung in einer Decodier-/Anzeige-Pipeline 130, wie oben beschrieben, zumindest manche Umgebungsinformationen 152B und/oder Anzeigeinformationen 142B, die vom System 120 gewonnen werden, aufwärts an eine Server-/Codier-Pipeline 110 in einem Videoabspielsystem geschickt werden. Die Server-/Codier-Pipeline 110 kann dann unter anderem eine oder mehrere der Folgenden berücksichtigen: Eigenschaften des Anzeigefelds 140, Standort eines Betrachters 180 in Bezug auf das Zielanzeigefeld, Lichtverhältnisse 192 und andere Bedingungen in der Umgebung 190 des Anzeigefelds 140, wenn sie Videoinhalt, der von der Quelle 100 her erhalten wird, verarbeitet und codiert, um einen codierten Video-Stream 112 zu erzeugen. Zum Beispiel kann die Decodier-/Anzeige-Pipeline 130 in manchen Ausführungsformen in Livestreaming, Aufzeichnungs- oder Videoaufnahmeumgebungen verwendet werden, und das System 120 kann eine oder mehrere anzeigeseitige Messwerte 142B und 152B in die Server-/Codier-Pipeline 110 einspeisen, so dass die Pipeline 110 demgemäß eine oder mehrere Codierfunktionen adaptieren oder anpassen kann, wenn sie eingegebenen Videoinhalt von der Quelle 100 verarbeitet, um den codierten Video-Stream 112 zu erzeugen.
-
Die 2 bis 4 zeigen ein Beispiel für anzeigeseitige Komponenten und Pipelines, die adaptive Videoverarbeitungsverfahren wie hierin beschrieben implementieren können.
-
2 ist ein Blockdiagramm, das grafisch die Anwendung von adaptiven Videoverarbeitungsverfahren in einem Beispiel für einen Decodier-/Anzeige-Pipelineprozess gemäß manchen Ausführungsformen darstellt. Man beachte, dass
-
2 ein Beispiel für eine Decodier-/Anzeige-Pipeline 210 auf einer hohen, funktionalen Ebene zeigt und nicht als Beschränkung aufgefasst werden soll. In diesem Beispiel implementiert die Pipeline 210 Funktionen einer Rausch-/Artefaktreduzierung 212, einer Skalierung und Schärfung 214, einer Bildfrequenzumwandlung 216 und einer Anzeigesteuerung 218. Die Pipeline 210 verarbeitet eingegebenes Video 200, um angezeigtes Video 232 als Ausgabe zu erzeugen. Wie in 2 dargestellt ist, können Informationen, die Eigenschaften des Inhalts des Videos 200, Eigenschaften des Anzeigefelds 240 und Umgebungsbedingungen beinhalten, die unter anderem eine Betrachterposition und Lichtverhältnisse beinhalten, in eine oder mehrere Stufen der Pipeline 210 eingegeben und darin verwendet werden, um den Videoinhalt für die Anzeige auf dem Zielanzeigefeld 240 unter aktuellen Umgebungsbedingungen adaptiv zu rendern. In zumindest manchen Ausführungsformen kann eine Decodier-/Anzeige-Pipeline 210 dafür ausgelegt sein, ein eingegebenes HDR-Video 200 zu verarbeiten, um ein HDR-Anzeigevideo 232 für ein Zielanzeigefeld 240 zu erzeugen. Jedoch kann eine Decodier-/Anzeige-Pipeline 210 stattdessen oder zusätzlich dazu dafür ausgelegt sein, ein eingegebenes SDR-Video 200 zu verarbeiten, um eine SDR-Anzeigeausgabe 232 zu erzeugen.
-
Für die HDR-Videoverarbeitung mag es bestimmte Dinge geben, die anders gehandhabt werden müssen als mit normalem (SDR) Video. In der Regel wird bei einem helleren Bild ein Rauschen in Schatten- oder dunklen Region sichtbarer. Somit muss möglicherweise von einer Decodier-/Anzeige-Pipeline 210 bei der HDR-Videoverarbeitung eine aggressivere Rausch-/Artefaktreduzierung 212 durchgeführt werden. Außerdem kann bei einem helleren Bild und bei Bewegung mehr Ruckeln in HDR-Video-Frames vorhanden sein, was möglicherweise als Unschärfe wahrgenommen wird, weil dies für das menschliche Auge nur schwer nachzuverfolgen ist. Somit kann es sein, dass bei einer HDR-Videoverarbeitung in einer Decodier-/Anzeige-Pipeline 210 eine Skalierung und Schärfung 214 und eine Bildfrequenzumwandlung 216 anders durchgeführt werden müssen als bei der SDR-Videoverarbeitung.
-
Herkömmlicherweise werden Videoverarbeitungs-Pipelines über Benutzereingaben an verschiedenen Steuerungen oder Benutzeroberflächenelementen (UI-Elementen) gesteuert und können nicht dynamisch für Messwerte wie Videoinhalt, Anzeigeeigenschaften, Betrachtungsabstand und -winkel von Personen und Umgebungslichtbedingungen adaptiert werden, wenn Video für eine Anzeige gerendert wird. Wie in 2 gezeigt ist, können Ausführungsformen einer Decodier-/Anzeige-Pipeline 210 Messwerte, die aus dem Inhalt von eingegebenem Video 200, dem Anzeigefeld 240 und der Umgebung gewonnen oder erzeugt werden (unter anderem die Betrachterposition und Umgebungsbedingungen wie die Lichtverhältnisse), nutzen, um Videoinhalt für die Anzeige in verschiedenen Betrachtungsumgebungen und -bedingungen dynamisch zu adaptieren. Außerdem können die Messwerte verwendet werden, um eine HDR-Videoverarbeitung in Videoverarbeitungsfunktionen oder -modulen zu optimieren, unter anderem in Funktionen oder Modulen für die Rausch-/Artefaktreduzierung 212, die Skalierung und Schärfung 214, die Bildfrequenzumwandlung 216 und die Anzeigesteuerung 218.
-
Wie in 2 dargestellt ist, können eingegebene Daten eines Videos 200 in einen Block oder ein Modul für Inhaltseigenschaften 220 eingespeist werden. Das Modul 220 kann den Videoinhalt analysieren, um beispielsweise die Breite des Dynamikbereichs, das Ausmaß von Bewegungen von Frame zu Frame oder von Szene zu Szene, Farbumfänge, Glanzlichteffekte, Kontrast, helle und dunkle Regionen usw. zu bestimmen. Außerdem können eine oder mehrere Anzeigeeigenschaften 230 für das Zielanzeigefeld 240 ermittelt werden. Die Anzeigeeigenschaften 230 können unter anderem eine oder mehrere der Folgenden beinhalten: gemessene Antwort, Anzeigeformat, Dynamikbereich der Anzeige, Bittiefe, Hintergrundlichtpegel, Weißpunkt, Streulicht durch schwarze Pixel, Reflektivität, lokales Verstärken oder Abbilden von Kontrasten, aktuelle Anzeigesteuereinstellungen und so weiter.
-
Zumindest auf Basis der Analyse des Videoinhalts und der Anzeigeeigenschaften können bestimmte Steuerungen bestimmt werden und jeweils in verschiedene von den Videoverarbeitungsmodulen eingehen (z. B. Rausch-/Artefaktreduzierung 212, Skalierung und Schärfung 214, Bildfrequenzumwandlung 216 und Anzeigesteuerung 218), um entsprechend die Verarbeitung des eingegebenen Videos 200 anzupassen, um ein HDR-Anzeigevideo 232 für das Zielanzeigefeld 240 zu erzeugen.
-
Ein wichtiger Faktor, der für die HDR-Videoverarbeitung berücksichtigt werden muss, ist die menschliche Wahrnehmung. Wenn der Betrachtungsabstand/-winkel einer Person bekannt ist, kann der Eindruck für den Betrachter auf verschiedene Weise verbessert werden. So kann eine Vorrichtung einen oder mehrere Sensoren 250 und Software/Hardware (Betrachterpositionsmodul 260) zum Erfassen und Analysieren des Standorts, des Abstands und des Betrachtungswinkels einer Person (eines Betrachters) beinhalten. Diese Informationen können von einem oder mehreren der Module in der Pipeline 210 genutzt werden, um die Anzeige des HDR-Videoinhalts gemäß dem Standort des Betrachters zu adaptieren. Wenn ein Bild geschärft wird, kann das Bild beispielsweise schlecht aussehen, wenn sich der Betrachter sehr nahe am Anzeigefeld 240 befindet. Somit kann die Schärfung verringert werden, wenn erfasst wird, dass sich der Betrachter relativ nahe am Anzeigefeld 240 befindet.
-
Zusätzlich zur Position des Betrachters können auch andere Umgebungsinformationen, unter anderem die Lichtverhältnisse, wichtig sein für die HDR-Videoverarbeitung. Wenn Umgebungsbedingungen bekannt sind, kann der Eindruck für den Betrachter auf verschiedene Weise verbessert werden. So kann eine Vorrichtung einen oder mehrere Sensoren 250 und Software/Hardware (Umgebungsbedingungsmodul 270) zum Erfassen und Analysieren von in der Umgebung herrschenden Lichtverhältnissen beinhalten. Diese Informationen können von einem oder mehreren der Module in der Pipeline 210 genutzt werden, um die Anzeige des HDR-Videoinhalts gemäß den Umgebungsverhältnissen zu adaptieren. Wenn eine Tonabbildung und/oder Skala-Abbildung auf den für die Anzeige bestimmten Videoinhalt angewendet wird, kann die Abbildung auf Basis einer Analyse der aktuellen Lichtverhältnisse dynamisch angepasst werden.
-
Somit werden Ausführungsformen einer Decodier-/Anzeige-Pipeline 210 beschrieben, die Videoinhalte, Anzeige- und Umgebungsmesswerte gewinnen und analysieren können und diese Informationen verwenden können, um die Verarbeitung von Inhalten des eingegebenem HDR-Videos 200 in der Pipeline 210 anzupassen, um ein ausgegebenes Anzeigevideo 232 zu erzeugen, das an aktuelle Bedingungen an einem Zielanzeigefeld 240 angepasst ist. In manchen Ausführungsformen der Decodier-/Anzeige-Pipeline 210 können die Gewinnung und die Analyse der verschiedenen Messwerte und die Anpassung der Videoverarbeitungsmodule in der Pipeline, um die Anzeige an die herrschenden Verhältnisse anzupassen, automatisch, ohne Eingriff durch einen Menschen durchgeführt werden, um dynamisch und automatisch ein verbessertes oder optimales Betrachtungserlebnis zu ermöglichen. Änderungen an den Bedingungen (z. B. Betrachterposition, Umgebungslicht, Videoinhalt, Anzeigeeigenschaften, Anzeigeeinstellungen usw.) können automatisch erfasst und verwendet werden, um das Rendern und Anzeigen von HDR-Videoinhalt in Echtzeit oder Nahe-Echtzeit antwortend anzupassen.
-
Die 3 und 4 stellen Komponenten eines Beispiels für eine Decodier-/Anzeige-Pipeline dar, die eine anzeigeseitige Verarbeitung von Videoinhalt durchführen kann und die Ausführungsformen der anzeigeseitigen, adaptiven Videoverarbeitungsverfahren implementieren kann, die mit Bezug auf die 1 und 2 beschrieben worden sind.
-
3 zeigt ein Beispiel für eine Decodier-/Anzeige-Pipeline, die eine adaptive Videoverarbeitung durchführen kann, gemäß manchen Ausführungsformen. Ein System 300 kann unter anderem ein Anzeigefeld 340, eine Decodier-/Anzeige-Pipeline 310 und einen oder mehrere Sensoren 350 beinhalten. Die Decodier-/Anzeige-Pipeline 310 kann unter anderem eine Komponente oder ein Modul in Form eines Decodierers 312, eine Komponente oder ein Modul in Form einer Video-Pipe 314, eine Komponente oder ein Modul für eine Bildfrequenzumwandlung 316, eine Komponente oder ein Modul in Form einer Anzeige-Pipe 320 und eine Komponente oder ein Modul in Form eines Anzeige-Backend 330 beinhalten. Wie in 2 dargestellt ist, kann die Video-Pipe 314 Funktionen einer Rausch-/Artefaktreduzierung 212 und einer Skalierung/Schärfung 214 durchführen, und ein Modul für eine Bildfrequenzumwandlung 316 kann Bildfrequenzumwandlungsfunktionen durchführen. Die in 2 dargestellte Anzeigesteuerung 218 kann eine Komponente in Form einer Anzeige-Pipe 320 und eine Komponente in Form eines Anzeige-Backend 330 beinhalten. 4 zeigt ein Beispiel für eine Anzeige-Pipe und ein Anzeige-Backend.
-
Wie in 3 dargestellt ist, kann ein codierter HDR-Video-Stream (z. B. ein codierter H.264/AVC- oder H.265/HEVC-Video-Stream) an einer Komponente empfangen werden, die einen Decodierer 312 einer Decodier-/Anzeige-Pipeline 310 darstellt. Der Decodierer 312 kann das eingegebene Video decodieren/dekomprimieren, um einen HDR-Videoinhalt zu erzeugen, der in eine Video-Pipe 314 eingespeist wird. Die Video-Pipe 314 kann Videoverarbeitungsaufgaben an dem Videoinhalt durchführen, die unter anderem eine Rausch-/Artefaktreduzierung, Skalierung, Schärfung und Farbverarbeitung beinhalten. In manchen Ausführungsformen kann eine Bildfrequenzumwandlungskomponente 316 durch Erzeugen eines oder mehrerer Video-Zwischenframes zwischen vorhandenen Frames das von der Video-Pipe 314 ausgegebene Video in eine höhere Bildfrequenz umwandeln. Die Umwandlung in eine höhere Bildfrequenz kann beispielsweise dabei helfen, ein Ruckeln zu kompensieren, das in HDR-Video auftreten kann. Die Ausgabe der Bildfrequenzumwandlungskomponente 316 kann in eine Anzeige-Pipe 320 eingespeist werden, die Videoverarbeitungsaufgaben durchführen kann, die unter anderem eine Skalierung, Farbraumumwandlung(en), Farbskala-Abbildung und Tonabbildungg beinhaltet. Dann kann ein Anzeige-Backend 330 zusätzliche Videoverarbeitungsaufgaben durchführen, die unter anderem Anpassungen von Farbe (Chroma) und Farbdynamik (Luma), Anpassungen der Hintergrundbeleuchtung, eine Gammakorrektur, eine Weißpunktkorrektur, eine Schwarzpunktkorrektur und ein räumlich-zeitliches Dithering bzw. eine Fehlerdiffusion beinhalten, um ein Anzeigevideo 332 zu erzeugen, das an ein Zielanzeigefeld 340 ausgegeben wird. Wie in 3 dargestellt ist, kann ein dekomprimierter Videoinhalt durch ein Modul zur Videoinhaltsanalyse 370 verarbeitet werden, um Videoinhaltsinformationen 372 zu erzeugen. Außerdem können Anzeigeinformationen 342 für das Zielanzeigefeld 340 ermittelt werden. Außerdem können Umgebungsinformationen 352, unter anderem Messwerte in Bezug auf einen Betrachter (z. B. dessen Standort) und Messwerte in Bezug auf Umgebungsverhältnisse (z. B. Messwerte in Bezug auf die Lichtverhältnisse) erhalten werden, beispielsweise über einen oder mehrere Sensoren 350, die an oder nahe am Anzeigefeld 340 angeordnet sind. Die Videoinhaltsinformationen 372, die Anzeigeinformationen 342 und/oder die Umgebungsinformationen 352 können in eine oder mehrere Komponenten oder in eines oder mehrere Module in der Decodier-/Anzeige-Pipeline 310 eingegeben werden und verwendet werden, um eine oder mehrere von den Videoverarbeitungsfunktionen, die von dem/den Modul(en) durchgeführt werden, gemäß den Informationen dynamisch anzupassen. Somit können aktuelle Bedingungen (z. B. Betrachterposition, Umgebungslicht, Videoinhalt, Anzeigeeigenschaften, Anzeigeeinstellungen usw.) erfasst, analysiert und verwendet werden, um das Rendern und Anzeigen von HDR-Videoinhalt in Echtzeit oder Nahe-Echtzeit dynamisch für ein Zielanzeigefeld 340 zu adaptieren. Auch wenn dies in 3 nicht dargestellt ist, kann die Decodier-/Anzeige-Pipeline 310 in manchen Ausführungsformen eine Compositing-Komponente beinhalten, die andere digitale Informationen wie Text mit gestreamtem Videoinhalt zusammenführt. In manchen Ausführungsformen kann die Decodier-/Anzeige-Pipeline 310 das eingegebene Video für ein Compositing in einen linearen Farbraum (z. B. einen linearen RGB- oder YCC-Farbraum) überführen. Die Ausgabe der Compositing-Komponente kann dann für die Anzeige und die Umgebungsverhältnisse adaptiert werden, wie hierin beschrieben.
-
4 zeigt ein Beispiel für eine Anzeige-Pipe 420 und ein Anzeige-Backend 430, die eine anzeigeseitige, adaptive Videoverarbeitung durchführen können, gemäß manchen Ausführungsformen. Die Ausgabe einer Video-Pipe kann, wie in 3 dargestellt, in eine Anzeige-Pipe 420 eingespeist werden, die eine vertikale und horizontale Skalierung 422 durchführen kann, um die Video-Frames in die Auflösung des angesteuerten Anzeigefelds umzuwandeln. Dann kann eine Farbraumumwandlung 424 durchgeführt werden, um den skalierten Videoinhalt vom Farbraum des eingegebenen Videoinhalts (z. B. einem RGB-, YCC- oder XYZ-Farbraum) in einen anderen Farbraum (z. B. einen YCC-Farbraum) umzuwandeln. Dann kann eine Farbskala-Abbildung 426 an dem Videoinhalt durchgeführt werden, um die Farbkomponente (Chroma) des Videoinhalts an die Farbskala des Zielanzeigefelds anzupassen. Dann kann eine andere Farbraumumwandlung 424 durchgeführt werden, um den Videoinhalt in den Farbraum des Anzeige-Backend 430 (z. B. einen RGB-Farbraum) umzuwandeln. Der von der Anzeige-Pipe 420 verarbeitete Videoinhalt wird dann an einem Anzeige-Backend 430 bereitgestellt.
-
Das Anzeige-Backend 430 kann zusätzliche, anzeigefeldspezifische Videoverarbeitungsaufgaben an dem Videoinhalt durchführen. In manchen Ausführungsformen eines Anzeige-Backend 430 kann eine Komponente für eine umgebungsadaptive Pixelanpassung 431 Pixelwerte im Videoinhalt als Reaktion auf Umgebungsbedingungen anpassen, die unter anderem einen oder mehrere Messwerte in Bezug auf die Lichtverhältnisse beinhalten. In manchen Ausführungsformen kann eine umgebungsadaptive Pixelanpassung 431 die Anpassung der Chroma-(Farb-) und Luma-(Luminanz-)Komponenten des Videoinhalts separat anpassen, beispielsweise in einem YCC-Farbraum. In manchen Ausführungsformen können Skala-Abbildungs- und Tonabbildungstechniken verwendet werden, um die Pixelwerte gemäß den Umgebungsverhältnissen anzupassen. Zum Beispiel können Kurven oder Übertragungsfunktionen, die für eine Skala- oder Tonabbildungstechnik verwendet werden, gemäß den Umgebungsverhältnissen modifiziert werden.
-
In manchen Ausführungsformen eines Anzeige-Backend 430 kann eine Komponente für eine dynamische Anpassung einer Hintergrundbeleuchtung 432 Hintergrundlichtstärken für das Zielanzeigefeld gemäß dem Inhalt eines Video-Frames anpassen. In manchen Ausführungsformen kann die Hintergrundlichtstärke als Alternative zu einer globalen Anpassung der Hintergrundbeleuchtung dynamisch an verschiedene Regionen des Video-Frames entsprechend dem Inhalt der Regionen angepasst werden. Zum Beispiel kann eine Hintergrundlichtstärke für eine helle Region eines Video-Frame höher sein als für eine im Vergleich dazu dunklere Region des Video-Frames.
-
In manchen Ausführungsformen eines Anzeige-Backend 430 kann eine Gammakorrektur 433 des Feldes durchgeführt werden, um die Helligkeit des Videoinhalts für eine angemessene Anzeige auf dem Zielanzeigefeld anzupassen. Dann kann eine Weißpunktkorrektur 434 durchgeführt werden, um den Weißpunkt des Videoinhalts in den Weißpunkt des Zielanzeigefelds zu korrigieren. In manchen Ausführungsformen eines Anzeige-Backend 430 kann dann ein Dithering in Bezug auf einen Raum (innerhalb eines Frame) und/oder eine Zeit (über zwei oder mehr Frames hinweg) an den Videoinhalt angelegt werden, um Artefakte (z. B. Banding-Muster) in dem angezeigten Videoinhalt zu reduzieren oder zu eliminieren.
-
Wie in 4 dargestellt ist, können ein oder mehrere Datengewinnungs- und Analysemodule 450 Videoinhalte, Anzeigeeigenschaften und Umgebungsbedingungen (z. B. Lichtverhältnisse) erfassen und analysieren, um Videoinhaltsinformationen 472, Anzeigeinformationen 442 und/oder Umgebungsinformationen 452 zu erzeugen, die in eine oder mehrere der Komponenten oder Module in der Anzeige-Pipe 420 und/oder im Anzeige-Backend 430 eingegeben werden und verwendet werden können, um eine oder mehrere von den Videoverarbeitungsfunktionen, die von dem/den Modul(en) durchgeführt werden, gemäß den Informationen dynamisch anzupassen.
-
Umgebungsadaptives Rendering unter Verwendung eines Farbwahrnehmungsmanagements
-
Das visuelle System des Menschen weist einen großen Lux-Bereich auf. Jedoch ist der menschliche Gesichtssinn immer nur für einen kleinen Teil dieses Bereichs adaptiert. Mindestens manche Ausführungsformen der hierin beschriebenen adaptiven Videoverarbeitungsverfahren und -einrichtungen können herrschende Umgebungsbedingungen, die unter anderem die Lichtverhältnisse beinhalten, erfassen und analysieren, um einen aktuellen Bereich des menschlichen Sehens gemäß den aktuellen Bedingungen zu bestimmen, und können das Rendern und Anzeigen von Videoinhalt für ein Zielanzeigefeld gemäß den aktuellen Bedingungen in diesen Bereich adaptieren. Der Prozess kann als umgebungsadaptives Rendering bezeichnet werden. In manchen Ausführungsformen kann das umgebungsadaptive Rendering auf der Anzeigeseite einer Pipeline für eine adaptive Videoverarbeitung durchgeführt werden. Zum Beispiel kann in manchen Ausführungsformen das umgebungsadaptive Rendern durch eine Decodier-/Anzeige-Pipeline durchgeführt werden wie in den 1 bis 5 dargestellt.
-
Die 6A und 6B zeigen den menschlichen Wahrnehmungsbereich in Bezug auf ein Beispiel für ein Anzeigefeld. 6A zeigt einen Wahrnehmungsbereich für eine Anzeige in einer dämmerigen Umgebung. 6B zeigt einen Wahrnehmungsbereich für eine Anzeige in einer helleren Umgebung. Wie von der Kurve in 6A dargestellt ist, ist die menschliche Wahrnehmung nichtlinear. Jedoch weist der menschliche Gesichtssinn einen großen Luxbereich auf, und zwar von Sternenlicht (10–4 Lux) bis zu direktem Sonnenlicht (104 Lux). Jedoch ist der menschliche Gesichtssinn immer nur für einen kleinen Teil dieses Bereichs adaptiert, und adaptiert im Allgemeinen für einen hellsten Reiz oder ein hellstes Objekt. Auf jeder Adaptionsstufe sind jeweils nur etwa 256 unterschiedliche Intensitätsstufen vorhanden, die das visuelle System des Menschen unterscheiden kann. 6A zeigt eine ziemlich helle Anzeige in einer ziemlich dämmerigen Umgebung; die Anzeige imitiert das menschliche Sehen ziemlich gut. Die vertikale Achse stellt 256 Wahrnehmungsstufen (Intensitäten) dar. Die Sockelregion ist eine Region, die nur schwer angemessen gerendert werden kann. Die Sockelregion beinhaltet Graustufen, die mit der Anzeige nicht erreicht werden können, weil die Anzeige Licht durch schwarze Pixel streut und ebenso, weil Licht vom Anzeigefeld reflektiert wird, und zeigt, wie anders Schwarz auf der Anzeige gegenüber echtem Schwarz visuell wahrgenommen wird.
-
6B zeigt eine Abbildung der menschlichen Wahrnehmung in einer helleren Umgebung, in der die Anzeige nur einen Teil der menschlichen Wahrnehmung anregen kann. Der Teil der Kurve, der als Anzeigebereich angegeben ist, erregt nicht einmal die Hälfte des menschlichen Sichtbereichs. Die wahrgenommene Antwort der Anzeige ist anders als ihre gemessene Antwort. Somit besteht eine Grenze in Bezug auf den Dynamikbereich, der auf der Anzeige ausgedrückt werden kann.
-
Wie bereits angegeben, sind auf jeder Adaptionsstufe jeweils nur etwa 256 unterschiedliche Intensitätsstufen vorhanden, die das visuelle System des Menschen unterscheiden kann. Ausführungsformen von umgebungsadaptiven Rendering-Verfahren können herrschende Umgebungsbedingungen, die unter anderem die Lichtverhältnisse beinhalten, erfassen und analysieren, um einen aktuellen Bereich des menschlichen Sehens gemäß den aktuellen Bedingungen zu bestimmen, und können das Rendern und Anzeigen von Videoinhalt für ein angesteuertes Anzeigefeld gemäß den aktuellen Bedingungen in diesen Bereich unter Verwendung eines Farbwahrnehmungsmanagementsystems, wie hierin beschrieben, adaptieren.
-
Zumindest in manchen Ausführungsformen kann ein umgebungsadaptives Rendering gemäß einem Farberscheinungsmodell und einem Farbmanagementsystem durchgeführt werden. Ein Farbmanagementsystem kann Umwandlungen zwischen den Farbdarstellungen verschiedener Vorrichtungen, die unter anderem Kameravorrichtungen und Anzeigevorrichtungen beinhalten, gemäß einem Farberscheinungsmodell steuern. Breit definiert ist ein Farberscheinungsmodell ein mathematisches Modell, das einen Weg beschreibt, wie Farben dargestellt werden können, wofür im Allgemeinen drei oder vier Werte oder Farbkomponenten verwendet werden. Ein Farberscheinungsmodell kann Dimensionen einer Farberscheinung (z. B. Helligkeit (Luminanz), Helligkeit, Farbigkeit, Chroma, Sättigung und Farbton) definieren. Ein Farberscheinungsmodell kann auch eine oder mehrere Transformationen oder Transformationsfunktionen definieren, beispielsweise eine chromatische Adaptionsfunktion, die auf die Farbkomponenten angewendet werden können. Eine chromatische Adaption ist allgemein definiert als dynamischer Mechanismus des visuellen Systems des Menschen, das Weißpunktänderungen kompensiert, wenn ein Objekt unter verschiedenen Lichtverhältnissen betrachtet wird. In einem Farberscheinungsmodell kann eine chromatische Adaptionstransformation verwendet werden, um die chromatische Adaption des visuellen Systems des Menschen zu modellieren. Ein Beispiel für ein Farberscheinungsmodell, das in Ausführungsformen verwendet werden kann, ist CIECAM02, das vom technischen Komitee 8-01 der internationalen Beleuchtungskommission (CIE) veröffentlicht worden ist (Farberscheinungsmodellierung für Farbmanagementsysteme).
-
Herkömmliche Farbmanagementsysteme können das Ziel einer Quelle (z. B. Video) auf eine gemessene Anzeigeantwort abbilden oder abstimmen, beispielsweise unter Verwendung von Abbildungsverfahren in Bezug auf Umfang (Farbe oder Chroma) und Gamma (Farbdynamik oder Luminanz):
Quelle -> gemessene Anzeige
Wie oben angegeben, kann sich jedoch die Antwort einer Anzeige, die von einem menschlichen Betrachter wahrgenommen wird, von der gemessenen Antwort der Anzeige unterscheiden. Somit können Ausführungsformen von umgebungsadaptiven Rendering-Verfahren in einem adaptiven Videoverarbeitungssystem einen zusätzlichen Abstimmungsschritt zu dem Abbildungsverfahren hinzufügen:
Quelle -> gemessene Anzeige -> adaptierte Sicht
wobei die adaptierte Sicht ein Wahrnehmungsbereich des Menschen unter aktuellen Umgebungsbedingungen (z. B. Lichtstärken) ist, der beispielsweise durch adaptive Videoverarbeitungsverfahren und -einrichtungen bestimmt wird, die hierin beschrieben sind, und wobei die Abbildungen (die von den Pfeilen angegeben werden) Transformationen (z. B. chromatische Adaptionstransformationen) des Farberscheinungsmodells beinhalten können. Ein modifiziertes Farbmanagement, das diesen zusätzlichen Schritt in dem Abbildungsverfahren beinhaltet, kann als Farbwahrnehmungsmanagementsystem bezeichnet werden. Ein Farberscheinungsmodell eines Farbwahrnehmungsmanagementsystems kann als Farbwahrnehmungsmodell oder Wahrnehmungsmodell bezeichnet werden.
-
7 stellt gemäß manchen Ausführungsformen grafisch ein Farbwahrnehmungsmanagement in einem umgebungsadaptiven Rendering-System 700 auf einer hohen Stufe dar. Wie beim herkömmlichen Farbmanagement kann ein Quellvideoinhalt 720A gemäß Anzeigeinformationen 730 dem gemessenen Antwortbereich einer Anzeige zugeordnet werden 702, um einen Videoinhalt 720B zu erzeugen. Jedoch wird eine zusätzliche Abbildung 704 angewendet, um die Antwort der Anzeige in einen bestimmten adaptierten Sichtbereich des Menschen einzupassen, wodurch ein Ausgabevideo 72oC erzeugt wird, das gemäß den Umgebungsinformationen 740 und den Anzeigeinformationen 730 für aktuelle Sichtbedingungen adaptiert ist. In manchen Ausführungsformen kann die zusätzliche Abbildung 704 eine Konvolution des Kehrwerts der Differenz zwischen einer idealen menschlichen Sicht in einer bestimmten Umgebung (z. B. der Kurve in 7B) und dem Abschnitt davon, der vom Anzeigefeld tatsächlich dargestellt wird (z. B. dem Anzeigebereich in 7B), gemäß der gemessenen Antwort des Anzeigefelds beinhalten.
-
In manchen Ausführungsformen kann das umgebungsadaptive Rendering-System 700 auf der Anzeigeseite eines Video-Wiedergabesystems implementiert sein. Zum Beispiel kann in manchen Ausführungsformen das umgebungsadaptive Rendering durch eine oder mehrere Komponenten einer Decodier-/Anzeige-Pipeline eines Video-Wiedergabesystems durchgeführt werden wie in den 1 bis 5 dargestellt. Informationen, die erhalten und in ein Farbwahrnehmungsmodell eines Farbwahrnehmungsmanagementsystems eingespeist werden, welches in einem umgebungsadaptiven Rendering-System 700 implementiert ist, können unter anderem Anzeigeinformationen 730, beispielsweise verschiedene Anzeigeeigenschaften und -einstellungen, und Umgebungsinformationen 740, unter anderem Betrachter- und Beleuchtungsinformationen, beinhalten. Manche dieser Informationen können statisch sein (z. B. Anzeigeeigenschaften, wie Bittiefe und Dimensionen), während andere Informationen dynamisch sein können (z. B. aktuelle Anzeigeeinstellungen, Hintergrundlichtstärke, Umgebungslicht, Lichtreflexion, Betrachterposition, Standort des Betrachters usw.). Diese Informationen können gewonnen und verwendet werden, um Videoinhalt 720 zur Anzeige gemäß aktuellen Umgebungsbedingungen, wie sie auf ein Farbwahrnehmungsmodell angewendet werden, adaptiv zu rendern. In manchen Ausführungsformen kann eine Vorrichtung, die das Anzeigefeld beinhaltet, für die der Videoinhalt 720 durch das umgebungsadaptive Rendering-System 700 adaptiert wird, einen oder mehrere Sensoren, beispielsweise Umgebungslichtsensoren, Kameras, Bewegungsdetektoren usw., beinhalten, die verwendet werden können, um zumindest manche der Informationen 730 und 740, die im Farbwahrnehmungsmodell verwendet werden, zu gewinnen.
-
Im Folgenden werden verschiedene Messungen, Messwerte oder Eigenschaften beschrieben, die gemäß manchen Ausführungsformen erhalten und in ein Farbwahrnehmungsmodell in einem umgebungsadaptiven Rendering-System 700 eingegeben werden können. Jedoch soll diese Liste nicht beschränkend sein:
- • Physische Abmessungen und andere statische Eigenschaften der Anzeige.
- • Messungen. Diese Messwerte können für einen Typ von Anzeigefeld vorab gemessen werden oder für ein einzelnes Anzeigefeld gemessen werden:
- – Die gemessene Antwort des Anzeigefelds – eine Abbildung zwischen den Eingangspegeln aus dem Quellvideoinhalt und den Lichtausgabepegeln des Anzeigefelds für jeden Farbkanal (z. B. RGB-Kanal).
- – Eigener Weißmesspunkt des Anzeigefelds.
- – Gemessene Lichtstreuung aus dem Anzeigefeld (trägt zu dem Sockel bei, der in 6A dargestellt ist).
- – Gemessene Lichtreflexion vom Anzeigefeld (trägt zu dem Sockel bei, der in 6A dargestellt ist).
- – Gemessene maximale (und minimale) Hintergrundlichtstärke für die Anzeige.
- • Umgebungsmesswerte, die beispielsweise von einem oder mehreren Sensoren erfasst oder anhand von Daten bestimmt werden, die von dem bzw. den Sensoren erfasst wurden. Eine Vorrichtung, die ein Anzeigefeld beinhaltet, kann auch einen oder mehrere Sensoren beinhalten. Die Sensoren können unter anderem Umgebungslichtsensoren, Farbumgebungslichtsensoren und/oder Kameras beinhalten. Die Lichtsensoren und Kameras können einen oder mehrere rückwärts (auf den Betrachter oder Anwender) gerichtete Sensoren und/oder einen oder mehrere vorwärts (weg vom Betrachter oder Anwender) gerichtete Sensoren beinhalten:
- – Licht, das aktuell auf das Anzeigefeld fällt. Dies kann für jeden Farbkanal bestimmt werden.
- – Lichtmenge, die von der Anzeige reflektiert wird. Dies kann für jeden Farbkanal bestimmt werden.
- – Messwerte (z. B. Helligkeit, Farbe usw.) des Sichtfelds oder des Hintergrunds, auf das bzw. auf den der Betrachter/Anwender blickt.
- – Der Weißpunkt, an den der Betrachter gewöhnt ist.
- – Position des bzw. der Betrachter in Bezug auf das Anzeigefeld (z. B. Abstand, Betrachtungswinkel usw.). In manchen Ausführungsformen kann eine auf den Betrachter gerichtete Kamera der Vorrichtung, die das Anzeigefeld beinhaltet, ein Bild des Betrachters aufnehmen, und das Bild kann analysiert werden, um einen Abstand vom Betrachter zur Vorrichtung zu bestimmen. Zum Beispiel kann das Bild des Gesichts des Betrachters analysiert werden, um den Abstand auf Basis des Augenabstands des Betrachters in dem aufgenommenen Bild zu bestimmen, da menschliche Augen meistens einen ungefähr gleichen Abstand haben. Der bestimmte Abstand zum Betrachter kann beispielsweise verwendet werden, um das Sichtfeld zu bestimmen, das vom Anzeigefeld geschnitten wird.
- • Dynamisch bestimmte Anzeigemesswerte:
- – Aktuelle Hintergrundlichtstärke des Anzeigefelds.
- – Aktuelle durchschnittliche Pixelhelligkeit (Pixel, die tatsächlich beleuchtet sind). Dieser Messwert kann beispielsweise verwendet werden, um die Helligkeit des aktuell angezeigten Videoinhalts zu bestimmen. Dies kann für jeden Farbkanal bestimmt werden.
-
Auch wenn dies in 7 nicht dargestellt ist, können in manchen Ausführungsformen zusätzlich zu Anzeigeinformationen 730 und Umgebungsinformationen 740 auch andere Informationen vom umgebungsadaptiven Rendering-System erfasst und verwendet werden, um das Video für die Umgebung zu adaptieren. Zum Beispiel kann das umgebungsadaptive Rendering-System 700 in manchen Ausführungsformen das angezeigte Video auf die Stimmung oder die Betrachtungsabsichten eines Benutzers ausrichten, was als Betrachtungsmodus bezeichnet werden kann. Zum Beispiel können in manchen Ausführungsformen Beleuchtung, Standort, Tageszeit, Biometriewerte und/oder andere Daten erfasst und verwendet werden, um automatisch einen Betrachtungsmodus für den Videoinhalt 720 zu bestimmen. Der bestimmte Betrachtungsmodus kann dann in das Farbwahrnehmungsmodell eingegeben werden, um den Quellvideoinhalt 720 an den Betrachtungsmodus anzupassen. Zum Beispiel können Betrachtungsmodi von einem ruhigen oder entspannten Betrachtungsmodus bis zu einem Kino- oder dynamischen Betrachtungsmodus reichen. In manchen Ausführungsformen kann stattdessen oder zusätzlich dazu eine Benutzereingabe (z. B. über eine Anzeigefeldsteuerung, Fernsteuerung, Smartphone-App usw.) für die Bestimmung oder Anpassung des Betrachtungsmodus für den Videoinhalt 720 verwendet werden. Zum Beispiel kann ein Betrachter in manchen Ausführungsformen einen Schieberegler oder Schalter für einen „Stimmung”- oder „Absicht”-Parameter verstellen, beispielsweise um auf einer diskreten oder kontinuierlichen Skala zwischen einem ganz entspannten „ruhigen” Modus und einem dynamischen „Kino”-Modus, der die höchste Helligkeit aufweist, einen von zwei oder mehr Betrachtungsmodi anzupassen oder auszuwählen.
-
Verschiedene Ausführungsformen eines umgebungsadaptiven Rendering-Systems 700 können verschiedene Bildverarbeitungsalgorithmen und -techniken verwenden, unter anderem Farbskala-Abbildungs- und globale oder lokale Tonabbildungstechniken, um die Rendering-Anpassungen an den Videoinhalt 720 anzulegen. In manchen Ausführungsformen kann zumindest ein Teil der Funktionen des umgebungsadaptiven Renderings 700 unter Verwendung eines oder mehrerer Grafikprozessoren (GPUs) implementiert werden. Zum Beispiel können manche Ausführungsformen einen benutzerdefinierten Shader implementieren, der Anpassungen, die gemäß dem Farbwahrnehmungsmodell bestimmt werden, an den Videoinhalt 720 anlegen kann. In manchen Ausführungsformen kann zumindest ein Teil der Funktionen des umgebungsadaptiven Renderings 700 in einer oder durch andere Hardware implementiert werden, die unter anderem benutzerdefinierte Hardware beinhaltet. Zum Beispiel können in manchen Ausführungsformen eine oder mehrere Farb-Pipes eines Bildsignalprozessors (ISP) verwendet werden, um die Rendering-Anpassungen an den Videoinhalt 720 anzulegen.
-
In manchen Ausführungsformen können eine oder mehrere Farbabbildungstechniken (CLUTs) verwendet werden, um zumindest einen Teil der adaptiven Anpassungen an den Videoinhalt 720 anzulegen. Zum Beispiel können in manchen Ausführungsformen drei 1D (eindimensionale) LUTs in Hardware gewarpt werden, um adaptive Anpassungen an den Videoinhalt 720 anzulegen.
-
Ausführungsformen eines umgebungsadaptiven Rendering-Systems 700 können HDR-Videoinhalt auf Basis der Eigenschaften und Fähigkeiten des Anzeigefelds automatisch für ein Zielanzeigefeld adaptieren.
-
Ausführungsformen eines umgebungsadaptiven Rendering-Systems 700 können Videoinhalt für die Anzeige in verschiedenen Betrachtungsumgebungen dynamisch adaptieren, was eine verbesserte Betrachtung in verschiedenen Umgebungen und/oder unter verschiedenen Umgebungsbedingungen ermöglichen kann. Somit kann das umgebungsadaptive Rendering-System 700 für Anwender mobiler Vorrichtungen ein verbessertes Betrachtungserlebnis ermöglichen, indem es angezeigten Inhalt entsprechend Änderungen in der Umgebung, in der die Betrachter den Inhalt betrachten, automatisch adaptiert.
-
Durch die dynamische Adaptierung eines Anzeigefelds an verschiedene Umgebungen und Umgebungsbedingungen können Ausführungsformen eines umgebungsadaptiven Rendering-Systems 700 in manchen Betrachtungsumgebungen weniger Hintergrundlicht verwenden, wodurch beispielsweise an mobilen Vorrichtungen Leistung eingespart werden kann. In manchen Ausführungsformen kann das Hintergrundlicht in das Farbwahrnehmungsmodell abgebildet werden, wodurch das umgebungsadaptive Rendering-System 700 beispielsweise in die Lage versetzt wird, die Anzeige papierähnlicher wirken zu lassen, wenn sie diese für verschiedene Umgebungen und Umgebungsbedingungen adaptiert. Anders ausgedrückt kann das umgebungsadaptive Rendering-System 700 in der Lage sein, die Anzeige an den Luminanzpegel von Papier in der gleichen Umgebung anzupassen, und auch, den Weißpunkt der Umgebung des Betrachters nachzuverfolgen und sich diesem anzupassen.
-
In manchen Ausführungsformen können Informationen, die vom umgebungsadaptiven Rendering-System 700 gewonnen oder erzeugt werden, zur Vorsteuerung in eine (vorgelagerte) Videoverarbeitungs-Pipeline eingespeist werden und verwendet werden, um die Videoverarbeitung zu beeinflussen, bevor der Videoinhalt vom umgebungsadaptiven Rendering-System 700 verarbeitet wird. Zum Beispiel kann ein umgebungsadaptives Rendering, wie in den 1 bis 3 dargestellt, in oder von einer Anzeige-Pipe- und/oder Anzeige-Backend-Komponente einer Anzeige-Pipeline implementiert werden. Anzeige- und/oder Umgebungsinformationen können in eine oder mehrere vorgelagerte Komponenten oder Stufen der Anzeige-Pipeline (z. B. in einen Decodierer, eine Video-Pipe und/oder eine Bildfrequenzumwandlungsstufe oder in eine Compositing-Komponente, die andere digitale Informationen, beispielsweise Text mit gestreamtem Videoinhalt zusammenführt) eingespeist und verwendet werden, um die Verarbeitung des Videoinhalts an diesen vorgelagerten Komponenten der Anzeige-Pipeline zu beeinflussen.
-
In manchen Ausführungsformen können Anzeige- und/oder Umgebungsinformationen, die vom anzeigeseitigen, umgebungsadaptiven Rendering-System 700 gewonnen werden, wie in 1 dargestellt, in eine nachgelagerte Server-/Codier-Pipeline eingespeist werden und verwendet werden, um die serverseitige Verarbeitung von Videoinhalt zu beeinflussen, bevor der Inhalt zu einer Vorrichtung gestreamt wird, welche das angesteuerte Anzeigefeld beinhaltet. Zum Beispiel können die Anzeige- und/oder Umgebungsinformationen in manchen Ausführungsformen anzeigen, dass die Fähigkeiten des Zielanzeigefelds eine vollständige HDR-Bildgebung unter den gegebenen Umgebungsverhältnissen nicht unterstützen. Als Reaktion darauf kann die Server-Codier-Pipeline den eingegebenen HDR-Inhalt so verarbeiten und codieren, dass er einen kleineren Dynamikbereich aufweist, der von dem Zielanzeigefeld unter den aktuellen Bedingungen angezeigt werden kann. Dies kann beispielsweise Übertragungsbandbreite einsparen, wenn ein angesteuertes Anzeigefeld den vollen Dynamikbereich, der im Quellvideoinhalt verfügbar ist, nicht unterstützen kann.
-
Anzeigeseitige Umwandlung von SDR in HDR
-
Wie ebenfalls in 1 dargestellt ist, können in manchen Ausführungsformen eine oder mehrere Eigenschaften des eingegebenen codierten Video-Streams 112 von der Decodier-/Anzeige-Pipeline 130 für die Anpassung der einen oder der mehreren Videoverarbeitungsfunktionen verwendet werden, um das Video für ein Zielanzeigefeld 140 zu adaptieren. Zum Beispiel kann das Zielanzeigefeld 140 in manchen Ausführungsformen eine HDR-Bildgebung unterstützen. Jedoch kann die Decodier-/Anzeige-Pipeline 130 codierte Videodaten mit einem Standarddynamikbereich (SDR) für die Anzeige auf dem Anzeigefeld 140 empfangen. Üblicherweise wird die SDR-zu-HDR-Verarbeitung durch lineare Skalierung des SDR-Videoinhalts auf die HDR-Zielanzeige durchgeführt. Jedoch weist eine HDR-Bildgebung eine viel höhere Helligkeit auf als eine SDR-Bildgebung, und eine herkömmliche lineare Skalierung von SDR-Videoinhalt ergibt keinen Videoinhalt, der optimal adaptiert ist für den höheren dynamischen Bereich; darüber hinaus kann die lineare Skalierung zu sichtbaren Artefakten führen. Zum Beispiel können Glanzlichteffekte gedämpft werden oder verloren gehen, dunkle Bereiche können verrauscht und Farb- oder Kontrastbanden können sichtbar werden.
-
Um die Qualität von HDR-Videoinhalten, die aus eingegebenem SDR-Videoinhalt erzeugt werden, zu verbessern, kann die Decodier-/Anzeige-Pipeline 130 in manchen Ausführungsformen eine oder mehrere von den Videoverarbeitungsfunktionen anpassen und/oder eine oder mehrere zusätzliche Verarbeitungsfunktionen durchführen, um die decodierte SDR-Videoeingabe für eine verbesserte Anzeige in dem höheren Dynamikbereich des HDR-Zielfeldes 140 in ein HDR-Bildgebungsformat umzuwandeln. Allgemein beschrieben können diese Anpassungen nichtlineare Abbildungen des SDR-Videoinhalts in den HDR-Raum beinhalten, um die Qualität (z. B. die Helligkeit) des Inhalts zu verbessern, wenn er auf dem HDR-Zielanzeigefeld angezeigt wird.
-
9 ist ein High-Level-Ablaufschema eines Verfahrens zur Durchführung einer SDR-zu-HDR-Umwandlung zur Erzeugung von Anzeige-Videoinhalt, der für eine HDR-Anzeige adaptiert ist, gemäß manchen Ausführungsformen. Wie bei 900 von 9 dargestellt ist, kann eine Decodier-/Anzeige-Pipeline einen codierten SDR-Video-Stream für eine angesteuerte HDR-Anzeige empfangen und decodieren. Wie bei 902 von 9 angegeben ist, kann die Decodier-/Anzeige-Pipeline eine oder mehrere nichtlineare SDR-zu-HDR-Umwandlungstechniken durchführen, um den eingegebenen SDR-Videoinhalt auf HDR-Videoinhalt zu erweitern, der für das HDR-fähige Anzeigefeld adaptiert ist. Wie bei 904 von 9 angegeben ist, kann der HDR-Videoinhalt auf dem HDR-Anzeigefeld angezeigt werden. Die Elemente von 9 werden ausführlicher unter Bezugnahme auf 8 beschrieben.
-
8 zeigt ein Beispiel für eine Decodier-/Anzeige-Pipeline, die eine SDR-zu-HDR-Umwandlung an einem SDR-Eingangsvideo durchführt, zur Erzeugung von Anzeige-Videoinhalt, der für eine HDR-Anzeige adaptiert ist, gemäß manchen Ausführungsformen. In zumindest manchen Ausführungsformen kann eine Decodier-/Anzeige-Pipeline 810 dafür ausgelegt sein, ein eingegebenes HDR-Video zu verarbeiten, um ein HDR-Anzeigevideo 832 für ein Zielanzeigefeld 840 zu erzeugen. Jedoch kann die Decodier-/Anzeige-Pipeline 810 stattdessen ein eingegebenes SDR-Video 800 empfangen.
-
Wie in 8 dargestellt ist, können Ausführungsformen der Decodier-/Anzeige-Pipeline 810 Inhaltseigenschaften 820 nutzen, die aus dem eingegebenen SDR-Videoinhalt 800 und den Anzeigeeigenschaften 830 des Anzeigefelds 840 bestimmt werden, um das eingegebene SDR-Video 800 in HDR-Video 832 umzuwandeln, das für die Anzeige an einem HDR-fähigen Anzeigefeld 840 ausgegeben wird. In manchen Ausführungsformen kann die Decodier-/Anzeige-Pipeline 810 Videoverarbeitungsfunktionen oder -module beinhalten, die unter anderem Funktionen oder Module beinhalten, die einen Decodierer 812, eine Video-Pipe 814, eine Bildfrequenzumwandlung 816 und eine Anzeigesteuerung 818 betreffen. Inhaltseigenschaften 820 und Anzeigeeigenschaften 830 können an einem oder mehreren dieser Module bereitgestellt werden und für die Adaptierung der jeweiligen Funktion(en) für die Umwandlung von eingegebenem SDR-Video 800 in ausgegebenes HDR-Video 832 verwendet werden.
-
Ein codierter Stream des SDR-Videos 800 (z. B. ein codierter H.264/AVC- oder H.265/HEVC-Video-Stream) kann an einem einer Komponente empfangen werden, die einen Decodierer 812 einer Decodier-/Anzeige-Pipeline 810 darstellt. Der Decodierer 312 kann das eingegebene Video decodieren/dekomprimieren, um einen Videoinhalt zu erzeugen, der in eine Video-Pipe 814 eingespeist wird. Die Video-Pipe 814 kann beispielsweise eine Rausch-/Artefaktreduzierung, Skalierung und Schärfung durchführen. In manchen Ausführungsformen kann entweder der Decodierer 812 oder die Video-Pipe 814 das eingegebene SDR-Video 800 in ein HDR-kompatibles Format umwandeln, beispielsweise durch Umwandlung in ein Format mit erweiterter Bittiefe, um eine HDR-Bildgebung zu unterstützen.
-
Eine Bildfrequenzumwandlung 816 kann durch Erzeugen eines oder mehrerer Video-Zwischenframes zwischen vorhandenen Frames das von der Video-Pipe 814 ausgegebene Video in eine höhere Bildfrequenz umwandeln. Die Umwandlung in eine höhere Bildfrequenz kann beispielsweise dabei helfen, ein Ruckeln zu kompensieren, das in HDR-Video auftreten kann. Die Anzeigesteuerung 818 kann eine Anzeige-Pipe beinhalten, die Videoverarbeitungsaufgaben durchführen kann, die unter anderem eine Skalierung, Farbraumumwandlung(en), eine Farbskala-Abbildung und eine Tonabbildung beinhalten, und ein Anzeige-Backend kann zusätzliche Videoverarbeitungsaufgaben durchführen, die unter anderem Anpassungen der Farbe (Chroma) und Farbdynamik (Luma), Hintergrundlichtanpassungen, Gammakorrektur, Weißpunktkorrektur, Schwarzpunktkorrektur und räumlich-zeitliches Dithering beinhalten, um ein HDR-Anzeigevideo 832 zu erzeugen, das an ein HDR-fähiges Zielanzeigefeld 840 ausgegeben wird.
-
In Ausführungsformen können Inhaltseigenschaften 820 und Anzeigeeigenschaften 830 an einem oder mehreren der Module in der Decodier-/Anzeige-Pipeline 810 bereitgestellt werden und für die Adaptierung der jeweiligen Funktion(en) für die Umwandlung von eingegebenem SDR-Video 800 in ausgegebenes HDR-Video 832 verwendet werden. Verschiedene Verbesserungen können von der Decodier-/Anzeige-Pipeline 810 auf Basis der Eigenschaften durchgeführt werden, die das Anzeigen des Videoinhalts verbessern können, wenn dieser von SDR in den vom Anzeigefeld 840 unterstützten höheren Dynamikbereich umgewandelt wird. Im Folgenden werden Beispiele für Verbesserungen beschrieben, die durchgeführt werden können, wenn SDR-Video in HDR-Video umgewandelt wird, und die nicht beschränkend sein sollen. In manchen Ausführungsformen kann ein Inhaltseigenschaftsmodul 820 als Reaktion auf die Erfassung des Inhalts eines SDR-Videos 800 den Videoinhalt analysieren, um nach Bereichen in Video-Frames zu suchen, die Glanzlichteffekte enthalten. So können Inhaltseigenschaften, die erfasst werden, Glanzlichteffekte in den eingegebenen Video-Frames beinhalten. Die Decodier-/Anzeige-Pipeline 810 kann die Größe von zumindest manchen von den Glanzlichteffekten verringern und/oder die Helligkeit von zumindest einigen von den Glanzlichteffekten verringern, damit die Glanzlichteffekte beeindruckender erscheinen, wenn sie angezeigt werden.
-
In manchen Ausführungsformen können dunkle oder Schattenregionen in dem eingegebene SDR-Videoinhalt 800 erkannt und durch die Decodier-/Anzeige-Pipeline 810 für eine verbesserte HDR-Anzeige automatisch anders verarbeitet werden. Zum Beispiel kann die Decodier-/Anzeige-Pipeline 810 eine stärkere Rauschreduzierung an die erkannten dunklen oder Schattenregionen anlegen, um Rauschen in den dunkleren Regionen des Videoinhalts zu reduzieren, wenn er auf dem HDR-Anzeigefeld 840 angezeigt wird.
-
Als weiteres Beispiel kann die Decodier-/Anzeige-Pipeline 810 Tonkurven, die für die Tonabbildung verwendet werden, anpassen, um die Schattenbereiche zu vertiefen. Die Tonkurven können nichtlineare, beispielsweise S-förmige Tonkurven sein, um Rauschen in den dunklen Regionen zu reduzieren und für einen besseren Kontrast zu sorgen als anhand herkömmlicher linearer Skalierung erhalten werden kann. In manchen Ausführungsformen können die Tonkurven auf Basis einer oder mehrerer erfasster Inhaltseigenschaften und/oder Anzeigeeigenschaften dynamisch ausgewählt werden. In manchen Ausführungsformen kann einer oder können mehrere Messwerte in Bezug auf die Umgebungsverhältnisse (z. B. Messwerte der Umgebungslichtverhältnisse) erfasst werden und für die Bestimmung der Tonkurven verwendet werden. In manchen Ausführungsformen kann eine globale Tonkurve für einen Video-Frame oder eine Abfolge von Frames ausgewählt werden. In manchen Ausführungsformen können die Video-Frames anstelle von oder zusätzlich zu einer globalen Tonkurve in mehrere Regionen unterteilt werden, und lokale Tonkurven können für jede Region dynamisch ausgewählt werden.
-
In manchen Ausführungsformen können Farbübergänge, die durch Farb-Clipping bewirkt werden (z. B. während einer Ton- oder Skala-Abbildung auf der Codiererseite) erkannt werden, und die Decodier-/Anzeige-Pipeline 810 kann versuchen, die korrekte(n) Farbe(n) zu rekonstruieren, um die Farbübergänge zu glätten.
-
In manchen Ausführungsformen kann eine Bittiefenerweiterung von SDR auf HDR (z. B. 8-Bit-SDR auf 10-Bit-HDR) durch die Decodier-/Anzeige-Pipeline 810 unter Verwendung von Techniken durchgeführt werden, die versuchen, Bandenartefakte durch Glätten des Bildinhalts zu vermeiden, wenn er in die größere Bittiefe erweitert ist. Zum Beispiel können in manchen Ausführungsformen statt der Durchführung einer linearen Erweiterung in die erweiterte Bittiefe Datenwerte für eingegebene Pixel analysiert werden, um den Gradienten zu bestimmen, und der Gradient kann verwendet werden, um eine nichtlineare Erweiterung in die erweiterte Bittiefe durchzuführen, um ein glatteres Rendering der erweiterten Bits hervorzubringen als unter Verwendung einer linearen Funktion erreicht werden könnte.
-
Serverseitige, adaptive Videoverarbeitung
-
Wie ebenfalls in 1 dargestellt ist, kann in manchen Ausführungsformen eine adaptive Videoverarbeitung für ein Zielanzeigefeld 140 in oder von einer Server-/Codier-Pipeline 110 implementiert werden. Diese Ausführungsformen können als serverseitige, adaptive Videoverarbeitungssysteme bezeichnet werden.
-
Ausführungsformen eines serverseitigen, adaptiven Videoverarbeitungssystems können beispielsweise verwendet werden, um eine Videowiedergabe an einem HDR-fähigen Anzeigefeld mit hohem Dynamikbereich (HDR) und breiter Farbskala (WCG) in Fällen zu unterstützen, in denen die anzeigeseitige Videoverarbeitungs-Pipeline eine HDR/WCG-Bildgebung nicht unterstützt, den vollen Dynamikbereich und die volle Farbskala des Zielanzeigefelds nicht unterstützt oder auf andere Weise beschränkt ist. Zum Beispiel können Ausführungsformen des serverseitigen, adaptiven Videoverarbeitungssystems verwendet werden, um HDR- und WCG-Video-Streaming auf kleine oder mobile Vorrichtungen oder auf ältere Vorrichtungen, die beschränkte, anzeigeseitige Videoverarbeitungsfähigkeiten haben können, zu unterstützen.
-
11 ist ein Ablaufschema eines Videoabspielverfahrens gemäß manchen Ausführungsformen, bei dem eine serverseitige Codier-Pipeline Ausgangsvideodaten erzeugt, die für ein Zielanzeigefeld adaptiert sind. Wie bei 1100 von 11 angegeben ist, kann eine Server-/Codier-Pipeline Videoinhalte für ein Zielanzeigefeld abfragen. Zum Beispiel kann die Server-/Codier-Pipeline eingegebenes Video aus einer Videoquelle wie einer Videokamera an einer Vorrichtung oder einem System empfangen, die bzw. das die Server-/Codier-Pipeline beinhaltet, und kann darauf ausgerichtet sein, den Videoinhalt für die Anzeige auf einem bestimmten Zielanzeigefeld zu codieren und zu streamen. Das Zielanzeigefeld kann sich auf der gleichen Vorrichtung oder dem gleichen System wie die Server-/Codier-Pipeline befinden oder sich alternativ dazu auf einer anderen Vorrichtung oder einem anderen System befinden. Das Zielanzeigefeld kann eine Bildgebung mit großem Dynamikbereich (HDR) und mit breiter Farbskala (WCG) unterstützen. Auch wenn dies nicht dargestellt ist, kann die Server-/Codier-Pipeline eine oder mehrere Eigenschaften der eingegebenen Videoinhalte abfragen oder bestimmen. Zum Beispiel kann der Videoinhalt in manchen Ausführungsformen analysiert werden, um beispielsweise die Breite des Dynamikbereichs des Videoinhalts, das Ausmaß von Bewegungen von Frame zu Frame oder Szene zu Szene, Farbumfänge, Glanzlichteffekte, Kontrast, helle und dunkle Regionen usw. zu bestimmen. Diese Inhaltsinformationen können zusammen mit anderen Informationen für die Verarbeitung des Videoinhalts zur Anzeige auf dem Zielanzeigefeld verwendet werden. Wie bei 1102 von 1 angegeben ist, kann die Server-/Codier-Pipeline Anzeigeinformationen und/oder Umgebungsinformationen für das Zielanzeigefeld abfragen. Die Anzeigeinformationen können Anzeigeeigenschaften angeben, die unter anderem eine oder mehrere der Folgenden beinhalten können: gemessene Antwort, Format, Auflösung, Größe, Dynamikbereich, Bittiefe, Hintergrundlichtpegel, Weißpunkt, aktuelle Anzeigesteuerungseinstellungen usw. Die Umgebungsinformationen können unter anderem verschiedene Messwerte in Bezug auf die Lichtverhältnisse und Messwerte in Bezug auf einen Betrachter beinhalten, beispielsweise die Position von Betrachtern in Bezug auf das Zielanzeigefeld, die Größe des Anzeigefelds und den Abstand zum Anzeigefeld. Die gemessenen Werte für die Lichtverhältnisse können beispielsweise Messwerte des Lichtes, das auf das Anzeigefeld fällt, die Stärke von Lichtreflexionen vom Anzeigefeld und Messwerte (z. B. Helligkeit, Farbe, Weißpunkt usw.) in Bezug auf das Sichtfeld (oder den Hintergrund), auf das/den der Betrachter/Anwender blickt, beinhalten. In manchen Ausführungsformen kann eine Vorrichtung, die das Zielanzeigefeld aufweist, einen oder mehrere nach vorn oder hinten gerichtete Sensoren (z. B. Kameras, Lichtsensoren usw.) beinhalten, die verwendet werden können, um Daten aus dem Umgebungsbereich zu gewinnen. Die gewonnenen Daten können analysiert werden, um den einen oder die mehreren Umgebungsmesswerte zu bestimmen, die dann von der Server-/Codier-Pipeline erhalten oder an dieser bereitgestellt werden.
-
Wie bei 1104 von 11 angegeben ist, kann die Server-/Codier-Pipeline den Videoinhalt gemäß den erhaltenen Informationen auf einen Dynamikbereich für das Zielanzeigefeld abbilden. In manchen Ausführungsformen bildet die Server-/Codier-Pipeline den Videoinhalt auf den Dynamikbereich des Zielanzeigefelds ab, wie von den erhaltenen Informationen angegeben, gemäß einer Tonabbildungstechnik. Die Tonabbildungstechnik kann gemäß den erhaltenen Informationen angepasst werden. Zum Beispiel kann der Dynamikbereich der Quelldaten gemäß den Anzeigeinformationen der Bittiefe des Zielanzeigefelds abgebildet werden. Als weiteres Beispiel können Tonkurven- und/oder Übertragungsfunktionen, die für die Tonabbildungstechnik verwendet werden, auf Basis eines oder mehrerer Messwerte, unter anderem aktuell gemessener Werte der Lichtverhältnisse am Anzeigefeld, die von den Umgebungsinformationen angegeben werden, modifiziert oder angepasst werden. In manchen Ausführungsformen kann eine nichtlineare, globale Tonabbildungskurve für einen Video-Frame oder eine Abfolge von Frames, die in der Server-/Codier-Pipeline verarbeitet werden, zumindest zum Teil auf Basis der Anzeige- und/oder Umgebungsinformationen ausgewählt werden. In manchen Ausführungsformen können die Video-Frames anstelle von oder zusätzlich zu einer globalen Tonkurve in mehrere Regionen unterteilt werden, und lokale Tonkurven können für jede Region mindestens zum Teil auf Basis der Anzeige- und/oder Umgebungsinformationen dynamisch ausgewählt werden.
-
Wie bei 1106 von 11 angegeben ist, kann die Server-/Codier-Pipeline den Videoinhalt gemäß den erhaltenen Informationen auf einer Farbskala für das Zielanzeigefeld abzubilden. In manchen Ausführungsformen bildet die Server-/Codier-Pipeline den Videoinhalt auf einer Farbskala des Zielanzeigefelds ab, wie von den erhaltenen Informationen angegeben, gemäß einer Farbskala-Abbildungstechnik. Die Farbskala-Abbildungstechnik kann gemäß den erhaltenen Informationen angepasst werden. Zum Beispiel kann die Farbskala der Quelldaten gemäß den Anzeigeinformationen auf die Bittiefe des Zielanzeigefelds abgebildet werden. Als weiteres Beispiel können Kurven, Übertragungsfunktionen und/oder Zuordnungstabellen gemäß der bestimmten Farbskala ausgewählt werden, der vom Anzeigefeld unterstützt wird, wie in den Anzeigeinformationen angegeben ist. Als weiteres Beispiel können Kurven, Übertragungsfunktionen und/oder Zuordnungstabellen, die für die Skala-Abbildungstechnik verwendet werden, auf Basis eines oder mehrerer Messwerte, unter anderem aktuell gemessener Werte für die Lichtverhältnisse am Anzeigefeld, die von der Umgebung angegeben werden, modifiziert oder angepasst werden.
-
Wie bei 1108 von 11 angegeben ist, kann die Server-/Codier-Pipeline den Videoinhalt codieren und den codierten Videoinhalt an die Decodier-/Anzeige-Pipeline schicken, die mit dem Zielanzeigefeld assoziiert ist. Die Videodaten können beispielsweise durch die Server-/Codier-Pipeline gemäß einem komprimierten Videoformat wie einem H.264/AVC- oder H.265/HEVC-Format für die Ausgabe an das Zielanzeigefeld codiert werden. Der codierte Videoinhalt kann beispielsweise in einen Speicher geschrieben werden, wo er für eine Decodier-/Anzeige-Pipeline, die mit dem Zielanzeigefeld assoziiert ist, zugänglich ist, an der mit dem Zielanzeigefeld assoziierten Decodier-/Anzeige-Pipeline über eine drahtgebundene oder drahtlose Netzverbindung bereitgestellt oder gestreamt werden oder auf andere Weise an die mit dem Zielanzeigefeld assoziierten Decodier-/Anzeige-Pipeline ausgegeben werden.
-
Wie bei 1110 von 11 angegeben ist, wird der Videoinhalt von der Decodier-/Anzeige-Pipeline decodiert und angezeigt. Da eine anzeigefeldspezifische Tonabbildungund Farbskala-Abbildung auf den Dynamikbereich und Farbskala, der jeweils vom Zielanzeigefeld unterstützt wird, auf der Server-/Codierseite durchgeführt wird, kann es sein, dass die Decodier-/Anzeige-Pipeline gar keine Änderungen oder Modifikationen benötigt, um eine HDR- und/oder WCG-Bildgebung zu unterstützen. Man beachte, dass eine Server-/Codier-Pipeline ein Verfahren wie in 11 dargestellt anwenden kann, um den gleichen Videoinhalt auf zwei oder mehr verschiedenen Zielanzeigefeldern gemäß den jeweiligen Eigenschaften und/oder Umgebungen des Anzeigefelds abzubilden. Zum Beispiel kann die Server-/Codier-Pipeline Videoverarbeitungs- und Codierfunktionen gemäß den anzeigespezifischen Informationen zum Adaptieren von Videoinhalt für Zielanzeigefelder zu adaptieren, die verschiedene Bittiefen, Farbräume, Farbumfänge und/oder Dynamikumfänge unterstützen. Man beachte auch, dass die Reihenfolge der Verarbeitung in 11 und in den anderen Ablaufschemata und Ablaufdiagrammen nicht beschränkend sein soll. Zum Beispiel kann in manchen Ausführungsformen des in 11 gezeigten Videowiedergabeverfahrens das Element 1106 (Farbskala-Abbildung) vor dem Element 1104 (Dynamikbereichsabbildung) stattfinden.
-
Die Elemente von 11 werden ausführlicher unter Bezugnahme auf die 1 bis 10 beschrieben.
-
Wie wiederum in 1 dargestellt ist, kann in Ausführungsformen der serverseitigen, adaptiven Videoverarbeitungssysteme eine Server-/Codier-Pipeline 110 Videoinhalt, der von einer Quelle 100 erhalten wird, auf ein Zielanzeigefeld 140 abbilden. Zum Beispiel kann der Videoinhalt ein HDR- und WCG-Videoinhalt sein, der von einem Bildsensor oder einer Kamera erhalten wird. In manchen Ausführungsformen bildet die Server-/Codier-Pipeline 110 beim Abbilden des Videoinhalts auf ein Zielanzeigefeld 140 den Videoinhalt gemäß einer Farbskala-Abbildungstechnik auf einer Farbskala des Zielanzeigefelds 140 ab und bildet den Videoinhalt gemäß einer Tonabbildungstechnik auf einen Dynamikbereich für das Zielanzeigefeld 140 ab. Bei der Durchführung der Abbildung kann die Server-/Codier-Pipeline 110 Videoinhalt, Fähigkeiten und/oder Eigenschaften des Zielanzeigefelds 140 und Informationen über die Umgebung 190 am Anzeigefeld 140, einschließlich unter anderem der Informationen über die Beleuchtung 192 und die Betrachter 180, berücksichtigen.
-
Zumindest manche von den Informationen, die von der Server-/Codier-Pipeline 110 beim Abbilden von Videoinhalt auf ein Zielanzeigefeld 140 verwendet werden können, können von einer Vorrichtung oder einem System 120 erfasst werden, die/das das Zielanzeigefeld 140 und eine Decodier-/Anzeige-Pipeline 130 beinhaltet. Das System 120 kann die erfassten Informationen an einer Vorrichtung oder einem System bereitstellen, die/das die Server-/Codier-Pipeline 110 beinhaltet. Zum Beispiel kann ein System 120, das ein Zielanzeigefeld 140 beinhaltet, auch einen oder mehrere Sensoren 150 (Kameras, Lichtsensoren usw.) beinhalten, die verwendet werden können, um Umgebungsbedingungen, wie Umgebungsbeleuchtung, und Standort des Betrachters zu erkennen. Das System 120 kann beispielsweise Informationen, die aktuelle Umgebungsbedingungen beschreiben, an Vorrichtungen, Systemen oder Servern, die sich an einem anderen Ort befinden, und die die Server-/Codier-Pipeline 110 implementieren, über eine drahtgebundene oder drahtlose Verbindung bereitstellen. Man beachte jedoch, dass eine Server-/Codier-Pipeline 110 und eine Decodier-/Anzeige-Pipeline 130 an ein und derselben Vorrichtung oder ein und demselben System implementiert werden kann.
-
In manchen Ausführungsformen kann das Zielanzeigefeld 140 HDR- und WCG-Bildgebung mit einer Bittiefe (z. B. 10 Bits) unterstützen, und die Server-/Codier-Pipeline 110 kann den Videoinhalt gemäß dem einen oder den mehreren aktuellen Umgebungsfaktoren an dem Zielanzeigefelds 140, beispielsweise einer Umgebungsbeleuchtung 192 und einem Standort der Betrachters 180, auf einen Dynamikbereich und einer Farbskala bei der Bittiefe abzubilden, die vom Anzeigefeld 140 unterstützt wird. Die Server-/Codier-Pipeline 110 codiert den abgebildeten Videoinhalt und sendet den codierten Inhalt an eine Decodier-/Anzeige-Pipeline 130 für das Zielanzeigefeld 140, die den Videoinhalt decodiert und am Zielanzeigefeld 140 anzeigt.
-
Die serverseitige, adaptive Videoverarbeitung kann beispielsweise ein effektives und relativ einfaches Verfahren sein, um HDR-, WCG-Videoinhalt von einem Serversystem über ein Netz oder eine Verbindung zu HDR- und WCG-fähigen Zielsystemen 120 und Anzeigefeldern 140 zur Anzeige zu bekommen, da keine spezielle Abbildung auf der Decodier-/Anzeigeseite 130 nötig sein muss. Da eine anzeigefeldspezifische Tonabbildung und Farbskala-Abbildung auf die Dynamik- und Farbskala, der jeweils vom Zielanzeigefeld 140 unterstützt wird, auf der Server-/Codierseite 110 durchgeführt wird, kann es sein, dass die Decodier-/Anzeige-Pipeline 130 gar keine Änderungen oder Modifikationen benötigt, um eine HDR- und/oder WCG-Bildgebung zu unterstützen. Man beachte auch, dass eine Server-/Codier-Pipeline 110 den gleichen Videoinhalt auf zwei oder mehr verschiedenen Zielanzeigefeldern 140 gemäß den jeweiligen Eigenschaften und/oder Umgebungen des Anzeigefelds 140 abbilden kann.
-
10 zeigt ein Beispiel für ein Videoabspielsystem, in dem eine serverseitige Codier-Pipeline Ausgangs-Videodaten erzeugt, die für ein Zielanzeigefeld adaptiert sind, gemäß manchen Ausführungsformen. In dem Beispiel für ein Videowiedergabesystem erzeugt eine serverseitige Codier-Pipeline 1000 Ausgabedaten in einem Bereich mit breiter Farbskala (WCG) und hohem Dynamikbereich (HDR), wobei eine Abbildung auf den Anzeigefarbskala- und -dynamikbereich auf der Seite des Servers/der Codierung 1000 zumindest zum Teil gemäß Informationen durchgeführt wird, die von der Seite der Decodierung/Anzeige 1050 her erhalten werden. Das Beispiel für ein Videowiedergabeverfahren und -system kann eine H.265/HEVC-Codierung in WCG und HDR zur Verteilung an mindestens ein Zielanzeigefeld beinhalten, wobei die anzeigeseitige Decodierung und Verarbeitung keine spezielle Skala oder keine spezielle Tonabbildungfür das Zielanzeigefeld erfordert.
-
10 zeigt ein Modul oder eine Pipeline eines Servers/einer Codierung 1000, das bzw. die eine oder mehrere Komponenten beinhaltet, und ein Modul oder eine Pipeline einer Decodierung/Anzeige 1050, die eine oder mehrere Komponenten beinhaltet. In diesem Beispiel sind eine Pipeline für eine Decodierung/Anzeige 1050 und ein HDR-Zielanzeigefeld 1090 implementiert auf einem System 1040 gezeigt. In manchen Ausführungsformen kann bzw. können der Server/die Codierung 1000 und/oder die Decodierung/Anzeige 1050 auf einem System-on-Chip (SOC) implementiert werden. In manchen Ausführungsformen können der Server/die Codierung 1000 und die Decodierung/Anzeige 1050 in ein und demselben Gerät, System und/oder SOC implementiert werden. In manchen Ausführungsformen können der Server/die Codierung 1000 und die Decodierung/Anzeige 1050 in verschiedenen Geräten, Systemen und/oder SOCs implementiert werden. In manchen Ausführungsformen kann bzw. können eine oder mehrere Pipelines eines Servers/einer Codierung 1000 in einem Gerät oder System implementiert sein. Die Pipelines des Servers/der Codierung 1000 können dafür ausgelegt sein, Video auf einer oder mehreren Geräten oder Systemen, die jeweils mindestens eine Pipeline der Decodierung/Anzeige 1050 und mindestens ein angesteuertes Anzeigefeld 1090 implementieren, zu codieren und zu streamen.
-
In dieser Ausführungsform werden Farbskala-Abbildung und Tonabbildung für ein Zielanzeigefeld 1090 von einer Pipeline eines Servers/einer Codierung 1000 durchgeführt, wobei ein codierter Video-Stream (VES) 1012 in HDR und WCG, wie er von dem Zielanzeigefeld 1090 unterstützt wird, auf der Seite der Codierung 1000 erzeugt und an die Seite der Decodierung 1050 zur Decodierung und Anzeige weitergegeben wird (z. B. an eine HEVC-Decodierkomponente 1052). Die Server-/Codier-Pipeline 1000 kann Anzeigeinformationen 1092 und/oder Umgebungsinformationen 1042 von dem System 1040 erhalten, welches das Zielanzeigefeld 1090 beinhaltet.
-
Der in die Pipeline des Servers/der Codierung 1000 eingegebene Videoinhalt kann beispielsweise im (linearen) CIE 1931 XYZ-Farbraum bei einer Bittiefe von 16 Bits codiert werden. Eine Abbildungskomponente 1002 kann eine elektrooptische 12-Bit-Übertragungsfunktionsoperation (EOTF-Operation) auf das eingegebene lineare XYZ-Video anwenden, um die eingegebenen 16-Bit-Daten auf 12-Bit-Videodaten abzubilden, beispielsweise in einen 12-Bit-RGB-Farbraum. Obwohl dies nicht dargestellt ist, kann die Pipeline des Servers/der Codierung 1000 den eingegebenen Videoinhalt analysieren, um eine oder mehrere Inhaltseigenschaften zu bestimmen, beispielsweise die Breite des Dynamikbereichs des Videoinhalts, das Ausmaß von Bewegungen von Frame zu Frame oder Szene zu Szene, Farbeigenschaften (z. B. Farbumfänge), Glanzlichteffekte, Kontrast, helle und dunkle Regionen usw. Diese Inhaltsinformationen können zusammen mit Anzeigeinformationen 1092 und/oder Umgebungsinformationen für die Verarbeitung des Videoinhalts zur Anzeige auf dem Zielanzeigefeld 1090 verwendet werden.
-
Eine Komponente für feldspezifisches Abbilden 1004 kann dann gemäß den Anzeigeinformationen 1092 und/oder Umgebungsinformationen, die vom System 1040 erhalten werden, die 12-Bit-RGB-Videodaten in einen Farbraum (z. B. 10 Bit RGB) des Zielanzeigefelds 1090 abbilden. Eigenschaften des eingegebenen Videoinhalts können auch für die Abbildung 1004 verwendet werden. Die Abbildung 1004 kann beispielsweise die Durchführung einer Farbskala-Abbildung zum Abbilden der Farbskala des eingegebenen Videoinhalts in der Farbskala des Anzeigefelds 1090 und die Durchführung einer Tonabbildung zum Abbilden des Dynamikbereichs des eingegebenen Videoinhalts in den Dynamikbereich des Anzeigefelds 1090 beinhalten. Die Technik der Farbskala-Abbildung kann gemäß den vom System 1040 erhaltenen Informationen angepasst werden. Zum Beispiel kann die Farbskala der Quelldaten gemäß den Anzeigeinformationen 1092 auf die Bittiefe des Zielanzeigefelds abgebildet werden. Als weiteres Beispiel können Kurven, Übertragungsfunktionen und/oder Zuordnungstabellen gemäß der bestimmten Farbskala ausgewählt werden, der vom Anzeigefeld unterstützt wird, wie in den Anzeigeinformationen 1092 angegeben ist. Als weiteres Beispiel können Kurven, Übertragungsfunktionen und/oder Zuordnungstabellen, die für die Skala-Abbildungstechnik verwendet werden, auf Basis eines oder mehrerer Messwerte, unter anderem aktuell gemessener Werte für die Lichtverhältnisse am Anzeigefeld, die von den Umgebungsinformationen 1042 angegeben werden, modifiziert oder angepasst werden.
-
Die Technik der Tonabbildung kann gemäß den vom System 1040 erhaltenen Informationen angepasst werden. Zum Beispiel kann der Dynamikbereich der Quelldaten gemäß den Anzeigeinformationen 1092 auf die Bittiefe des Zielanzeigefelds abgebildet werden. Als weiteres Beispiel können Tonkurven und/oder Übertragungsfunktionen, die für die Tonabbildungstechnik verwendet werden, auf Basis eines oder mehrerer Messwerte, unter anderem aktuell gemessener Werte der Lichtverhältnisse am Anzeigefeld, die von den Umgebungsinformationen 1042 angegeben werden, modifiziert oder angepasst werden. In manchen Ausführungsformen kann eine nichtlineare, globale Tonabbildungskurve für einen Video-Frame oder eine Abfolge von Frames, die in der Server-/Codier-Pipeline verarbeitet werden, zumindest zum Teil auf Basis der Anzeigeinformationen 1092 und/oder Umgebungsinformationen 1092 ausgewählt werden. In manchen Ausführungsformen können die Video-Frames anstelle von oder zusätzlich zu einer globalen Tonkurve in mehrere Regionen unterteilt werden, und lokale Tonkurven können für jede Region zumindest zum Teil auf Basis der Anzeigeinformationen 1092 und/oder Umgebungsinformationen 1092 dynamisch bestimmt oder auf andere Weise ausgewählt werden.
-
In manchen Ausführungsformen kann eine feldspezifische Abbildung 1004 zumindest zum Teil von einem Bildsignalprozessor (ISP) durchgeführt werden. In manchen Ausführungsformen können eine oder mehrere Komponenten des ISP (z. B. 3D-Farbzuordnungstabellen (CLUTs)) für die Durchführung der feldspezifischen Abbildung 1004 verwendet werden. Jedoch kann die feldspezifische Abbildung 1004 stattdessen oder zusätzlich dazu in einer oder mehreren GPUs durchgeführt werden. In manchen Ausführungsformen kann eine RGB-zu-YCC-1006-Komponente die 16-Bit-RGB-Ausgabe in ein 10-Bit-YCC-Format zum Codieren umwandeln. Eine H.265/HEVC-Codiererkomponente 1010 codiert die 10-Bit-Videodaten, um HEVC VES 1012 in HDR und WCG zu erzeugen, die von dem Zielanzeigefeld 1090 bei einer Bittiefe von 10 Bit unterstützt werden.
-
Bei der Decodierung 1050 decodiert eine HEVC-Decodierkomponente 1052 einen komprimierten HEVC-Video-Stream 1012, um 10-Bit-Daten im YCC-Farbraum zu erzeugen. Eine Superauflösungstechnik 1054 kann an den Daten durchgeführt werden, und die 10-Bit-YCC-Daten können dann für eine abschließende Verarbeitung an eine Anzeige-Pipe 1058 weitergegeben werden, um Anzeigeausgabedaten, beispielsweise 10-Bit-RGB-Daten, mit der Bittiefe, der Farbskala und dem Dynamikbereich des HDR-Zielanzeigefelds 1090 zu erzeugen.
-
Man beachte, dass die verschiedenen Videoformate, Farbräume, Bittiefen usw., die in 10 gezeigt sind, nur als Beispiele angegeben sind und nicht beschränkend sein sollen. Zum Beispiel können andere Farbräume als CIE 1931 XYZ für eingegebenes Video verwendet werden. Als weiteres Beispiel können in manchen Ausführungsformen das Codieren und Decodieren gemäß anderen Codierformaten als dem H.265/HEVC-Format durchgeführt werden. Als weiteres Beispiel kann der Farbraum des Zielanzeigefelds 1090, in den die Server-/Codier-Pipeline 1000 den Videoinhalt abbildet 1004, ein beliebiger von einer Reihe von Farbräumen sein, einschließlich unter anderem verschiedene RGB-, Rec. 709-, P3 DCI D65- und Rec. 2020-Farbräume.
-
Nichtlineare Helligkeitsanpassung der Anzeige
-
Es werden Ausführungsformen von Einrichtungen und Verfahren zur Anpassung der Helligkeit einer Anzeige beschrieben, in denen die durchschnittliche Helligkeit einer Anzeige anhand einer nichtlinearen Funktion, beispielsweise einer stückweise linearen Funktion, herauf- oder herabgesetzt werden kann. Die nichtlineare Skalierung kann automatisch durchgeführt werden, beispielsweise als Reaktion auf eine Umgebungslichtstärke, die von einem oder mehreren Sensoren erfasst wird, wie in 1 dargestellt, aber sie kann auch als Reaktion auf eine Anpassung einer Steuerung 160, wie in 1 dargestellt, beispielsweise über einen Helligkeitsdrehknopf, -schieber oder -tastschalter oder über eine grafische Benutzeroberfläche (GUI) angewendet werden. Die nichtlineare Anpassung der Helligkeit kann global durchgeführt werden, oder sie kann alternativ dazu an lokalen Regionen eines Bildes oder eines Anzeigefelds durchgeführt werden.
-
14 ist ein Ablaufschema eines nichtlinearen Helligkeitsanpassungsverfahrens gemäß zumindest manchen Ausführungsformen. Wie bei 1400 von 14 angegeben ist, kann der digitale Inhalt (z. B. Videoinhalt) auf dem Zielanzeigefeld angezeigt werden. Man beachte jedoch, dass stattdessen oder außerdem auch anderer digitaler Bildinhalt auf dem Anzeigefeld angezeigt werden kann. Das Anzeigefeld kann den Inhalt auf einer Helligkeitsstufe und Kontraststufe anzeigen. Das Anzeigefeld kann, muss aber nicht, eine Anzeigevorrichtung sein, die für einen hohen Dynamikbereich (HDR) ausgelegt ist, und der digitale Inhalt kann ein HDR-Inhalt sein. Wie bei 1402 von 14 angegeben ist, können Anzeigeinformationen und/oder Umgebungsinformationen für das angesteuerte Anzeigefeld erhalten werden, beispielsweise durch ein Helligkeitsanpassungsmodul des Anzeigefelds oder einer Vorrichtung, die das Feld beinhaltet. In manchen Ausführungsformen können die Anzeigeinformationen eine Angabe einer Helligkeitsstufeneinstellung für das Anzeigefeld beinhalten. In manchen Ausführungsformen kann die Helligkeitsstufe für die Anzeige gemäß einer Anpassung des Benutzers an einer Steuerung, beispielsweise einem physischen Helligkeitsdrehknopf, -schieber oder -tastschalter oder einer Helligkeitssteuerung einer grafischen Benutzeroberfläche (GUI) eingestellt werden. In manchen Ausführungsformen können die Umgebungsinformationen einen oder mehrere Beleuchtungsmesswerte beinhalten, und eine Leuchtdichtestufe für die Anzeige kann gemäß dem/den Umgebungsbeleuchtungsmesswert(en) bestimmt oder angepasst werden. Wie bei 1404 von 14 angegeben ist, kann eine Anpassung für die Helligkeitsstufe der Anzeige gemäß den Informationen bestimmt werden. Wenn der Anwender beispielsweise einen Helligkeitsschieber nach oben oder unten bewegt, kann eine entsprechende Änderung der Helligkeitsstufe gemäß der Bewegung bestimmt werden. Als weiteres Beispiel kann in einem Fall, wo die Beleuchtung dunkler oder heller wird, eine entsprechende Änderung der Helligkeitsstufe gemäß der Änderung der Umgebungsbeleuchtung bestimmt werden. Beispielsweise kann es sein, dass die Anzeigehelligkeit erhöht werden muss, wenn das Umgebungslicht heller wird. Dagegen kann es sein, dass die Anzeigehelligkeit unter gedämpften Lichtverhältnissen verringert werden muss.
-
Wie bei 1406 von 14 angegeben ist, kann die Anzeigehelligkeit dann gemäß einer nichtlinearen Funktion herauf- oder herabgesetzt werden, um die Helligkeitsstufe der Anzeige anzupassen. Zum Beispiel kann in manchen Ausführungsformen die nichtlineare Funktion an das Eingangssignal angelegt werden, um unter Verwendung einer Zuordnungstabelle das Ausgangssignal zu erzeugen, das gemäß der aktuellen Helligkeitsstufe angepasst ist; jedoch können auch andere Techniken verwendet werden. In manchen Ausführungsformen wird das Eingangssignal in die Komponenten Luminanz (Luma) und Chrominanz (Chroma) aufgeteilt, und die nichtlineare Funktion wird an die Luma-Komponente des Signals angelegt. Ein Beispiel für eine nichtlineare Funktion, wie sie an ein Eingangssignal angelegt wird, um ein Ausgangssignal zu erzeugen, ist in 13 dargestellt. Wenn die nichtlineare Funktion angewendet wird, um die Helligkeit herabzusetzen, wird der Kontrast im Ausgangssignal möglicherweise nicht reduziert, so dass der Dynamikbereich und die Lichteffekte bewahrt werden. In manchen Ausführungsformen kann die Anzeigehelligkeit anhand einer globalen, nichtlinearen Funktion global angepasst werden. In manchen Ausführungsformen kann die Anzeigehelligkeit separat für zwei oder mehr Regionen der Anzeige angepasst werden, wobei in verschiedenen Regionen möglicherweise eine jeweils andere, nichtlineare Funktion oder Variante einer nichtlinearen Funktion angelegt wird.
-
Die Elemente von 14 werden ausführlicher unter Bezugnahme auf die 12 und 13 beschrieben.
-
Techniken zur Anpassung der Anzeigehelligkeit setzen die Helligkeit in der Regel mittels einer linearen Funktion herauf oder herab, so dass sowohl die durchschnittliche Helligkeit als auch der Kontrast im gleichen Verhältnis geändert werden. Zum Beispiel zeigt 12 das lineare Eingabe/Ausgabe-Verhältnis einer Anpassung der Helligkeit (Luma) mit einem Skalierungsfaktor von 0,5. Die x-Achse ist das Eingangssignal, und die y-Achse ist das Ausgangssignal, und beide sind auf [0, 1] normalisiert. Die entsprechende lineare Gleichung lautet: y = kx
-
Ein Problem mit einer linearen Helligkeitsanpassung, wie in 12 dargestellt, besteht darin, dass auch der Kontrast verringert wird, wenn die durchschnittliche Helligkeit verringert wird. Infolgedessen wird das angezeigte Bild/Video weniger lebhaft. Ausführungsformen von Einrichtungen und Verfahren zur Anpassung der AnzeigeHelligkeit, wie sie hierin beschrieben werden, können eine nichtlineare (z. B. stückweise lineare) Helligkeitsanpassungsfunktion implementieren, bei der eine Helligkeitsanpassung nur den Durchschnitt ändert, aber den maximalen Dynamikbereich unverändert lässt. Ein nicht-beschränkendes Ausführungsbeispiel einer nichtlinearen Helligkeitsanpassungsfunktion ist in 13 gezeigt, in der die Eingabe-Ausgabe-Beziehung der Helligkeitsanpassungsfunktion (Luma-Anpassungsfunktion) gemäß zumindest manchen Ausführungsformen dargestellt ist. Im Vergleich der 13 mit der geraden Linie in 12 ist die Helligkeitsanpassungsfunktion eine stückweise lineare Funktion mit den Parametern T0 bis T3. In 13 ist T00, ist T1 auf 0,9 eingestellt und ist T2 auf 0,95 eingestellt und ist T31. Man beachte, dass der Gradient von (T0, T1) auf (T1, T2) steigt und wiederum von (T1, T2) auf (T2, T3) steigt. Man beachte jedoch, dass diese Werte Beispiele sind und nicht beschränkend sein sollen. In diesem Beispiel für eine stückweise nichtlineare Funktion, wie in 13 dargestellt, sind die entsprechenden Gleichungen: y = k0x wenn 0 <= x < T, y = k1(x – T1) + k0T, wenn T1 <= x < T2 y = k2(x – T2) + k1(T2 – T1) + k0T1 wenn T2 <= x <= 1
-
Wenn eine nichtlineare Funktion, beispielsweise eine stückweise lineare Funktion, wie sie in 13 dargestellt ist, angewendet wird, um die Helligkeit herabzusetzen, kann es zumindest in manchen Ausführungsformen sein, dass der Kontrast des Ausgangssignals nicht reduziert wird, so dass der Dynamikbereich und Lichteffekte bewahrt werden. Eine lineare Skalierung, wie in 12 dargestellt, kann die Bildqualität negativ beeinflussen. Wenn beispielsweise eine lineare Anpassung durchgeführt wird, wie in 12, dargestellt, wird in der Regel auch der Dynamikbereich herabgesetzt. Statt der Durchführung einer linearen Anpassung, wie in 12 dargestellt, können Ausführungsformen daher nur die durchschnittliche Helligkeit unter Verwendung einer nichtlinearen Skalierungsfunktion herabsetzen, wie in 13 dargestellt, während sie den Kontrast und den Dynamikbereich nicht entsprechend reduzieren, wodurch Lichteffekte bewahrt bleiben. Während 13 eine stückweise lineare Skalierungsfunktion zeigt, können auch andere nichtlineare Funktionen, wie quadratische Funktionen oder Kurven, verwendet werden.
-
Wie oben angegeben kann es sein, dass der Dynamikbereich nicht reduziert wird und Lichteffekte bewahrt werden, wenn eine nichtlineare Funktion, beispielsweise eine stückweise lineare Funktion, wie sie in 13 dargestellt ist, angewendet wird, um die Helligkeit herabzusetzen. Jedoch kann es in manchen Fällen sein, dass der Kontrast ebenso wie die Helligkeit herabgesetzt werden muss; jedoch wird der Kontrast nicht so stark und/oder so schnell herabgesetzt wird wie die Helligkeit, um dazu beizutragen, den Dynamikbereich des angezeigten Bildes zu bewahren. Anders ausgedrückt wird im Gegensatz zu linearen Skalierungstechniken wie sie in 12 dargestellt sind, bei denen die durchschnittliche Helligkeit und der Kontrast im gleichen Verhältnis geändert werden, unter Verwendung von Ausführungsformen nichtlinearer Helligkeitsskalierungstechniken wie sie in 13 dargestellt sind, der Kontrast durch die Anpassung der Helligkeit nicht beeinflusst oder wird als Reaktion auf eine Helligkeitsanpassung anders beeinflusst als die Helligkeit.
-
In manchen Ausführungsformen kann die nichtlineare Skalierung der Helligkeit und möglicherweise auch des Kontrastes automatisch gemäß den hierin beschriebenen umgebungsadaptiven Rendering-Verfahren durchgeführt werden, beispielsweise als Reaktion auf die Änderung der Umgebungslichtstärke, die von einem Sensor oder von Sensoren erfasst wird, wie in 1 dargestellt ist. In manchen Ausführungsformen kann anstelle von oder zusätzlich zu der automatischen Skalierung die nichtlineare Skalierung als Reaktion auf eine Anpassung eines Benutzers an einer Steuerung 160, wie in 1 dargestellt, angewendet werden, beispielsweise über einen Helligkeitsdrehknopf, -schieber oder eine Helligkeitssteuerung an einer grafischen Benutzeroberfläche (GUI).
-
Wie in 13 gezeigt ist, kann in manchen Ausführungsformen eine stückweise lineare Funktion verwendet werden. Jedoch können auch andere Funktionen verwendet werden, beispielsweise eine Kurvenfunktion, eine quadratische Funktion usw. Jedoch kann die allgemeine Form der Kurve in 13 in der Regel unabhängig von der Art der verwendeten Funktion beibehalten werden. Bei dieser Form ist der Gradient am Anfang des Signals langsam oder flach und wird schneller oder steiler. Diese Form kann beispielsweise dabei helfen, Lichteffekte in dem Bild zu bewahren. Man beachte jedoch, dass in manchen Ausführungsformen auch andere allgemeine Kurvenformen verwendet werden können.
-
In manchen Ausführungsformen kann anstelle von oder zusätzlich zu der Verwendung einer globalen nichtlinearen Skalierungsfunktion die nichtlineare Skalierungsfunktion angewendet und in verschiedenen Regionen eines Bildschirms, eines Bildes oder eines Video-Frames variiert werden. In manchen Ausführungsformen können alle Helligkeitswerte in einem Bild global und gemäß der gleichen nichtlinearen Skalierungsfunktion angepasst werden. Jedoch können in manchen Ausführungsformen lokale Helligkeitsanpassungen anstelle von oder zusätzlich zu globalen Anpassungen durchgeführt werden. Bei einer lokalen Anpassung der nichtlinearen Skalierungsfunktion können unterschiedliche nichtlineare Modelle oder Funktionen angewendet werden oder können in unterschiedlichen Bereichen eines Bildes oder einer Anzeige unterschiedlich angelegt werden.
-
Ausführungsformen für Techniken zur Anpassung der Anzeigehelligkeit wie hierin beschrieben können beispielsweise in Vorrichtungen oder Systemen implementiert werden, die eine oder mehrere Anzeigevorrichtungen beinhaltet. Anzeigen oder Anzeigevorrichtungen können Bildschirme oder Anzeigefelder beinhalten, die in andere Vorrichtungen integriert sind, unter anderem in Smartphones, Mobiltelefonen, PDAs, Tablet- oder Pad-Vorrichtungen, multifunktionellen Vorrichtungen, Rechenvorrichtungen, Laptop-Computern, Notebook-Computern, Netbook-Computern, Desktop-Computern usw. Anzeigevorrichtungen können auch Videomonitore, Projektoren oder ganz allgemein jede Vorrichtung beinhalten, die digitale Bilder und/oder digitales Video anzeigen oder projizieren kann. Die Techniken zur Anpassung der Anzeigehelligkeit können beispielsweise für Anzeigen implementiert werden, die unter anderem Anzeigen gemäß der LED-Technologie (Leuchtdiodentechnologie), OLED-Technologie (organische Leuchtdiodentechnologie) oder LCD-Technologie (Flüssigkristallanzeigetechnologie) beinhalten, mit lokaler Dämpfung des Hintergrundlichts.
-
Die nichtlinearen Helligkeitsanpassungsverfahren können beispielsweise in einem Modul oder einer Komponente für eine Helligkeitsanpassung oder in einer anderen Vorrichtung oder Einrichtung implementiert sein. Die 15 bis 19 zeigen nichtbeschränkende Beispiele für Vorrichtungen, in denen Ausführungsformen des Moduls oder der Verfahren für eine nichtlineare Anzeigehelligkeitsanpassung implementiert werden können. Eine Anzeigevorrichtung oder eine Vorrichtung oder ein System, die bzw. das eine Anzeigevorrichtung beinhaltet, können Hardware und/oder Software (z. B. ein Helligkeitsanpassungsmodul) beinhalten, die zumindest manche der Funktionen für eine nichtlineare Anzeigehelligkeitssteuerung, wie hierin beschrieben, implementieren. In manchen Ausführungsformen kann eine Anzeigevorrichtung oder eine Vorrichtung, die ein Anzeigefeld oder einen Bildschirm beinhaltet, eine Anzeige-Pipeline implementieren, die komprimierte Bilder empfängt und verarbeitet (d. h. decodiert), beispielsweise Videobilder für die Anzeige auf dem Feld oder dem Bildschirm, beispielsweise gemäß den hierin beschriebenen adaptiven Videoverarbeitungsverfahren, und eine oder mehrere Komponenten der Anzeige-Pipeline können zumindest manche der hierin beschriebenen Funktionen für eine nichtlineare Anpassung der Anzeigehelligkeit implementieren. In manchen Ausführungsformen kann eine Anzeige-Backend-Komponente einer Anzeige-Pipeline die nichtlineare Anzeigehelligkeitsanpassungsfunktion implementieren. In manchen Ausführungsformen kann die nichtlineare Anzeigehelligkeitsanpassungsfunktion in oder von einem Anpassungsmodul oder einer Anpassungskomponente des Anzeige-Backends implementiert werden. Die 3 und 4 zeigen ein Beispiel für eine Anzeige-Pipeline und ein Anzeige-Backend, welche die hierin beschriebenen, nichtlinearen Anzeigehelligkeitsanpassungsfunktionen implementieren können. In manchen Ausführungsformen kann zumindest ein Teil der hierin beschriebenen Funktionen für eine nichtlineare Anpassung der Helligkeit durch eine oder mehrere Komponenten oder ein oder mehrere Module eines Systems auf einem Chip (SOC) implementiert werden, das in Vorrichtungen verwendet werden kann, die unter anderem Multifunktionsvorrichtungen, Smartphones, Pad- oder Tablet-Vorrichtungen und andere tragbare Rechenvorrichtungen wie Laptop-, Notebook- und Netbook-Computer beinhalten.
-
Beispielvorrichtungen und -Einrichtungen
-
Die 15 bis 19 zeigen nicht-beschränkende Beispiele für Vorrichtungen und Einrichtungen, in oder mit denen Ausführungsformen oder Komponenten der verschiedenen digitalen Video- oder Bildverarbeitungs- und Anzeigeverfahren und -Einrichtungen, wie hierin beschrieben, implementiert werden können. 15 zeigt ein Beispiel für SOC, und 16 zeigt ein Beispiel für die Implementierung eines SOC. 17 zeigt ein Beispiel für Computersysteme, in dem die hierin beschriebenen Verfahren und Einrichtungen implementiert sein können. 18 und 19 zeigen Beispiele für Multifunktionsvorrichtungen, in denen die hierin beschriebenen Verfahren und Einrichtungen implementiert werden können.
-
Beispiel für System-on-Chip (SOC)
-
Unter Bezugnahme auf 15 wird ein Blockschema einer Ausführungsform eines Systems auf einem Chip (SOC) 8000 gezeigt, das in Ausführungsformen verwendet werden kann. Das SOC 8000 ist mit einem Speicher 8800 gekoppelt gezeigt. Wie durch den Namen impliziert, können die Komponenten des SOC 8000 auf einem einzigen Halbleitersubstrat als ein „Chip” einer integrierten Schaltung integriert sein. In manchen Ausführungsformen können die Komponenten auf zwei oder mehr diskreten Chips in einem System implementiert sein. Das SOC 8000 wird jedoch hierein als ein Beispiel verwendet. In der dargestellten Ausführungsform schließen die Komponenten des SOC 8000 einen Komplex einer zentralen Verarbeitungseinheit (CPU) 8020, chipinterne Peripheriekomponenten 8040A bis 8040C (kürzer „Peripherieeinheiten”), eine Speichersteuereinheit (MC) 8030 und eine Kommunikationsstruktur 8010 ein. Die Komponenten 8020, 8030, 8040A bis 8040C können alle mit der Kommunikationsstruktur 8010 gekoppelt sein. Die Speichersteuereinheit 8030 kann während der Verwendung mit dem Speicher 8800 gekoppelt sein, und die Peripherieeinheit 8040B kann während der Verwendung mit einer externen Schnittstelle 8900 gekoppelt sein. In der veranschaulichten Ausführungsform schließt der CPU-Komplex 8020 einen oder mehrere Prozessoren (P) 8024 und einen Cache der Ebene zwei (L2) 8022 ein.
-
Die Peripherieeinheiten 8040A bis 8040B können jeder beliebige Satz zusätzlicher Hardware-Funktionalität sein, die im SOC 8000 eingeschlossen ist. Zum Beispiel können die Peripherieeinheiten 8040A bis 8040B Video-Peripherieeinheiten wie einen Bildsignalprozessor, der dafür ausgelegt ist, Bildaufnahmedaten von einer Kamera oder einem anderen Bildsensor zu verarbeiten, Anzeigesteuerungen, die dafür ausgelegt sind, Videodaten auf einer oder mehreren Anzeigevorrichtungen anzuzeigen, Grafikprozessoren (GPUs), Videocodierer/-decodierer oder Codecs, Skalierer, Rotatoren, Mischer usw. beinhalten. Die Peripherieeinheiten können Audio-Peripherieeinheiten wie Mikrofone, Lautsprecher, Schnittstellen für Mikrofone und Lautsprecher, Audioprozessoren, digitale Signalprozessoren, Mischer usw. beinhalten. Die Peripherieeinheiten können periphere Schnittstellensteuerungen für verschiedene Schnittstellen 8900, die außerhalb des SOC 8000 liegen (z. B. die Peripherieeinheit 8040B), einschließlich Schnittstellen, wie einem Universal Serial Bus (USB), Peripheral Component Interconnect (PCI), einschließlich PCI Express (PCIe), serieller und paralleler Ports usw. beinhalten. Die Peripherieeinheiten können Netz-Peripherieeinheiten wie Medienzugriffssteuerungen (MACs) beinhalten. Jeder beliebige Satz von Hardware kann eingeschlossen sein.
-
Der CPU-Komplex 8020 kann einen oder mehrere CPU-Prozessoren 8024 beinhalten, die als CPU des SOC 8000 dienen. Die CPU des Systems schließt den einen oder die mehreren Prozessoren ein, welche die Hauptsteuersoftware des Systems, wie beispielsweise ein Betriebssystem, ausführen. Allgemein kann durch die CPU während der Verwendung ausgeführte Software die anderen Komponenten des Systems steuern, um die gewünschte Funktionalität des Systems zu verwirklichen. Die Prozessoren 8024 können auch andere Software ausführen, wie beispielsweise Anwendungsprogramme. Die Anwendungsprogramme können Benutzerfunktionalität bereitstellen und können zur Steuerung von Vorrichtungen niedriger Ebene auf dem Betriebssystem beruhen. Dementsprechend können die Prozessoren 8024 auch als Anwendungsprozessoren bezeichnet werden. Der CPU-Komplex 8020 kann ferner weitere Hardware, wie beispielsweise den L2-Cache 8022 und/oder eine Schnittstelle zu den anderen Komponenten des Systems (z. B. eine Schnittstelle zur Kommunikationsstruktur 8010), beinhalten. Allgemein kann ein Prozessor jede beliebige Schaltlogik und oder jeden beliebigen Mikrocode beinhalten, die oder der konfiguriert ist, Anweisungen auszuführen, die in einer durch den Prozessor implementierten Anweisungssatzarchitektur definiert sind. Die Anweisungen und Daten, aufgrund derer der Prozessor als Reaktion auf ein Ausführen der Anweisungen arbeitet, können allgemein im Speicher 8800 gespeichert werden, obwohl bestimmte Anweisungen auch für einen direkten Prozessorzugriff auf Peripherieeinheiten definiert sein können. Prozessoren können Prozessorkerne, die auf einer integrierten Schaltung mit anderen Komponenten als ein System-on-Chip (SOC 8000) implementiert sind, oder andere Ebenen der Integration umfassen. Prozessoren können ferner diskrete Mikroprozessoren, Prozessorkerne und/oder Mikroprozessoren, die in Mehrfachchipmodul-Implementierungen integriert sind, Prozessoren, die als mehrere integrierte Schaltungen implementiert sind, usw. umfassen.
-
Die Speichersteuereinheit 8030 kann allgemein die Schaltlogik zum Empfangen von Speicheroperationen von den anderen Komponenten des SOC 8000 und zum Zugreifen auf den Speicher 8800 beinhalten, um die Speicheroperationen durchzuführen. Die Speichersteuereinheiten 8030 können dafür ausgelegt sein, auf jeden beliebigen Typ von Speicher 8800 zuzugreifen. Zum Beispiel kann der Speicher 8800 ein statischer Speicher mit wahlfreiem Zugriff (SRAM), dynamischer RAM (DRAM), wie beispielsweise synchroner DRAM (SDRAM), einschließlich DRAM mit doppelter Datenübertragungsrate (DDR, DDR2, DDR3 usw.), sein. Versionen mit geringer Leistung/mobile Versionen des DDR DRAM können unterstützt werden (z. B. LPDDR, mDDR usw.). Die Speichersteuereinheit 8030 kann Warteschlangen für Speicheroperationen, zum Ordnen (und potenziellen Umordnen) der Operationen und zum Vorlegen der Operationen für den Speicher 8800 beinhalten. Die Speichersteuereinheit 8030 kann ferner Datenpuffer beinhalten, um Schreibdaten zu speichern, die auf das Schreiben in den Speicher warten, und Lesedaten, die auf die Ausgabe an die Quelle der Speicheroperation warten. In manchen Ausführungsformen kann die Speichersteuereinheit 8030 einen Speicher-Cache beinhalten, um Speicherdaten zu speichern, auf die kürzlich zugegriffen wurde. In SOC-Implementierungen kann der Speicher-Cache zum Beispiel den Energieverbrauch im SOC verringern, indem ein erneuter Zugriff auf Daten aus dem Speicher 8800 vermieden wird, wenn erwartet wird, dass bald erneut auf sie zugegriffen wird. In manchen Fällen kann der Speicher-Cache, im Gegensatz zu privaten Caches, wie beispielsweise dem L2-Cache 8022 oder Caches in den Prozessoren 8024, die nur bestimmten Komponenten dienen, auch als ein System-Cache bezeichnet werden. Zusätzlich muss in manchen Ausführungsformen ein System-Cache nicht innerhalb der Speichersteuereinheit 8030 angeordnet sein.
-
In einer Ausführungsform kann der Speicher 8800 mit dem SOC 8000 in einer Chip-auf-Chip- oder Packung-auf-Packung-Konfiguration gepackt sein. Eine Mehrfachchipmodul-Konfiguration des SOC 8000 und des Speichers 8800 kann ebenfalls verwendet werden. Solche Konfiguration können (hinsichtlich der Datenbeobachtbarkeit) im Vergleich sicherer sein als Übertragungen an andere Komponenten im System (z. B. an die Endpunkte 16A bis 16B). Dementsprechend können sich geschützte Daten unverschlüsselt im Speicher 8800 befinden, wohingegen die geschützten Daten für einen Austausch zwischen dem SOC 8000 und externen Endpunkten verschlüsselt werden können.
-
Die Kommunikationsstruktur 8010 kann jede beliebige Kommunikationsverbindung und jedes beliebige Protokoll zum Kommunizieren zwischen den Komponenten des SOC 8000 sein. Die Kommunikationsstruktur 8010 kann busgestützt sein, einschließlich gemeinsam genutzte Buskonfigurationen, Crossbar-Konfigurationen und hierarchische Busse mit Brücken. Die Kommunikationsstruktur 8010 kann auch paketgestützt sein und hierarchisch mit Brücken, Crossbar, Punkt-zu-Punkt oder andere Verbindungen sein.
-
Man beachte, dass die Anzahl der Komponenten des SOC 8000 (und die Anzahl von Teilkomponenten für die in 15 gezeigten, wie beispielsweise innerhalb des CPU-Komplexes 8020) von Ausführungsform zu Ausführungsform variieren kann. Es kann mehr oder weniger von jeder Komponente/Teilkomponente geben als die in 15 gezeigte Anzahl.
-
16 ist ein Blockschema einer Ausführungsform eines Systems 9000, das mindestens eine Instanz eines SOC 8000 beinhaltet, die mit einer oder mehreren externen Peripherieeinheiten 9020 und dem externen Speicher 8800 gekoppelt ist. Eine Energieverwaltungseinheit (PMU) 9010 wird bereitgestellt, die dem SOC 8000 die Versorgungsspannungen sowie dem Speicher 8800 und/oder den Peripherieeinheiten 9020 eine oder mehrere Versorgungsspannungen zuführt. In manchen Ausführungsformen kann mehr als eine Instanz des SOC 8000 eingeschlossen sein (und auch mehr als ein Speicher 8800 kann eingeschlossen sein).
-
Die Peripherieeinheiten 9020 können jede gewünschte Schaltlogik beinhalten, abhängig vom Typ des Systems 9000. Zum Beispiel kann in einer Ausführungsform das System 9000 eine mobile Vorrichtung (z. B. ein persönlicher digitaler Assistent (PDA), ein Smartphone usw.) sein, und die Peripherieeinheiten 9020 können Vorrichtungen für verschiedene Typen von drahtloser Kommunikation beinhalten, wie Wi-Fi, Bluetooth, Mobilfunk, globales Positionsbestimmungssystem usw. Die Peripherieeinheiten 9020 können auch zusätzlichen Speicher beinhalten, einschließlich RAM-Speicher, Festspeicher oder Plattenspeicher. Die Peripherieeinheiten 9020 können Benutzerschnittstellen-Vorrichtungen, wie einen Bildschirm, einschließlich von Touchscreens oder Multi-Touchscreens, Tastatur- oder anderen Eingabevorrichtungen, Mikrofonen, Lautsprechern usw., beinhalten. In anderen Ausführungsformen kann das System 9000 ein beliebiger Typ von Computersystem sein (z. B. Desktop-Personal-Computer, Laptop, Workstation, Nettop usw.).
-
Der externe Speicher 8800 kann jeden beliebigen Speichertyp beinhalten. Zum Beispiel kann es sich bei dem externen Speicher 8800 um einen SRAM, einen dynamischen RAM (DRAM), wie einen synchronen DRAM (SDRAM), einen Double Data Rate (DDR, DDR2, DDR3 etc.) SDRAM, RAMBUS DRAM, weniger Leistung verbrauchende Versionen des DDR DRAM (z. B. LPDDR, mDDR usw.) usw. handeln. Der externe Speicher 8800 kann ein oder mehrere Speichermodule beinhalten, an denen die Speichervorrichtungen angebaut sind, beispielsweise einzelreihige Speichermodule (SIMMs), zweireihige Speichermodule (DIMMs) usw. Alternativ dazu kann der externe Speicher 8800 eine oder mehrere Speichervorrichtungen beinhalten, die an dem SOC 8000 in einer Chip-auf-Chip- oder Packung-auf-Packung-Implementierung angebaut sind.
-
Beispiel für ein Computersystem
-
17 zeigt ein Beispiel für ein Computersystem 2900, das so gestaltet sein kann, dass es eine beliebige oder alle von den oben beschriebenen Ausführungsformen ausführt. In verschiedenen Ausführungsformen kann ein Computersystem 2900 eine von verschiedenen Arten von Vorrichtungen sein, unter anderem ein PC-System, ein Desktop-Computer, ein Laptop, ein Notebook, ein Tablet, ein Slate, ein Pad oder ein Netbook-Computer, ein Mainframe-Computersystem, ein in der Hand zu haltender Computer, eine Workstation, ein Netz-Computer, eine Kamera, eine Settop Box, eine mobile Vorrichtung, eine Anwendervorrichtung, ein Anwendungsserver, eine Speichervorrichtung, ein Videorecorder, eine periphere Vorrichtung, wie ein Switch, ein Modem, ein Router oder ganz allgemein jede Art von Rechner oder elektronischer Vorrichtung.
-
Verschiedene Ausführungsformen wie hierin beschrieben können in einem oder mehreren Computersystemen 2900 ausgeführt werden, die mit verschiedenen anderen Vorrichtungen wechselwirken können. Man beachte, dass gemäß verschiedenen Ausführungsformen jede Komponente, Aktion oder Funktion, die oben mit Bezug auf die 1 bis 16 beschrieben wurde, an einem oder mehreren als Computersystem 2900 von 17 implementierten Computern ausgeführt werden kann. In der dargestellten Ausführungsform weist das Computersystem 2900 einen oder mehrere Prozessoren 2910 auf, die über eine Eingabe/Ausgabe-(E/A)-Schnittstelle 2930 mit einem Systemspeicher 2920 gekoppelt sind. Das Computersystem 2900 beinhaltet ferner eine Netzschnittstelle 2940, die mit einer E/A-Schnittstelle 2930 gekoppelt ist, und eine oder mehrere Eingabe-/Ausgabevorrichtungen oder -komponenten 2950, beispielsweise eine Cursor-Steuerung 2960, eine Tastatur 2970, Anzeige(n) 2980, Kamera(s) 2990 und Sensor(en) 2992, unter anderem Lichtsensoren und Bewegungsdetektoren. In manchen Fällen kann in Betracht gezogen werden, dass Ausführungsformen unter Verwendung eines Einzelinstanz-Computersystems 2900 implementiert werden, während in anderen Ausführungsformen mehrere solcher Systeme oder mehrere Knoten, aus denen das Computersystem 2900 besteht, so konfiguriert sein können, dass sie verschiedene Abschnitte oder Instanzen von Ausführungsformen hosten. Zum Beispie1 können in einer Ausführungsform manche Elemente über einen oder mehrere Knoten des Computersystems 2900 implementiert werden, die sich von den Knoten unterscheiden, die andere Elemente implementieren. In verschiedenen Ausführungsformen kann das Computersystem 2900 ein Einzelprozessorsystem sein, das einen Prozessor 2910 enthält, oder ein Multiprozessorsystem, das mehrere Prozessoren 2910 (z. B. zwei, vier, acht oder eine andere, geeignete Anzahl) enthält. Die Prozessoren 2910 können aus jedem geeigneten Prozessor bestehen, der in der Lage ist, Befehle auszuführen. Zum Beispiel können Prozessoren 2910 in verschiedenen Ausführungsformen Allzweck- oder eingebettete Prozessoren sein, die eine von einer Reihe verschiedener Befehlssatzarchitekturen (ISAs) implementieren, beispielsweise x829, PowerPC, SPARC oder MIPS ISAs, oder eine beliebige andere, geeignete ISA. In Multiprozessorsystemen kann jeder Prozessor 2910 die gleiche ISA implementieren wie die anderen, dies ist aber nicht notwendig. Der Systemspeicher 2920 kann dafür ausgelegt sein, Programmbefehle 2922 und/oder Daten zu speichern, auf die der Prozessor 2910 zugreifen kann. In verschiedenen Ausführungsformen kann der Systemspeicher 2920 unter Verwendung jeder geeigneten Speichertechnologie, wie als statischer Schreib-Lese-Speicher (SRAM), synchroner dynamischer RAM (SDRAM), nicht-flüchtiger/Flash-Speicher oder eine beliebige andere Art von Speicher implementiert werden. In der dargestellten Ausführungsform können Programmbefehle 2922 dafür ausgelegt sein, jede der hierin beschriebenen Funktionen zu implementieren. Außerdem kann der Speicher 2920 beliebige der hierin beschriebenen Informationen oder Datenstrukturen enthalten. In manchen Ausführungsformen können Programmbefehle und/oder Daten auf verschiedenen Arten von für Computer zugänglichen Medien oder auf ähnlichen Medien, die vom Systemspeicher 2920 oder vom Computersystem 2900 getrennt vorliegen, empfangen, versendet oder gespeichert werden. Obwohl das beschriebene Computersystem 2900 die Funktionalität von Funktionsblöcken vorangehender Figuren implementiert, kann jede der hierin beschriebenen Funktionalitäten über solch ein Computersystem implementiert werden.
-
In einer Ausführungsform kann die E/A-Schnittstelle 2930 dafür ausgelegt sein, E/A-Verkehr zwischen dem Prozessor 2910, dem Systemspeicher 2920 und beliebigen peripheren Vorrichtungen in der Vorrichtung, einschließlich der Netzschnittstelle 2940 oder anderer peripherer Schnittstellen, wie Eingabe-/Ausgabevorrichtungen 2950, zu koordinieren. In manchen Ausführungsformen kann die E/A-Schnittstelle 2930 jede nötige Protokoll-, Zeitsteuerungs- oder andere Datenumwandlung durchführen, um Datensignale von einer Komponente (z. B. dem Systemspeicher 2920) in ein Format umzuwandeln, das sich zur Verwendung durch eine andere Komponente (z. B. den Prozessor 2910) eignet. In manchen Ausführungsformen kann die E/A-Schnittstelle 2930 Vorrichtungen unterstützen, die über verschiedene Arten von peripheren Bussen angebracht werden, beispielsweise eine Variante des Peripheral Component Interconnect-Busstandards (PCI-Busstandard) oder des Universal Serial Bus-Standards (USB-Standard). In manchen Ausführungsformen kann die Funktion der E/A-Schnittstelle 2930 auf zwei oder mehr separate Komponenten aufgeteilt sein, beispielsweise eine Nordbrücke und eine Südbrücke. Ebenso können in manchen Ausführungsformen einige oder alle Funktionalitäten der E/A-Schnittstelle 2930, beispielsweise eine Schnittstelle mit einem Systemspeicher 2920, direkt in den Prozessor 2910 eingebaut sein.
-
Die Netzschnittstelle 2940 kann dafür ausgelegt sein, einen Datenaustausch zwischen dem Computersystem 2900 und anderen Vorrichtungen, die an einem Netzwerk 2985 angebracht sind (z. B. am Träger oder an Agentenvorrichtungen) oder zwischen Knoten des Computersystems 2900 zuzulassen. Das Netz 2985 kann in verschiedenen Ausführungsformen eines oder mehrere Netze enthalten, wozu unter anderem Local Area Networks (LANs) (z. B. ein Ethernet- oder Corporate-Network), Wide Area Networks (WANs) (z. B. das Internet), drahtlose Datennetze, andere elektronische Datennetze oder Kombinationen davon gehören. In verschiedenen Ausführungsformen kann die Netzschnittstelle 2940 eine Kommunikation über drahtgebundene oder drahtlose allgemeine Datennetze, wie beispielsweise jede geeignete Art von Ethernet-Netzwerk; über Telekommunikations-/Telefonnetze, wie analoge Telefonnetze oder digitale Faserkommunikationsnetze; über Speichernetzwerke wie Fibre Channel SANS oder über eine beliebige andere Art von Netz und/oder Protokoll unterstützen.
-
Eingabe/Ausgabe-Vorrichtungen 2950 können in manchen Ausführungsformen einen oder mehrere Display-Anschlüsse, Tastaturen, Keypads, Touchpads, Scanner, Sprach- oder optischen Erkennungsvorrichtungen oder beliebigen anderen Vorrichtungen, die sich dafür eignen, Dateneingabe oder -zugriffe durch eines oder mehrere Computersysteme 2900 durchzuführen. Im Computersystem 2900 können mehrere Eingabe/Ausgabe-Vorrichtungen 2950 vorhanden oder auf verschiedene Knoten auf dem Computersystem 2900 verteilt sein. In manchen Ausführungsformen können ähnliche Eingabe/Ausgabe-Vorrichtungen getrennt vom Computersystem 2900 vorliegen und können mit einem oder mehreren Knoten des Computersystems 2900 über eine drahtgebundene oder drahtlose Verbindung, beispielsweise eine Netzschnittstelle 2940, wechselwirken.
-
Wie in 17 dargestellt ist, kann der Speicher 2920 Programmbefehle 2922 enthalten, die von einem Prozessor ausführbar sind, um ein(e) beliebige(s) der oben beschriebenen Elemente oder Aktionen zu implementieren. In einer Ausführungsform können die Programmbefehle die oben beschriebenen Verfahren implementieren. In anderen Ausführungsformen können andere Elemente und Daten enthalten sein. Man beachte, dass Daten jegliche der oben beschriebenen Daten oder Informationen beinhalten können.
-
Der Fachmann wird erkennen, dass das Computersystem 2900 nur zur Erläuterung dient und den Bereich der Ausführungsformen nicht beschränken soll. Insbesondere können das Computersystem und die Vorrichtungen beliebige Kombinationen aus Hardware und Software enthalten, welche die angegebenen Funktionen ausführen können, einschließlich Computern, Netzgeräten, Internetgeräten, PDAs, drahtlosen Telefonen, Pagern usw. Das Computersystem 2900 kann auch mit anderen Vorrichtungen verbunden sein, die nicht dargestellt sind, und kann stattdessen als eigenständiges System arbeiten. Außerdem kann die Funktionalität, die von den dargestellten Komponenten bereitgestellt wird, in manchen Ausführungsformen in weniger Komponenten kombiniert oder in zusätzlichen Komponenten verteilt sein.
-
Ebenso kann in manchen Ausführungsformen die Funktionalität von manchen der dargestellten Komponenten nicht bereitgestellt werden, und/oder es kann eine zusätzliche Funktionalität verfügbar sein.
-
Der Fachmann wird außerdem erkennen, dass zwar wie dargestellt verschiedene Dinge im Speicher gespeichert oder in einer Speichervorrichtung abgelegt sein können, während sie verwendet werden, dass diese Dinge oder Teile davon aber für die Zwecke der Speicherverwaltung und Datenintegrität auch zwischen einem Speicher und anderen Speichervorrichtungen übertragen werden können. Alternativ dazu können in anderen Ausführungsformen einige oder alle von den Software-Komponenten im Speicher oder einer anderen Vorrichtung ausgeführt werden und mit dem dargestellten Computersystem über Inter-Computer-Kommunikation kommunizieren. Einige oder alle von den Systemkomponenten oder Datenstrukturen können auch auf einem für Computer zugänglichen Medium oder einem tragbaren Gegenstand gespeichert werden (z. B. als Befehle oder strukturierte Daten), um von einem geeigneten Laufwerk gelesen zu werden, wofür Beispiele oben beschrieben sind. In manchen Ausführungsformen können Befehle, die auf einem für Computer zugänglichen Medium gespeichert sind, das separat vom Computersystem 2900 vorliegt, über Sendemedien oder -signale, wie elektrische, elektromagnetische oder digitale Signale auf das Computersystem 2900 übertragen werden, über ein Kommunikationsmedium wie ein Netz und/oder eine drahtlose Strecke übermittelt werden. Verschiedene Ausführungsformen können ferner das Empfangen, Verschicken oder Speichern von Befehlen und/oder Daten, die gemäß der obigen Beschreibung implementiert werden, auf einem für Computer zugänglichen Medium beinhalten. Allgemein gesprochen kann ein für Computer zugängliches Medium ein nicht-transitorisches, computerlesbares Speichermedium oder Speichermedium beinhalten, wie magnetische oder optische Medien, z. B. eine Disk oder DVD/CD-ROM, flüchtige oder nicht-flüchtige Medien wie RAM (z. B. SDRAM, DDR, RDRAM, SRAM usw.), ROM usw. In manchen Ausführungsformen kann ein für Computer zugängliches Medium Sendemedien oder -signale beinhalten, wie beispielsweise elektrische, elektromagnetische oder digitale Signale, die über ein Kommunikationsmedium, wie ein Netz und/oder eine drahtlose Strecke übermittelt werden.
-
Beispiele für Multifunktionsvorrichtungen
-
18 zeigt ein Blockdiagramm einer tragbaren Multifunktionsvorrichtung gemäß manchen Ausführungsformen. In manchen Ausführungsformen handelt es sich bei der Vorrichtung um eine tragbare Kommunikationsvorrichtung, wie etwa ein Mobiltelefon, die auch andere Funktionen enthält, wie etwa PDA-, Kamera-, Videoaufnahme- und/oder -wiedergabe- und/oder Musikwiedergabefunktionen. Beispielhafte Ausführungsformen von tragbaren Multifunktionsvorrichtungen schließen unter anderem die iPhone®-, iPod Touch®- und iPad®-Vorrichtungen von Apple Inc., Cupertino, Kalifornien, ein. Es können auch andere tragbare, elektronische Vorrichtungen, wie etwa Laptops, Mobiltelefone, Smartphones, Pad- oder Tablet-Computer mit berührungsempfindlichen Oberflächen (z. B. Touchscreen-Anzeigen und/oder Touchpads) verwendet werden. Es versteht sich auch, dass es sich in manchen Ausführungsformen bei der Vorrichtung nicht um eine tragbare Kommunikationsvorrichtung handelt, sondern um einen Desktop-Computer mit einer berührungsempfindlichen Oberfläche (z. B. einer Touchscreen-Anzeige und/oder einem Touchpad). In manchen Ausführungsformen ist die Vorrichtung ein Spielecomputer mit Ausrichtungssensoren (z. B. Ausrichtungssensoren in einem Spiele-Controller). In anderen Ausführungsformen ist die Vorrichtung keine tragbare Kommunikationsvorrichtung, sondern ist eine Kamera und/oder eine Videokamera. In der folgenden Besprechung wird eine elektronische Vorrichtung beschrieben, die einen Bildschirm und eine berührungsempfindliche Oberfläche beinhaltet. Es sollte sich jedoch verstehen, dass die elektronische Vorrichtung eine oder mehrere physische Benutzerschnittstellenvorrichtungen, wie etwa eine physische Tastatur, eine Maus und/oder einen Joystick, beinhalten kann.
-
Die Vorrichtung unterstützt in der Regel eine Vielzahl an Anwendungen, wie etwa eine oder mehrere der folgenden: eine Zeichnungsanwendung, eine Präsentationsanwendung, eine Textverarbeitungsanwendung, eine Anwendung zum Erstellen von Websites, eine Anwendung zur Entwicklung von Autorensoftware für Discs, eine Tabellenkalkulationsanwendung, eine Spieleanwendung, eine Telefonanwendung, eine Videokonferenzanwendung, eine E-Mail-Anwendung, eine Instant Messaging-Anwendung, eine Anwendung zu Unterstützung des Trainings, eine Fotoverwaltungsanwendung, eine Anwendung für digitale Kameras, eine Anwendung für digitale Videos, eine Anwendung zum Surfen im Internet, eine Anwendung zur Wiedergabe digitaler Musik und/oder eine Anwendung zur Wiedergabe digitaler Videos.
-
Die verschiedenen Anwendungen, die auf der Vorrichtung ausgeführt werden, können mindestens eine gemeinsame physische Benutzerschnittstellenvorrichtung, wie etwa die berührungsempfindliche Oberfläche, verwenden. Eine oder mehrere Funktionen der berührungsempfindlichen Oberfläche sowie auf der Vorrichtung angezeigte, entsprechende Informationen können von einer Anwendung zur anderen und/oder innerhalb einer jeweiligen Anwendung angepasst und/oder variiert werden. Auf diese Weise kann eine gemeinsame physische Architektur (wie etwa die berührungsempfindliche Oberfläche) der Vorrichtung die verschiedenen Anwendungen mit Benutzerschnittstellen, die für den Benutzer intuitiv und erkennbar sind, unterstützen.
-
Die Vorrichtung 2100 kann einen Speicher 2102 (der eines oder mehrere computerlesbare Speichermedien beinhalten kann), eine Speichersteuerung 2122, eine oder mehrere Verarbeitungseinheiten (CPUs) 2120, eine Schnittstelle für Peripherieeinheiten 2118, eine HF-Schaltung 2108, eine Audioschaltung 2110, Lautsprecher 2111, ein berührungsempfindliches System 2112, ein Mikrofon 2113, ein Eingabe-/Ausgabe-Teilsystem (E/A-Teilsystem) 2106, andere Eingabesteuervorrichtungen 2116 und einen externen Anschluss 2124 beinhalten. Die Vorrichtung 2100 kann einen oder mehrere optische Sensoren oder Kameras 2164 beinhalten. Diese Komponenten können über einen oder mehrere Kommunikationsbusse oder Signalleitungen 2103 kommunizieren.
-
Es sei klargestellt, dass die Vorrichtung 2100 nur ein Beispiel einer tragbaren Multifunktionsvorrichtung ist, und dass die Vorrichtung 2100 mehr oder weniger Komponenten als gezeigt beinhalten kann, zwei oder mehr Komponenten kombinieren kann oder eine andere Konfiguration oder Anordnung der Komponenten beinhalten kann. Die in 18 gezeigten verschiedenen Komponenten können in Hardware, Software oder einer Kombination aus sowohl Hardware als auch Software, einschließlich einer oder mehrerer signalverarbeitender und/oder anwendungsspezifischer, integrierter Schaltungen, implementiert sein.
-
Der Speicher 2102 kann Hochgeschwindigkeitsdirektzugriffsspeicher und auch einen nicht-flüchtigen Speicher, wie etwa eine oder mehrere Magnetdiskettenspeichervorrichtungen, Flash-Speicher-Vorrichtungen oder andere nicht-flüchtige Halbleiterlaufwerkspeichervorrichtungen beinhalten. Der Zugriff auf den Speicher 2102 von anderen Komponenten der Vorrichtung 2100, wie etwa von der CPU 2120 und der Schnittstelle für Peripherieeinheiten 2118, kann von der Speichersteuerung 2122 gesteuert werden.
-
Die Schnittstelle für Peripherieeinheiten 2118 kann dazu verwendet werden, um Eingabe- und Ausgabeperipherieeinheiten der Vorrichtung an die CPU 2120 und den Speicher 2102 zu koppeln. Der eine oder die mehreren Prozessoren 2120 führen verschiedene, im Speicher 2102 gespeicherte Softwareprogramme und/oder Anweisungssätze aus, um verschiedene Funktionen der Vorrichtung 2100 auszuführen und Daten zu verarbeiten.
-
In manchen Ausführungsformen können die Schnittstelle für Peripherieeinheiten 2118, die CPU 2120 und die Speichersteuerung 2122 auf einem einzelnen Chip, wie etwa Chip 2104, implementiert sein. In einigen anderen Ausführungsformen können sie auf separaten Chips implementiert sein.
-
Die HF-Schaltung (Hochfrequenz-Schaltung) 2108 empfängt und sendet HF-Signale, die auch als elektromagnetische Signale bezeichnet werden. Die HF-Schaltung 2108 wandelt elektrische Signale in elektromagnetische Signale bzw. elektromagnetische Signale in elektrische Signale um und kommuniziert mittels der elektromagnetischen Signale mit Kommunikationsnetzwerken und anderen Kommunikationsvorrichtungen. Die HF-Schaltung 2108 kann bekannte Schaltung zum Ausführen dieser Funktionen, einschließlich unter anderem eines Antennensystems, eines HF-Sender-Empfängers, eines oder mehrerer Verstärker, eines Tuners, eines oder mehrerer Oszillatoren, eines digitalen Signalprozessors, eines Codierer-/Decodierer-Chipsatzes (Codec-Chipsatzes), einer Teilnehmeridentitätsmodulkarte (SIM-Karte), Speicher usw. umfassen. Die HF-Schaltung 2108 kann mittels drahtloser Kommunikation wahlweise mit Netzwerken, wie etwa dem Internet, das auch als World Wide Web (WWW) bezeichnet wird, einem Intranet und/oder einem drahtlosen Netzwerk, wie etwa einem Mobiltelefonnetzwerk, einem drahtlosen lokalen Netzwerk (LAN) und/oder einem innerstädtischen Netzwerk (MAN) und anderen Vorrichtungen kommunizieren. Die drahtlose Kommunikation kann beliebige von mehreren Kommunikationsstandards, Kommunikationsprotokollen und -technologien, einschließlich unter anderem des Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), High Speed Downlink Packet Access (HSDPA), High Speed Uplink Packet Access (HSUPA), Wideband Code Division Multiple Access (W-CDMA), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth, Wireless Fidelity (Wi-Fi) (z. B. IEEE 802.11a, IEEE 802.11b, IEEE 802.11g und/oder IEEE 802.11n), Voice over Internet Protocol (VoIP), Wi-MAX, einem Protokoll für E-Mails (z. B. Internet Message Access Protocol (IMAP) und/oder Post Office Protocol (POP)), Instant Messaging (z. B. Extensible Messaging and Presence Protocol (XMPP), Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), Instant Messaging and Presence Service (IMPS)), und/oder Short Message Service (SMS), oder jegliches andere, geeignete Kommunikationsprotokoll, einschließlich zum Zeitpunkt der Einreichung dieses Dokuments noch nicht entwickelter Kommunikationsprotokolle verwenden.
-
Die Audioschaltung 2110, die Lautsprecher 2111 und das Mikrofon 2113 stellen eine Audioschnittstelle zwischen einem Benutzer und einer Vorrichtung 2100 bereit. Die Audioschaltung 2110 empfängt Audiodaten von der Peripherieschnittstelle 2118, wandelt die Audiodaten in ein elektrisches Signal um und überträgt die elektrischen Signale an den Lautsprecher 2111. Der Lautsprecher 2111 wandelt die elektrischen Signale in vom Menschen hörbare Schallwellen um. Die Audioschaltung 2110 empfängt auch vom Mikrofon 2113 aus Schallwellen umgewandelte elektrische Signale. Die Audioschaltung 2110 wandelt die elektrischen Signale in Audiodaten um und überträgt die Audiodaten zur Verarbeitung an die Schnittstelle für Peripherieeinheiten 2118. Audiodaten können von der peripheren Schnittstelle 2118 aus dem Speicher 2102 und/oder der HF-Schaltung 2108 abgerufen und/oder dorthin übermittelt werden. In manchen Ausführungsformen beinhaltet die Audioschaltung 2110 auch einen Kopfhöreranschluss. Der Kopfhöreranschluss stellt eine Schnittstelle zwischen der Audioschaltung 2110 und nicht fest eingebauten Eingabe-/Ausgabe-Peripherieeinheiten bereit, wie etwa Nur-Ausgabe-Kopfhörer oder Kopfhörer sowohl mit Ausgabe (z. B. ein Kopfhörer für ein oder beide Ohren) als auch mit Eingabe (z. B. ein Mikrofon).
-
Das E/A-Subsystem 2106 koppelt Eingabe-/Ausgabe-Peripherieeinheiten an der Vorrichtung 2100, wie etwa den Touchscreen 2112, und andere Eingabesteuervorrichtungen 2116 an die Schnittstelle für Peripherieeinheiten 2118. Das E/A-Subsystem 2106 kann eine Anzeigesteuerung 2156 und einen oder mehrere Eingabesteuerungen 2160 für andere Eingabesteuervorrichtungen 2116 beinhalten. Die eine oder die mehreren Eingabesteuerungen 2160 empfangen/senden elektrische Signale von/an andere(n) Eingabesteuerungsvorrichtungen 2116. Die anderen Eingabesteuerungsvorrichtungen 2116 können physische Schalter (z. B. Drucktasten, Wipptaster etc.), Wählscheiben, Schiebeschalter, Joysticks, Klickräder usw. beinhalten. In einigen alternativen Ausführungsformen kann/können die Eingabesteuerung(en) 2160 an eine (oder keine) der folgenden gekoppelt sein: eine Tastatur, eine Infrarotschnittstelle, einen USB-Anschluss und an eine Zeigevorrichtung, wie eine Maus. Der eine oder die mehreren Tasten umfassen wahlweise eine Aufwärts/Abwärts-Taste für die Lautstärkeregelung des Lautsprechers 2111 und/oder des Mikrofons 2113. Die eine oder die mehreren Tasten kann/können eine Drucktaste beinhalten.
-
Der berührungsempfindliche Bildschirm 2112 stellt eine Eingabeschnittstelle und eine Ausgabeschnittstelle zwischen der Vorrichtung und dem Benutzer bereit. Die Anzeigesteuerung 2156 empfängt und/oder sendet elektrische Signale von dem/an den Touchscreen 2112. Der Touchscreen 2112 zeigt dem Benutzer visuelle Ausgaben an. Die visuelle Ausgabe kann wahlweise Grafiken, Text, Icons, Video und eine beliebige Kombination davon (insgesamt als „Grafiken” bezeichnet) beinhalten. In manchen Ausführungsformen können einige oder alle der visuellen Ausgaben den Benutzerschnittstellenobjekten entsprechen.
-
Der Touchscreen 2112 weist eine berührungsempfindliche Oberfläche und einen Sensor oder einen Satz von Sensoren auf, der/die Eingaben vom Benutzer basierend auf haptischem und/oder Tastkontakt annimmt. Der Touchscreen 2112 und die Anzeigesteuerung 2156 (zusammen mit jeglichen damit zusammenhängenden Modulen und/oder Anweisungssätzen im Speicher 2102) erfassen Kontakt (und jegliche Bewegung oder ein Abbrechen des Kontakts) auf dem Touchscreen 2112 und wandeln den erfassten Kontakt in Kommunikation mit den Benutzerschnittstellenobjekten (z. B. ein(en) oder mehrere Softkeys, Icons, Webseiten oder Bilder), die auf dem Touchscreen 2112 angezeigt werden, um. In einer beispielhaften Ausführungsform entspricht ein Kontaktpunkt zwischen dem Touchscreen 2112 und dem Benutzer einem Finger des Benutzers.
-
Der Touchscreen 2112 kann LCD-Technologie (Flüssigkristallanzeigetechnologie), LPD-Technologie (Leuchtpolymervorrichtungstechnologie) oder LED-Technologie (anorganische Leuchtdiodentechnologie) verwenden, wenngleich in anderen Ausführungsformen andere Bildschirmtechnologien verwendet werden können. Der Touchscreen 2112 und die Anzeigesteuerung 2156 können Kontakt und jegliche Bewegung oder ein Abbrechen des Kontakts unter Verwendung einer Reihe bereits bekannter oder noch zu entwickelnder Berührungssensortechnologien erkennen, einschließlich unter anderem kapazitiven, Widerstands-, Infrarot- und akustischen Oberflächenwellentechnologien, sowie anderer Näherungssensoranordnungen oder anderer Elemente zum Bestimmen eines oder mehrerer Kontaktpunkte auf dem Touchscreen 2112. In einer beispielhaften Ausführungsform wird projizierte, auf gegenseitiger Kapazität beruhende Sensortechnologie verwendet, wie diejenige, die im iPhone®, iPod Touch® und iPad® von Apple Inc. in Cupertino, Kalifornien, zu finden ist. Der Touchscreen 2112 kann eine Videoauflösung von mehr als 100 dpi aufweisen. In manchen Ausführungsformen weist der Touchscreen eine Videoauflösung von ungefähr 160 dpi auf. Der Benutzer kann Kontakt mit dem Touchscreen 2112 herstellen, indem er ein beliebiges geeignetes Objekt oder Körperteil, wie etwa einen Eingabestift, einen Finger und dergleichen verwendet. In manchen Ausführungsformen ist die Benutzerschnittstelle dazu ausgelegt, hauptsächlich mit auf Fingern basierenden Kontakten und Handbewegungen zu arbeiten, die aufgrund der größeren Kontaktfläche eines Fingers auf dem Touchscreen weniger akkurat als eine Eingabe mit dem Eingabestift sein können. In manchen Ausführungsformen übersetzt die Vorrichtung die grobe, auf Fingern basierende Eingabe in eine präzise Position des Mauszeigers/Cursors oder in einen Befehl zum Ausführen der vom Benutzer gewünschten Aktionen.
-
In manchen Ausführungsformen kann die Vorrichtung 2100 zusätzlich zum Touchscreen 2112 ein (nicht gezeigtes) Touchpad zum Aktivieren oder Deaktivieren bestimmter Funktionen aufweisen. In manchen Ausführungsformen ist das Touchpad ein berührungsempfindlicher Bereich der Vorrichtung, der im Gegensatz zum Touchscreen keine visuellen Ausgaben anzeigt. Das Touchpad kann eine berührungsempfindliche Oberfläche, die vom Touchscreen 2112 separat ist, oder eine Verlängerung der vom Touchscreen gebildeten, berührungsempfindlichen Oberfläche sein.
-
Die Vorrichtung 2100 beinhaltet auch das Stromversorgungssystem 2162, um die verschiedenen Komponenten mit Strom zu versorgen. Das Stromversorgungssystem 2162 kann ein Stromverwaltungssystem, eine oder mehrere Stromquellen (z. B. Batterie, Wechselstrom (AC)), ein Aufladesystem, eine Stromausfallerfassungsschaltung, einen Stromrichter oder Wechselrichter, eine Energiestatusanzeige (z. B. eine Leuchtdiode (LED)) und beliebige andere Komponenten, die mit der Stromerzeugung, Stromverwaltung und Stromverteilung in tragbaren Vorrichtungen im Zusammenhang stehen, beinhalten.
-
Die Vorrichtung 2100 kann auch eine(n) oder mehrere optische Sensoren oder Kameras 2164 beinhalten. 18 zeigt einen optischen Sensor, der an die optische Sensorsteuerung 2158 im E/A-Subsystem 2106 gekoppelt ist. Der optische Sensor 2164 kann beispielsweise Fototransistoren mit ladungsgekoppelten Bauteilen (CCD) oder mit komplementären Metalloxid-Halbleitern (CMOS) beinhalten. Der optische Sensor 2164 empfängt Licht aus der Umgebung, das durch eine oder mehrere Linsen projiziert wird, und wandelt das Licht in ein Bild darstellende Daten um. Zusammen mit dem Bildgebungsmodul 2143 (das auch als Kameramodul bezeichnet wird) kann der optische Sensor 2164 Standbilder und/oder Videosequenzen aufnehmen. In manchen Ausführungsformen kann mindestens ein optischer Sensor auf der Rückseite der Vorrichtung 2100, entgegengesetzt zur Touchscreen-Anzeige 2112 an der Vorderseite der Vorrichtung, angeordnet sein. In manchen Ausführungsformen kann die Touchscreen-Anzeige als Bildsucher für die Erfassung von Stand- oder Videobildern verwendet werden. In manchen Ausführungsformen kann stattdessen oder zusätzlich dazu mindestens ein optischer Sensor an der Vorderseite der Vorrichtung angeordnet sein.
-
Die Vorrichtung 2100 kann auch einen oder mehrere Näherungssensoren 2166 beinhalten. 18 zeigt den Näherungssensor 2166, der an die Schnittstelle für Peripherieeinheiten 2118 gekoppelt ist. Alternativ dazu kann der Näherungssensor 2166 an die Eingabesteuerung 2160 im E/A-Subsystem 2106 gekoppelt sein. In manchen Ausführungsformen schaltet der Näherungssensor den Touchscreen 2112 aus und deaktiviert ihn, wenn die Multifunktionsvorrichtung in der Nähe des Ohrs des Benutzers platziert wird (z. B. wenn der Benutzer einen Anruf tätigt).
-
Die Vorrichtung 2100 kann auch einen oder mehrere Ausrichtungssensoren 2168 beinhalten. In manchen Ausführungsformen weisen der eine oder die mehreren Ausrichtungssensoren einen oder mehrere Beschleunigungsmesser (z. B. einen oder mehrere lineare Beschleunigungsmesser und/oder einen oder mehrere Rotationsbeschleunigungsmesser) auf. In manchen Ausführungsformen weisen der eine oder die mehreren Ausrichtungssensoren ein oder mehrere Gyroskope auf. In manchen Ausführungsformen weisen der eine oder die mehreren Ausrichtungssensoren ein oder mehrere Magnetometer auf. In manchen Ausführungsformen weisen der eine oder die mehreren Ausrichtungssensoren eines oder mehrere der folgenden auf: ein globales Positionsbestimmungssystem (GPS), ein globales Navigationssatellitensystem (GLONASS) und/oder andere globale Navigationssystemempfänger. GPS, GLONASS und/oder andere globale Navigationssystemempfänger können verwendet werden, um Informationen über den Ort und die Ausrichtung (z. B. Hoch- oder Querformat) der Vorrichtung 2100 zu erhalten. In manchen Ausführungsformen weisen der eine oder die mehreren Ausrichtungssensoren eine beliebige Kombination aus Ausrichtungs- und Rotationssensoren auf. 18 zeigt den einen oder die mehreren, an die Schnittstelle für Peripherieeinheiten 2118 gekoppelten Ausrichtungssensoren 2168. Alternativ dazu können der eine oder die mehreren Ausrichtungssensoren 2168 an die Eingabesteuerung 2160 im E/A-Subsystem 2106 gekoppelt sein. In manchen Ausführungsformen werden Informationen auf der Touchscreen-Anzeige im Hochformat oder im Querformat angezeigt, basierend auf einer Analyse von Daten, die von dem einen oder den mehreren Ausrichtungssensoren empfangen wurden.
-
In manchen Ausführungsformen kann die Vorrichtung 2100 auch einen oder mehrere (nicht dargestellte) Sensoren beinhalten, die unter anderem Umgebungslichtsensoren und Bewegungsdetektoren beinhalten. Diese Sensoren können mit der Schnittstelle für Peripherieeinheiten 2118 oder alternativ dazu mit einer Eingabesteuerung 2160 im E/A-Teilsystem 2106 gekoppelt sein. Zum Beispiel kann die Vorrichtung 2100 in manchen Ausführungsformen mindestens einen nach vorn (vom Anwender weg) gerichteten und mindestens einen nach hinten (zum Anwender hin) gerichteten Lichtsensor beinhalten, die verwendet werden können, um Messwerte der Umgebungsbeleuchtung aus der Umgebung der Vorrichtung 2100 zu gewinnen, um sie für Zwecke der Video- und Bildaufnahme, -verarbeitung und -anzeige zu verwenden. In einigen Ausführungsformen umfassen die im Speicher 2102 gespeicherten Software-Komponenten ein Betriebssystem 2126, ein Kommunikationsmodul 2128, ein Kontakt-/Bewegungsmodul (oder einen Anweisungssatz) 2130, ein Grafikmodul 2132, ein Texteingabemodul 2134, ein Global Positioning System-Modul (GPS-Modul) 2135 und Anwendungen 2136. Ferner speichert der Speicher 2102 in manchen Ausführungsformen einen vorrichtungsbezogenen/globalen internen Zustand 2157.
-
Der vorrichtungsbezogene/globale interne Zustand 2157 beinhaltet eines oder mehrere der Folgenden: einen Anwendungsaktivitätsstatus, der anzeigt welche der Anwendungen gegebenenfalls gerade aktiv sind; einen Bildschirmstatus, der anzeigt, welche Anwendungen, Ansichten oder anderen Informationen verschiedene Bereiche der Touchscreen-Anzeige 2112 belegen; einen Sensorstatus, einschließlich von Informationen, die von den verschiedenen Sensoren und Eingabesteuervorrichtungen 2116 der Vorrichtung erhalten wurden; und Ortsinformationen, die den Standort und/oder die Einstellung der Vorrichtung betreffen.
-
Das Betriebssystem 2126 (z. B. Darwin, RTXC, LINUX, UNIX, OSX, WINDOWS oder ein eingebettetes Betriebssystem wie VxWorks) beinhaltet verschiedene Software-Komponenten und/oder Softwaretreiber zum Steuern und Verwalten der allgemeinen Systemaufgaben (z. B. Speicherverwaltung, Speichervorrichtungssteuerung, Stromverwaltung etc.) und erleichtert die Kommunikation zwischen verschiedenen Hardware- und Software-Komponenten.
-
Das Kommunikationsmodul 2128 erleichtert die Kommunikation mit anderen Vorrichtungen über einen oder mehrere externe Anschlüsse 2124 und beinhaltet auch verschiedene Software-Komponenten zur Handhabung von Daten, die von der HF-Schaltung 2108 und/oder vom externen Anschluss 2124 empfangen wurden. Der externe Anschluss 2124 (z. B. Universal Serial Bus (USB), FIREWIRE etc.) ist dafür ausgelegt, direkt an andere Vorrichtungen oder indirekt über ein Netzwerk (z. B. das Internet, WLAN etc.) gekoppelt zu werden. In manchen Ausführungsformen ist der externe Anschluss eine Stiftleiste (z. B. mit 30 Stiften), die der Stiftleiste mit 30 Stiften, die in Vorrichtungen wie iPod (Markenzeichen von Apple Inc.) verwendet wird, gleich oder ähnlich ist und/oder mit dieser kompatibel ist.
-
Das Kontakt-/Bewegungsmodul 2130 kann einen Kontakt mit dem Touchscreen 2112 (in Verbindung mit der Anzeigesteuerung 2156) und anderen berührungsempfindlichen Vorrichtungen (z. B. einem Touchpad oder einem physischen Klickrad) erfassen. Das Kontakt-/Bewegungsmodul 2130 beinhaltet verschiedene Software-Komponenten zum Ausführen verschiedener Vorgänge, die mit dem Erfassen von Kontakt in Zusammenhang stehen, wie etwa Bestimmen, ob es einen Kontakt gab (z. B. das Erfassen eines Fingerauflege-Ereignisses), Bestimmen, ob der Kontakt bewegt wird, und das Nachverfolgen der Bewegung über der berührungsempfindlichen Oberfläche (z. B. das Erfassen eines oder mehrerer Fingerzieh-Ereignisse), und Bestimmen, ob der Kontakt aufgehört hat (z. B. Erfassen eines Fingeranhebe-Ereignisses oder einer Unterbrechung des Kontakts). Das Kontakt-/Bewegungsmodul 2130 empfängt Kontaktdaten von der berührungsempfindlichen Oberfläche. Das Bestimmen von Bewegung des Kontaktpunkts, die von einer Reihe von Kontaktdaten dargestellt wird, kann das Bestimmen von Schnelligkeit (Größenordnung), Geschwindigkeit (Größenordnung und Richtung) und/oder einer Beschleunigung (einer Veränderung der Größenordnung und/oder der Richtung) des Kontaktpunkts beinhalten. Diese Vorgänge können auf einzelne Kontakte (z. B. Ein-Fingerkontakt) oder auf mehrere gleichzeitige Kontakte (z. B. „Mehrfachberührung”/Kontakt von mehreren Fingern) angewendet werden. In manchen Ausführungsformen erfassen das Kontakt-/Bewegungsmodul 2130 und die Anzeigesteuerung 2156 Kontakt auf einem Touchpad.
-
Das Kontakt-/Bewegungsmodul 2130 kann eine Eingabe durch eine Handbewegung eines Benutzers erfassen. Verschiedene Handbewegungen auf der berührungsempfindlichen Oberfläche weisen unterschiedliche Kontaktmuster auf. Folglich kann eine Handbewegung durch Erfassen eines bestimmten Kontaktmusters erfasst werden. Beispielsweise beinhaltet das Erfassen einer Fingerldopfbewegung das Erfassen eines Fingerauflege-Ereignisses gefolgt vom Erfassen eines Fingeranhebe- bzw. Abhebe-Ereignisses an der gleichen Stelle (oder im Wesentlichen der gleichen Stelle) wie das Fingerauflege-Ereignis (z. B. an der Stelle eines Icons). Als ein weiteres Beispiel beinhaltet das Erfassen einer Fingerwischgeste auf der berührungsempfindlichen Oberfläche das Erfassen eines Fingerauflege-Ereignisses gefolgt vom Erfassen eines oder mehrerer Fingerzieh-Ereignisse und schließlich gefolgt vom Erfassen eines Fingeranhebe- bzw. Abhebe-Ereignisses.
-
Das Grafikmodul 2132 beinhaltet verschiedene Software-Komponenten zum Vorlegen und Anzeigen von Grafiken auf dem Touchscreen 2112 oder einer anderen Anzeige, einschließlich von Komponenten zur Veränderung der Intensität der angezeigten Grafiken. Wie hier verwendet, beinhaltet der Begriff „Grafiken” jegliches Objekt, das einem Benutzer angezeigt werden kann, einschließlich von unter anderem Text, Webseiten, Icons (wie etwa Benutzeroberflächenobjekte einschließlich Softkeys), digitalen Bildern, Video-S, Animationen und dergleichen.
-
In manchen Ausführungsformen speichert das Grafikmodul 2132 Daten, die zu verwendende Grafiken darstellen. Jeder Grafik kann ein entsprechender Code zugewiesen werden. Das Grafikmodul 2132 empfängt von Anwendungen etc. einen oder mehrere Codes, die Grafiken spezifizieren, die, falls erforderlich, zusammen mit Koordinatendaten und anderen Daten zu grafischen Eigenschaften angezeigt werden sollen, und erzeugt dann Bildschirmbilddaten zur Ausgabe an die Anzeigesteuerung 2156.
-
Das Texteingabemodul 2134, bei dem es sich um eine Komponente des Grafikmoduls 2132 handeln kann, stellt Bildschirmtastaturen zur Eingabe von Text bei verschiedenen Anwendungen, bei denen eine Texteingabe erforderlich ist, bereit.
-
Das GPS-Modul 2135 bestimmt den Ort der Vorrichtung und stellt diese Informationen zur Verwendung in verschiedenen Anwendungen bereit (z. B. dem Telefonmodul 2138 zur Verwendung von Wählen auf Ortsbasis, dem Kameramodul 2143 als Bild-/Video-Metadaten, und in Anwendungen, die standortbezogene Dienste anbieten, wie Karten-/Navigationsanwendungen).
-
Anwendungen 2136 können unter anderem eines oder mehrere die folgenden Module (oder Anweisungssätze), oder eine Teilmenge oder eine Übermenge davon beinhalten:
- • Telefonmodul 2138;
- • Videokonferenzmodul 2139;
- • Kameramodul 2143 für Standbilder und/oder Videobilder;
- • Bildverwaltungsmodul 2144;
- • Browsermodul 2147;
- • Suchmodul 2151;
- • Modul zur Wiedergabe von Videos und Musik 2152, das aus einem Videowiedergabemodul und einem Musikwiedergabemodul bestehen kann; und/oder
- • Online-Video-Modul 2155.
-
Beispiele für andere Anwendungen 2136, die im Speicher 2102 gespeichert sein können, umfassen unter anderem andere Textverarbeitungsanwendungen, andere Bildbearbeitungsanwendungen, Zeichnungsanwendungen, Präsentationsanwendungen Kommunikations-/Social-Media-Anwendungen, Kartenanwendungen, JAVA-fähige Anwendungen, Verschlüsselung, digitale Rechteverwaltung, Spracherkennung und Stimmreplikation.
-
In Verbindung mit der HF-Schaltung 2108, der Audioschaltung 2110, dem Lautsprecher 2111, dem Mikrofon 2113, dem Touchscreen 2112, der Anzeigesteuerung 2156, dem Kontaktmodul 2130, dem Grafikmodul 2132 und dem Texteingabemodul 2134 kann das Telefonmodul 2138 dazu verwendet werden, eine Zeichenfolge einzugeben, die einer Telefonnummer entspricht, um auf eine oder mehrere Telefonnummern in einem Adressbuch zuzugreifen, um eine eingegebene Telefonnummer abzuändern, eine entsprechende Telefonnummer zu wählen, ein Gespräch zu führen und die Verbindung zu beenden bzw. aufzulegen, wenn das Gespräch zu Ende ist. Wie oben erwähnt, kann die drahtlose Kommunikation beliebige von verschiedenen Kommunikationsstandards, -protokollen und -technologien verwenden.
-
In Verbindung mit der HF-Schaltung 2108, der Audioschaltung 2110, dem Lautsprecher 2111, dem Mikrofon 2113, dem Touchscreen 2112, der Anzeigesteuerung 2156, dem optischen Sensor 2164, der optischen Sensorsteuerung 2158, dem Kontaktmodul 2130, dem Grafikmodul 2132, dem Texteingabemodul 2134, und dem Telefonmodul 2138 umfasst das Videokonferenzmodul 2139 ausführbare Anweisungen zum Einleiten, Führen und Beenden einer Videokonferenz zwischen einem Benutzer und einem oder mehreren anderen Teilnehmern gemäß Benutzeranweisungen.
-
In Verbindung mit dem Touchscreen 2112, der Anzeigesteuerung 2156, dem/den optischen Sensor(en) 2164, der optischen Sensorsteuerung 2158, dem Kontakt-/Bewegungsmodul 2130, dem Grafikmodul 2132 und dem Bildverwaltungsmodul 2144 umfasst das Kameramodul 2143 ausführbare Anweisungen zum Erfassen von Standbildern oder Videos (einschließlich eines Video-Streams) und zum Speichern derselben im Speicher 2102, zum Ändern der Eigenschaften eines Standbilds oder Videos oder zum Löschen eines Standbilds oder Videos aus dem Speicher 2102.
-
In Verbindung mit dem Touchscreen 2112, der Anzeigesteuerung 2156, dem Kontakt-/Bewegungsmodul 2130, dem Grafikmodul 2132, dem Texteingabemodul 2134 und dem Kameramodul 2143 umfasst das Bildverwaltungsmodul 2144 ausführbare Anweisungen zum Anordnen, Verändern (z. B. Bearbeiten) oder zum anderweitigen Verarbeiten, Kennzeichnen, Löschen, Präsentieren (z. B. in einer digitalen Diashow oder einem digitalen Album) und Speichern von Stand- und/oder Videobildern.
-
In Verbindung mit der HF-Schaltung 2108, dem Touchscreen 2112, der Bildschirmsystemsteuerung 2156, dem Kontakt-/Bewegungsmodul 2130, dem Grafikmodul 2132 und dem Texteingabemodul 2134 umfasst das Browsermodul 2147 ausführbare Anweisungen zum Browsen des Internets gemäß Benutzeranweisungen, einschließlich Suchen von, Verknüpfen mit, Empfangen von und Anzeigen von Webseiten oder Teilen davon, sowie Anhängen und anderen, mit Webseiten verknüpften Dateien.
-
In Verbindung mit dem Touchscreen 2112, der Anzeigesystemsteuerung 2156, dem Kontakt-/Bewegungsmodul 2130, dem Grafikmodul 2132 und dem Texteingabemodul 2134 umfasst das Suchmodul 2151 ausführbare Anweisungen zum Suchen nach Text, Musik, Klang, Bildern, Videos und/oder anderen Dateien im Speicher 2102, die einem oder mehreren Suchkriterien entsprechen (z. B. einem oder mehreren vom Benutzer vorgegebenen Suchbegriffen) gemäß Benutzeranweisungen.
-
In Verbindung mit dem Touchscreen 2112, der Anzeigesystemsteuerung 2156, dem Kontakt-/Bewegungsmodul 2130, dem Grafikmodul 2132, der Audioschaltung 2110, dem Lautsprecher 2111, der HF-Schaltung 2108 und dem Browsermodul 2147 umfasst das Modul zur Wiedergabe von Video und Musik 2152 ausführbare Anweisungen, die es dem Benutzer ermöglichen, aufgezeichnete Musik und andere, in einem oder mehreren Dateiformaten, wie etwa MP3- oder AAC-Dateien, gespeicherte Klangdateien herunterzuladen und wiederzugeben, und ausführbare Anweisungen zum Anzeigen, Präsentieren oder anderweitigem Wiedergeben von Videos (z. B. auf dem Touchscreen 2112 oder auf einem externen, über die externe Schnittstelle 2124 verbundenen Bildschirm). In manchen Ausführungsformen kann die Vorrichtung 2100 die Funktionalität eines MP3-Players, wie etwa eines iPods (Markenzeichen von Apple Inc.), umfassen.
-
In Verbindung mit dem Touchscreen 2112, der Anzeigesystemsteuerung 2156, dem Kontakt-/Bewegungsmodul 2130, dem Grafikmodul 2132, der Audioschaltung 2110, dem Lautsprecher 2111, der HF-Schaltung 2108, dem Texteingabemodul 2134 und dem Browsermodul 2147 umfasst das Online-Video-Modul 2155 Anweisungen, die es dem Benutzer ermöglichen, auf Online-Videos zuzugreifen, sie zu durchsuchen, zu empfangen (z. B. durch Streamen und/oder Herunterladen), wiederzugeben (z. B. auf dem Touchscreen oder einem externen, über den externen Anschluss 2124 verbundenen Bildschirm), und auf andere Weise Online-Videos in einem oder mehreren Dateiformaten, wie etwa dem H.264/AVC-Format oder dem H.265/HEVC-Format, zu verwalten.
-
Jedes/jede der vorstehend aufgezeigten Module und Anwendungen entspricht einem Satz von ausführbaren Befehlen zum Ausführen einer oder mehrerer vorstehend beschriebener Funktionen und der in dieser Anmeldung beschriebenen Verfahren (z. B. der computerimplementierten Verfahren und anderer hierin beschriebener, informationsverarbeitender Verfahren). Diese Module (d. h. Sätze an Anweisungen) müssen nicht als separate Software-Programme, Vorgehensweisen oder Module implementiert werden, und somit können verschiedene Teilsätze dieser Module in verschiedenen Ausführungsformen kombiniert oder anderweitig neu angeordnet werden. In manchen Ausführungsformen kann der Speicher 2102 eine Teilmenge der oben aufgezeigten Module und Datenstrukturen speichern. Des Weiteren kann der Speicher 2102 zusätzliche Module und Datenstrukturen speichern, die vorstehend nicht beschrieben wurden.
-
In manchen Ausführungsformen handelt es sich bei der Vorrichtung 2100 um eine Vorrichtung, bei der das Betreiben eines vordefinierten Satzes von Funktionen auf der Vorrichtung ausschließlich durch einen Touchscreen und/oder ein Touchpad ausgeführt wird. Durch Verwenden eines Touchscreens und/oder Touchpads als primäre Eingabesteuerungsvorrichtung für den Betrieb der Vorrichtung 2100, kann die Anzahl der physischen Eingabesteuerungsvorrichtungen (wie etwa Drucktasten, Wählscheiben und dergleichen) auf der Vorrichtung 2100 verringert werden.
-
Der vordefinierte Satz von Funktionen, die ausschließlich durch einen Touchscreen und/oder ein Touchpad ausgeführt werden, kann das Navigieren zwischen Benutzerschnittstellen beinhalten. In manchen Ausführungsformen navigiert das Touchpad, wenn es vom Benutzer berührt wird, die Vorrichtung 2100 von jeglicher Benutzerschnittstelle, die auf der Vorrichtung 2100 angezeigt werden kann, zu einem Haupt-, Home- oder Hauptverzeichnismenü. In manchen Ausführungsformen kann das Touchpad als „Menütaste” bezeichnet werden. In einigen weiteren Ausführungsformen kann die Menütaste eine physische Drucktaste oder eine andere physische Eingabesteuerungsvorrichtung anstelle eines Touchpads sein.
-
19 veranschaulicht eine tragbare Multifunktionsvorrichtung 2100 mit einem Touchscreen 2112 gemäß manchen Ausführungsformen. Der Touchscreen kann eine oder mehrere Grafiken innerhalb der Benutzerschnittstelle (UI) 2200 anzeigen. In zumindest manchen Ausführungsformen einer Vorrichtung 2100 kann ein Benutzer eine oder mehrere der Grafiken auswählen, indem er eine Handbewegung an den Grafiken ausführt, beispielsweise mit einem oder mehreren Fingern 2202 (in der Figur nicht unbedingt maßstabsgetreu dargestellt) oder einem oder mehreren Eingabestiften 2203 (in der Figur nicht unbedingt maßstabsgetreu dargestellt).
-
Die Vorrichtung 2100 kann auch eine oder mehrere physische Tasten, wie etwa eine „Home”- oder eine Menütaste 2204, beinhalten. Wie zuvor beschrieben, kann die Menütaste 2204 dazu verwendet werden, zu einer beliebigen Anwendung 2136 in einem Satz von Anwendungen, die auf der Vorrichtung 2100 ausführbar sind, zu navigieren. Alternativ dazu ist in manchen Ausführungsformen die Menütaste als ein Softkey in einer GUI implementiert, die auf dem Touchscreen 2112 angezeigt wird.
-
In manchen Ausführungsformen umfasst die Vorrichtung 2100 einen Touchscreen 2112, eine Home- oder Menütaste 2204, eine Drucktaste 2206 zum Ein-/Ausschalten und zum Sperren der Vorrichtung, eine oder mehrere Lautstärkeregelungstaste(n) 2208, einen SIM-Kartenschlitz 2210 (SIM), einen Kopfhöreranschluss 2212 und einen externen Docking-/Auflade-Anschluss 2124. Die Drucktaste 2206 kann dazu verwendet werden, die Vorrichtung ein-/auszuschalten, indem die Taste gedrückt und über einen vordefinierten Zeitraum in der gedrückten Stellung gehalten wird, um die Vorrichtung zu sperren, indem die Taste gedrückt und wieder losgelassen wird, bevor der vordefinierte Zeitraum verstrichen ist, und/oder um die Sperre der Vorrichtung aufzuheben oder einen Entsperrvorgang einzuleiten. In einer alternativen Ausführungsform kann die Vorrichtung 2100 auch gesprochene Eingaben zur Aktivierung oder Deaktivierung einiger Funktionen durch das Mikrofon 2113 akzeptieren.
-
Die Vorrichtung 2100 kann auch eine oder mehrere Kameras 2164 beinhalten. Eine Kamera 2164 kann beispielsweise Fototransistoren mit ladungsgekoppelten Bauteilen (CCD) oder mit komplementären Metalloxid-Halbleitern (CMOS) beinhalten. Eine Kamera 2164 empfangt Licht aus der Umgebung, das durch eine oder mehrere Linsen projiziert wird, und wandelt das Licht in Daten um, die ein Bild oder ein Video-Frame darstellen. In manchen Ausführungsformen kann mindestens eine Kamera 2164 auf der Rückseite der Vorrichtung 2100, entgegengesetzt zur Touchscreen-Anzeige 2112 an der Vorderseite der Vorrichtung, angeordnet sein. In manchen Ausführungsformen kann stattdessen oder zusätzlich dazu mindestens eine Kamera 2164 beispielsweise auf der Vorderseite der Vorrichtung mit der Touchscreen-Anzeige 2112 angeordnet sein, sodass das Bild des Benutzers für Videokonferenzen erhalten werden können, während der Benutzer die anderen Teilnehmer der Videokonferenz auf dem Touchscreen-Anzeige 2112 sieht. In manchen Ausführungsformen kann mindestens eine Kamera 2164 auf der Vorderseite der Vorrichtung 2100 angeordnet sein, und mindestens eine Kamera 2164 kann auf der Rückseite der Vorrichtung 2100 angeordnet sein. In manchen Ausführungsformen kann die Touchscreen-Anzeige 2112 als Bildsucher und/oder Benutzeroberfläche für die Erfassung von Standbildern oder Videosequenzen verwendet werden.
-
Die Vorrichtung 2100 kann Video- und Bildverarbeitungs-Hardware und/oder -Software beinhalten, unter anderem Videocodier- und/oder Videodecodierkomponenten, Codecs, Module oder Pipelines, die verwendet werden können, um Standbilder und/oder Video-Frames oder Videosequenzen, die über die Kamera 2164 oder auf andere Weise erfasst wurden (z. B. über eine Netzwerkschnittstelle) aufzunehmen, zu verarbeiten, umzuwandeln, zu komprimieren, zu dekomprimieren, zu speichern, zu modifizieren, zu senden, anzuzeigen und auf andere Weise zu verwalten und zu manipulieren. In manchen Ausführungsformen kann die Vorrichtung 2100 auch einen oder mehrere Lichtsensoren beinhalten, die verwendet werden können, um Umgebungsbeleuchtungs- oder andere Messwerte aus der Umgebung der Vorrichtung 2100 zur Verwendung für die Video- und Bildaufnahme, -verarbeitung und -anzeige zu gewinnen.
-
Die hierin beschriebenen Verfahren können in Software, Hardware oder einer Kombination davon in verschiedenen Ausführungsformen implementiert werden. Außerdem kann die Reihenfolge der Blöcke der Verfahren geändert werden, und verschiedene Elemente können hinzugefügt, aufgezeichnet, kombiniert, weggelassen, modifiziert werden usw. Verschiedene Modifikationen und Änderungen können vorgenommen werden, wie dies für einen Fachmann, der sich dieser Offenbarung bedient, naheliegen würde. Die verschiedenen, hierin beschriebenen Ausführungsformen sollen veranschaulichend und nicht einschränkend sein. Es sind zahlreiche Variationen, Modifikationen, Erweiterungen und Verbesserungen möglich. Dementsprechend können für Komponenten, die hierin als einzelne Instanz beschrieben sind, mehrere Instanzen bereitgestellt werden. Grenzen zwischen verschiedenen Komponenten, Operationen und Datenspeicherungen sind in gewissem Maß willkürlich, und bestimmte Operationen sind im Kontext spezifischer, veranschaulichender Konfigurationen veranschaulicht. Andere Abbildungen von Funktionalitäten sind denkbar und können in den Umfang der folgenden Ansprüche fallen. Schließlich können Strukturen und Funktionalitäten, die in den Beispielkonfigurationen als diskrete Komponenten dargestellt werden, als eine kombinierte Struktur oder Komponente implementiert werden. Diese und andere Variationen, Modifikationen, Erweiterungen und Verbesserungen können in den Umfang der Ausführungsformen fallen, wie er in den folgenden Ansprüchen definiert ist.