-
Datenkompression
wird im Allgemeinen eingesetzt, um die Speicherung von verschiedenen
Datentypen zu ermöglichen,
die in ihrer unverarbeiteten und unkomprimierten Form übermäßig groß sind. Solche
Datentypen können
Bilder, Video-, Audio- und verschiedene
andere Datentypen umfassen, bei denen eine Komprimierung wünschenswert
ist.
-
Die
Verwendung von Datenkompressionsalgorithmen kann zeitaufwendig sein,
je nach eingesetztem Algorithmus und der Datenmenge. Des Weiteren
erfordern die Datenkompressionsalgorithmen während der Ausführung eine
erhebliche Prozessorleistung und Speicherkapazität, um korrekt durchgeführt werden
zu können.
-
Beschrieben
wird eine Methode, bei der eine Speichereinrichtung Daten in einem
ersten Format empfängt,
diese in ein zweites Format umwandelt und in dem zweiten Format
ausgibt.
-
1 zeigt
eine beispielhafte Ausführungsform
der vorliegenden Erfindung, die ein System beinhaltet, bei dem eine
Speichereinrichtung unterstützend
zur Durchführung
von Datenverarbeitungsprozessen eingesetzt wird.
-
2 zeigt
eine alternative beispielhafte Ausführungsform einer Speichereinrichtung
entsprechend der vorliegenden Erfindung.
-
3a zeigt
eine weitere beispielhafte Ausführungsform
eines Systems, bei dem eine Speichereinrichtung unterstützend zur
Durchführung
von Datenverarbeitungsprozessen eingesetzt wird.
-
3b zeigt
eine weitere beispielhafte Ausführungsform
eines Systems, bei dem eine Speichereinrichtung unterstützend zur
Durchführung
von Datenverarbeitungsprozessen eingesetzt wird.
-
4 zeigt
eine beispielhafte Ausführungsform
einer Speichereinrichtung zur unterstützenden Durchführung von
Datenverarbeitungsprozessen, die eine Kameraschnittstelle beinhaltet.
-
5 zeigt
eine beispielhafte Ausführungsform
einer Speichereinrichtung zur Unterstützung bei der Durchführung von
Datenverarbeitungsprozessen, die eine Kameraschnittstelle und eine JPEG-Bildverarbeitungs-Logik
beinhaltet.
-
Die
Ausführungsbeispiele
der vorliegenden Erfindung können
mithilfe der folgenden Beschreibung und den angefügten Zeichnungen
nachvollzogen werden, wobei gleichartige Elemente mit gleichen Bezugszeichen
gekennzeichnet sind. Die hier gezeigten Ausführungsformen der vorliegenden
Erfindung beschreiben Systeme und Methoden zur Verbesserung der
Effizienz verschiedener Datenkompressionsprozessen zu verbessern.
Die beispielhaften Ausführungsformen
führen
einen Teil eines Kompressionsalgorithmus aus, der eine in einem
Speicher integrierte Logik anstelle eines Prozessors verwendet,
was auf diese Weise die Anforderungen an den Prozessor reduziert.
Die beispielhaften Systeme und Methoden werden im Folgenden weiter
im Detail beschrieben.
-
Auch
wenn die beispielhaften Ausführungsformen
unter Bezugnahme auf Datenkompressionsverfahren beschrieben sind,
erkennt der Fachmann, dass die Ausführungsbeispiele nicht auf die
Verwendung von Datenkompressionsverfahren beschränkt sind. Wie später detaillierter
beschrieben, ermöglichen
die beispielhaften Ausführungsformen
die Bearbeitung (z. B. Neuordnung) von unverarbeiteten Daten in
einem Speicher (z. B. während
die Daten in den Speicher geschrieben und/oder Daten aus dem Speicher
gelesen werden). Daher können
die Ausführungsbeispiele
der vorliegenden Erfindung als Teil einer beliebigen Datenbearbeitung
eingesetzt werden, in deren Verlauf die in einem Speicher enthaltenen
Daten bearbeitet werden. Darüber
hinaus kann die Datenverarbeitung innerhalb des Speichers auch den
gesamten Prozess umfassen. Das bedeutet, dass die Datenverarbeitung
nicht notwendigerweise ein Teil eines übergeordneten Prozesses wie
beispielsweise einer Datenkompression sein muss, sondern auch den
eigentlichen Zweck darstellen kann (z. B. zur effizienten Datenspeicherung
für eine
mögliche
Verwendung bei einer Vielzahl von Prozessen).
-
Ferner
wird darauf verwiesen, dass die beispielhaften Ausführungsformen
mit Bezug auf einen wahlfreien Zugriffsspeicher („RAM" Random Access Memories)
beschrieben werden, insbesondere eines dynamischen wahlfreien Zugriffsspeichers
(„DRAN"). Dennoch erkennt
der Fachmann, dass die vorliegende Erfindung in jeder Art von Speichereinrichtung
eingesetzt werden kann.
-
Viele
Datentypen, insbesondere Bild-, Video- und Audiodaten können eine
beachtliche Menge Speicherplatz beanspruchen. Es ist daher erstrebenswert,
solche Daten zu komprimieren, um den benötigten Speicherplatz zu reduzieren.
Verschiedene Kompressionsalgorithmen sind zu diesem Zweck entwickelt
worden. Solche Kompressionsalgorithmen sind beispielsweise JPEG,
GIF und PNG für
Bilddaten; MPEG-4, WMV und AVS für
Videodaten, und MP3, AAC und WMA für Audiodaten. Die hier dargestellten
Ausführungsbeispiele
werden im Folgenden unter Bezugnahme auf JPEG Bild-Kompressionsalgorithmen
beschrieben; die gleichen Prinzipien sind aber auch auf viele andere
Kompressionsalgorithmen anwendbar.
-
Der
JPEG Bild-Kompressionsalgorithmus, auf den sich die folgende Beschreibung über die
beispielhaften Ausführungsformen
bezieht, gruppiert Komponenten in 8 × 8 Blöcke und führt die Datenverarbeitung an
jedem dieser 8 × 8
Blöcke
aus. Die Bilddaten liegen in unverarbeiteter Form als YUV Format vor,
wobei "Y" für die Luminanz
(Helligkeit) und "U" und "V" für
die Chrominanz (Farbe, die in blaue und rote Anteile aufgeteilt
ist) stehen. Ein von einem Bildsensor (z. B. eine Kamera) kommender
Datenstrom liegt beispielsweise in der Form "YUYVYUYVYUYV ..." vor. Die Daten werden verarbeitet,
indem die Bildkomponenten einzeln gruppiert werden und Datenverarbeitungsprozesse
an gleichartigen Komponenten durchgeführt werden. So werden alle Y
Komponenten in einer Gruppe, alle U Komponenten in einer zweiten
Gruppe und alle V Komponenten in einer dritten Gruppe verarbeitet.
Auf diese Weise werden die Datenoperationen an 8 × 8 Blöcken durchgeführt, wobei
jede Komponente innerhalb eines Blocks entweder eine Komponente
Y, U oder V ist.
-
Werden
Bilddaten verarbeitet, um sie normalerweise im JPEG Format zu speichern,
werden sie von einer Quelle, wie z. B. eine digitalen Kamera, über eine
Schnittstelle empfangen und an einen Systemprozessor weitergeleitet.
Der Prozessor speichert die Daten vorübergehend in einem Speicher
(z. B. DRAM Vorrichtung) in seinem Standardformat "YUYVYUYVYUYV ...", bis der Prozessor
zur Datenverarbeitung bereit ist. Wenn der Prozessor zur Datenverarbeitung
bereit ist, werden die Daten aus dem Speicher wieder zurück an den
Prozessor übertragen.
Im Prozessor werden die Daten sortiert und in der Form "YYYY", "UUUU" und "VVVV" neu gruppiert und
in Blöcken
von 8 × 8
aufgeteilt, an denen der verbleibende JPEG Algorithmus ausgeführt wird.
Wenn der Algorithmus ausgeführt
ist, kann an den 8 × 8
Blöcken
die erzeugte JPEG Datei in einem flüchtigen Speicher (z. B. RAM,
DRAM, synchrone DRAM ("SDRAM"), Extended Data
Out RAM ("EDORAM"), Double Data Rate
RAM ("DDRRAM"), DDR2RAM usw.)
und/oder nicht-flüchtigem
Speicher (z. B. Compact Flash ("CF") Karte, eine Secure Digital
("SD") Karte, ein Festplattenlaufwerk
usw.) abgelegt werden.
-
In
einer anderen Ausführungsform
werden die Daten, nachdem sie von einer Bildquelle empfangen werden,
vom Prozessor neu geordnet, noch bevor sie zwischenzeitlich in einer
Speichereinrichtung abgelegt werden. Nachdem die Daten vom Speicher an
den Prozessor übertragen
worden sind, wird der verbleibende JPEG Algorithmus ausgeführt. In
beiden Fällen
werden alle Datenverarbeitungsprozesse zur Umsetzung des JPEG Kompressionsalgorithmus im
Prozessor ausgeführt.
-
1 zeigt
eine beispielhafte Ausführungsform
eines Systems 100, welches einen Bildsensor 140,
eine Speichereinrichtung 110 und einen Prozessor 150 aufweist,
wobei die Speichereinrichtung 110 die Daten bearbeitet,
um die Ausführung
des JPEG Kompressionsalgorithmus zu unterstützen. Die Speichereinrichtung 110 beinhaltet
eine Neuordnungslogik 120 und Datensegmente 130, 132, 134.
Die spezifische Anzahl von Datensegmente kann bei unterschiedlichen
Ausführungen
variieren. In dieser beispielhaften Ausführungsform werden aufgrund
der Besonderheiten des JPEG Algorithmus acht Segmente 0–7 benutzt,
von denen zur praktischen Darstellung nur drei gezeigt sind. In
dieser beispielhaften Ausführungsform
werden die Datensegmente 130, 132, 134 als
physikalisch getrennte Komponenten gezeigt. Der Fachmann wird aber
erkennen, dass die Datensegmente ebenso innerhalb einer einzigen Speicherkomponente
auf einer virtuellen Trennung der Segmente basieren können, z.
B. jedes Segment ist einem Bereich von Spaltenadressen innerhalb
des Speichers zugeordnet.
-
Der
Bildsensor 140 sammelt die Bilddaten, wie beispielhaft
mit den Bilddaten 142 gezeigt ist. Der Bildsensor 140 kann
eine beliebige Vorrichtung sein, das in der Lage ist, Bilddaten 142 zu
sammeln, wie z. B. eine Kamera usw.. Die unverarbeiteten Bilddaten 142 werden
zum Speicher 110 übertragen.
Wie oben beschrieben, können
die unverarbeiteten Bilddaten 142 mittels eines Prozessors 150 vom
Bildsensor 140 zum Speicher 110 übertragen
werden. Die vom Speicher 110 empfangenen Daten, liegen – wie vorgehend
beschrieben – im
Format 144 "YUYVYUYVYUYV
..." vor. Die Neuordnungslogik 120 teilt
die empfangenen Daten 144 in getrennte Gruppen von Y-,
U- und V-Komponenten ein.
-
Die
Neuordnungslogik 120 kann jede Kombination von Hardware
und/oder Software sein, die in den Speicher 110 integriert
und zur Durchführung
der hier beschriebenen Funktionalität konfiguriert ist. Zum Beispiel
kann die Speichereinrichtung 110 eine oder mehrere Komponenten
oder Schaltkreise aufweisen, die derart gestaltet sind, dass sie
die Firmware, die in der Speichereinrichtung 110 enthalten ist,
ausführen
kann. Diese Schaltkreise und/oder Firmware können so verändert werden, dass sie die Funktionalität ausführen können, die
für die
Neuordnungslogik 120 beschrieben ist. Zudem kann die Neuordnungslogik 120 so
ausgeführt
sein, dass sie als Hardware und/oder Software außerhalb des Speichers 110 vorliegt,
z. B. auf einer Hauptplatine oder einer anderen Komponente einer
Vorrichtung, die ebenfalls den Speicher 110 aufweist.
-
Eine
Gruppe von acht Y Komponenten wird in der ersten Zeile des ersten
Segments 130 angeordnet. In diesem Beispiel basiert die
Aufteilung von unverarbeiteten Daten in Komponentendaten auf der Zeilenadresse
innerhalb der Speichereinheit. Demnach wird die erste Gruppe von
acht Y Komponenten Y0 (0-7) so
dargestellt, dass sie im ersten Segment 130, Zeilenadresse
#0 gespeichert ist. Es wird angemerkt, dass andere Aufteilungsschemata
ebenfalls angewendet werden können.
Die nächste
Gruppe von acht Y Komponenten (z. B. Y1 (0-7)) wird in der ersten Zeile vom zweiten
Segment 132 (Zeilenadresse #0) platziert. Dieser Prozess
setzt sich fort, bis die achte Gruppe der acht Y Komponenten (z.
B. Y7 (0-7)) in der ersten
Zeile (Zeilenadresse #0) des achten Segments 134 platziert
worden ist.
-
Danach
wird die nächste
Gruppe von acht Y Komponenten (z. B. Y8 (0-7)) in der zweiten Zeile (Zeilenadresse
#1) des ersten Segments 130 platziert, wobei der Prozess
wie oben beschrieben weitergeführt
wird und bei jeder achten Gruppe zum ersten Segment 130 zurückgekehrt
wird. Die U und V Komponenten werden in derselben Weise angeordnet;
da das „YUYV" Muster zwei Y Komponenten
für jede einzelne
U Komponente und V Komponente enthält, sind doppelt so viele Y
Komponenten zu sortieren und demzufolge sind insgesamt doppelt so
viele Zeilen mit Y Komponenten vorhanden. Dieser Prozess wird in 1 veranschaulicht.
Es wird allerdings nochmals angemerkt, dass die Details dieses Prozesses,
die den JPEG Algorithmus betreffen, als Beispiel dienen und es soll
damit gezeigt werden, wie die Ausführungsbeispiele der vorliegenden
Erfindung bei deren speziellen Datenkompressionsmethoden angewendet
werden können.
-
Nachdem
alle erhaltenen Daten sortiert wurden, können die sortierten Daten 152 an
den Prozessor 150 gesendet werden, an dem die JPEG Verarbeitung
fortgesetzt wird. In einem Beispiel werden die Daten vom Speicher 110 unter
Anwendung einer „Burst
Segment Interleave Method" gelesen.
Andere Methoden, die Daten im Speicher 110 zu lesen, können ebenfalls
angewendet werden. Zum Beispiel wird die erste Zeile (Zeilenadresse
#0) des ersten Segments 130 gesendet (z. B. Y0 (0-7)), gefolgt von der ersten Zeile (Zeilenadresse
#0) des zweiten Segments 132 (z. B. Y1 (0-7)); so wird fortgefahren bis zur ersten
Zeile (Zeilenadresse #0) des achten Segments 134 (z. B.
Y7 (0-7)). Diese
acht Zeilen des achten Segments formen eine 8 × 8 Gruppe, wie oben beschrieben.
Danach wird die zweite Zeile (Zeilenadresse #1) des ersten Segments 130 (z.
B. Y7 (0-7)) gesendet,
gefolgt von einer zweiten Zeile (Zeilenadresse #1) des zweiten Segments 132 (z.
B. Y9 (0-7)) und
so weiter. Auf diese Weise empfängt
der Prozessor 150 eine sortierte Bilddatei 152,
so dass die JPEG Kompression an einer geordneten Bilddatei 152 ausgeführt werden
kann. Dadurch dass der Prozessor 150 von der Neuordnung
der Daten entlastet wird, können
Daten schneller vom Speicher 110 zum Prozessor 150 übertragen
werden und der Prozessor 150 kann den verbleibenden Teil
des JPEG Prozesses ebenfalls schneller ausführen.
-
Zum
oben genannten Beispiel ist anzumerken, dass die unverarbeiteten
Bilddaten 144 so dargestellt werden wie sie vom Bildsensor 140 empfangen
wurden. Es wird angemerkt, dass die Speichereinrichtung 110 die
unverarbeiteten Bilddaten 144 nicht direkt vom Bildsensor 140 erhalten
muss. Zum Beispiel kann die Speichereinrichtung 110 ein
Teil einer Vorrichtung sein, das mit einem Netzwerk verbunden ist.
Die unverarbeiteten Bilddaten 144 können über das Netzwerk zur weiteren
Verarbeitung an das Netzwerkendgerät übertragen werden, das die Speichereinrichtung 110 aufweist.
-
2 zeigt
eine weitere beispielhafte Ausführungsform
einer Speichereinrichtung 210. Wie die Speichereinrichtung 110 der 1 beinhaltet
der Speicher 210 eine Vielzahl von Datensegmenten 230, 232 und 234.
Wie vorher für
die Speichereinrichtung 110 dargestellt, kann die genaue
Anzahl der Datensegmente in Abhängigkeit
von der spezifischen Ausführung
variieren. Die Speichereinrichtung 210 beinhaltet ebenfalls
die Neuordnungslogik 220, die in einer entsprechenden Weise
betrieben werden kann wie oben für
die Speichereinrichtung 110 beschrieben.
-
Der
Speicher 210 unterscheidet sich von der Speichereinrichtung 110 dadurch,
dass die Datensegmente 230, 232, 234 in
Neuordnungsbereiche 240, 242, 244 und
in Nicht-Neuordnungsbereiche 250, 252 und 254 unterteilt
werden. Daten, die von der Neuordnungslogik 220 sortiert
wurden, werden in den Neuordnungsbereichen 240, 242, 244 gespeichert.
Die Nicht-Neuordnungsbereiche 250, 252, 254 sind
der Speicherung von Daten vorbehalten, die nicht von der Neuordnungslogik 220 geordnet
wurden, sondern vielmehr anderen Aufgaben oder Daten vorbehalten
sind.
-
Die
Speichereinrichtung 210 kann zum Beispiel Teil einer digitalen
Kamera sein. Zusätzlich
zur Speicherung von Bilddaten, die von der digitalen Kamera gesammelt
werden, kann die Speichereinrichtung 210 (z. B. DRAM Vorrichtung)
ebenfalls den Betriebssystemkern für die Kamera speichern, während die
Kamera in Betrieb ist. Der Betriebssystemkern kann verschiedene
Kamerafunktionen steuern, wie z. B. das Zoomen sowie Benutzeroberflächen wie
Bildschirm und Blitzsteuerung usw.. Die Daten des Betriebssystemkerns
müssen
nicht in derselben Weise geordnet werden wie die unverarbeiteten
Bilddaten. Während
der Betriebssystemkern auf der wie in 1 gezeigten
beispielhaften Ausführungsform
der Speichereinrichtung 110 gespeichert werden kann, kann
es beim Speichern der Bilddaten notwendig werden, die Daten des
Betriebssystemkerns innerhalb der Speichereinrichtung 110 zu
ersetzen oder zu einer anderen Adresse zu verschieben. Diese beispielhafte
Ausführungsform
ermöglicht
es, Betriebssystemdaten zu einer neuen Adresse zu verschieben, wobei
der Prozessor gleichzeitig denselben Speicher 210 für vielfache
Anwendungen verwenden kann, wie z. B. Betriebssystemspeicherung
an Adressen, die dem Prozessor vorbehalten sind und zur vorübergehenden
Speicherung von geordneten Bilddaten.
-
3a zeigt
ein alternatives Ausführungsbeispiel
eines Systems 300 zur Verarbeitung von Daten in einem Speicher 310. Ähnlich zu
der oben beschriebenen beispielhaften Ausführungsform können die
Daten z. B. Bilddaten sein, die von einem Bildsensor 340 empfangen
wurden. Wie schon oben beschrieben, sind die Ausführungsbeispiele
der vorliegenden Erfindung nicht auf Bilddaten beschränkt. Der
Speicher 310 kann eine Vielzahl von ersten Datensegmenten 330 und
zweiten Datensegmenten 335 aufweisen. Wie vorhergehend
beschrieben, kann die genaue Anzahl von den ersten und zweiten Datensegmenten 330 und 335 in
Abhängigkeit
von der spezifischen Anwendung des Speichers 310 variieren.
Zu Illustrationszwecken sind in 3 nur
ein einzelnes erstes Datensegment 330 und ein zweites Datensegment 335 dargestellt.
In dieser beispielhaften Ausführungsform
kann das erste Datensegment 330 zum Beispiel ein DRAM Bauteil
sein, während das
zweite Datensegment 335 zum Beispiel ein Static RAM („SRAM") Bauteil sein kann.
Auf diese Weise kann in dieser beispielhaften Ausführungsform die
Speichereinrichtung 310 zwei oder mehr Speichertypen umfassen.
Der Fachmann wird verstehen, dass der Gebrauch von DRAM und SRAM
lediglich beispielhaft ist und andere Speichertypen, wie z. B. SDRAM,
EDORAM, DDRRAM, DDR2RAM usw. ebenso verwendet werden können.
-
Der
Speicher 310 speichert zunächst die Bilddaten in der Reihenfolge,
in der er sie empfängt. Auf
diese Weise können
die vom Bildsensor 340 erhaltenen unverarbeiteten Bilddaten
im selben Format im ersten Datensegment 330 gespeichert
werden. Anstatt die Daten bei Erhalt neu zu ordnen, sortiert eine
Neuordnungslogik 320 die Daten, wenn sie aus dem Speicher 310 ausgelesen
werden (z. B. von einem Prozessor).
-
Wenn
der Speicher 310 in dieser beispielhaften Ausführungsform
den Befehl zum Lesen der Bilddaten erhält, die im Datensegment 330 gespeichert sind,
werden die Bilddaten in ein zweites Datensegment 335 kopiert.
Die zu dem zweiten Datensegment 335 kopierten Bilddaten
können
ihr unverarbeitetes Bildformat behalten. Werden die Daten jedoch
zu dem Prozessor ausgegeben, generiert die Neuordnungslogik 320 die
Speicheradresse, an welcher die Daten ausgegeben werden sollen,
um die neu sortierten Daten zu bilden, die zum Prozessor ausgegeben
werden. Hierdurch sind die von dem Prozessor empfangenen Daten in
einer ähnlichen
Weise neu geordnet wie die oben unter Bezugnahme auf 1 beschriebenen
neu geordneten Daten. Da der SRAM in diesem Beispiel sehr schnell
ist, erscheint das Ausgeben der Daten für den Prozessor wie ein normaler „Burst" Lesevorgang und
der Prozessor wird dann die neu geordneten Bilddaten zu weiteren
Verarbeitung erhalten.
-
3b zeigt
eine weitere alternative Ausführungsform
eines Systems 350 zur Verarbeitung von Daten in einem Speicher 310.
Das System 350 weist dieselben Komponenten auf wie in 3b für das System 300 beschrieben.
Der Unterschied zwischen den beiden beispielhaften Ausführungsformen
besteht darin, dass innerhalb des Systems 350 die Neuordnungslogik 320 die
neu geordneten Daten bildet und diese neu geordneten Daten in dem
neu geordneten Format im zweiten Datensegment 335 speichert,
sobald der Lesebefehl vom Speicher 310 erhalten wurde und
die Daten vom ersten Datensegment 330 zum zweiten Datensegment 335 kopiert werden.
Wenn die Daten aus dem zweiten Datensegment 335 ausgelesen
werden, werden sie in demselben Format, d. h. dem neu geordneten
Format, ausgegeben, wie sie in dem zweiten Datensegment 335 gespeichert
sind.
-
Es
wird angemerkt, dass in den beispielhaften Ausführungsformen der 3a und 3b die Daten
aus dem Speichers 310 sowohl in dem neu geordneten Format
als auch in dem unverarbeiteten Format ausgelesen werden können. Wie
oben beschrieben, können
die Daten in dem neu geordneten Format aus dem zweiten Datensegment 335 ausgelesen
werden. Es ist ebenfalls möglich,
die unverarbeiteten Daten aus dem ersten Datensegment 330 auszulesen,
um diese dann in ihrem unverarbeiteten Format zu behalten. Das kann
dann zum Beispiel nützlich
sein, wenn die Daten unter Verwendung einer verlustreichen Kompression
wie JPEG komprimiert wurden. Zum Beispiel könnte der Anwender den Wunsch
haben, die im JPEG komprimierten Bilder zu speichern, gleichzeitig
aber auch die ursprünglichen
Daten für
andere Anwendungen zu speichern. In diesem Fall können die
im ersten Datensegment 330 gespeicherten unverarbeiteten
Bilddaten zu einem anderen flüchtigen
oder nicht-flüchtigen
Typ einer Speichereinrichtung kopiert werden.
-
4 zeigt
eine weitere beispielhafte Ausführungsform
einer Speichereinrichtung 410, die eine Kameraschnittstelle 415 beinhaltet.
Die Speichereinrichtung 410 kann generell ähnlich wie
die Speichereinrichtungen 110, 210 und 310 funktionieren,
deren Funktionsweise bereits oben beschrieben ist, mit dem Ziel,
die Datenverarbeitung zu unterstützen.
Zusätzlich
zu den oben beschriebenen Funktionsweisen beinhaltet die Speichereinrichtung 410 ebenfalls eine
Kameraschnittstelle 415. In dieser beispielhaften Ausführungsform
können
daher die von der Kamera 440 gesammelten unverarbeiteten
Bilddaten 445 direkt über
die Kameraschnittstelle 415 zur Speichereinrichtung 410 übertragen
werden. Grund hierfür
ist, dass die unverarbeiteten Bilddaten 445 nicht notwendigerweise
durch den Prozessor 450 übertragen werden müssen, um
von der Speichereinrichtung 410 gespeichert zu werden.
Damit kann die Auslastung des Prozessors 450 weiter reduziert
werden, indem der Datenverkehr an unverarbeiteten Bilddaten, der
durch den Prozessor 450 läuft, vermieden wird.
-
Die
Kamera 440 wird, um mit diesem Beispiel fortzufahren, die
unverarbeiteten Bilddaten 445 sammeln und diese zur Kameraschnittstelle 415 der Speichereinrichtung 410 senden.
Die Kameraschnittstelle 415 kann eine in die Speichereinrichtung 410 eingebaute
Komponente und/oder ein in die Speichereinrichtung 410 eingebauter
Softwarecode sein, die zum Empfang der unverarbeiteten Bilddaten 445 von der
Kamera konfiguriert worden ist und jeden notwendigen Schritt durchführen kann,
so dass die Daten vom Speicher 410 angenommen werden.
-
In
dieser beispielhaften Ausführungsform weist
die Speichereinrichtung 410 die Neuordnungslogik 420 auf,
die zur Neuordnung der unverarbeiteten Bilddaten 445 benötigt wird
und speichert die neu geordneten Bilddaten in den Datensegmente(en) 430.
Dieser Prozess zur Neuordnung der unverarbeiteten Bilddaten 445 in
die neu geordneten Bilddaten kann jeder der oben unter Bezugnahme
der beispielhaften Ausführungsformen
in 1–3 beschriebenen Prozesse sein. Wenn also
der (die) unter 1–2 beschriebene(n)
Neuordnungsprozess(e) angewendet wird/werden, findet die Neuordnung
dann statt, wenn die Daten in die Speichereinrichtung 410 geschrieben
werden. Wenn im Gegensatz dazu der/die unter 3a–b beschriebene(n) Neuordnungsprozess(e)
angewendet wird/werden, findet die Neuordnung dann statt, wenn die
Daten vom Speicherbaustein 410 ausgelesen werden.
-
Wie
in 4 gezeigt, weist die Speichereinrichtung 410 ebenfalls
eine Standardspeicherschnittstelle 455 auf, die als Schnittstelle
mit dem Prozessor 450 für
jeden normalen Lese-/Schreibvorgang zwischen dem Prozessor 450 und
der Speichereinrichtung 410 verwendet wird. Die Speichereinrichtung 410 weist
weiterhin eine Steuerlogik auf, die ein Unterbrechungssignal auslösen kann,
das zum Prozessor 450 gesendet wird, sobald die gesamten
Bilddaten im Speicher 410 gespeichert sind. D. h. wenn
die Speichereinrichtung 410 die Gesamtheit der Bilddaten
gespeichert hat, dann sendet die Speichereinrichtung 410 das
Unterbrechungssignal zum Prozessor 450. Dieses Unterbrechungssignal
signalisiert dem Prozessor 450, dass die ganzen Bilddaten
nun in der Speichereinrichtung 410 gespeichert sind und dass
der Prozessor 450 mit einer beliebigen Bildverarbeitung
der gespeicherten Daten beginnen kann (z. B. mit der verbleibenden
JPEG Kompression). Hierbei ist es bis zum Abschluss der Datenspeicherung nicht
erforderlich, dass der Prozessor 450 weder in die Datenspeicherung
noch in die Übertragung
der Daten auf die Speichereinrichtung 410 involviert ist.
-
Der
Fachmann wird nachvollziehen können, dass
in der obigen Beschreibung einer beispielhaften Ausführungsform
als Schnittstelle eine Kameraschnittstelle 415 verwendet
wird, um Daten von einer externen Quelle anzunehmen. Ausführungsbeispiele
der vorliegenden Erfindung sind jedoch nicht beschränkt auf
den Gebrauch von Kameraschnittstellen.
-
Die
Schnittstelle kann eine beliebige Art von Schnittstelle sein, die
von einer Speichereinrichtung verwendet wird, um Daten direkt von
einer externen Quelle anzunehmen. Wie oben beschrieben, können diese
Daten zum Beispiel Bild-, Video- oder
Audiodaten sein, oder auch jede Art von Daten sein, bei der eine
zusätzliche
Verarbeitung stattfindet.
-
5 zeigt
eine weitere beispielhafte Ausführungsform
einer Speichereinrichtung, die ein JPEG Modul 560 aufweist.
Die Speichereinrichtung 510 weist dieselben Basiskomponenten
auf wie für die
oben beschriebene Speichereinrichtung 410, einschließlich einer
Kameraschnittstelle 515, um die unverarbeiteten Bilddaten 545 direkt
von der Kamera 545 anzunehmen, weiterhin (ein) Speichersegment(e) 530,
eine Neuordnungslogik 520 und eine Standardspeicherschnittstelle 555.
In dieser beispielhaften Ausführungsform
wird die gesamte JPEG Kompression in der Speichereinrichtung 510 ausgeführt, da
die Speichereinrichtung 510 auch ein JPEG Modul 560 umfasst.
Das JPEG Modul 560 weist die erforderliche Logik auf, um
die verbleibenden Schritte des JPEG Algorithmus auszuführen, die
im Beispiel der 4 vom Prozessor 450 ausgeführt werden.
Auf diese Weise wird der Neuordnungsschritt nicht nur innerhalb
der Speichereinrichtung 510 ausgeführt, sondern alle Schritte
der JPEG Kompression werden innerhalb der Speichereinrichtung 510 ausgeführt und
das JPEG Bild kann im (in) dem(n) Speichersegment(en) 530 gespeichert
werden. Auf diese Weise ist der Prozessor 550 von der Erstellung
des JPEG Bildes vollständig
befreit, wie im Ausführungsbeispiel
der 5 dargestellt. Das JPEG Bild, das in der Speichereinrichtung 510 gespeichert
ist, kann dann in jede Art von flüchtigen und/oder nicht-flüchtigen
Speicher kopiert werden.
-
Der
Fachmann wird nachvollziehen können, dass
die Einbeziehung des JPEG Moduls lediglich beispielhaft ist. Das
heißt,
jeder Typ eines Datenverarbeitungsmoduls kann in einer Speichereinrichtung enthalten
sein, um die Datenverarbeitung durchzuführen, die andernfalls vom Prozessor
ausgeführt wird.
Die Datenverarbeitung ist nicht auf JPEG oder Datenkompression beschränkt, sondern
kann jede Funktionalität
sein, um unverarbeitete Daten zu verarbeiten, die von der Speichereinrichtung
empfangen werden.
-
Der
Fachmann wird ebenfalls erkennen, dass das JPEG Modul 560 (oder
ein anderes Datenverarbeitungsmodul) in der Speichereinrichtung
als Hardwarekomponente und/oder Softwarecode implementiert werden
kann, welches die Funktionalität ausübt, die
vom Modul ausgeführt
werden soll.
-
Die
hierin beschriebenen beispielhaften Ausführungsformen verbesserte Effizienz
der Datenbearbeitungsprozesse durchgeführt an Daten, die in einem
Speicher gespeichert sind. Das heißt, dass einige (oder alle)
Datenbearbeitungsprozesse vom Prozessor an die Speichereinrichtung übergeben
werden. In den beispielhaften Ausführungsformen war die Form der
Datenbearbeitung die Datenkompression (z. B. JPEG Kompression).
Es ist dennoch aus der obigen Beschreibung ersichtlich, dass die
Ausführungsbeispiele
der vorliegenden Erfindung in Verbindung mit anderen Typen von Datenbearbeitungsverfahren
eingesetzt werden können,
bei denen einige (oder alle) der Verarbeitungsschritte von der Speichereinrichtung
ausgeführt
werden.
-
Der
als Beispiel aufgeführte
Speicher kann in einer Vorrichtung eingebaut werden, der für eine besondere
Aufgabe bestimmt ist (z. B. eine digitale Kamera, ein Digitalvideorekorder,
ein Digitalaudiorekorder). Wenn ein Teil der Datenverarbeitung in
dem beispielhaften Speicher statt im Prozessor ausgeführt wird,
kann der Prozessor daher so spezifiziert sein, dass er diese Funktionalität nicht
notwendigerweise bereitstellen muss. Folglich wird ein Prozessor
mit geringerem Leistungsumfang benötigt, was zu einer Kostenreduzierung
der Vorrichtung führt.
-
Der
beispielhafte Speicher kann ebenfalls in Universalrechnern eingebaut
werden, die allgemein zweckdienlich sind, z. B. einem Personal Computer („PC"). In dieser Umgebung
wird die beispielhafte Speichereinrichtung den Prozessor von bestimmten Verarbeitungsaufgaben
entlasten, was wiederum dem Prozessor ermöglicht, für andere Aufgaben eingesetzt
zu werden, so dass die Geschwindigkeit und die Effizienz des Rechners
erhöht
werden können.
-
Es
wird für
den Fachmann ersichtlich sein, dass bei der vorliegenden Erfindung
verschiedene Abwandlungen gemacht werden können, ohne dabei vom Wesen
oder dem Anwendungsbereich der Erfindung abzukommen. Es ist daher
beabsichtigt, dass die vorliegende Erfindung die Abwandlungen und
Variationen dieser Erfindung abdeckt, sofern sie sich innerhalb
des Umfangs der angefügten
Ansprüche
und ihrer Entsprechungen befinden.