DE102018103652A1 - Kachelwiederverwendung in der bilderzeugung - Google Patents

Kachelwiederverwendung in der bilderzeugung Download PDF

Info

Publication number
DE102018103652A1
DE102018103652A1 DE102018103652.3A DE102018103652A DE102018103652A1 DE 102018103652 A1 DE102018103652 A1 DE 102018103652A1 DE 102018103652 A DE102018103652 A DE 102018103652A DE 102018103652 A1 DE102018103652 A1 DE 102018103652A1
Authority
DE
Germany
Prior art keywords
tile
memory
unchanged
data
signature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018103652.3A
Other languages
English (en)
Inventor
Nikos Kaburlasos
Kinchit Desai
Sanjeev S. Jahagirdar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102018103652A1 publication Critical patent/DE102018103652A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)

Abstract

Hierin wird eine Vorrichtung zur Kachelwiederverwendung in der Bilderzeugung beschrieben. Die Vorrichtung einen Speicher, ein System zur zeilenbasierten Verarbeitung, ein System zur blockbasierten Verarbeitung und einen Kachelwiederverwendungsindikator. Der Speicher ist zum Ablegen von Bilderzeugungsdaten ausgebildet. Das System zur zeilenbasierten Verarbeitung ist zum Verarbeiten von Bilderzeugungsdatenzeilen und zum Ablegen der verarbeiteten Daten in einem Speicher ausgebildet, und das System zur blockbasierten Verarbeitung ist zum Verarbeiten von Blöcken der zeilenbasiert verarbeiteten Bilderzeugungsdaten und zum Ablegen der verarbeiteten Daten in einem Speicher ausgebildet. Der Kachelwiederverwendungsindikator ist zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten und als Reaktion auf eine ungeänderte Kachel zum Verhindern der Weiterverarbeitung der ungeänderten Kachel ausgebildet.

Description

  • Stand der Technik
  • Bei der Bildverarbeitung können Rohbilddaten aus einer Kamera über eine Vielzahl von Pixeln abgerufen werden. Die Pixel können zunächst zeilenweise in einem Speicher abgelegt werden. Jede Zeile kann als Abtastzeile bezeichnet werden, und die Anordnung der Pixel kann als Rasteranordnung bezeichnet werden. Die Bildweiterverarbeitung kann blockweise durchgeführt werden. In einer Videobildfolge, die eine Vielzahl von Einzelbildern umfasst, können ungeänderte Zeilen- sowie Blockteile vorkommen, etwa bei Uberwachungs- oder Videochat-Anwendungen.
  • Figurenliste
    • 1 ist ein Blockschema eines für Kachelwiederverwendungen bei der Bilderzeugung konfigurierten Computergeräts;
    • 2 ist ein System zur Bildverarbeitung (IPU);
    • 3 veranschaulicht Speicherbereiche;
    • 4 ist ein Ablaufschema für ein Verfahren zur Kachelwiederverwendung;
    • 5 ist ein Ablaufschema für ein Verfahren zur Kachelwiederverwendung in der Bilderzeugung; und
    • 6 ist ein Blockschema, das ein physisches, nichtflüchtiges, computerlesbares Medium, das Code zur Kachelwiederverwendung in der Bilderzeugung speichert, zeigt.
  • In der Offenbarung und den Figuren werden für Bezugnahmen auf gleiche Komponenten und Merkmale durchgehend dieselben Bezugszeichen verwendet. Bezugszeichen der 100-Reihe beziehen sich auf Merkmale, die ursprünglich in 1 vorkommen; Bezugszeichen der 200-Reihe beziehen sich auf Merkmale, die ursprünglich in 2 vorkommen; und so weiter.
  • Beschreibung der Ausführungsformen
  • Oft werden die Computerplattformen, die Bildverarbeitungshardware und -software enthalten, in Anwendungen verwendet, die eine Szene mit sehr wenig Bewegung von Einzelbild zu Einzelbild erfassen und rendern. Sehr wenig Bewegung von Einzelbild zu Einzelbild kann zum Beispiel in Videoüberwachungsanwendungen und Videokonferenzanwendungen vorkommen, in der Regel mit einem sich abhebenden dynamischen Teil und einem statischen Teil jedes Einzelbilds. In einer Videoüberwachungsanwendung wird möglicherweise dieselbe Szene wiederholt und mit sehr wenig Bewegung erfasst. Ähnlich kann in einer Videokonferenzanwendung ein Teil des Videos statisch sein und sich nicht ändern (etwa der Hintergrund), während ein anderer Teil der Anzeige, der speziell zum Rendern von Bildern von den Videokonferenzteilnehmern dient, dynamisch sein und sich ändern kann.
  • Unabhängig davon, welcher Anwendungsfall vorliegt, können Computerplattformen, die eine Bildverarbeitungseinheit (Image Processing Unit, IPU) enthalten, versuchen, den IPU-Leistungsverbrauch so niedrig wie möglich zu halten. Dadurch, dass der IPU-Leistungsverbrauch niedrig gehalten wird, kann die Wärmeabgabe durch die IPU geregelt und auf ein Minimum eingeschränkt werden. Darüber hinaus kann die Betriebsdauer des Akkus in batteriebetriebenen Computersystemen verlängert werden, indem der IPU-Leistungsverbrauch so niedrig wie möglich gehalten wird.
  • Die hierin beschriebenen Ausführungsformen ermöglichen Kachelwiederverwendungen in der Bilderzeugung. In Ausführungsformen wird ein statischer oder ungeänderter Teil einer Kachel nicht durch die Bilderzeugungs-Pipeline verarbeitet. Eine Kachel, wie hierin verwendet, bezieht sich auf einen Teil oder eine Untermenge von Bilddaten. Eine Kachel ist zum Beispiel möglicherweise eine Zeile von Bilderzeugungsdaten, die in einem Speicher in einem Raster abgelegt werden. Außerdem kann eine Kachel beispielsweise ein 16×16-Makroblock sein, der im Rahmen einer blockbasierten Bildverarbeitung zu verarbeiten ist. In Ausführungsformen kann eine Kachel ein Teil von Bilddaten sein, die pro Taktzyklus zu verarbeiten sind. Durch die vorliegenden Techniken werden diejenigen Kacheln des erfassten Bilds bestimmt, die zwischen aufeinanderfolgenden Einzelbildern oder zwischen einer Vielzahl von Einzelbildern statisch (ungeändert) bleiben. Dadurch, dass diese statischen (ungeänderten) Kacheln nicht verarbeitet werden, kann die Verlustleistung der IPU und des Speicher-Eingabe/Ausgabe(E/A)-Untersystems verringert werden. Folglich werden statische Kacheln in Ausführungsformen in der Bilderzeugungs-Pipeline so bald wie möglich nicht mehr weiterverarbeitet. Anstelle der statischen Kacheln kann eine letzte geänderte Kachel im Austausch genutzt oder wiederverwendet werden. Als dynamisch oder geändert gekennzeichnete Kacheln sind durch eine Bilderzeugungs-Pipeline der IPU zu verarbeiten.
  • In der folgenden Beschreibung und den Ansprüchen werden möglicherweise die Begriffe „gekoppelt“ und „verbunden“ sowie Ableitungen dieser Begriffe verwendet. Es versteht sich, dass diese Begriffe keine Synonyme füreinander sein sollen. Vielmehr kann „verbunden“ in bestimmten Ausführungsformen verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander sind. „Gekoppelt“ kann bedeuten, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt sind. „Gekoppelt“ kann aber auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, aber trotzdem zusammenwirken oder miteinander interagieren.
  • Manche Ausführungsformen sind in Hardware oder Firmware oder Software oder einer Kombination davon implementierbar. Manche Ausführungsformen sind auch als Befehle implementierbar, die in einem maschinenlesbaren Medium abgelegt sind und durch eine Computerplattform zur Durchführung der hierin beschriebenen Vorgänge gelesen und ausgeführt werden können. Ein maschinenlesbares Medium kann einen beliebigen Mechanismus zum Ablegen oder Übertragen von Informationen in einer durch eine Maschine, z. B. einen Computer, lesbaren Form enthalten. Ein maschinenlesbares Medium enthält zum Beispiel möglicherweise unter anderem einen Festwertspeicher (ROM); einen Arbeitsspeicher (RAM); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speicherbausteine; oder elektrische, optische, akustische oder sich anders ausbreitende Signale, z. B. Trägerwellen, Infrarotsignale, digitale Signale oder Schnittstellen, die Signale senden und/oder empfangen.
  • Eine Ausführungsform ist eine Implementierung oder ein Beispiel. Wird in der Patentbeschreibung auf „eine Ausführungsform“, „manche Ausführungsformen“, „verschiedene Ausführungsformen“ oder „andere Ausführungsformen“ Bezug genommen, bedeutet dies, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, das bzw. die in Verbindung mit den Ausführungsformen beschrieben wird, in mindestens manchen Ausführungsformen, jedoch nicht zwangsläufig in allen Ausführungsformen der Erfindungen enthalten ist. Die verschiedenen Nennungen „einer Ausführungsform“ oder „mancher Ausführungsformen“ beziehen sich nicht zwangsläufig alle auf dieselben Ausführungsformen. Elemente oder Aspekte einer Ausführungsform sind mit Elementen oder Aspekten einer anderen Ausführungsform kombinierbar.
  • Nicht alle Komponenten, Merkmale, Strukturen, Eigenschaften etc., die hierin beschrieben und veranschaulicht sind, müssen in einer bestimmten Ausführungsform oder bestimmten Ausführungsformen enthalten sein. Falls in der Patentbeschreibung steht, dass eine Komponente, ein Merkmal, eine Struktur oder eine Eigenschaft zum Beispiel „möglicherweise“ enthalten ist, enthalten sein „kann“ oder enthalten sein „könnte“, muss die betreffende Komponente, das betreffende Merkmal, die betreffende Struktur oder die betreffende Eigenschaft jedoch nicht unbedingt enthalten sein. Falls in der Patentbeschreibung oder den Patentansprüchen auf „ein“ Element Bezug genommen wird, bedeutet dies nicht, dass zwangsläufig nur ein solches Element vorhanden ist. Falls in der Patentbeschreibung oder den Patentansprüchen auf „ein zusätzliches“ Element Bezug genommen wird, wird dadurch nicht ausgeschlossen, dass auch mehr als ein solches zusätzliches Element vorhanden sein kann.
  • Es sei angemerkt, dass, obwohl manche Ausführungsformen unter Bezugnahme auf bestimmte Implementierungen beschrieben wurden, auch noch andere Implementierungen gemäß manchen Ausführungsformen möglich sind. Außerdem müssen der Schaltkreisaufbau und/oder die Reihenfolge von Schaltkreiselementen oder anderen Merkmalen, die in den Zeichnungen veranschaulicht und/oder hierin beschrieben sind, nicht unbedingt so sein, wie jeweils konkret veranschaulicht und beschrieben. Es sind noch viele weitere Aufbauten gemäß manchen Ausführungsformen möglich.
  • In jedem System, das in einer Figur gezeigt ist, können die Elemente in manchen Fällen je dasselbe Bezugszeichen oder auch unterschiedliche Bezugszeichen aufweisen, um darauf hinzudeuten, dass die dargestellten Elemente auch anders und/oder ähnlich ausgestaltet sein könnten. Jedoch ist ein Element möglicherweise so flexibel, dass es unterschiedlich implementiert werden und mit manchen oder auch allen der hierin gezeigten oder beschriebenen Systeme zusammenwirken kann. Die verschiedenen in den Figuren gezeigten Elemente können gleich oder unterschiedlich ausgestaltet sein. Welches von ihnen jeweils als erstes Element bezeichnet und welches zweites Element genannt wird, spielt keine Rolle.
  • 1 ist ein Blockschema eines für Kachelwiederverwendungen bei der Bilderzeugung konfigurierten Computergeräts 100. Das Computergerät 100 ist zum Beispiel möglicherweise unter anderem ein Laptop-Computer, ein Tablet-Computer, ein Mobiltelefon, ein Smartphone oder ein Wearable. Das Computergerät 100 kann auch ein System-on-Chip (SoC) sein. Das Computergerät 100 kann einen Zentralprozessor (CPU) 102, der zum Ausführen abgelegter Befehle konfiguriert ist, sowie einen Speicherbaustein 104, in dem durch die CPU 102 ausführbare Befehle abgelegt sind, enthalten. Die CPU kann über einen Bus 106 an den Speicherbaustein 104 gekoppelt sein. Außerdem kann die CPU 102 ein Einzelkernprozessor, ein Mehrkernprozessor, ein Computercluster oder auf beliebig viele andere Arten konfiguriert sein. Des Weiteren kann das Computergerät 100 auch mehr als nur eine CPU 102 enthalten. Der Speicherbaustein 104 kann einen Arbeitsspeicher (RAM), einen Festwertspeicher (ROM), einen Flash-Speicher oder beliebige andere geeignete Speichersysteme enthalten. Der Speicherbaustein 104 enthält zum Beispiel möglicherweise ein dynamisches RAM (DRAM).
  • Das Computergerät 100 enthält auch eine Bildverarbeitungseinheit (IPU) 108. Wie gezeigt, kann die CPU 102 über den Bus 106 an die IPU 108 gekoppelt sein. Die IPU 108 kann für die Durchführung beliebig vieler Bilderzeugungsvorgänge innerhalb des Computergeräts 100 konfiguriert sein. Die IPU 108 kann zum Beispiel konfiguriert sein, um Bilder, Videoeinzelbilder, Videos oder ähnliche Elemente, die einem Benutzer des Computergeräts 100 angezeigt werden sollen, zu rendern oder zu bearbeiten. In manchen Ausführungsformen enthält die IPU 108 etliche Bilderzeugungs-Engines, wobei jede Bilderzeugungs-Engine für die Durchführung spezieller Bilderzeugungsaufgaben oder für die Ausführung spezieller Workloads konfiguriert ist. Zum Beispiel kann die IPU 108 eine Engine enthalten, die Bilderzeugungsdaten zur Kachelwiederverwendung verarbeitet.
  • In Ausführungsformen kann die IPU eine Pipeline ausführen, die sowohl ein System zur zeilenbasierten Verarbeitung (Line Based Processing System, LBPS) 110 als auch ein System zur blockbasierten Verarbeitung (Block Based Processing System, BBPS) 112 umfasst. Beispielsweise kann die IPU Bilddaten aus einem Bilderfassungsmechanismus 114 abrufen, wobei die Bilddaten zeilenweise aus dem Bilderfassungsgerät abgerufen werden. Insbesondere kann aus dem Bilderfassungsmechanismus 114 eine Rohbilddatei abgerufen werden, wobei die Rohbilddatei Daten in voller Auflösung (in der Regel 12 oder 14 Bit), wie aus jedem der Kamerabildsensorpixel ausgelesen, beinhaltet. Ein LBPS 110 kann die Bilddaten zeilenweise verarbeiten und die verarbeiteten Daten im Speicher 104 ablegen. Für die anschließende Verarbeitung kann das BBPS 112 Bilddatenblöcke zur Weiterverarbeitung aus dem Speicher 104 abrufen. Nach einer blockbasierten Verarbeitung können die Bilddaten zur Weiterverwendung durch Bilderzeugungsanwendungen wieder im Speicher abgelegt werden.
  • Die CPU 102 kann über den Bus 106 mit einer Anzeigeschnittstelle 116 verbunden sein, die zum Verbinden des Computergeräts 100 mit einem oder mehreren Anzeigegeräten 118 konfiguriert ist. Die Anzeigegeräte 118 können einen Bildschirm enthalten, bei dem es sich um eine eingebaute Komponente des Computergeräts 100 handelt. Die Anzeigegeräte 118 können auch unter anderem einen Computermonitor, einen Fernseher oder einen Projektor enthalten, die je extern mit dem Computergerät 100 verbunden sind.
  • Die CPU 102 kann über den Bus 106 auch mit einer Eingabe/Ausgabe(E/A)-Geräteschnittstelle 120 verbunden sein, die zum Verbinden des Computergeräts 100 mit einem oder mehreren E/A-Geräten 122 konfiguriert ist. Die E/A-Geräte 120 können zum Beispiel eine Tastatur und ein Zeigegerät enthalten, wobei das Zeigegerät unter anderem ein Touchpad oder einen Touchscreen enthalten kann. Die E/A-Geräte 122 können eingebaute Komponenten des Computergeräts 100 oder Geräte sein, die extern mit dem Computergerät 100 verbunden sind.
  • Das Computergerät kann auch einen Datenträger 124 enthalten. Der Datenträger 124 ist ein physischer Speicher wie eine Festplatte, ein Laufwerk einer optischen Platte, ein Speicher-Stick, ein Laufwerk-Array oder beliebige Kombinationen davon. Im Datenträger 124 können Benutzerdaten wie unter anderem Audiodateien, Videodateien, Audio-/Videodateien und Bilddateien abgelegt werden. Im Datenträger 124 kann auch Programmiercode wie Gerätetreiber, Software-Anwendungen, Betriebssysteme und dergleichen abgelegt werden. Der im Datenträger 124 abgelegte Programmiercode kann durch die CPU 102, die IPU 108 oder beliebige andere Prozessoren, die im Computergerät 100 enthalten sein können, ausgeführt werden.
  • Die CPU 102 kann über den Bus 106 mit Mobilfunk-Hardware 126 verbunden sein. Die Mobilfunk-Hardware 126 kann Hardware für eine beliebige Mobilfunktechnik sein, zum Beispiel für den 4G-Standard (den von der ITU-R (International Telecommunications Union - Radiocommunication Sector) herausgegebenen Standard IMT-Advanced (International Mobile Telecommunications-Advanced)). Auf diese Weise kann das Computergerät 100 auf ein beliebiges Netz 132 zugreifen, ohne mit einem anderen Gerät über Tethering verbunden oder gepaart zu sein, wobei es sich bei dem Netz 132 um ein zellulares Funknetz handelt.
  • Die CPU 102 kann über den Bus 106 auch mit WiFi-Hardware 128 verbunden sein. Die WiFi-Hardware ist Hardware gemäß WiFi-Standards (den vom Institute of Electrical and Electronics Engineers herausgegebenen IEEE-802.11-Standards). Die WiFi-Hardware 128 ermöglicht, dass das Computergerät 100 gemäß dem Transmission Control Protocol/Internet Protocol (TCP/IP) mit dem Internet verbunden wird, wobei das Netz 132 das Internet ist. Demzufolge kann das Computergerät 100 eine Endezu-Ende-Konnektivität mit dem Internet ermöglichen, indem es Daten gemäß dem TCP/IP-Protokoll adressiert, routet, überträgt und empfängt, ohne dass dabei ein weiteres Gerät verwendet wird. Außerdem kann eine Bluetooth-Schnittstelle 130 über den Bus 106 an die CPU 102 gekoppelt sein. Die Bluetooth-Schnittstelle 130 ist eine Schnittstelle für (auf dem von der Bluetooth Special Interest Group herausgegebenen Bluetooth-Standard basierende) Bluetooth-Netze. Die Bluetooth-Schnittstelle 130 ermöglicht die Paarung des Computergeräts 100 mit anderen Bluetooth-fähigen Geräten über ein Personal Area Network (PAN). Demzufolge kann das Netz 132 ein PAN sein. Zu Bluetooth-fähigen Geräten zählen beispielsweise unter anderem ein Laptop-Computer, ein Desktop-Computer, ein Ultrabook, ein Tablet-Computer, ein mobiles Gerät oder ein Server.
  • Das Blockschema von 1 ist nicht so zu verstehen, dass das Computergerät 100 alle der in 1 gezeigten Komponenten enthalten muss. Vielmehr kann das Computersystem 100 auch weniger oder noch mehr Komponenten, welche nicht in 1 veranschaulicht sind, enthalten (z. B. Sensoren, Power Management Integrated Circuits, zusätzliche Netzschnittstellen etc.). Das Computergerät 100 kann abhängig von den Einzelheiten der speziellen Implementierung beliebig viele zusätzliche, in 1 nicht gezeigte Komponenten enthalten. Des Weiteren können beliebige der Funktionalitäten der CPU 102 teilweise oder ganz in Hardware und/oder in einem Prozessor implementiert sein. Zum Beispiel kann die Funktionalität mit einer anwendungsspezifischen integrierten Schaltung, in Logik, die in einem Prozessor implementiert ist, in Logik, die in einem speziellen Grafikprozessor implementiert ist, oder in einem beliebigen anderen Gerät implementiert werden.
  • In etlichen Bilderzeugungsanwendungen bleiben Teile der Bilder, die durch eine Kamera erfasst und durch die IPU verarbeitet werden, von Einzelbild zu Einzelbild oft statisch. Zum Beispiel überwacht das oben erwähnte Videoüberwachungssystem zu Sicherheitszwecken ein Gebäude innen oder außen und erfasst dabei oft über einen längeren Zeitraum wiederholt das gleiche Innen- oder Außenbild, während in den erfassten Bildern nur wenig oder gar keine Bewegung (Dynamik) stattfindet. In einem anderen Beispiel enthalten Bilder, die für die Videokonferenzanwendung erfasst wurden, die Gestalt eines Menschen, der vor einem statischen (sich nicht ändernden, unbewegten) Hintergrund spricht. Durch die vorliegenden Techniken wird unter Verwendung des statischen Teils jedes Bilds bestimmt, welche Kacheln innerhalb jedes Einzelbilds bei der Weiterverarbeitung zu eliminieren sind. Diese Informationen werden verwendet, um sowohl den Umfang der in der IPU erfolgenden Verarbeitung sowie die Menge der zwischen der IPU und dem Systemspeicher transferierten Daten zu verringern, wodurch auch die System-on-Chip(SOC)-Verlustleistung verringert wird. In Ausführungsformen werden ungeänderte/statische Kacheln selbst bei Vorhandensein von Rauschen in den Bilderzeugungsdaten bestimmt. Rauschen ist in der Regel immer in erfassten Bildern vorhanden. Selbst wenn die Kamera eine Vielzahl von Einzelbildern in einer vollkommen statischen Umgebung erfasst, ändern sich infolge des Rauschens dennoch manche Pixel von einem Einzelbild zum nächsten. Durch die vorliegenden Techniken werden bei Vorhandensein von Rauschen der Umfang der IPU-Verarbeitung sowie der eingehende/ausgehende Verkehr (E/A-Verkehr) von sonst statischen, erfassten Bildern verringert. Demzufolge können die vorliegenden Techniken auf Rohbilddaten angewendet werden, bevor eventuell eine Rauschbeseitigung durchgeführt wird oder die Rohbilddaten verarbeitet werden.
  • 2 ist ein System zur Bildverarbeitung (IPU) 200. Bilder werden durch eine Kamera 202 erfasst und an ein System zur zeilenbasierten Verarbeitung (LBPS) 204 übertragen, das pro Taktzyklus eine Zeile (oder ein paar Zeilen) von Bilderzeugungsdaten verarbeitet. In Ausführungsformen verarbeitet das LBPS 204 pro Taktzyklus eine Kachel. Das LBPS 204 ermöglicht eine Verarbeitung von Pixeldaten in einem Raster aus der Kamera 202. Nach einer zeilenweisen Verarbeitung am Block 204 können die verarbeiteten Zeilen in einem Speicher 206 abgelegt werden.
  • In Ausführungsformen können die Bilderzeugungsdaten die Form von Pixeln haben. In manchen Fällen wird jedes durch die Kamera 202 erfasste Pixel durch mehrere Komponenten dargestellt. Zum Beispiel werden Pixeldaten im YUV-Farbmodell durch eine Luminanzkomponente (Y) und zwei Chrominanzkomponenten (UV) dargestellt. In einem RGB-Farbmodell wird jedes Pixel durch eine rote Komponente (R), eine grüne Komponente (G) und eine blaue Komponente (B) dargestellt. Verschiedene Speicherschemata können vorgeben, wie jede Pixelkomponente abgelegt wird. Zum Beispiel kann das YUV-Farbmodell gemäß einem NV12- oder YV12-Schema abgelegt werden.
  • In Ausführungsformen tastet der Bildsensor der Kamera 202 in der Regel Pixel in einem Raster ab und tastet dabei eine ganze Zeile ab, bevor der Bildsensor zur nächsten Zeile übergeht. Folglich verarbeitet das LBPS 204 nicht Blöcke, sondern Zeilen des erfassten Bilds. Die zeilenbasierte Verarbeitung kann Vorgänge wie Normalisieren, Linearisieren, Korrigieren durch eine Schwarzmaske (Optical Black), Beseitigen von Rauschen und dergleichen enthalten. Am Ausgang des LBPS werden verarbeitete Zeilen im Systemspeicher 206 abgelegt. Ein System zur blockbasierten Verarbeitung (BBPS) 208 kann verschieden große Blöcke zur Durchführung einer Weiterverarbeitung aus dem Speicher 206 auslesen. In Ausführungsformen ist ein Block möglicherweise ein Pixelblock von einer beliebigen Größe wie 70 Pixel × 40 Pixel. Die blockbasierte Verarbeitung enthält Vorgänge wie geometrische Entzerrungen (GDC), zeitliche Rauschreduktionen (TNR), eine Endstufenverarbeitung und dergleichen, ist jedoch nicht darauf beschränkt. Die verarbeiteten Daten in Blockform werden in einem Systemspeicher 210 der Pipeline 200 abgelegt. Nach dem Ablegen im Systemspeicher 210 können die verarbeiteten Daten in Einzelbilder aufgeteilt werden, die dafür zur Verfügung stehen, um von einem Einzelbildkonsumenten am Block 214, etwa einer Bilderzeugungsanwendung, konsumiert zu werden. Zu weiteren Einzelbildkonsumenten zählen eine Media Engine oder eine Computer Vision Engine.
  • In manchen Fällen können die Einzelbilder in einem Puffer 212 abgelegt werden. Abhängig vom Pufferungsschema kann der Puffer 212 eine Vielzahl von Puffern umfassen, etwa einen Puffer 212A und einen Puffer 212B. In Ausführungsformen rufen Anwendungen, welche die Einzelbilddaten konsumieren, die Einzelbilddaten aus der Vielzahl von Puffern ab. Wenn die IPU zum Beispiel aktuell den Einzelbildpuffer 212A mit neuen Pixeln füllt, wird der zuvor erzeugte Einzelbildpuffer 212B vom Konsumenten am Block 214 konsumiert. Bei einem Doppelpufferungsschema werden die Puffer 212A und 212B regelmäßig gegeneinander ausgetauscht, damit die IPU, sobald sie ein Einzelbild 1 aus dem Puffer 212A erzeugt hat, beginnt, den Puffer 212B wieder mit neuen Pixeln zu füllen, während der Konsument den Puffer 212A konsumiert. Wenn die IPU den Puffer 212B gefüllt hat, macht sie ihn für den Konsumenten 214 verfügbar und beginnt dann, das nächste Einzelbild in den Puffer 212A zurückzuschreiben, etc. Die vorliegenden Techniken können zusammen mit einer Doppelpufferung, einer Dreifachpufferung, einer Vierfachpufferung und dergleichen verwendet werden.
  • 3 veranschaulicht einen Speicher 300. In 3 zeigen die Speicherbereiche eine Anzahl von unterschiedlich großen Kacheln. Insbesondere kann ein Einzelbild in unterschiedlich große Kacheln, die sowohl Zeilen als auch Blöcke enthalten, aufgeteilt sein. Sowohl Zeilen als auch Blöcke, wie hierin verwendet, sind unterschiedlich große Kacheln. Zum Beispiel kann eine Zeile eines Einzelbilds mit der Größe 1920 Pixel × 1080 Pixel eine Kachel mit den Abmessungen 1920 Pixel × 1 Pixel sein, während hingegen ein Block eines Einzelbilds eine Kachel mit den Abmessungen 16 Pixel × 16 Pixel sein kann. 3 veranschaulicht eine Zeile 302, die überall mit Punkten versehen ist. Wie bereits erwähnt, verarbeitet das LBPS 204 (2) jeweils eine oder mehrere Zeilen, während das BBPS 208 (2) Blöcke verarbeitet. 3 veranschaulicht einen Block 304 mit einer Kreuzschraffur.
  • Durch die vorliegenden Techniken wird identifiziert, welche Kacheln (Zeilen oder Blöcke) in einem erfassten Einzelbild sich gegenüber dem vorher erfassten Einzelbild nicht geändert haben. Wenn eine Kachel als ,sich nicht ändernd' markierbar ist, kann das LBPS oder das BBPS diese Kachel bei der Verarbeitung auslassen, da es Informationen, die diese Kachel abdeckt, zuvor bereits verarbeitet hat. In Ausführungsformen können die ungeänderten Kacheln dank der Markierung in der Bildverarbeitungs-Pipeline verfolgt werden. Folglich wird die letzte verarbeitete, ungeänderte Kachel so lange wiederverwendet, bis eine Änderung an dieser Kachel erkannt wird. So wird ausgeschlossen, dass Szenen oder Teile von Szenen, die sich nicht geändert haben, wiederholt verarbeitet werden. Falls sich in Ausführungsformen eine Kachel eines neuen Einzelbilds N gegenüber der gleichen Kachel eines Einzelbilds N-2 (also zwei Einzelbilder vorher) nicht geändert hat, muss die IPU deshalb diese ungeänderte Kachel nicht in den Einzelbildpuffer (Einzelbildpuffer 212A oder 212B in 2) zurückschreiben, welchen sie gerade mit zusätzlichen Bilderzeugungsdaten ein Doppelpufferungsschema füllt. Das Einzelbild muss nicht in den Einzelbildpuffer geschrieben werden, da die Kachel in diesem Einzelbildpuffer bereits zwei Einzelbilder vorher erzeugt wurde und im betreffenden Einzelbildpuffer bereits verfügbar ist. Folglich wird das Einzelbild N-2 bei Bedarf wiederholt oder wiederverwendet, ohne dieselben ungeänderten Daten dabei nochmals zu übertragen.
  • In Ausführungsformen wird eine Kachel so früh wie möglich in einer Bildverarbeitungs-Pipeline als ungeänderte Kachel gekennzeichnet. In Ausführungsformen wird die Kachel als ungeändert gekennzeichnet, bevor die Rohbilddaten in irgendeiner Weise verarbeitet werden. Je früher die Festlegung als ungeänderte Kachel erfolgt, desto geringer ist der Verarbeitungsaufwand in der Pipeline für sich nicht ändernde Kacheln. Wird frühzeitig angegeben, dass es sich bei einer Kachel um eine ungeänderte Kachel handelt, hat dies ferner zur Folge, dass bei der Verarbeitung weniger Leistung verbraucht wird und weniger Verlustleistung entsteht, weil weniger Kacheln verarbeitet werden. In Ausführungsformen ist es aus verschiedenen praktischen Gründen möglicherweise angebracht, die Suche nach ungeänderten Kacheln erst später in der Verarbeitungs-Pipeline durchzuführen. Zum Beispiel wird bei einer Implementierung möglicherweise vorgezogen, dass an den Einzelbildzeilen, die durch den Sensor erfasst und dem LBPS zugeführt werden, zuerst eine Rauschbeseitigung durchgeführt wird, bevor erkannt wird, ob sich die Zeilen gegenüber einem vorherigen Einzelbild geändert haben. In diesem Beispiel würden die LBPS-Verarbeitung und die LBPS-Verlustleistung nur zum Teil (sowie die BBPS-Verlustleistung insgesamt) abgespeichert, wenn statische (sich nicht ändernde) Zeilen erfasst werden. In manchen Implementierungen werden die vorliegenden Techniken möglicherweise am BBPS-Backend der IPU-Pipeline, jedoch nicht am LBPS-Frontend angewendet.
  • Die Definition einer geänderten Kachel kann von Implementierung zu Implementierung unterschiedlich sein. Nach einer ersten Definition hat sich eine Kachel im engeren Sinne „nicht geändert“, wenn die Pixelwerte aller Pixel in der Kachel im aktuellen Einzelbild N genau denjenigen im Einzelbild, das für den Vergleich verwendet wird, entsprechen, etwa im Einzelbild N-2. In Ausführungsformen sind die Pixelwerte beliebige Werte aus einem Farbmodell, das auf einzelne Pixel angewendet wird, etwa RGB-Werte oder YUV-Werte. Nach dieser ersten Definition eines ungeänderten Pixels ergeben sich möglicherweise falsche Anzeigewerte, und es werden eventuell sogar Kacheln fälschlich als geänderte Kacheln angezeigt, denn Rauschen kann in einem Bilderzeugungssystem immer auftreten. Das Rauschen führt zu Pixeln, die sich immer ändern werden, sogar wenn im erfassten Bild gar keine Bewegung stattfindet. Das Rauschen sowie andere relativ kleine Änderungen von Pixelwerten von ein paar Pixeln in einer Kachel werden beim Betrachten des Bilds in der Regel nicht bemerkt.
  • Es sei zum Beispiel angenommen, dass eine Kachel (Zeile) die Größe 1920 Pixel × 1 Pixel hat und jedes Pixel darin aus drei 8-Bit-RGB-Werten besteht, die von 0 bis 255 reichen. Wenn sich zum Beispiel die Werte von 20 bis 30 Pixeln in dieser Zeile um höchstens 5 ändern, wird diese Änderung der Pixelwerte in der Kachel von einem Benutzer kaum wahrgenommen. Wenn sich folglich ein bestimmter Pixelwert von R=100 in R=95 oder R=105 ändert, kann diese Pixelwertänderung vom menschlichen Auge gewöhnlich nicht erkannt werden. Mithin kann eine Kachel nach einer zweiten Definition auch ungeändert sein, wenn infolgedessen, dass der Prozentanteil der Pixel der Kachel in einem Bereich bzw. unter einem Schwellenwert (T2) liegt, eine Pixelwertänderung dieser Pixel in einem ersten Bereich bzw. unter einem ersten Schwellenwert (T1) liegt. Die Schwellenwerte können für Vergleiche einer aktuellen Kachel in einem aktuellen Einzelbild mit einer gleichen Kachel in einem anderen Einzelbild verwendet werden, wobei es sich bei der gleichen Kachel um eine Kachel handelt, die sich am gleichen Ort bzw. an den gleichen Koordinaten wie die aktuelle Kachel befindet.
  • In einem weiteren Beispiel sei angenommen, dass eine Kachel die Größe 1920 Pixel × 1 Pixel hat und als Schwellenwerte T1=5 Pixelwerte und T2=2% festgesetzt sind. Ändern sich die Werte für RGB von weniger als 2% der 1920 Pixel in der 1920 Pixel × 1 Pixel großen Kachel um weniger als 5 Pixelwerte zwischen zwei zum Vergleich ausgewählten Einzelbildern (wobei die zum Vergleich ausgewählten Einzelbilder vom Pufferungsschema abhängig sind), kann es sich bei dieser Kachel um eine sich nicht ändernde, statische Kachel handeln. Ändern sich die Werte für RGB von weniger als 2% der 1920 Pixel in der 1920 Pixel × 1 Pixel großen Kachel um mehr als 5 Pixelwerte zwischen zwei zum Vergleich ausgewählten Einzelbildern, kann die Kachel trotzdem noch als eine sich nicht ändernde, statische Kachel angesehen werden, da die Zahl der Pixel, die sich relativ stark geändert haben, gering ist. Ändern sich die Werte für RGB von mehr als 2% der 1920 Pixel in der 1920 Pixel × 1 Pixel großen Kachel um weniger als 5 Pixelwerte zwischen zwei zum Vergleich ausgewählten Einzelbildern, kann die Kachel als eine sich nicht ändernde, statische Kachel angesehen werden, da die Pixelwertänderung, die erfolgt ist, minimal ist, auch wenn die Zahl der Pixel, die sich geändert haben, relativ groß ist. In Tabelle 1 wird die Beziehung zwischen den Schwellenwerten T1/T2 und der resultierenden Kachelkennzeichnung näher beschrieben.
    Schwellenwert T1 Pixelwert Schwellenwert T2 Prozentanteil/Pixelzahl Kachelkennzeichnung
    Größer als T1 Größer als T2 Geänderte Kachel
    Größer als T1 Kleiner als T2 Ungeänderte Kachel
    Kleiner als T1 Größer als T2 Ungeänderte Kachel
    Kleiner als T1 Kleiner als T2 Ungeänderte Kachel
  • Wie durch Tabelle 1 veranschaulicht, kann folglich eine erste Zahl von geänderten Pixeln einer aktuellen Kachel, die geänderte Pixelwerte aufweist, bestimmt werden. Durch die erste Zahl von geänderten Pixeln kann bestimmt werden, wie viele Kacheln geänderte Pixelwerte im Vergleich zu einer vorherigen Kachel aufweisen. Danach kann ein Prozentanteil der aktuellen Kachel, deren geänderte Werte über einem ersten Schwellenwert liegen, bestimmt werden. In Ausführungsformen stellt dies den Prozentanteil derjenigen Kachel dar, in der eine Änderung vorliegt, die das menschliche Auge wahrnehmen kann. Die Kachel kann als Reaktion darauf, dass dieser Prozentanteil größer als ein zweiter Schwellenwert ist, als geändert markiert werden. Der zweite Schwellenwert kann die Zahl von Pixeln sein, bei der eine Änderung dieser Pixel vom menschlichen Auge erkannt werden kann.
  • In Ausführungsformen kann anhand der Pixeländerung eine Signatur pro Kachel generiert werden. Die Kachelsignaturen können verglichen werden, um zu bestimmen, ob sich eine Kachel geändert hat. Insbesondere kann eine Signatur mittels der Pixelwerte in einer Prüfsummen- oder Hashfunktion generiert werden. In Ausführungsformen werden in der Prüfsummen- oder Hashfunktion nur geänderte Pixel verwendet.
  • 4 ist ein Ablaufschema für ein Verfahren 400 zur Kachelwiederverwendung. Jedes neue Einzelbild N wird am Block 402 eingegeben. Für jedes neue Einzelbild N, das am Eingang der IPU ankommt, können alle Kacheln (Zeilen oder Blöcke) im Einzelbild abgetastet werden. Am Block 404 wird für jede Kachel Tj eines Einzelbilds 1 eine Signatur generiert. In Ausführungsformen wird die Signatur unter Verwendung von aus der Kamera oder dem Bildsensor stammenden Rohdatenzeilen generiert, welche dem LBPS zugeführt werden, bevor die Kacheln in irgendeiner Weise verarbeitet werden. In manchen Fällen wird die Signatur erst generiert, nachdem die Kacheln geringfügig verarbeitet worden sind, etwa durch eine Rauschbeseitigungsfunktion.
  • In Ausführungsformen ist die Signatur eine mathematische Funktion, die den Umfang einer Änderung darstellt, die an den Pixeln einer Kachel zwischen einem Einzelbild N-2 und einem Einzelbild N erfolgt ist. Die Signatur zeichnet sich allgemein dadurch aus, dass erstens die Signatur einer ,großen' Kachel, z. B. einer 1920 Pixel × 1 Pixel großen Zeile, nur ein paar Bytes lang ist. Zweitens resultieren aus kleinen bzw. großen Änderungen der Kachelpixelwerte für RGB (bzw. YUV) kleine bzw. große Signaturwertänderungen, das heißt, es kann davon ausgegangen werden, dass kleine bzw. große Signaturwertänderungen kleine bzw. große Kacheländerungen darstellen. Beispielsweise kann eine Signaturfunktion eine Funktion sein, die einen Durchschnitt und eine Standardabweichung der Pixelwerte in jeder Kachel kombiniert. Für jeden der Pixelwerte für RGB - bzw. YUV - können separate Signaturen vorliegen. Die Qualität einer Signaturfunktion ist sowohl anhand ihrer Größe als auch ihrer Anpassbarkeit bestimmbar. Die Größe der Funktion bezieht sich auf das Merkmal, dass Signaturwerte so klein sind, dass sie einfach in lokalen IPU-Cachespeichern abgelegt werden können, damit Signaturwerte nicht aus dem Systemspeicher geholt werden müssen. Die Anpassbarkeit der Funktion bezieht sich darauf, wie zuverlässig kleine bzw. große Signaturwertänderungen sich kleinen bzw. großen Änderungen von Werten für RGB (bzw. YUV) in einer Kachel tatsächlich zuordnen lassen.
  • Sobald die Signatur einer Kachel kalkuliert worden ist, wird sie am Block 406 mit der Signatur der gleichen Kachel zwei Einzelbilder vorher verglichen. Beispielsweise sei angenommen, dass im Systemspeicher zwei Einzelbildpuffer B1 und B2 vorhanden sind und die verarbeiteten Einzelbilddaten zwischen den zwei Puffern gegeneinander ausgetauscht werden. Während die IPU das Einzelbild N erfasst und verarbeitet sowie im Puffer B2 im Speicher ablegt, verarbeitet irgendeine andere Engine (z. B. eine Video-Engine oder eine Display-Engine) das Einzelbild N-1, welches die IPU zuvor erfasst und im Puffer B1 abgelegt hat. Wenn die IPU daraufhin das nächste Einzelbild N+1 erfasst, speichert sie das Einzelbild N+1 im Puffer B1 (was als Buffer Flipping bekannt ist), während die Video-Engine oder die Display-Engine gleichzeitig das im Puffer B2 abgelegte Einzelbild N konsumiert. Die IPU vergleicht Kacheln im neuen Einzelbild N+1 mit den gleichen Kacheln im Einzelbild N-1 (also zwei Einzelbilder vorher), welche bereits im Puffer B1 abgelegt sind. Wenn sich die Kacheln nicht geändert haben, muss die IPU sie nicht in das Einzelbild B1 kopieren (beim Kopieren von Daten in einen Puffer im Speicher wird Leistung verbraucht), sondern wird stattdessen die im Puffer B1 im Systemspeicher bereits vorhandenen Kacheln wiederverwenden. Beim Doppelpufferungsschema kann die IPU die Einzelbilder N+1 und N (also ein Einzelbild vorher) nicht einsetzen, weil das Einzelbild N bereits von der Video-Engine oder der Display-Engine konsumiert wird und die IPU in dieser Zeit auf dieses nicht zugreifen oder dieses nicht beeinträchtigen soll.
  • Am Block 408 wird basierend auf dem Signaturvergleich bestimmt, ob sich die Kachel Tj geändert hat. Wenn aus der Signatur eine Änderung hervorgeht und die Änderung ein vorbestimmtes Delta unterschreitet, wird die Kachel als nicht geändert markiert, verarbeitet die IPU diese Kachel nicht weiter und wird die Kachel nicht in den Speicher zurückgeschrieben (da sie bereits im Wechselpuffer im Systemspeicher verfügbar ist), und bei der Verarbeitung wird zum Block 412 übergegangen. Die Verarbeitung kann an verschiedenen Stellen in der Verarbeitungs-Pipeline beendet werden, etwa am LBPS oder am BBPS. Wenn sich die Kachel am Block 408 geändert hat, weil die Änderung ein vorbestimmtes Delta überschreitet, wird bei dem Ablauf zum Block 410 übergegangen. Am Block 410 wird die Kachel durch die IPU verarbeitet (und im Systemspeicher abgelegt).
  • Gemäß der Beschreibung der Blöcke 404-410 werden geänderte/ungeänderte Kacheln anhand der Signatur bestimmt, jedoch kann auch anhand der Schwellenwerte T1/T2 bestimmt werden, ob es sich bei Kacheln um geänderte oder ungeänderte Kacheln handelt. Am Block 404 können die Zahl oder der Prozentanteil der geänderten Pixel nebst dem Umfang der Änderung dieser Pixel bestimmt werden. Am Block 406 können die Schwellenwerte mit dem Prozentanteil der geänderten Pixel und der Zahl der geänderten Pixel für jedes Pixel verglichen werden. Am Block 408 kann basierend auf dem Vergleich mit den Schwellenwerten T1/T2, wie in Tabelle 1 beschrieben, bestimmt werden, ob sich die Kachel Tj geändert hat. Wenn sich die Kachel basierend auf den Schwellenwerten nicht geändert hat, wird bei dem Ablauf zum Block 412 übergegangen. Wenn sich die Kachel basierend auf den Schwellenwerten hingegen geändert hat, wird bei dem Ablauf zum Block 410 übergegangen.
  • Am Block 412 wird bestimmt, ob im Einzelbild N mehr Kacheln vorhanden sind. Wenn im Einzelbild N mehr Kacheln vorhanden sind, wird bei dem Ablauf zum Block 414 übergegangen. Wenn im Einzelbild N nicht mehr Kacheln vorhanden sind, wird bei dem Ablauf zum Block 416 übergegangen. Am Block 414 wird die nächste Kachel Tj im Einzelbild N gelesen, woraufhin bei dem Ablauf zum Block 404 zurückgekehrt wird. Am Block 416 wird der Ausgabeeinzelbildpuffer ausgetauscht, woraufhin bei dem Ablauf zum Block 402 zurückgekehrt wird, an dem das nächste Einzelbild N am LBPS oder am BBPS eingegeben wird. Mit anderen Worten, während die GPU oder die IPU ein neues Einzelbild N im Puffer B2 im Systemspeicher erzeugt, konsumiert möglicherweise gerade ein anderer Client (z. B. eine Display-Engine oder eine Video-Engine) das Einzelbild N-1, welches die GPU oder die IPU zuvor erzeugt und in einem Puffer B1 im Systemspeicher abgelegt hat. Nach dem Einzelbild N tauscht die GPU oder die IPU die Puffer B1 und B2 gegeneinander aus und beginnt daraufhin, ein neues Einzelbild N+1 zu erzeugen und im Puffer B1 abzulegen, während die Video-Engine oder die Display-Engine das im Puffer B2 abgelegte Einzelbild N konsumiert. Beim nächsten Einzelbild tauscht das Betriebssystem die Puffer B1 und B2 erneut gegeneinander aus. In Ausführungsformen können auch mehr als zwei Puffer (B1, B2, B3 etc.) zum Ablegen gerenderter oder erfasster Einzelbilder verwendet werden.
  • In Ausführungsformen können Zeilen jedes Roheinzelbilds N (so wie sie am Sensor erfasst und an das IPU-Frontend weitergeleitet werden) im Systemspeicher abgelegt werden. Wenn das Einzelbild N+2 später erfasst wird, werden Rohdatenzeilen des Einzelbilds N aus dem Speicher geholt und pixelweise mit den Rohdatenzeilen des aktuellen Einzelbilds N verglichen, um festzustellen, ob sich die Pixel geändert haben. Wenn sich die Pixel geändert haben, werden sie durch die IPU-Pipeline übertragen und normal verarbeitet. Sonst müssen die Rohdatenzeilen nicht durch die Pipeline verarbeitet werden, da sie zuvor (im Einzelbild N) verarbeitet wurden und in verarbeiteter Form im Systemspeicher bereits verfügbar sind sowie von dort wiederverwendet werden können. Funktional käme dieses Schema dem Ablauf in 4 gleich, allerdings kann, wenn Kacheln aus dem Einzelbild N+2 aus dem Speicher in die IPU geholt werden, um einen Kachelvergleich durchzuführen, zusätzlicher eingehender/ausgehender Datenverkehr (E/A-Datenverkehr) entstehen, wodurch die gesamte Leistungsverringerung, die nach den vorliegenden Techniken möglich ist, weiter verringert würde. In Ausführungsformen kann die E/A-Datenverkehrslast dadurch gesenkt werden, dass im Speicher keine Roheinzelbilder mit voller Auflösung, sondern einem Down-Sampling unterzogene Roheinzelbilder mit niedrigerer Auflösung abgelegt werden. In Ausführungsformen ist Down-Sampling im Wesentlichen ein Unterfall der Kalkulation einer Signaturfunktion.
  • In Ausführungsformen werden einem Down-Sampling unterzogene Kacheln der Roheinzelbilder N und N+2 miteinander verglichen, um eine Bewegung zwischen den Kacheln zu erkennen. Wenn der Vergleich dieser einem Down-Sampling unterzogenen Kacheln der Roheinzelbilder eine Bewegung (sich ändernde Kacheln) angibt, werden die ursprünglichen Kacheln mit voller Auflösung durch die IPU-Pipeline übertragen und normal verarbeitet. Sonst würden die Kacheln mit voller Auflösung nicht zur Verarbeitung durch die IPU-Pipeline übertragen, da sie zuvor (im vorherigen Einzelbild N) verarbeitet wurden und in verarbeiteter Form im Systemspeicher bereits verfügbar sind. Werden keine Kacheln mit voller Auflösung, sondern einem Down-Sampling unterzogene Kacheln verglichen, können Bewegungen zwischen Kacheln erkannt werden (es können also sich ändernde Kacheln identifiziert werden), während keine Leistung bei Verschiebungen bei hoher E/A-Bandbreite in den Speicher bzw. aus dem Speicher verbraucht wird. In Ausführungsformen führt das Down-Sampling dazu, dass zum Beispiel aus acht Pixeln ein einziges Pixel als Durchschnitt ermittelt wird. Es ist zu beachten, dass das Down-Sampling von Kacheln eines Einzelbilds im Wesentlichen ein Unterfall der Berechnung einer Signaturfunktion für die Kacheln des Einzelbilds ist, um zu prüfen, ob sich die Zeiten gegenüber einem vorherigen Einzelbild geändert haben oder nicht, wie zuvor beschrieben. Das Down-Sampling von Pixeln einer Kachel geht gewöhnlich damit einher, dass irgendein Wert für den Durchschnitt aus benachbarten Pixeln innerhalb einer Kachel kalkuliert wird, mithin ist Down-Sampling im Wesentlichen ein (einfacher) Unterfall einer kachelpixelübergreifenden Signaturfunktionsberechnung.
  • 5 ist ein Ablaufschema für ein Verfahren 500 zur Kachelwiederverwendung in der Bilderzeugung. Am Block 502 ist ein Bilderfassungsmechanismus zum Erfassen von Bilderzeugungsdaten ausgebildet. Die Bilderzeugungsdaten können in einem Speicher abgelegt werden. In Ausführungsformen ist der Speicher ein Multibank Memory. Am Block 504 werden sich nicht ändernde, statische Kacheln als ungeändert markiert. Die ungeänderten Kacheln können anhand der Schwellenwerte T1/T2, einer Signatur oder einer beliebigen Kombination davon bestimmt werden. Am Block 506 wird von Konsumenten die letzte Kachel ohne Änderungen als Reaktion darauf, dass sie als ungeändert markiert ist, wiederverwendet. In Ausführungsformen wird anstelle der ungeänderten Einzelbilder ein Platzhalter verwendet. Der Platzhalter kann auf ein Einzelbild zeigen, das beim Vergleich zum Bestimmen eines ungeänderten Einzelbilds verwendet wird. Wenn ein Konsument Bilddaten anfordert, kann der Zeiger zum Angeben der Daten verwendet werden, die zum Verringern der Menge der an den Konsumenten zu übertragenden Daten wiederzuverwenden sind. Zu Konsumenten zählen, ohne darauf beschränkt zu sein, Video-Anwendungen, eine Media Engine oder eine CVE. Auf diese Weise werden geänderte Einzelbilder durch das LBPS und das BBPS verarbeitet, ohne dass die ungeänderten Einzelbilder verarbeitet werden.
  • Die Ablaufschemata in den 4 und 5 sind nicht so zu verstehen, dass die Blöcke der Verfahren 400 und 500 in einer bestimmten Reihenfolge auszuführen sind oder dass in jedem Fall alle Blöcke darin enthalten sein müssen. Ferner können in den Verfahren 400 und 500 abhängig von den Einzelheiten der speziellen Implementierung noch beliebig viele zusätzliche Blöcke enthalten sein. Und obgleich die hierin beschriebenen Verfahren eine IPU enthalten, kann der Speicher auch von beliebigen E/A-Geräten wie einer weiteren CPU oder einem Direct-Memory-Access-Controller (DMA-Controller) gemeinsam genutzt werden. Darüber hinaus können, obgleich die vorliegenden Techniken anhand einer IPU beschrieben wurden, auch noch andere Verarbeitungseinheiten, etwa eine GPU, verwendet werden.
  • 6 ist ein Blockschema, das ein physisches, nichtflüchtiges, computerlesbares Medium 600, das Code zur Kachelwiederverwendung in der Bilderzeugung speichert, zeigt. Auf das physische, nichtflüchtige, computerlesbare Medium 600 kann durch einen Prozessor 602 über einen Computerbus 604 zugegriffen werden. Des Weiteren kann das physische, nichtflüchtige, computerlesbare Medium 600 Code enthalten, der konfiguriert ist, um den Prozessor 602 zum Durchführen der hierin beschriebenen Verfahren anzuweisen.
  • Die verschiedenen Softwarekomponenten, die hierin erörtert werden, können im physischen, nichtflüchtigen, computerlesbaren Medium 600, wie in 6 angegeben, abgelegt sein. Zum Beispiel kann ein Signaturmodul 606 für die Bestimmung von Signaturen der Kacheln konfiguriert sein. Ein Vergleichsmodul 608 kann für Vergleiche der Signaturen der Kacheln konfiguriert sein, um zu bestimmen, welche Kacheln ungeänderte Kacheln sind. Das Vergleichsmodul 608 kann auch anhand der vorbestimmten Schwellenwerte T1/T2 bestimmen, welche Kacheln ungeänderte Kacheln sind. Ein Puffermodul kann dazu verwendet werden, dass in ihm geänderte Kacheln, die verarbeitet wurden, zusammen mit Platzhaltern oder Zeigern für Kacheln, die sich nicht geändert haben, abgelegt werden.
  • Das Blockschema von 6 ist nicht so zu verstehen, dass das physische, nichtflüchtige, computerlesbare Medium 600 alle der in 6 gezeigten Komponenten enthalten muss. Ferner kann das physische, nichtflüchtige, computerlesbare Medium 600 abhängig von den Einzelheiten der speziellen Implementierung noch beliebig viele zusätzliche Komponenten enthalten, die in 6 nicht gezeigt sind.
  • Beispiel 1 ist eine Vorrichtung zur Kachelwiederverwendung in der Bilderzeugung. Die Vorrichtung enthält einen Speicher zum Ablegen von Bilderzeugungsdaten; ein System zur zeilenbasierten Verarbeitung, das zum Verarbeiten von Bilderzeugungsdatenzeilen und zum Ablegen der verarbeiteten Daten im Speicher ausgebildet ist; ein System zur blockbasierten Verarbeitung, das zum Verarbeiten von Blöcken der zeilenbasiert verarbeiteten Bilderzeugungsdaten und zum Ablegen der verarbeiteten Daten im Speicher ausgebildet ist; und einen Kachelwiederverwendungsindikator, der zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten und als Reaktion auf eine ungeänderte Kachel zum Verhindern der Weiterverarbeitung der ungeänderten Kachel ausgebildet ist.
  • Beispiel 2 enthält die Vorrichtung nach Beispiel 1, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist ein Prozessor zum Ablegen eines Platzhalters im Speicher, um die ungeänderte Kachel zu ersetzen, ausgebildet.
  • Beispiel 3 enthält die Vorrichtung nach einem der Beispiele 1 bis 2, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist der Kachelwiederverwendungsindikator zum Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Vielzahl von Schwellenwerten ausgebildet.
  • Beispiel 4 enthält die Vorrichtung nach einem der Beispiele 1 bis 3, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist der Kachelwiederverwendungsindikator zum Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Signatur ausgebildet. Optional wird die Signatur über eine Prüfsumme bestimmt.
  • Beispiel 5 enthält die Vorrichtung nach einem der Beispiele 1 bis 4, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist der Kachelwiederverwendungsindikator zum Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über einem Down-Sampling unterzogene Bilderzeugungsdaten ausgebildet.
  • Beispiel 6 enthält die Vorrichtung nach einem der Beispiele 1 bis 5, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist der Kachelwiederverwendungsindikator zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur zeilenbasierten Verarbeitung ausgebildet.
  • Beispiel 7 enthält die Vorrichtung nach einem der Beispiele 1 bis 6, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist der Kachelwiederverwendungsindikator zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur blockbasierten Verarbeitung ausgebildet.
  • Beispiel 8 enthält die Vorrichtung nach einem der Beispiele 1 bis 7, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel verhindert der Kachelwiederverwendungsindikator als Reaktion auf eine ungeänderte Kachel die Weiterübertragung der ungeänderten Kachel in einer Bildverarbeitungs-Pipeline.
  • Beispiel 9 enthält die Vorrichtung nach einem der Beispiele 1 bis 8, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel wird eine Markierung durch den Kachelwiederverwendungsindikator zum Angeben einer ungeänderten Kachel gesetzt.
  • Beispiel 10 ist ein System zur Kachelwiederverwendung in der Bilderzeugung. Das System enthält einen Speicher; eine Kamera; und einen an den Speicher und die Kamera gekoppelten Prozessor, wobei der Prozessor für Folgendes ausgebildet ist: Erfassen von Bilderzeugungsdaten über die Kamera; Bestimmen einer Signatur für ein aktuelles Einzelbild der Bilderzeugungsdaten; Vergleichen der Signatur für eine Kachel des aktuellen Einzelbilds der Bilderzeugungsdaten mit einer Signatur einer gleichen Kachel eines vorherigen Einzelbilds; Verhindern der Weiterverarbeitung der Kachel des aktuellen Einzelbilds der Bilderzeugungsdaten als Reaktion darauf, dass die Signatur der Kachel des aktuellen Einzelbilds im Wesentlichen äquivalent zur Signatur der gleichen Kachel des vorherigen Einzelbilds ist; und Ablegen eines Platzhalters im Speicher anstelle der Kachel des aktuellen Einzelbilds der Bilderzeugungsdaten.
  • Beispiel 11 enthält das System nach Beispiel 10, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel wird die Signatur durch eine Prüfsumme generiert.
  • Beispiel 12 enthält das System nach einem der Beispiele 10 bis 11, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist die Signatur eine mathematische Funktion, die den Umfang einer Änderung zwischen der Kachel des aktuellen Einzelbilds und der gleichen Kachel des vorherigen Einzelbilds angibt.
  • Beispiel 13 enthält das System nach einem der Beispiele 10 bis 12, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist die Signatur eine Funktion, die einen Durchschnitt und eine Standardabweichung der Pixelwerte in jeder Kachel kombiniert.
  • Beispiel 14 enthält das System nach einem der Beispiele 10 bis 13, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel wird die Signatur jeder Kachel in einem IPU-Cache abgelegt.
  • Beispiel 15 enthält das System nach einem der Beispiele 10 bis 14, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel wird die Signatur über einem Down-Sampling unterzogene Bilderzeugungsdaten generiert.
  • Beispiel 16 enthält das System nach einem der Beispiele 10 bis 15, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist ein Wert der Signatur einer Änderung des Pixelwerts der Bilderzeugungsdaten zugeordnet.
  • Beispiel 17 enthält das System nach einem der Beispiele 10 bis 16, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel wird die Signatur durch ein System zur zeilenbasierten Verarbeitung kalkuliert.
  • Beispiel 18 enthält das System nach einem der Beispiele 10 bis 17, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel wird die Signatur durch ein System zur blockbasierten Verarbeitung kalkuliert.
  • Beispiel 19 enthält das System nach einem der Beispiele 10 bis 18, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist der Platzhalter ein Zeiger auf eine letzte ungeänderte Kachel.
  • Beispiel 20 ist ein System zur Kachelwiederverwendung in der Bilderzeugung. Das System enthält einen Speicher; eine Kamera; und einen an den Speicher und die Kamera gekoppelten Prozessor, wobei der Prozessor für Folgendes ausgebildet ist: Erfassen von Bilderzeugungsdaten über die Kamera; Bestimmen einer ersten Zahl von geänderten Pixeln einer aktuellen Kachel, die geänderte Pixelwerte aufweisen; Bestimmen eines Prozentanteils der aktuellen Kachel, deren geänderte Pixelwerte über einem ersten Schwellenwert liegen; Markieren der aktuellen Kachel als geändert als Reaktion darauf, dass der Prozentanteil größer als ein zweiter Schwellenwert ist, für ein aktuelles Einzelbild der Bilderzeugungsdaten; Verhindern der Weiterverarbeitung der aktuellen Kachel des aktuellen Einzelbilds als Reaktion darauf, dass die aktuelle Kachel als ungeändert markiert ist; und Ablegen eines Platzhalters im Speicher anstelle der aktuellen Kachel des aktuellen Einzelbilds der Bilderzeugungsdaten.
  • Beispiel 21 enthält das System nach Beispiel 20, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist der Platzhalter ein Zeiger auf eine letzte ungeänderte Kachel.
  • Beispiel 22 enthält das System nach einem der Beispiele 20 bis 21, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel sind der erste Schwellenwert und der zweite Schwellenwert vorbestimmt.
  • Beispiel 23 enthält das System nach einem der Beispiele 20 bis 22, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist ein Prozessor zum Ablegen eines Platzhalters im Speicher, um die ungeänderte Kachel zu ersetzen, ausgebildet.
  • Beispiel 24 enthält das System nach einem der Beispiele 20 bis 23, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel werden die erste Zahl von geänderten Pixeln und der Prozentanteil der aktuellen Kachel, deren geänderte Pixelwerte über einem ersten Schwellenwert liegen, über einem Down-Sampling unterzogene Bilderzeugungsdaten bestimmt.
  • Beispiel 25 enthält das System nach einem der Beispiele 20 bis 24, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel werden die erste Zahl von geänderten Pixeln und der Prozentanteil der aktuellen Kachel, deren geänderte Pixelwerte über einem ersten Schwellenwert liegen, über Bilderzeugungsdaten, die auf Rohdatenzeilen basieren, ohne Verarbeitung bestimmt.
  • Beispiel 26 enthält das System nach einem der Beispiele 20 bis 25, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel werden die erste Zahl von geänderten Pixeln und der Prozentanteil der aktuellen Kachel, deren geänderte Pixelwerte über einem ersten Schwellenwert liegen, über ein System zur blockbasierten Verarbeitung bestimmt.
  • Beispiel 27 enthält das System nach einem der Beispiele 20 bis 26, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel werden die erste Zahl von geänderten Pixeln und der Prozentanteil der aktuellen Kachel, deren geänderte Pixelwerte über einem ersten Schwellenwert liegen, über ein System zur zeilenbasierten Verarbeitung bestimmt.
  • Beispiel 28 enthält das System nach einem der Beispiele 20 bis 27, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel, als Reaktion darauf, dass die Kachel als geändert markiert ist, eine Weiterübertragung der ungeänderten Kachel in einer Bildverarbeitungs-Pipeline verhindernd.
  • Beispiel 29 ist ein Verfahren zur Kachelwiederverwendung in der Bilderzeugung. Das Verfahren enthält Erfassen von Bilderzeugungsdaten; Verarbeiten von Bilderzeugungsdatenzeilen über ein System zur zeilenbasierten Verarbeitung und Ablegen der verarbeiteten Bilderzeugungsdatenzeilen in einem Speicher; Verarbeiten von Blöcken der verarbeiteten Bilderzeugungsdatenzeilen im Speicher über ein System zur blockbasierten Verarbeitung und Ablegen der verarbeiteten Datenblöcke im Speicher; und Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten und als Reaktion auf eine ungeänderte Kachel Verhindern der Weiterverarbeitung der ungeänderten Kachel.
  • Beispiel 30 enthält das Verfahren nach Beispiel 29, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das Verfahren Ablegen eines Platzhalters im Speicher, um die ungeänderte Kachel zu ersetzen.
  • Beispiel 31 enthält das Verfahren nach einem der Beispiele 29 bis 30, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das Verfahren Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Vielzahl von Schwellenwerten.
  • Beispiel 32 enthält das Verfahren nach einem der Beispiele 29 bis 31, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das Verfahren Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Signatur. Optional wird die Signatur über eine Prüfsumme bestimmt.
  • Beispiel 33 enthält das Verfahren nach einem der Beispiele 29 bis 32, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das Verfahren Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über einem Down-Sampling unterzogene Bilderzeugungsdaten.
  • Beispiel 34 enthält das Verfahren nach einem der Beispiele 29 bis 33, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das Verfahren Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur zeilenbasierten Verarbeitung.
  • Beispiel 35 enthält das Verfahren nach einem der Beispiele 29 bis 34, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das Verfahren Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur blockbasierten Verarbeitung.
  • Beispiel 36 enthält das Verfahren nach einem der Beispiele 29 bis 35, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das Verfahren Verhindern der Weiterübertragung der ungeänderten Kachel in einer Bildverarbeitungs-Pipeline als Reaktion auf die ungeänderte Kachel.
  • Beispiel 37 enthält das Verfahren nach einem der Beispiele 29 bis 36, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das Verfahren Setzen eines Kachelwiederverwendungsindikators zum Angeben einer ungeänderten Kachel in einer Bildverarbeitungs-Pipeline.
  • Beispiel 38 ist ein physisches, nichtflüchtiges, computerlesbares Medium. Das computerlesbare Medium enthält Befehle, die den Prozessor zum Erfassen von Bilderzeugungsdaten anweisen; zum Verarbeiten von Bilderzeugungsdatenzeilen über ein System zur zeilenbasierten Verarbeitung und zum Ablegen der verarbeiteten Bilderzeugungsdatenzeilen in einem Speicher; zum Verarbeiten von Blöcken der verarbeiteten Bilderzeugungsdatenzeilen im Speicher über ein System zur blockbasierten Verarbeitung und zum Ablegen der verarbeiteten Datenblöcke im Speicher; und zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten und als Reaktion auf eine ungeänderte Kachel zum Verhindern der Weiterverarbeitung der ungeänderten Kachel.
  • Beispiel 39 enthält das computerlesbare Medium nach Beispiel 38, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das computerlesbare Medium Ablegen eines Platzhalters im Speicher, um die ungeänderte Kachel zu ersetzen.
  • Beispiel 40 enthält das computerlesbare Medium nach einem der Beispiele 38 bis 40, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das computerlesbare Medium Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Vielzahl von Schwellenwerten.
  • Beispiel 41 enthält das computerlesbare Medium nach einem der Beispiele 38 bis 40, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das computerlesbare Medium Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Signatur. Optional wird die Signatur über eine Prüfsumme bestimmt.
  • Beispiel 42 enthält das computerlesbare Medium nach einem der Beispiele 38 bis 41, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das computerlesbare Medium Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über einem Down-Sampling unterzogene Bilderzeugungsdaten.
  • Beispiel 43 enthält das computerlesbare Medium nach einem der Beispiele 38 bis 42, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das computerlesbare Medium Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur zeilenbasierten Verarbeitung.
  • Beispiel 44 enthält das computerlesbare Medium nach einem der Beispiele 38 bis 43, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das computerlesbare Medium Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur blockbasierten Verarbeitung.
  • Beispiel 45 enthält das computerlesbare Medium nach einem der Beispiele 38 bis 44, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das computerlesbare Medium Verhindern der Weiterübertragung der ungeänderten Kachel in einer Bildverarbeitungs-Pipeline als Reaktion auf die ungeänderte Kachel.
  • Beispiel 46 enthält das computerlesbare Medium nach einem der Beispiele 38 bis 45, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel enthält das computerlesbare Medium Setzen eines Kachelwiederverwendungsindikators zum Angeben einer ungeänderten Kachel in einer Bildverarbeitungs-Pipeline.
  • Beispiel 47 ist eine Vorrichtung zur Kachelwiederverwendung in der Bilderzeugung. Die Vorrichtung enthält Befehle, die den Prozessor zu einem Speicher zum Ablegen von Bilderzeugungsdaten anweisen; ein System zur zeilenbasierten Verarbeitung, das zum Verarbeiten von Bilderzeugungsdatenzeilen und zum Ablegen der verarbeiteten Daten im Speicher ausgebildet ist; ein System zur blockbasierten Verarbeitung, das zum Verarbeiten von Blöcken der zeilenbasiert verarbeiteten Bilderzeugungsdaten und zum Ablegen der verarbeiteten Daten im Speicher ausgebildet ist; und ein Mittel zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten und als Reaktion auf eine ungeänderte Kachel zum Verhindern der Weiterverarbeitung der ungeänderten Kachel.
  • Beispiel 48 enthält die Vorrichtung nach Beispiel 47, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist ein Prozessor zum Ablegen eines Platzhalters im Speicher, um die ungeänderte Kachel zu ersetzen, ausgebildet.
  • Beispiel 49 enthält die Vorrichtung nach einem der Beispiele 47 bis 48, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist das Mittel zum Bestimmen der ungeänderten Kachel zum Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Vielzahl von Schwellenwerten ausgebildet.
  • Beispiel 50 enthält die Vorrichtung nach einem der Beispiele 47 bis 49, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist das Mittel zum Bestimmen der ungeänderten Kachel zum Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Signatur ausgebildet. Optional wird die Signatur über eine Prüfsumme bestimmt.
  • Beispiel 51 enthält die Vorrichtung nach einem der Beispiele 47 bis 50, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist das Mittel zum Bestimmen der ungeänderten Kachel zum Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über einem Down-Sampling unterzogene Bilderzeugungsdaten ausgebildet.
  • Beispiel 52 enthält die Vorrichtung nach einem der Beispiele 47 bis 51, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist das Mittel zum Bestimmen der ungeänderten Kachel zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur zeilenbasierten Verarbeitung ausgebildet.
  • Beispiel 53 enthält die Vorrichtung nach einem der Beispiele 47 bis 52, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel ist das Mittel zum Bestimmen der ungeänderten Kachel zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur blockbasierten Verarbeitung ausgebildet.
  • Beispiel 54 enthält die Vorrichtung nach einem der Beispiele 47 bis 53, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel verhindert das Mittel zum Bestimmen der ungeänderten Kachel als Reaktion auf eine ungeänderte Kachel die Weiterübertragung der ungeänderten Kachel in einer Bildverarbeitungs-Pipeline.
  • Beispiel 55 enthält die Vorrichtung nach einem der Beispiele 47 bis 54, wobei optionale Merkmale darin enthalten oder daraus ausgeschlossen sind. In diesem Beispiel wird eine Markierung durch das Mittel zum Bestimmen der ungeänderten Kachel zum Verfolgen der ungeänderten Kachel gesetzt.
  • Es versteht sich, dass Details in den oben angeführten Beispielen an beliebiger Stelle in einer oder mehreren Ausführungsformen verwendbar sind. Beispielsweise lassen sich alle optionalen Merkmale des oben beschriebenen Computergeräts auch im Zusammenhang mit beiden hierin beschriebenen Verfahren oder dem hierin beschriebenen computerlesbaren Medium implementieren. Des Weiteren sind die Erfindungen, auch wenn zur Beschreibung von Ausführungsformen hierin möglicherweise Ablauf- und/oder Zustandsdiagramme verwendet wurden, nicht auf diese Diagramme oder die entsprechenden Beschreibungen hierin beschränkt. Zum Beispiel muss bei dem Ablauf nicht jeder veranschaulichte Block oder nicht jeder veranschaulichte Zustand durchlaufen werden, und der Ablauf muss auch nicht in genau der hierin veranschaulichten und beschriebenen Reihenfolge erfolgen.
  • Die Erfindungen sind nicht auf die bestimmten Einzelheiten begrenzt, die hierin angeführt werden. Denn für den Fachmann wird anhand dieser Offenbarung erkennbar, dass an der vorhergehenden Beschreibung und den Zeichnungen viele weitere Veränderungen im Schutzbereich der vorliegenden Erfindungen vorgenommen werden können. Demzufolge wird der Schutzbereich der Erfindungen von den folgenden Ansprüchen, einschließlich jeglicher Änderungen an ihnen, festgelegt.

Claims (25)

  1. Vorrichtung zur Kachelwiederverwendung in der Bilderzeugung, die Folgendes umfasst: einen Speicher zum Ablegen von Bilderzeugungsdaten; ein System zur zeilenbasierten Verarbeitung, das zum Verarbeiten von Bilderzeugungsdatenzeilen und zum Ablegen der verarbeiteten Daten im Speicher ausgebildet ist; ein System zur blockbasierten Verarbeitung, das zum Verarbeiten von Blöcken der zeilenbasiert verarbeiteten Bilderzeugungsdaten und zum Ablegen der verarbeiteten Daten im Speicher ausgebildet ist; und einen Kachelwiederverwendungsindikator, der zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten und als Reaktion auf eine ungeänderte Kachel zum Verhindern der Weiterverarbeitung der ungeänderten Kachel ausgebildet ist.
  2. Vorrichtung nach Anspruch 1, wobei ein Prozessor zum Ablegen eines Platzhalters im Speicher, um die ungeänderte Kachel zu ersetzen, ausgebildet ist.
  3. Vorrichtung nach Anspruch 1, wobei der Kachelwiederverwendungsindikator zum Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Vielzahl von Schwellenwerten ausgebildet ist.
  4. Vorrichtung nach Anspruch 1, wobei der Kachelwiederverwendungsindikator zum Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Signatur ausgebildet ist und die Signatur über eine Prüfsumme bestimmt wird.
  5. Vorrichtung nach Anspruch 1, wobei der Kachelwiederverwendungsindikator zum Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über einem Down-Sampling unterzogene Bilderzeugungsdaten ausgebildet ist.
  6. Vorrichtung nach Anspruch 1, wobei der Kachelwiederverwendungsindikator zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur zeilenbasierten Verarbeitung ausgebildet ist.
  7. Vorrichtung nach Anspruch 1, wobei der Kachelwiederverwendungsindikator zum Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten bei der Verarbeitung durch das System zur blockbasierten Verarbeitung ausgebildet ist.
  8. Vorrichtung nach Anspruch 1, wobei der Kachelwiederverwendungsindikator als Reaktion auf eine ungeänderte Kachel die Weiterübertragung der ungeänderten Kachel in einer Bildverarbeitungs-Pipeline verhindert.
  9. Vorrichtung nach Anspruch 1, wobei eine Markierung durch den Kachelwiederverwendungsindikator zum Angeben einer ungeänderten Kachel gesetzt wird.
  10. System zur Kachelwiederverwendung in der Bilderzeugung, das Folgendes umfasst: einen Speicher; eine Kamera; und einen an den Speicher und die Kamera gekoppelten Prozessor, wobei der Prozessor für Folgendes ausgebildet ist: Erfassen von Bilderzeugungsdaten über die Kamera; Bestimmen einer Signatur für ein aktuelles Einzelbild der Bilderzeugungsdaten; Vergleichen der Signatur für eine Kachel des aktuellen Einzelbilds der Bilderzeugungsdaten mit einer Signatur einer gleichen Kachel eines vorherigen Einzelbilds; Verhindern der Weiterverarbeitung der Kachel des aktuellen Einzelbilds der Bilderzeugungsdaten als Reaktion darauf, dass die Signatur der Kachel des aktuellen Einzelbilds im Wesentlichen äquivalent zur Signatur der gleichen Kachel des vorherigen Einzelbilds ist; und Ablegen eines Platzhalters im Speicher anstelle der Kachel des aktuellen Einzelbilds der Bilderzeugungsdaten.
  11. System nach Anspruch 10, wobei die Signatur durch eine Prüfsumme generiert wird.
  12. System nach Anspruch 10, wobei die Signatur eine mathematische Funktion ist, die einen Umfang einer Änderung zwischen der Kachel des aktuellen Einzelbilds und der gleichen Kachel des vorherigen Einzelbilds angibt.
  13. System nach Anspruch 10, wobei die Signatur eine Funktion ist, die einen Durchschnitt und eine Standardabweichung der Pixelwerte in jeder Kachel kombiniert.
  14. System nach Anspruch 10, wobei die Signatur jeder Kachel in einem IPU-Cache abgelegt wird.
  15. System zur Kachelwiederverwendung in der Bilderzeugung, das Folgendes umfasst: einen Speicher; eine Kamera; und einen an den Speicher und die Kamera gekoppelten Prozessor, wobei der Prozessor für Folgendes ausgebildet ist: Erfassen von Bilderzeugungsdaten über die Kamera; Bestimmen einer ersten Zahl von geänderten Pixeln einer aktuellen Kachel, die geänderte Pixelwerte aufweisen; Bestimmen eines Prozentanteils der aktuellen Kachel, deren geänderte Pixelwerte über einem ersten Schwellenwert liegen; Markieren der aktuellen Kachel als geändert als Reaktion darauf, dass der Prozentanteil größer als ein zweiter Schwellenwert ist, für ein aktuelles Einzelbild der Bilderzeugungsdaten; Verhindern der Weiterverarbeitung der aktuellen Kachel des aktuellen Einzelbilds als Reaktion darauf, dass die aktuelle Kachel als ungeändert markiert ist; und Ablegen eines Platzhalters im Speicher anstelle der aktuellen Kachel des aktuellen Einzelbilds der Bilderzeugungsdaten.
  16. System nach Anspruch 15, wobei der Platzhalter ein Zeiger auf eine letzte ungeänderte Kachel ist.
  17. System nach Anspruch 15, wobei der erste Schwellenwert und der zweite Schwellenwert vorbestimmt sind.
  18. System nach Anspruch 15, wobei ein Prozessor zum Ablegen eines Platzhalters im Speicher, um die ungeänderte Kachel zu ersetzen, ausgebildet ist.
  19. System nach Anspruch 15, wobei die erste Zahl von geänderten Pixeln und der Prozentanteil der aktuellen Kachel, deren geänderte Pixelwerte über einem ersten Schwellenwert liegen, über einem Down-Sampling unterzogene Bilderzeugungsdaten bestimmt werden.
  20. System nach Anspruch 15, wobei die erste Zahl von geänderten Pixeln und der Prozentanteil der aktuellen Kachel, deren geänderte Pixelwerte über einem ersten Schwellenwert liegen, über Bilderzeugungsdaten, die auf Rohdatenzeilen basieren, ohne Verarbeitung bestimmt werden.
  21. System nach Anspruch 15, wobei die erste Zahl von geänderten Pixeln und der Prozentanteil der aktuellen Kachel, deren geänderte Pixelwerte über einem ersten Schwellenwert liegen, über ein System zur blockbasierten Verarbeitung bestimmt werden.
  22. Verfahren zur Kachelwiederverwendung in der Bilderzeugung, das Folgendes umfasst: Erfassen von Bilderzeugungsdaten; Verarbeiten von Bilderzeugungsdatenzeilen über ein System zur zeilenbasierten Verarbeitung und Ablegen der verarbeiteten Bilderzeugungsdatenzeilen in einem Speicher; Verarbeiten von Blöcken der verarbeiteten Bilderzeugungsdatenzeilen im Speicher über ein System zur blockbasierten Verarbeitung und Ablegen der verarbeiteten Datenblöcke in einem Speicher; und Bestimmen einer ungeänderten Kachel der Bilderzeugungsdaten und als Reaktion auf eine ungeänderte Kachel Verhindern der Weiterverarbeitung der ungeänderten Kachel.
  23. Verfahren nach Anspruch 22, das Ablegen eines Platzhalters im Speicher, um die ungeänderte Kachel zu ersetzen, umfasst.
  24. Verfahren nach Anspruch 22, das Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Vielzahl von Schwellenwerten umfasst.
  25. Verfahren nach Anspruch 22, das Bestimmen der ungeänderten Kachel der Bilderzeugungsdaten über eine Signatur umfasst.
DE102018103652.3A 2017-04-03 2018-02-19 Kachelwiederverwendung in der bilderzeugung Pending DE102018103652A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/477,249 2017-04-03
US15/477,249 US20180286006A1 (en) 2017-04-03 2017-04-03 Tile reuse in imaging

Publications (1)

Publication Number Publication Date
DE102018103652A1 true DE102018103652A1 (de) 2018-10-04

Family

ID=63524584

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018103652.3A Pending DE102018103652A1 (de) 2017-04-03 2018-02-19 Kachelwiederverwendung in der bilderzeugung

Country Status (3)

Country Link
US (1) US20180286006A1 (de)
CN (1) CN108696670A (de)
DE (1) DE102018103652A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789481B2 (en) * 2018-05-25 2020-09-29 Apical Ltd. Video data processing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160371808A1 (en) * 2009-09-25 2016-12-22 Arm Limited Method and apparatus for controlling display operations
US9640148B2 (en) * 2013-06-03 2017-05-02 Arm Limited Method of and apparatus for controlling frame buffer operations
US9645930B2 (en) * 2013-06-19 2017-05-09 Intel Corporation Dynamic home tile mapping
US9123088B2 (en) * 2013-07-31 2015-09-01 Intel Corporation Partial tile rendering
US20150278981A1 (en) * 2014-03-27 2015-10-01 Tomas G. Akenine-Moller Avoiding Sending Unchanged Regions to Display
GB2528265B (en) * 2014-07-15 2021-03-10 Advanced Risc Mach Ltd Method of and apparatus for generating an output frame
US20180082465A1 (en) * 2016-09-16 2018-03-22 Prasoonkumar Surti Apparatus and method for optimized tile-based rendering

Also Published As

Publication number Publication date
US20180286006A1 (en) 2018-10-04
CN108696670A (zh) 2018-10-23

Similar Documents

Publication Publication Date Title
TWI520598B (zh) 影像處理裝置與影像處理方法
US9305331B2 (en) Image processor and image combination method thereof
DE102008059372A1 (de) Bildverzeichnungskorrektur
DE102020123396A1 (de) Verfahren und system für inhaltsadaptives entrauschen zum videocodieren
DE112017000017T5 (de) Kameraeinstellungsanpassung basierend auf vorhergesagten umgebungsfaktoren und nachverfolgungssysteme, die diese einsetzen
DE102014013446A1 (de) Bildaufnahmevorrichtung und -system und Steuerverfahren für die Bildaufnahmevorrichtung
US10055825B2 (en) System and method for fast digital signal dynamic range reduction using adaptive histogram compaction and stabilization
DE102015001814A1 (de) Farbkomprimierung unter Verwendung einer selektiven Farbtransformation
US11983848B2 (en) AI frame engine for mobile edge
DE102015102276A1 (de) Anzeigesteuerungsvorrichtung und anzeigeverfahren
DE102020128902A1 (de) Bewegungsadaptive video-codierung
DE202016008753U1 (de) Bei Gigabit-Ethernet anwendbare vernetzte Videokommunikation
DE112012006970T5 (de) Verteilte Grafikverarbeitung
DE102018103652A1 (de) Kachelwiederverwendung in der bilderzeugung
EP3206387B1 (de) Verfahren zur einstellung des dynamischen bereichs eines bildes, endgerät und speichermedium
DE102014014499A1 (de) Bildverarbeitungsverfahren, System und elektronische Vorrichtung
DE112011102167T5 (de) Stereobilderfassung mit einer Pipeline
DE112016002168T5 (de) Datentransfervorrichtung und Datentransferverfahren
DE102018116270A1 (de) Bildverarbeitungsvorrichtung und Verfahren zum Steuern derselben
CN112911299A (zh) 一种视频码率控制方法、装置、电子设备和存储介质
US9264609B2 (en) Image processing apparatus using overlap width data
CN113191210A (zh) 一种图像处理方法、装置及设备
US7848570B2 (en) Memory reduction technique for statistics accumulation and processing
US7212675B2 (en) Method of finding orphan blocks in block based image compression schemes
US11736657B2 (en) Image capturing device and image processing method that enlarges a selected region within an image

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: HGF EUROPE LLP, DE

Representative=s name: HGF EUROPE LP, DE

R016 Response to examination communication