-
Die
Erfindung bezieht sich auf eine Schaltungsanordnung mit einem Pufferspeicher
zur Speicherung von Bilddaten auf eine entsprechende Direktspeicherzugriff(DMA)-Einheit
und auf eine entsprechende Kameraschnittstelle.
-
Die
rasche Entwicklung in der Technik mobiler Kommunikation hat Verbraucher
in die Lage versetzt, unter Verwendung von Mobiltelefonen und anderen
tragbaren bzw. mobilen Endgeräten
bequem Informationen auszutauschen, insbesondere auch Bildinformationen.
Seit den frühen
Tagen der Verwendung von Mobiltelefonen nur für Anrufe, d.h. Sprach- bzw. Audioinformationen,
und Nachrichtenübermittlung
hat sich deren Funktion in jüngerer
Zeit bis zum Herunterladen von MP3-Musikdokumenten über das drahtlose mobile Internet-Netzwerk
erweitert. Neuerdings sind in Reaktion auf die Nachfrage nach Bild-
und Multimediaanwendungen Mobiltelefone, die mit Kameramodulen ausgerüstet sind,
allgemein verfügbar
geworden.
-
Derartige „Phonecams", d.h. Mobiltelefone mit
Kameramodul, beinhalten üblicherweise
einen Bildsensor und einen Bildsignalprozessor, so dass ein reales
Bild bzw. von einem Objekt ausgehendes Licht durch den Bildsensor
in ein elektrisches Signal gewandelt und das elektrische Signal
dann als anzeigbares Digitalbild vom Bildsignalprozessor ausgegeben
werden kann.
-
Der
Bildsensor ist aus Pixeln, d.h. Bildpunkten, aufgebaut, die in einem
zweidimensionalen Feld, d.h. einer Matrix, angeordnet sind. Jedes
Pixel ist durch eine Photodiode, die empfangenes Licht in elektronische
Ladung wandelt, und eine Auslesezelle gebildet. Die Auslesezelle
des Pixels kann einen Kondensator, wie im Fall eines ladungsgekoppelten Bauelements
(CCD) zum Speichern und Transportieren der Ladung von der Photodiode,
und/oder einen Transistor beinhalten. Der Bildsensor kann z.B. aus ladungsgekoppelten
Bauelementen bestehen oder in komplementärer Metall-Oxid-Halbleiter(CMOS)-Technologie
realisiert sein. In einem CCD-basierten Bildsensor mit Kondensatoren
aus Auslesezellen wird Ladung entlang eines Kanalpfades übertragen
bzw. verschoben, um Bilddaten daraus auszulesen. In einem Bildsensor
vom CMOS-Typ werden Ladungen oder Spannungen mit Hilfe von Zeilen- und Spaltendecodern
ausgelesen.
-
Bildsensoren
vom CMOS-Typ werden in Mobiltelefonen häufig verwendet, da sie verglichen
mit Bildsensoren vom CCD-Typ eine hohe Integrationsdichte und einen
niedrigen Leistungsverbrauch ermöglichen.
CCD-Bildsensoren
werden in digitalen Photokam"eras
und Videokameras, wie für
sogenannte „Closed-Circuit-Television"(CCTL)-Anwendungen
und Camcorder, aufgrund ihrer hohen Bildqualität und Lichtempfindlichkeit
eingesetzt.
-
Mit
den technischen Fortschritten bei CCD-Bildsensoren, insbesondere
mit weiterer Reduktion des Leistungsverbrauchs und Erzielung hoher Dichte,
ist zu erwarten, dass CCD-Bildsensoren auch in Mobiltelefonen breiten
Einsatz finden, speziell unter Berücksichtigung der erhöhten Nachfrage der
Verbraucher nach Kameras höherer
Auflösung.
-
Bei
Einsatz eines CCD-Bildsensors in einem Mobiltelefon kann ein sogenannter
Bildkipp- bzw. Bildstörungseffekt
auftreten. Eine solche Bildverkippung, z.B. eine Umkehrung oder
Verdrehung, wird durch Linsen und/oder Spiegel und Positionsänderungen
des Kameramoduls des Mobiltelefons verursacht. Abhängig von
der Positionsänderung
des Kameramoduls kann ein zur x-Achse symmetrisches Bild, d.h. ein
an der x-Achse gespiegeltes
Bild, ein zur y-Achse symmetrisches Bild, d.h. ein an der y-Achse
gespiegeltes Bild, oder ein x/y-achsensymmetrisches Bild, d.h. ein
an der x- und y-Achse gespiegeltes Bild, auftreten. Daher kann die
Bildverkippung eine Korrektur durch digitales Rückändern des gespiegelten Bildes
erfordern.
-
Der
CMOS-Bildsensor kann relativ einfach hinsichtlich Korrektur eines
verkippten, z.B. umgekehrten oder verdrehten Bildes konfiguriert
werden, indem die Zeilen- und Spaltendecoder geändert werden. Es ist jedoch
schwierig, einen CCD-Bildsensor zwecks Korrektur einer solchen Bildverkippung
zu ändern,
da Ladungen bzw. Bildsignale in diesem im Muster von Schieberegistern
detektiert werden, die direkt mit dem Photodiodenfeld gekoppelt
sind, weshalb die Reihenfolge horizontaler Zeilen eines Ausgabebildes
fixiert ist. Es kommen Maßnahmen
zur Überwindung
dieser Beschränkung
in Betracht, wie die Transformation eines Ausgabebildes des CCD-Bildsensors
durch einen Einzelbildpuffer („frame
buffer") unter Verwendung
eines Bildsignalprozessors oder die softwaremäßige Transformation eines Ausgabebildes
nach dessen digitaler Speicherung in einem externen Speicher. Jedoch
wird hierzu ein Einzelbildpuffer hoher Kapazität, z.B. mit mehreren Megapixels,
oder ein Speicher hoher Kapazität, z.B.
mit mehreren Megabyte, benötigt,
um die Bildverkippung, wie eine Umkehrung oder Verdrehung, eines
hochauf gelösten
Bildes zu korrigieren. Die Verwendung eines Einzelbildpuffers hoher
Kapazität
im Kameramodul kann ansonsten unnötige Anforderungen hinsichtlich
hoher Speicherkapazität
verursachen und Verzögerungen
in der Verfügbarkeit
von Bilddaten aufgrund der Einzelbildpufferprozesse erzeugen. Die
Verwendung eines externen Speichers für den CCD-Bildsensor kann häufige, ansonsten
unnötige
Speicherzugriffsvorgänge
verursachen, welche die Implementierung von Mobiltelefonen hoher Bandbreite
mit niedrigem Leistungsverbrauch und geringen Abmessungen behindern.
-
Die
Bezeichnung DMA steht für
Direktspeicherzugriff („Direct
Memory Access").
Dies ist ein spezielles Verfahren, um Informationen aus einem Speicher
zu erhalten, wobei üblicherweise
große Speicherblöcke durch
direktes Adressieren derselben statt durch übliche Puffer und ein übliches
Protokoll adressiert werden. Die Software zum DMA-Aufruf, die manchmal
auch in Hardware eingebettet ist, muss ausreichend intelligent sein,
um einen bestimmten Speicherblock aufzufinden. Hierbei handelt es
sich um ein Verfahren, das üblicherweise
von schnellen Plattensteuerungen, Bandsteuerungen, SCSI-Steuerungen
und intelligenten Datenbankoperationen benutzt wird. Es ist häufig um
den Faktor 20 schneller als übliche
andere Zugriffsverfahren.
-
Der
Erfindung liegt als technisches Problem die Bereitstellung einer
Schaltungsanordnung der eingangs genannten Art, einer entsprechenden DMA-Einheit
und einer entsprechenden Kameraschnittstelle zugrunde, mit denen
sich die oben erwähnten
Schwierigkeiten des Standes der Technik wenigstens teilweise überwinden
lassen.
-
Die
Erfindung löst
dieses Problem durch die Bereitstellung einer Schaltungsanordnung
mit den Merkmalen des Anspruchs 1, einer DMA-Einheit mit den Merkmalen des Anspruchs
11 und einer Kameraschnitt stelle mit den Merkmalen des Anspruchs
20 oder 24. Vorteilhafte Weiterbildungen der Erfindung sind in den
Unteransprüchen
angegeben.
-
Die
Erfindung stellt u.a. eine Kameraschnittstelle mit einer DMA-Einheit
zur Verfügung,
die zur Durchführung
einer Bildtransformation, wie einer Verkippung oder Drehung, eingerichtet
ist, um eine Bildspiegelung an einer x-Achse, y-Achse und/oder an den
x/y-Achsen zu korrigieren, und für
mobile Endgeräte
hoher Bandbreite mit niedrigem Leistungsverbrauch und geringen Abmessungen
geeignet ist, die Kameras beinhalten. Die Erfindung stellt eine
Bildtransformationseinheit insbesondere unter Verwendung einer DMA-Einheit
bereit, um Funktionen zur Bildspiegelung z.B. eines an der x-Achse
oder y-Achse gespiegelten Bildes und zur Bilddrehung um 180° auszuführen.
-
Der
Direktspeicherzugriff (DMA) ist ein Mittel, um einen Prozessorspeicherbus
direkt von einer peripheren Einheit zu steuern. Im Bündel- bzw.
Burstmodus behält
die DMA-Steuerung die Kontrolle über den
Bus, bis alle durch die anfragende Einheit gepufferten Daten zum
Speicher übertragen
worden sind, oder bis ein Ausgabegerätepuffer voll ist, wenn zu
einer peripheren Einheit geschrieben wird. In einer Rechnerumgebung
bezieht sich die Bezeichnung Burstmodus bzw. Bündelmodus generisch auf jegliche
Situation, in der eine Einheit wiederholt Daten überträgt, ohne auf eine Eingabe von
einer anderen Einheit zu warten und ohne auf den Abschluss eines internen
Prozesses zu warten, bevor mit dem Datentransfer fortgesetzt wird.
-
Die
Erfindung ermöglicht
die Bereitstellung eines Mobiltelefons mit einem Kameramodul, das eine
Schnittstelle zur Ausführung
einer Bildspiegelungsfunktion, wie Bildverkippung oder Bilddrehung, unter
Verwendung einer DMA-Einheit aufweist.
-
Vorteilhafte
Ausführungsformen
der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend
beschrieben. Hierbei zeigen:
-
1 ein
Blockschaltbild eines Kameramoduls und eines Anwendungsprozessors
in einem Mobiltelefon,
-
2 ein
Blockschaltbild einer DMA-Steuereinheit von 1,
-
3 ein
Blockschaltbild zur Veranschaulichung von Eigenschaften hinsichtlich
Datenfluss und Datensteuerung mit einer Codier/Decodier-DMA-Einheit
von 2,
-
4 ein
Zustandsübergangsdiagramm
einer finiten DMA-Zustandsmaschine von 2,
-
5 ein
Flussdiagramm für
die Funktionsweise einer Kanalarbitriereinheit von 2,
-
6 ein
Zustandsübergangsdiagramm
einer finiten Abruf-Zustandsmaschine für Luminanzkomponenten mit Teilbildern 6A bis 6D,
-
7 schematische
Darstellungen zum Vergleich von ursprünglichen Pixelpositionen eines
von einem Kameramodul aufgenommenen Bildes und Pixelpositionen in
verschiedenen Spiegelbildmodi für ein "Big-Endian"-Speichersystem,
-
8 schematische
Darstellungen entsprechend 7 zur Veranschaulichung
von Pixelpositionen in Spiegelbildmodi in einem „Low-Endian"-Speichersystem,
-
9 schematische
Darstellungen zur Veranschaulichung einer Adressmodifikation während einer
Bildtransformation, wie Spiege lung bzw. Kippung bezüglich x-Achse,
zur Korrektur eines an der x-Achse gespiegelten Bildes,
-
10 schematische
Darstellungen zur Veranschaulichung einer Adressmodifikation während einer
Bildtransformation, wie Spiegelung oder Kippung bezüglich y-Achse,
zur Korrektur eines an der y-Achse gespiegelten Bildes,
-
11 schematische
Darstellungen zur Veranschaulichung der Eigenschaften einer Modifizierung
von Sequenzen von Worten und Pixeln in jedem Wort innerhalb einer
Bündeltransferlänge von
16 für y-Achsenspiegelung,
-
12 eine
schematische Darstellung zur Veranschaulichung einer Adressmodifizierung,
welche die Sequenzen von Worten und Pixeln in jedem Wort sowie die
Anordnung von DMA-Adressen für y-Achsenspiegelung
beeinflusst,
-
13 schematische
Darstellungen zur Veranschaulichung einer Adressmodifikation während einer
Bilddrehung bzw. xy-Achsenspiegelung
zur Korrektur eines an den xy-Achsen gespiegelten Bildes,
-
14 eine
schematische Darstellung einer Adressmodifikationseigenschaft, welche
die Sequenzen von Worten und Pixeln jedes Wortes und die Anordnung
von DMA-Adressen bei xy-Achsenspiegelung
bzw. Bilddrehung beeinflusst,
-
15 ein Flussdiagramm eines Verfahrens zum
Betrieb eines Adressgenerators von 2 mit Teilbildern
15A und 15B,
-
16 eine
detaillierte Blockdiagrammdarstellung eines Datenselektors für die DMA-Steuereinheit
von 2,
-
17 ein
Zeitablaufdiagramm zur Veranschaulichung einer DMA-Adressmodifikation
und deren zeitlichen Ablaufs und
-
18 schematische
Darstellungen von Pixeldatentypen, die im Kameramodul von 1 verarbeitet
werden können.
-
1 veranschaulicht
im Blockschaltbild ein Kameramodul 101 und einen Anwendungsprozessor 111 in
einem Mobiltelefon gemäß der Erfindung.
Wie aus 1 ersichtlich, beinhaltet das
Kameramodul 101 einen Bildsensor 103 und einen
Bildsignalprozessor (ISP) 105. Der Bildsensor 103 kann
vom CCD-Typ oder vom CMOS-Typ sein. Der Applikationsprozessor 111 umfasst
eine Kameraschnittstelle 113, eine Verarbeitungseinheit 123,
eine Speicherschnittstelle 125 und einen Systembus 129,
um die zuvor genannten Einheiten operativ zu verbinden. Der Systembus 129 ist
z.B. ein fortentwickelter Bus hoher Leistungsfähigkeit (AHB-Bus), der mit
einem externen Einzelbildspeicher 127 verbunden ist, welcher
z.B. als synchroner DRAM (dynamischer Speicher mit wahlfreiem Zugriff)
realisiert sein kann. Die Kameraschnittstelle 113 beinhaltet
einen Vorprozessor 115, einen Farbskalierer 117 und
eine DMA-Steuereinheit 119,
kurz auch DMA-Einheit bezeichnet, zur Durchführung von Bildtransformationsfunktionen.
-
Nach
der Wandlung eines optischen, realen Bildes mittels Empfangen von
Licht, das von einem Objekt stammt, in ein elektrisches Signal mit
Hilfe des Bildsensors 103 wird das elektrische Signal zum
Bildsignalprozessor 105 übertragen und dann als Pixeldaten
zur Kameraschnittstelle 113 transferiert. Die Kameraschnittstelle 113 sammelt
kontinuierlich Pixeldaten, die vom Kameramodul 101 empfangen werden
und in Farbkomponenten ausgedrückt
werden. Die Pixeldaten werden transformiert und dann zum Systembus 129 übertragen.
Die auf den Systembus 129 gegebenen Pixeldaten werden über die Speicherschnittstelle
125 im Einzelbildspeicher 127 gespeichert. Ein Einzelbild,
das im Einzelbildspeicher 127 gespeichert ist, kann nach
Komprimierung übertragen
oder auf einem LCD-Bildschirm des Mobiltelefons angezeigt werden.
-
Der
Vorprozessor 115 der Kameraschnittstelle 113 wandelt
Y/Cb/Cr-Pixeldaten
mit 4:2:2-Format in Y/Cb/Cr-Pixeldaten vom 4:2:0-Format und betreibt
eine Fensterbildungsfunktion und verschiedene Vorprozesse. Außerdem separiert
der Vorprozessor 115 die Y/Cb/Cr-Daten in Luminanzkomponenten
Y und Chrominanzkomponenten Cb, Cr. In Y/CB/CR-definierten Formaten
bezeichnet Y die Luminanz, während
CB und CR die Farbdifferenzsignale bezeichnen. Grob definiert heißt dies,
dass Y die Luminanz oder das monochrome Videoelement bezeichnen,
während
CB und CR die Komponenten B-Y bzw. R-Y bezeichnen, welche die Primärfarben blau
bzw. rot abzüglich
des Luminanzelementes Y darstellen. Die separierten Luminanz- und
Chrominanzdaten werden zum Farbskalierer 117 übertragen.
-
Der
Farbskalierer 117 beinhaltet Skalierungseinheiten für Codier/Decodier-
und Voransichtspfade. Ein Voransicht-Farbskalierer ermöglicht es
einem Benutzer, ein vom Kameramodul 101 aufgenommenes Bild
auf einem LCD-Bildschirm des Mobiltelefons zu überwachen. Die Codier/Decodier-Skalierungseinheit
dient zur Kompression und Übertragung
eines Bildes. Jede Skalierungseinheit speichert Bilddaten in einem
FIFO-Speicher mit einer anwachsenden oder abnehmenden Zahl von Pixeln, wobei
die Bilddaten vom Vorprozessor zugeführt werden. Die Voransicht-Skaliereinheit
umfasst einen Farbwandler, um Y/Cb/Cr-Daten in R/G/B-Daten zu wandeln.
-
Die
DMA-Einheit 119 modifiziert in geeigneter Weise Bilddaten,
die vom Farbskalierer 117 geliefert werden, gemäß eines
Spiegelbildmodus und stellt die modifizierten Bilddaten dem Systembus 129 zur
Verfügung.
Die DMA-Einheit 119 steht hierbei in Transferverbindung
mit der Codier/Decodier- und der Voransicht-Skaliereinheit. Bei
der DMA-Einheit 119 handelt es sich speziell um eine solche,
die zur Ausführung
einer vorgegebenen Bildspiegelungsfunktion, z.B. zwecks Bildwiederherstellung,
eingerichtet ist.
-
2 zeigt
im Blockschaltbild eine mögliche Realisierung
für die
DMA-Einheit 119 von 1.
Wie aus 2 ersichtlich, ist die DMA-Einheit 119 in
diesem Beispiel in eine Codier/Decodier-DMA-Einheit 119a und
eine Voraussicht-DMA-Einheit 119b unterteilt. Jede dieser
beiden DMA-Einheiten 119a, 119b beinhaltet
einen internen Pufferspeicher 207a bzw. 207b zur
Bilddatenspeicherung, einen FIFO-Speicher 118a und 118b des
Codier/Decodier-Farbskalierers bzw. des Voransichts-Farbskalierers, einen Adressgenerator 211a bzw. 211b zur Änderung
einer Systembusadresse gemäß eines
Spiegelbildmodus sowie einen Datenselektor 213a bzw. 213b zum Ändern einer
Reihenfolge von Bilddaten, die vom internen Pufferspeicher 207a bzw. 207b ausgegeben werden,
in Abhängigkeit
von einem Spiegelbildmodus. Die DMA-Einheiten 119a und 119b umfassen außerdem jeweils
einen Protokollsignalgenerator 209a bzw. 209b zur
Erzeugung eines Systemprotokollsignals. Der jeweilige Adressgenerator 211a bzw. 211b stellt
eine Einzelbildstartadresse, eine Zeilenstartadresse und eine Bündeltransferstartadresse zur
Verfügung,
um Bilddaten in den (externen) Elnzelbildspeicher 127 aus
dem internen Pufferspeicher 207a bzw. 207b zu
speichern. Der jeweilige Datenselektor 213a bzw. 213b wählt Ausgabebilddaten
vom internen Pufferspeicher 207a bzw. 207b mit
modifizierten Sequenzen von Worten und Pixeln in einem jeweiligen
Wort aus.
-
Ein
im FIFO-Speicher 118a bzw. 118b gespeichertes
Einzelbild wird außerdem
im internen Pufferspeicher 207a bzw. 207b gespeichert,
damit auf dieses vom Systembus 129 in einem Bündelformat
zugegriffen wer den kann. Die im internen Pufferspeicher 207a bzw. 207b gespeicherten
Bilddaten werden in den Sequenzen von Worten und Pixeln gemäß einem
Spiegelbildmodus transformiert und dann im externen Einzelbildspeicher 127 über den
Systembus 129 in einem Bündelformat gespeichert. Währenddessen
wird durch den Adressgenerator 211a bzw. 211b eine
Adresse zum Speichern der Bilddaten im externen Einzelbildspeicher 127 bereitgestellt.
Der jeweilige Adressselektor 211a bzw. 211b stellt
eine Einzelbildstartadresse, eine Zeilenstartadresse und eine Bündeltransferstartadresse
der Bilddaten zur Verfügung,
auf die gemäß einem
Spiegelbildmodus im Bündelbetrieb
zugegriffen wird.
-
Eine
zugehörige
Bündeltransferlänge L beträgt ein Vielfaches
von zwei, beispielsweise 2, 4, 8 oder 16. Wenn nach Division der
Anzahl horizontaler Pixel eines zu verarbeitenden Einzelbildes durch
die einer Burstlänge
entsprechende Pixelanzahl ein Rest verbleibt, d.h. die Anzahl restlicher
Pixel ist kleiner als die der Bündellänge entsprechende
Pixelanzahl, werden die übrigen
Pixel durch einen Restbündeltransfermodus
verarbeitet, der für
die übrige
Anzahl von Pixeln geeignet ist, um die Buseffizienz zu steigern.
Mit anderen Worten besteht der Bündeltransfervorgang
aus einem Hauptbündeltransfermodus und
einem Restbündeltransfermodus.
Bei der Verarbeitung der Bilddaten im Hauptbündeltransfermodus mit einer
vorgebbaren Bündellänge L von
z.B. 2, 4, 8 oder 16 werden die letzten, übrigen Daten mit einer Länge kleiner
als die vorgegebene Bündellänge im Restbündeltransfermodus
verarbeitet. Da die Anzahl horizontaler, zu verarbeitender Pixel
bekannt ist, wird die Information über die Haupt- und Restbündeltransferlängen von
einem speziellen Register entsprechender Funktion bereitgestellt.
-
Die
beiden letzten Bündeltransfervorgänge für Pixel
einer horizontalen Zeile eines Einzelbildes können im Hauptbündeltransfermodus
erfolgen, wenn die Anzahl horizontaler Pixel ohne Rest durch eine
vorgegebene Bündellänge teilbar
ist, oder sie erfolgen im Hauptbündeltransfermodus und
zusätzlich im
Restbündeltransfermodus.
Die Bündeltransferlänge kann
unter Berücksichtigung
der Größe einer
horizontalen Zeile in einem Einzelbild und der Eigenschaften eines
hierin vorgesehenen Systembusses vorgegeben werden.
-
Wenn
beispielsweise die Anzahl horizontaler Pixel gleich 240 ist, d.h.
60 Worte, sind nach siebenmaliger Durchführung eines Bündeltransfers
mit Bündellänge 8 eine
Anzahl von 16 Pixel übrig,
d.h. vier Worte. Nach Abschluss des Hauptbündeltransfermodus mit Bündellänge 8 werden
daher die letzten vier Pixel im Restbündeltransfermodus verarbeitet.
Wenn als weiteres Beispiel die Anzahl horizontaler Pixel gleich
224, d.h. 56 Worte ist, können
alle horizontalen Pixel im Hauptbündeltransfermodus verarbeitet
werden, indem der Bündeltransfer
mit Bündellänge 8 sieben
Mal durchgeführt
wird. Alternativ können
die 224 horizontalen Pixel durch dreimaliges Ausführen des Hauptbündeltransfermodus
mit Bündellänge 16 und anschließendes Verarbeiten
der restlichen Pixeldaten im Restbündeltransfermodus mit Bündellänge 8 verarbeitet
werden.
-
Im
Bildmodus mit x-Achsenspiegelung oder in einem normalen Bildmodus
lädt der
Datenselektor, d.h. die Datenauswahleinheit 213a bzw. 213b,
Bilddaten des internen Pufferspeichers 207a bzw. 207b auf
den Systembus 129, ohne die Sequenzen von Worten und von
Pixeln in einem Wort zu modifizieren. In einem Bildmodus mit y-Achsenspiegelung
oder xy-Achsenspiegelung lädt
der Datenselektor, d.h. die Datenauswahleinheit 213a bzw. 213b,
Bilddaten des internen Pufferspeichers 207a bzw. 207b mit
einer Umkehrung der Sequenzen von Worten und von Pixeln in einem
Wort auf den Systembus.
-
Im
x-Achsenspiegelbildmodus stellt der Adressgenerator 211a bzw. 211b eine
Einzelbildstartadresse zum Übertragen
einer ersten horizontalen Zeile dadurch zur Verfügung, dass er einen Adressplatz
einer horizontalen Zeile vom gesamten Adressplatz eines Einzelbildes
subtrahiert, und nach Abschluss des Prozesses zum Übertragen
der ersten horizontalen Zeile stellt er eine neue Zeilenstartadresse
zum Übertragen
einer zweiten horizontalen Zeile bereit, indem er von einer momentanen
Adresse des Einzelbildes einen Adressplatz zweier horizontaler Zeilen
subtrahiert.
-
Im
y-Achsenspiegelbildmodus stellt der Adressgenerator 211a bzw. 211b eine
Einzelbildstartadresse zum Übertragen
einer ersten horizontalen Zeile bereit, indem er einen Adressplatz,
der einer Bündelübertragung
zugewiesen ist, zu einem Adressplatz addiert, der zu einer horizontalen
Zeile gehört.
Der Adressgenerator 211a bzw. 211b stellt eine
Bündeltransferstartadresse
durch Subtrahieren eines Adressplatzes, der dem doppelten Wert des Hauptbündeltransfermodus
entspricht, von einer momentanen Adresse zur Verfügung, wodurch
eine vorläufige
Erhöhung
der Adresse gegenüber
der momentanen Adresse aufgrund der Bündelübertragung vor dem momentanen
Bündeltransfer
ermöglicht wird.
Der Adressgenerator 211a bzw. 211b stellt außerdem eine
Zeilenstartadresse durch Addieren eines zwei horizontalen Zeilen
entsprechenden Adressplatzes und eines Adressplatzes, der einer Differenz
zwischen den beiden letzten Bündelübertragungen
entspricht, zu einer momentanen Adresse zum Zeitpunkt des Abschlusses
eines Prozesses für eine
horizontale Zeile zur Verfügung.
-
Andererseits
stellt der Adressgenerator 211a bzw. 211b im xy-Achsenspiegelbildmodus
folgende Adressen zur Verfügung:
eine Einzelbildstartadresse durch Addieren einer Adresse, die einem
Bündeltransfer
entspricht, zum gesamten Adressplatz eines Einzelbildes; eine Bündeltransferstartadresse
durch Subtrahieren eines Adressplatzes, der dem Doppelten des Hauptbündeltransfers
entspricht, von einer momentanen Adresse, was eine vorläufige Erhöhung der
Adresse gegenüber
der momentanen Adresse aufgrund der Bündelübertragung vor dem momentanen
Bündeltransfer
ermöglicht;
und eine Zeilenstartadresse durch Addieren eines Adressplatzes,
der einer Differenz zwischen den beiden letzten Bündelübertragungen
einer horizontalen Zeile entspricht, zu einer momentanen Adresse
zum Zeitpunkt des Abschlusses eines Prozesses für eine horizontale Zeile.
-
Im
x-Achsen- und xy-Achsenspiegelbildmodus wird die letzte Bündeltransferstartadresse,
wenn die Pixelanzahl nicht ohne Rest durch die zur Hauptbündeltransferlänge gehörige Pixelanzahl
teilbar ist, durch Subtrahieren eines Adressplatzes, welcher der Summe
aus Hauptbündeltransfer
und restlichem Bündeltransfer
entspricht, von einer momentanen Adresse erhalten.
-
Der
Adressgenerator 211a bzw. 211b sowie der Datenselektor 213a bzw.
213b werden anhand beispielhafter Realisierungen weiter unten noch
eingehender erläutert.
-
Ein
Datenabruf aus dem FIFO-Speicher 118a bzw. 118b des
Farbskalierers zum internen Pufferspeicher 207a bzw. 207b wird
durch eine finite Abruf-Zustandsmaschine (Abruf-FSM) 201a bzw. 201b gesteuert.
Eine finite DMA-Zustandsmaschine (DMA-FSM) 203a bzw. 203b liefert
einen DMA-Transferstatus. Die Codier/Decodier-DMA-Einheit 119a hat
zu den Komponenten Y, Cb und Cr gehörige interne Pufferspeicher
und weist des weiteren eine in der Voransicht-DMA-Einheit 119b nicht
vorhandene Kanalarbitriereinheit 205 zur Verwaltung von
DMA-Zugriffsvorgängen
für die
Luminanzdaten Y und die Chrominanzdaten Cb/Cr auf. Die Voransicht-DMA-Einheit 119b benötigt keine
Arbitriereinheit zur Trennung der Farbkomponenten in Kanäle, da ihre
Eingangsdaten in einem RGB-Format
konfiguriert sind.
-
Die
Kanalarbitriereinheit 205 der Codier/Decodier-DMA-Einheit 119a verwaltet
als eine logische Schaltung zur Steuerung des Busbesitzes durch
die Luminanz- und Chrominanzkomponenten Y, Cb und Cr die Kanal-
bzw. Datenauswahl und die Autorisierung zum Laden der Farbdaten
auf den Bus 129 vom internen Pufferspeicher 207a für den jeweiligen
Kanal bzw. die jeweiligen Farben. Da Luminanzdaten im allgemeinen
ein größeres Transfervolumen
haben, werden sie mit höherer
Priorität
verarbeitet, während die
Chrominanzdaten Cb und Cr mit gleicher Priorität verarbeitet und durch einen
Ping-Pong-Übertragungstyp
ausgewählt
werden.
-
Die
Abruf-FSM 201a bzw. 201b steuert einen Abrufvorgang
vom FIFO-Speicher 118a bzw. 118b unter
Berücksichtigung
der DMA-FSM 203a bzw. 203b und im Fall der DMA-Einheit 119a unter
Berücksichtigung
der Kanal-Arbitriereinheit 205. Die Abruf-FSM 201a bzw. 201b gibt
ein Auslesesteuersignal nur dann ab, wenn der FIFO-Speicher 208a bzw. 208b nicht
leer ist und der interne Pufferspeicher 207a bzw. 207b einen
DMA-Transfervorgang
abschließt,
und speichert Daten vom FIFO-Speicher 208a bzw. 208b im
internen Pufferspeicher 207a bzw. 207b genau gemäß dem Bündeltransferlängenbetrag,
der auf den Systembus geladen ist. Die Bündeltransferlänge und
der Spiegelbildmodus werden durch voreingestellte Werte in einem
speziellen Funktionsregister 223 festgelegt.
-
3 veranschaulicht
im Blockschaltbild die Eigenschaften des Datenflusses und der Datensteuerung
innerhalb der Codier/Decodier-DMA-Einheit 119a gemäß der Erfindung.
Die DMA-FSM 203a informiert die Kanalarbitriereinheit 205,
die Adressgeneratoreinheit (AGU) 211a, die Datenauswahleinheit (DSU) 213a sowie
Busprotokollsignalgeneratoren 209i, 209j und 209k über einen
DMA-Transferstatus CurStateDMA.
-
Interne
Pufferspeicherteile 207_Y, 207_Cb und 207_Cr speichern
Daten, auf die im Bündelmodus
zugegriffen werden soll, von jeweiligen FIFO-Pufferspeicherteilen 118_Y, 118_Cb und 118_Cr,
die je einer der Komponenten Y, Cb und Cr zugewiesen sind. Währenddessen
steuert die Abruf-FSM 201 einen Datenabrufvorgang aus den FIFO-Speichern 118_Y, 118_Cb und 118_Cr unter Berücksichtigung
der Zustände
der DMA-FSM 203a und der Kanalarbitriereinheit 205.
Mit anderen Worten empfängt
die Abruf-FSM 201a ein Signal, das darüber informiert, dass die internen
Pufferspeicher 207_Y, 207_Cb und 207_Cr in
einem Zustand des Abschlusses eines DMA-Transfers sind, von der
Kanalarbitriereinheit 205 und gibt dann das Auslesesteuersignal
frei, falls die FIFO-Speicher 118_Y, 118_Cb und 118_Cr nicht
leer sind. Das Auslesesteuersignal gibt in den internen Pufferspeichern 207Y, 207_Cb und 207_Cr zu
speichernde Daten aus den FIFO-Speichern 118_Y, 118_Cb und 118_Cr mit
genau dem Betrag der Bündeltransferlänge frei. Dann
erzeugt die Abruf-FSM 201a ein DMA-Bereitsignal FSM_DMA_ready,
um die DMA-FSM 203a und die Kanalarbitriereinheit 205 vom
Abschluss eines Abrufvorgangs für
Pixeldaten zu informieren.
-
Die
Kanalarbitriereinheit 205 kommuniziert mit der DMA-FSM 203a und
der Abruf-FSM 201a und stellt einem Multiplexer 303 entsprechend
der Bündeltransferlänge und
des Zustands (CurStateDMA) der DMA-FSM 203a ein Steuersignal
zur Verfügung, das
die Vorgänge
zum Auswählen
eines Kanals bzw. von Daten aus den Luminanz- und Chrominanzkomponenten
und zum Laden von Daten aus den internen Pufferspeichern 207_Y, 207_Cb und 207_Cr auf den
Systembus 129 steuert. Nach Abschluss des Datentransfers
auf den Systembus 129 sendet die Kanalarbitriereinheit 205 ein
DMA-Transferendesignal Y/Cb/CrTransDone an die Abruf-FSM 201a.
-
Die
Datenauswahleinheit (DSU) 213a erzeugt Signale Ysel, CbSel
und CrSel zur Steuerung von Multiplexern 213_Y, 213_Cb und 213_Cr,
die jeweils einer der Komponenten Y, Cb und Cr zugewiesen sind,
gemäß dem Zustand
der DMA-FSM 203a. Die Steuersignale YSel, CbSel und CrSel
aktivieren die Multiplexer 213_Y, 213_Cb und 213_Cr dazu,
die Sequenzen von Worten und Pixeldaten, die in den internen Pufferspei chern 207_Y, 207_Cb und 207_Cr gespeichert
sind, zu modifizieren und sie an den Multiplexer 303 abzugeben.
Die vom Multiplexer 303 abgegebenen Daten werden unter
der Steuerung eines Dateneinschreibsignals HWDATAout eines Dateneinschreibsignalgenerators 305 auf
einen Datenbus geladen.
-
Die
Adressgeneratoreinheit (AGU) 211a gibt eine Systembusadresse
HADDRout zum Schreiben der vom Multiplexer 303 abgegebenen
Daten über den
Datenbus in den externen Einzelbildspeicher 127 entsprechend
eines ausgewählten
Spiegelbildmodus und des Zustands der DMA-FSM 203 ab. Die Busprotokollsignalgeneratoren 209i, 209j und 209k geben
ein Busanfragesignal HBUSREQx, ein Datentransfermustersignal HTRANSout
bzw. ein Bündeltransfersignal
HBURSTout basierend auf dem Zustand der DMA-FSM 203a ab.
-
4 zeigt
ein Zustandsübergangsdiagramm
für die
DMA-FSM 203a bzw. 203b der 2. Wie aus 4 ersichtlich,
geht das DMA-Transferbereitsignal
FSM_DMA_ready, wenn es von der Abruf-FSM 201a während eines
Ruhe- bzw. Leerlaufzustands erzeugt wird, aufgrund eines DMA-Arbitrierungszustands
in einen DMA-Busanfragezustand. Wenn ein Busprioritätssignal
HGRANTx und ein Datentransferendesignal HREADYin während des
Busanfragezustands aktiviert werden, erfolgt ein Übergang
in einen DMA-Transferzustand. Wenn während des DMA-Transferzustands
ein Datentransfer abgeschlossen wird und die letzten Daten einer
Bündellänge übertragen
worden sind, erfolgt wieder eine Rückkehr zum Leerlaufzustand.
-
5 veranschaulicht
im Flussdiagramm ein Betriebsverfahren der Kanalarbitriereinheit 205.
Die Luminanzdaten Y sind höher
priorisiert als die Chrominanzdaten Cb/Cr. Auf die Chrominanzdaten
Cb/Cr wird untereinander mit gleicher Priorität zugegriffen, wobei zur Auswahl
eine Ping-Ping-Übertragungssequenz
benutzt wird. In einem ersten, auf ei nen Ruhezustand 501 folgenden
Entscheidungsschritt 503 wird festgestellt, ob sich die
DMA-FSM 203a im Arbitrierungszustand befindet, und der
Ruhezustand 501 wird beibehalten, solange dies nicht der
Fall ist. Wenn sich die DMA-FSM im Arbitrierungszustand befindet,
d.h. im Zustand „Arbitrierung" von 4, wird
in einem nächsten
Entscheidungsschritt 505 festgestellt, ob es eine Transferanfrage
für die
Luminanzdaten Y gibt. Wenn dies der Fall ist, erfolgt in einem Schritt 507 eine
Zuweisung der FIFO- und internen Pufferspeicher zu den Luminanzdaten
Y, um diese zu übertragen.
Wenn dies nicht der Fall ist, wird der Schritt 507 übersprungen
und direkt zu einem anschließenden
Entscheidungsschritt 509 weitergegangen, in welchem festgestellt
wird, ob es keine Anfrage für
die Luminanzdaten Y und keine Anfrage für die Chrominanzdaten Cr, jedoch
eine Anfrage für
die Chrominanzdaten Cb gibt. Wenn diese Abfragekombination bejaht
wird, erfolgt in einem Schritt 511 ein Übertragungsvorgang für die Chrominanzdaten
Cb mit den zur Chrominanzkomponente Cb gehörigen FIFO- und internen Pufferspeichern.
Wenn wenigstens eine der drei Abfragebedingungen verneint wird, wird
der Schritt 511 übersprungen
und direkt zu einem anschließenden
Entscheidungsschritt 513 weitergegangen, in welchem abgefragt
wird, ob es keine Anfrage für
die Luminanzdaten Y, jedoch eine Anfrage für die Chrominanzdaten Cb und
eine Anfrage für die
Chrominanzdaten Cr, aber keinen Transfer für die Chrominanzdaten Cb gibt.
-
Wenn
diese Abfragekombination bejaht wird, erfolgt in einem Schritt 515 ein Übertragungsvorgang für die Chrominanzdaten
Cb. Wenn die Abfragekombination verneint wird, wird der Schritt 515 übersprungen
und direkt zu einem anschließenden
Entscheidungsschritt 517 weitergegangen, in welchem festgestellt
wird, ob es keine Anfrage für
die Luminanzdaten Y, jedoch eine Anfrage für die Chrominanzdaten Cb und
eine Anfrage für
die Chrominanzdaten Cr und einen Transfer für die Chrominanzdaten Cr gibt.
-
Wenn
diese Abfragekombination bejaht wird, erfolgt in einem Schritt 519 ein Übertragungsvorgang für die Chrominanzdaten
Cr. Wenn die Abfragekombination verneint wird, wird der Schritt 519 übersprungen
und direkt zu einem anschließenden
Entscheidungsschritt 521 weitergegangen, in welchem abgefragt
wird, ob keine Anfrage für
die Luminanzdaten Y, keine Anfrage für die Chrominanzdaten Cb, jedoch eine
Anfrage für
die Chrominanzdaten Cr vorliegt. Wenn diese Abfragekombination bejaht
wird, erfolgt in einem Schritt 523 ein Übertragungsvorgang für die Chrominanzdaten
Cr, wonach zum Ruhezustand bzw. zum ersten Entscheidungsschritt 503 zurückgekehrt
wird. Wenn die Abfragekombination verneint wird, erfolgt dieser
Rücksprung
direkt, d.h. unter Umgehung des Schritts 523.
-
6 veranschaulicht
mit ihren Teilbildern 6A bis 6D ein Zustandsübergangsdiagramm
für die Abruf-FSM 201a gemäß 2 bezüglich der
Luminanzkomponente Y, wobei Gleiches für die Chrominanzkomponenten
Cb und Cr gilt. Wie aus 6 in Verbindung mit 2 ersichtlich,
steuert die Abruf-FSM 201a die Aktivierung eines Abrufvorgangs von
Daten aus dem FIFO-Speicher in den internen Pufferspeicher 207a in Übereinstimmung
mit einer Bündeltransferlänge unter
Berücksichtigung
der Zustände
der FSM-DMA 203a und der Kanalarbitriereinheit 205.
-
Wenn
der FIFO-Speicher nicht leer ist (∼FIFO_Y_empty_sync) und der interne
Pufferspeicher im DMA-Transferabschlusszustand (YtransDone) ist,
gibt die Abruf-FSM (FSM_DMA) 201a ein Auslesesteuersignal
FIFO_Y_rd ab und ruft Daten für den
internen Pufferspeicher aus dem FIFO-Speicher mit dem Betrag einer
Bündeltransferlänge (YBurst) ab,
um sie auf den Systembus 129 zu laden.
-
Der
Adressgenerator 209a bzw. 209b und der Datenselektor 213a bzw. 213b werden
nun detaillierter erläutert.
Es sei dazu im folgenden ein Beispiel betrachtet, bei dem jedes
Bilddatenpixel eine Größe von 1
Byte besitzt und der Systembus 32-Bit-Daten tragen kann. In einem
derartigen 32-Bit-Bussystem werden 4 Pixel pro Wort über den
Systembus 129 zum externen Einzelbildspeicher 123 übertragen.
Alternative Ausführungsbeispiele
der Erfindung können je
nach Bedarf an andere Systemkonfigurationen angepasst sein, z.B.
an Konfigurationen, bei denen jedes Pixel aus 10 oder mehr Bit (und
beispielsweise nicht aus einem Vielfachen der 8-Bit-Einheit eines Byte)
besteht und/oder ein 16-Bit-Bussystem
oder ein 64-Bit-Bussystem vorgesehen ist. Für das nachstehend betrachtete
Beispiel wird außerdem
o.B.d.A. angenommen, dass die Hauptbündeltransferlänge L gleich
16 und die Restbündeltransferlänge gleich
8 sind. Während
des Hauptbündeltransfermodus
werden somit Bilddaten von 16 Worten (= 64 Pixel) in jedem Bündel übertragen.
-
7 veranschaulicht
verschiedene Spiegelbildmodi im Vergleich zu einer ursprünglichen
Pixelposition eines vom Kameramodul aufgenommenen Bildes mit Pixelpositionen
in den einzelnen Spiegelbildmodi. In 7 ist o.B.d.A.
angenommen, dass die horizontale Bildbreite gleich 224 Pixel ist
und 10 horizontale Zeilen vorliegen. Wie oben erwähnt, gibt es
zwei Möglichkeit
der Bündelübertragung,
und zwar zum einen die Übertragung
aller Daten im Haupttransfermodus mit Bündellänge 8 und zum anderen die Übertragung
von Daten im Hauptbündeltransfermodus
mit Bündellänge 16 gefolgt
von einer Übertragung
im Restbündeltransfermodus
mit Bündellänge 8. Die
nachstehend erläuterten
Beispiele benutzen die letztgenannte Variante.
-
Die
Speicherbedingungen in den 7 (Big-endian)
und 8 (Littleendian) entsprechen sich. 8 zeigt,
dass die Sequenzen von Worten und Pixeln in einem Wort im x-Achsen-Spiegelbildmodus
unverändert
beibehalten werden. Hingegen sind im y-Achsen- und xy-Achsen-Spiegelbildmodus die
Sequenzen von Worten und Pixeln in einem Wort modifiziert.
-
Im
x-Achsen-Spiegelbildmodus werden Pixeldaten für ein Einzelbild von der letzten,
untersten horizontalen Zeile bis zur obersten horizontalen Zeile des
Einzelbildes Zeile um Zeile geschrieben. Im y-Achsen-Spiegelbildmodus
werden Pixeldaten in einem Einzelbild von der letzten zur ersten
Position der obersten horizontalen Zeile des Einzelbildes und dann
Zeile um Zeile nach unten bis zur untersten Zeile des Einzelbildes
geschrieben. Im xy-Achsen-Spiegelbildmodus werden Pixeldaten in
einem Einzelbild Zeile und Zeile aufwärts von der letzten, untersten Zeile,
wie im x-Achsen-Spiegelbildmodus, und von der letzten zur ersten
Position in jeder horizontalen Zeile, wie im y-Achsen-Spiegelbildmodus,
geschrieben.
-
9 veranschaulicht
eine Adressänderung während einer
Bildtransformation bei Spiegelung an der x-Achse zur Korrektur eines
an der x-Achse gespiegelten
Bildes. Wie aus 9 ersichtlich, behält die x-Achsen-Spiegelungsprozedur
die Sequenzen von Worten und Pixeln in einem Wort gegenüber dem Originalbild
bei, ändert
jedoch die Einzelbildstartadresse und die Zeilenstartadresse. Mit
anderen Worten stellt der Adressgenerator Adressen zur Festlegung
einer Reihe von horizontalen Zeilen bereit, die das Einzelbild vom
unteren Bildrand immer dann um eine Zeile nach oben bewegen, wenn
ein Prozess für eine
horizontale Zeile abgeschlossen ist, d.h. wenn ein Signal EOL erzeugt
wird, welches das Zeilenende einer horizontalen Zeile anzeigt. Daher
stellt der Adressgenerator im x-Achsen-Spiegelbildmodus zuerst eine
Einzelbildstartadresse durch Subtrahieren eines zu einer horizontalen
Zeile gehörigen
Adressplatzes vom gesamten Adressplatz eines Einzelbildes zur Verfügung. Nach
bereits erfolgter Verarbeitung einer horizontalen Zeile wird vor
Beginn der Übertragung
für eine
neue horizontale Zeile eine neue Zeilenstartadresse durch Subtrahieren
von Adressen entsprechend zweier horizontaler Zeilen von einer momentanen
(Einzelbild-) Adresse nach Abschluss eines Prozesses für eine horizontale
Zeile bereitgestellt.
-
Wie
aus 9 weiter ersichtlich, ergibt sich der gesamte
Adressraum durch Multiplizieren der Maße des Einzelbildes, z.B. 224×10 = 2240).
Die Zeilenstartadresse wird dadurch gesetzt, z.B. auf 2016, dass
ein Adressplatz, z.B. 224, der zu einer horizontalen Zeile gehört, z.B.
entsprechend 224 Pixel pro horizontaler Zeile, vom gesamten Adressraum
des Einzelbildes, z.B. 2240, subtrahiert wird. Dementsprechend werden
die zur ersten horizontalen Zeile gehörigen 224 Pixeldaten im externen
Einzelbildspeicher 127 sequentiell ab der Adresse 2016
bis zur Adresse 2239 gespeichert. Dann wird eine neue Zeilenstartadresse
1792 durch Subtrahieren des zwei horizontalen Zeilen entsprechenden
Adressplatzes, z.B. entsprechend 224×2 Pixel, von einem momentanen
Adressplatz des Einzelbildes, z.B. 2240, subtrahiert, nachdem der
Datentransfer für
eine horizontale Zeile abgeschlossen ist. Als nächstes werden 224 Pixeldaten
der zweiten horizontalen Zeile im externen Einzelbildspeicher 127 ab
der Adresse 1792 bis zur Adresse 2015 nacheinander gespeichert.
Diese Transfervorgänge
werden Zeile für
Zeile wiederholt, bis der Datentransferprozess für ein gesamtes Einzelbild abgeschlossen
ist. Die jeweils neue Zeilenstartadresse kann alternativ auch dadurch
bereitgestellt werden, dass ein einer horizontalen Zeile entsprechender
Adressplatz nach Abschluss eines Datentransferprozesses für eine horizontale
Zeile von der vorherigen Zeilenstartadresse subtrahiert wird.
-
10 veranschaulicht
eine Adressmodifikation während
einer Bildtransformation mit Spiegelung an der y-Achse zur Korrektur
eines y-Achsen-Spiegelbildes.
Wie aus 10 ersichtlich, werden DMA-Adressen benötigt, um
Daten vom Ende einer oberen, horizontalen Zeile in Richtung Zeilenbeginn
zu schreiben. Außerdem
ist es nötig,
die Sequenzen von Worten und Pixeln in einem Wort gegenüber einem
Originalbild innerhalb einer Bündeltransferlänge umzukehren. 11 veranschaulicht eine
mögliche
Vorgehensweise für
diese Modifizierung der Sequenzen von 16 Worten und den zugehörigen Pixeln
im jeweiligen Wort innerhalb einer Bündeltransferlänge von
16 für
eine y-Achsenspiegelung.
Eine gezeigte Wortsequenz W1→W16
muss zu W16→W1
umgekehrt werden, und eine Pixelsequenz im jeweiligen Wort muss
ebenso umgekehrt werden, z.B. eine Pixelsequenz 0, 1, 2, 3 im ersten
Wort W1 in die Pixelsequenz 3, 2, 1, 0.
-
12 veranschaulicht
die Wirkung des Adressenmodifikationsprozesses auf die Sequenzen von
Worten und Pixeln im jeweiligen Wort und auf eine DMA-Adressreihenfolge
bei der y-Achsenspiegelung. In 12 bezeichnen
gestrichelte Linien Adressänderungen,
die nacheinander aufgrund des Bündeltransfervorgangs
inkrementiert werden, während
durchgezogene Linien Änderungen
von Bündeltransferstartadressen
während
eines Datentransfers innerhalb einer Bündellängeneinheit bezeichnen. Eine
Einzelbildstartadresse 288 (= 224+64) wird durch Addieren eines
zur Bündellänge 16 gehörigen Adressplatzes
64, d.h. einer Bündellänge von
16 sind 64 Pixel zugeordnet, zu einem Adressplatz 224 entsprechend
einer, hier der oberen, horizontalen Zeile, d.h. ein Adressplatz
für eine
horizontale Zeile entspricht 224 Pixel, gebildet. Eine jeweilige
Bündeltransferstartadresse
wird durch Subtrahieren eines Adressplatzes, z.B. für 64×2 Pixel,
welcher der Summe eines vorherigen Transfers mit Bündellänge 16 und
eines momentanen, zweiten Transfers mit Bündellänge 16, d.h. einem doppelten
Hauptbündeltransfer,
entspricht, von einer momentanen Adresse gebildet, so dass eine
vorläufige
Adresserhöhung
ausgehend von der momentanen Adresse aufgrund des Hauptbündeltransfers
vor dem Bündeltransfer
zugelassen wird. Wenn es hierbei einen Restbündeltransfer gibt, wird die
letzte Bündeltransferstartadresse durch
Subtrahieren eines Adressplatzes, welcher der Summe des Haupt- und
Restbündeltransfers
entspricht, von einer momentanen Adresse gebildet, ohne dass ein
Adressplatz, der dem doppelten Hauptbündeltransfer entspricht, von
der momentanen Adresse zum Zeitpunkt des Abschlusses des Bündeltransfers
subtrahiert wird.
-
Wie
wiederum aus 10 ersichtlich, wird die erste
Bündeltransferstartadresse
160 durch Subtrahieren des Adressplatzes 128, der 128 Pixel einer doppelten
Bündellänge entspricht,
von der Einzelbildstartadresse 288 bereitgestellt. Daten von 64
Pixel werden im externen Einzelbildspeicher 127 ab der Adresse
160 bis zur Adresse 223 mit Bündeltransferlänge 16 gespeichert.
Die zweite Bündeltransferstartadresse
wird durch Subtrahieren des Adressplatzes 128 entsprechend 128 Pixeln
der vorherigen Bündeltransferlänge 16 und
der momentanen Bündeltransferlänge 16 von
der momentanen Adresse 224 zum Zeitpunkt des Abschlusses des ersten
Transfers zu 96 bestimmt. Dann werden 64 Pixel durch den zweiten
Bündeltransfer übertragen
und im externen Einzelbildspeicher 127 ab der Adresse 96
bis zur Adresse 159 gespeichert. Dieser Vorgang wird wiederholt, bis
der Datenübertragungsvorgang
für eine
horizontale Zeile abgeschlossen ist.
-
Nach
dem dritten Bündeltransfer
werden weitere 64 Pixel im externen Einzelbildspeicher 127 ab
der Adresse 32 bis zur Adresse 95 gespeichert. Zum Zeitpunkt des
Abschlusses des dritten Bündeltransfers
liegt die momentane Adresse bei 96 und die Anzahl restlicher Pixel
ist gleich 32, d.h. kleiner als 64 Pixel entsprechend der Bündeltransferlänge 16.
Daher wird die letzte Bündeltransferstartadresse
auf 0 gelegt, indem von der momentanen Adresse 96 ein Adressplatz,
der zu einer Summe von 64 Pixel entsprechend der vorherigen Bündeltransferlänge, d.h. der
Hauptbündeltransferlänge, gehört, und
32 Pixel entsprechend der Restbündeltransferlänge für die übrigen Pixel
subtrahiert werden. Die restlichen 32 Pixel werden mit Restbündellänge 8 übertragen
und dann im externen Einzelbildspeicher 127 im Adressbereich
0 bis 31 gespeichert. Wenn die Anzahl horizontaler Pixel durch die
Bündeltransferlänge geteilt wird,
wird die letzte Bündeltransferstartadresse
durch Subtrahieren eines Adressplatzes, der Pixeln entsprechend
einer doppelten Bündeltransferlänge zugeordnet
ist, von der momentanen Adresse zum Zeitpunkt des Abschlusses des
vorherigen Bündeltransfers
festgelegt.
-
Im
Fall der Verarbeitung eines Einzelbildes, bei dem ein Rest auftritt,
wenn die Anzahl zu übertragender,
horizontaler Pixel in die Bündeltransferlänge 16 geteilt
wird, setzt sich der Bündelübertragungsvorgang
aus den Hauptbündeltransfermodi
und dem Restbündeltransfermodus
für den
letzten Bündeltransfer
zusammen. Daher wird die letzte Bündeltransferstartadresse einer
horizontalen Zeile durch Subtrahieren eines Adressplatzes, der einer
Summe von Pixeln für
die Haupt- und die Restbündeltransferlänge entspricht,
von einer momentanen Adresse zum Zeitpunkt des Abschlusses eines
vorherigen Bündeltransfers
festgelegt. Andernfalls wird die letzte Bündeltransferstartadresse einer
horizontalen Zeile dadurch festgelegt, dass ein Adressplatz, der
Pixeln einer doppelten Hauptbündeltransferlänge entspricht,
von einer momentanen Adresse subtrahiert und dazu ein Adressplatz
addiert wird, der einer Differenz zwischen Pixeln der Haupt- bzw.
Restbündeltransferlänge entspricht.
-
In
gleicher Weise wird die zweite Zeilenstartadresse zu 512 festgelegt,
indem der Adressplatz 448 entsprechend zweier horizontaler Zeilen
zur momentanen Adresse 32, die einem Adressplatz gemäß der Pixelanzahl
der Restbündellänge entspricht,
zum Zeitpunkt des Abschlusses des Transferprozesses für eine horizontale
Zeile addiert und dazu noch ein Adressplatz von 32 addiert wird,
der Pixeln gemäß der Differenz
zwischen den beiden letzten Bündeltransferlängen entspricht,
d.h. einer Differenz zwischen der Hauptbündellänge 16 und der Restbündellänge B. Wenn
die Anzahl an horizontalen Pixeln ohne Rest durch die Bündeltransferlänge teilbar
ist, d.h. die beiden letzten Bündeltransferlängen sind gleich
groß,
kann die Zeilenstartadresse durch Addieren eines Adressplatzes,
der zwei horizontalen Zeilen entspricht, zu einer momentanen Adresse zum
Zeitpunkt des Abschlusses eines Prozesses für eine horizontale Zeile festgelegt
werden. Dieser Vorgang wird wiederholt, bis der Übertragungsprozess für ein Einzelbild
abgeschlossen ist.
-
13 veranschaulicht
eine Adressmodifikation während
einer Bildtransformation mit x/y-Achsenspiegelung zur Korrektur
eines x/y-Achsenspiegelbildes.
Wie aus 13 ersichtlich, erfordert das Spiegeln
eines Bildes an den xy-Achsen eine Sequenz von DMA-Adressen zum
Schreiben von Daten vom Ende zum Beginn einer jeden horizontalen
Zeile sowie von der letzten, untersten Zeile nach oben bis zur obersten
Zeile eines Einzelbildes. Des weiteren ist es erforderlich, die
Sequenzen von Worten und Pixeln im jeweiligen Wort in Einheiten
der Bündeltransferlänge umzukehren.
-
14 veranschaulicht
eine Adressenmodifikationprozedur zum Aufbauen der Sequenzen von Worten
und Pixeln im jeweiligen Wort und zur DMA-Adressanordnung für xy-Achsenspiegelung
eines Bildes. In 14 bezeichnen gestrichelte Linien Adressmodifikationen,
die aufgrund von Bündelübertragungen
inkremental aufeinanderfolgen, während durchgezogene
Linien Modifikationen von Bündeltransferstartadressen
während Übertragungen
in Einheiten der Bündeltransferlänge bezeichnen.
Dieser xy-Achsenspiegelungsprozess legt eine Bündeltransferstartadresse analog
zum Fall der y-Achsenspiegelung fest, indem eine Einzelbildstartadresse an
der letzten, untersten Zeile eines Einzelbildes beginnt und eine
Zeilenstartadresse in Aufwärtsrichtung bei
jedem Abschluss eines Transferprozesses für eine Zeile geändert wird.
-
Wie
aus den 13 und 14 ersichtlich, wird
eine Einzelbildstartadresse zu 2304 festgelegt, indem zum gesamten
Adressraum 2240 eines Einzelbildes ein Adressplatz von 64 entsprechend
64 Pixeln bei Bündellänge 16 addiert
wird. Die Bündeltransferstartadressen
werden in gleicher Weise wie beim y-Achsenspiegelungsprozess festgelegt.
Folglich wird der erste Bündeltransfer
bei der Adresse 2176 festgelegt, indem von der Einzelbildstartadresse
2304 der Adressplatz 128 subtrahiert wird, der einer doppelten Hauptbündeltransferlänge entspricht. Dann
werden 64 Pixel in Einheiten der Bündellänge 16 im externen Einzelbildspeicher 127 ab
der Adresse 2176 bis zur Adresse 2239 gespeichert. Wie oben im Zusammenhang
mit dem y-Achsenspiegelungsmodus erläutert, wird die letzte Bündeltransferstartadresse;
wenn die Anzahl zuletzt verbleibender Pixel kleiner als die Bündellänge von
16 ist, d.h. ein Restbündeltransfer
erfolgt, dadurch festgelegt, dass zum Zeitpunkt des Abschlusses
des vorherigen Bündeltransfers
von einer momentanen Adresse ein Adressplatz subtrahiert wird, der
einer Summe von Pixeln der Haupt- und
Restbündeltransferlänge entspricht.
-
Eine
Zeilenstartadresse wird dadurch festgelegt, dass zu einer momentanen
Adresse zum Zeitpunkt des Abschlusses eines Übertragungsvorgangs für eine horizontale
Zeile ein Adressplatz addiert wird, welcher der Differenz zwischen
der Hauptbündeltransferlänge von
16 und der Restbündeltransferlänge von
8 entspricht, d.h. einer Differenz zwischen den beiden letzten Bündeltransferlängen. Wenn
die Anzahl an horizontalen Pixeln ohne Rest durch die Bündeltransferlänge teilbar
ist, ist die Differenz zwischen den beiden letzten Bündeltransferlängen gleich
0.
-
15 zeigt mit ihren beiden Teilbildern
15A und 15B ein Flussdiagramm eines Verfahrens für den Betrieb des Adressgenerators 211a bzw. 211b.
Ausgehend vom Leerlaufzustand wird in einem Entscheidungsschritt 1501 festgestellt,
ob ein aktiviertes Einzelbildstartsignal vorliegt. Wenn dies der
Fall ist, wird in einem Schritt 1503 ein Einzelbildstartsignal
gemäß dem x-Achsen-Spiegelbildmodus,
dem y-Achsen-Spiegelbildmodus,
dem xy-Achsen-Spiegelbildmodus oder dem Normalmodus festgelegt,
wonach zum Leerlaufzustand zurückgekehrt
wird.
-
Solange
das Einzelbildstartsignal nicht aktiviert ist, d.h. Daten übertragen
werden, wird in einem anschließenden
Entscheidungsschritt 1505 festgestellt, ob ein momentaner
Prozess das Zeilenende im x-Achsenspiegelungsmodus
erreicht hat. Wenn dies der Fall ist, wird in einem Schritt 1507 eine
neue Zeilenstartadresse durch Subtrahieren ei nes Adressplatzes entsprechend
zweier horizontaler Zeilen von einer momentanen Adresse zum Zeitpunkt
des Prozessabschlusses gebildet, wonach zum Leerlaufzustand zurückgekehrt
wird. Wenn die Abfrage verneint wird, wird in einem anschließenden Entscheidungsschritt 1509 festgestellt,
ob ein momentaner Prozess an einem Zeilenende im y-Achsenspiegelungsmodus angelangt
ist. Wenn dies der Fall ist, d.h. ein laufender Prozess für eine horizontale
Zeile im y-Achsenspiegelungsmodus abgeschlossen ist, wird in einem Schritt 1511 eine
neue Zeilenstartadresse dadurch gebildet, dass zu einer momentanen
Adresse zum Zeitpunkt des Prozessabschlusses ein den Pixeln der
doppelten Bündeltransferlänge entsprechender Adressplatz
und ein Adressplatz addiert werden, welcher der Differenz zwischen
den Pixeln der Haupt- und
der Restbündeltransferlänge entspricht,
wonach zum Leerlaufzustand zurückgekehrt
wird.
-
Wenn
der Entscheidungsschritt 1509 verneinend beantwortet wird,
wird in einem anschließenden Entscheidungsschritt 1513 festgestellt,
ob ein laufender Prozess an einem Zeilenende im xy-Achsenspiegelungsmodus
angekommen ist. Wenn dies der Fall ist, wird in einem Schritt 1515 eine
neue Zeilenstartadresse dadurch gebildet, dass zur momentanen Adresse
zum Zeitpunkt des Abschlusses eines Prozesses für eine horizontale Zeile ein
Adressplatz addiert wird, welcher der Differenz zwischen den Pixeln der
Haupt- und der Restbündeltransferlänge entspricht,
wonach zum Leerlaufzustand zurückgekehrt wird.
-
Wenn
der Entscheidungsschrift 1513 verneinend beantwortet wird,
wird in einem anschließenden Entscheidungsschritt 1517 festgestellt,
ob ein laufender Prozess im Normalmodus oder x-Achsenspiegelungsmodus
abläuft.
Wenn dies bejaht wird, wird in einem Entscheidungsschritt 1519 festgestellt,
ob sich die DMA-FSM in einem Transferzustand befindet. Bejahendenfalls
wird eine Adresse im Schritt 1541 um ein Wort inkrementiert, wonach
zum Leerlaufzustand zurückgekehrt
wird. Andernfalls wird in einem Schritt 1539 die Adresse
beibehalten und ohne Adressänderung
zum Leerlaufzustand zurückgekehrt.
-
Wenn
der Abfrageschritt 1517 verneinend beantwortet wird, wird
in einem anschließenden
Entscheidungsschritt 1521 festgestellt, ob ein laufender Prozess
im y- oder xy-Achsenspiegelungsmodus stattfindet. Bejahendenfalls
wird in einem anschließenden
Entscheidungsschritt 1523 festgestellt, ob sich die DMA-FSM
im Hauptbündeltransfermodus befindet.
Wenn dies der Fall ist, wird eine Bündeltransferstartadresse durch
Subtrahieren eines den Pixeln einer doppelten Bündeltransferlänge entsprechenden
Adressplatzes von einer momentanen Adresse gebildet, wonach zum
Leerlaufzustand zurückgekehrt
wird. Andernfalls wird in einem anschließenden Abfrageschritt 1529 festgestellt,
ob sich die DMA-FSM im Restbündeltransfermodus
befindet. Wenn dies der Fall ist, wird eine Bündeltransferstartadresse für eine horizontale
Zeile gebildet, indem von einer momentanen Adresse ein den Pixeln
der Haupt- und der Restbündeltransferlänge entsprechender
Adressplatz subtrahiert wird, siehe Schritt 1531, wonach
zum Leerlaufzustand zurückgekehrt wird.
-
Wenn
der Abfrageschritt 1529 verneinend beantwortet wird, wird
in einem anschließenden
Entscheidungsschritt 1533 festgestellt, ob sich die DMA-FSM
in einem Transferzustand befindet. Wenn dies der Fall ist, wird
eine Adresse im Schritt 1535 um ein Wort inkrementiert, wonach zum
Leerlaufzustand zurückgekehrt
wird. Andernfalls wird im Schritt 1537 ohne Adressänderung
zum Leerlaufzustand zurückgekehrt.
-
Analog
wird im Fall, dass der Abfrageschritt 1521 verneinend beantwortet
wird, ohne Adressänderung
im Schritt 1525 zum Leerlaufzustand zurückgekehrt.
-
16 veranschaulicht
eine mögliche
Realisierung für
den Datenselektor 213a bzw. 213b von 2 im
Blockschaltbild in Form eines Datenselektors 1600, der
die Sequenzen von Worten und Pixeln im jeweiligen Wort für Pixeldaten,
die ihm von einem internen Pufferspeicher 1609 entsprechend
den internen Pufferspeichern 207a bzw. 207b von 2 zugeführt werden,
gemäß einem
ausgewählten
Spiegelbildmodus modifiziert. Der interne Pufferspeicher 1609 ist
so ausgelegt, dass er in der Lage ist, Bilddaten korrespondierend
mit dem Bündeltransfer
zu speichern. Er kann beispielsweise aus 32 Flip-Flops aufgebaut
sein, wobei die Anzahl an Flip-Flops der doppelten Bündeltransferlänge entspricht.
Der Datenselektor 1600 beinhaltet mehrere Multiplexer einschließlich sechzehn
Multiplexern 1601_1 bis 1601_16 entsprechend der
Bündeltransferlänge 16 zur
Modifizierung der Pixelsequenz sowie eines Multiplexers 1603 zur
Modifizierung der Wortsequenz. Jeder der Multiplexer 1601_1 bis 1601_16 multiplext ein
entsprechend im internen Pufferspeicher 1609 gespeichertes
Wort und ein abgeleitetes Wort mit darin enthaltener, umgekehrter
Pixelsequenz. Mit anderen Worten gibt jeder der die Pixelsequenz
modifizierenden Multiplexer 1601_1 bis 1601_16 ein
Wort mit vier korrespondierenden Pixeldaten aus, die in umgekehrter
Pixelsequenz gespeichert werden. Wenn beispielsweise der Multiplexer 1601_1 ein
Wort W1 mit vier Pixeln in der Sequenz 3, 2, 1, 0 abgibt, ergibt sich
ein Wort W1' mit
vier Pixeln in der umgekehrten Sequenz 0, 1, 2, 3. Der die Wortsequenz
modifizierende Multiplexer 1603 multiplext die sechzehn
Ausgangssignale der sechzehn Multiplexer 1601_1 bis 1601_16,
welche die Pixelsequenz modifizieren.
-
Im
xy-Achsenspiegelungsmodus oder y-Achsenspiegelungsmodus, d.h. wenn
sich ein Modusauswahlsignal Flip_mode auf einem bestimmten, z.B.
hohen Logikpegel befindet, wird die umgekehrte Sequenz von vier
Pixeln, welche ein sequenzmodifiziertes Wort bilden, z.B. W1', vom jeweiligen
pixelsequenzmodifizierenden Multiplexer abgegeben. Andererseits
wird im x-Achsenspiegelungsmodus oder im Normalmodus, d.h. wenn
sich das Modusauswahlsignal Flip_mode auf einem anderen, z.B. niedrigen Logikpegel
befindet, jedes Wort mit im internen Pufferspeicher 1609 gespeicherten
Pixeln vom jeweiligen pixelsequenzmodifizierenden Multiplexer ohne Änderung
seiner Pixelsequenz abgegeben.
-
Der
wortsequenzmodifizierende Multiplexer 1603 ändert die
Ausgabesequenz von Worten, die ihm von den sechzehn pixelsequenzmodifizierenden Multiplexern 1601_1 bis 1601_16 zugeführt werden. Genauer
gesagt, gibt der wortsequenzmodifizierende Multiplexer 1603 in
Reaktion auf ein am Ausgang eines Zählers 1605 abgegebenes
Datenauswahlsignal Data_select Pixeldaten in der gleichen Sequenz,
wie sie im internen Pufferspeicher 1609 gespeichert sind, oder
in der umgekehrten Sequenz ab. Der Zähler 1605 führt einen
Zählvorgang
im Bereich von 0 bis L-1 aus, wobei L die Bündeltransferlänge bezeichnet, z.B.
16. Der Anfangswert des Zählers 1605 wird durch
einen ihn initialisierenden Multiplexer 1607 festgelegt,
dessen Eingangswerte von 0 bis L-1 variieren und dessen Ausgangssignal
durch das Modusauswahlsignal Flip mode ausgewählt wird. Wenn das Modusauswahlsignal
Flip mode auf hohem Logikpegel liegt, d.h. im xy-Achsenspiegelungsmodus
oder y-Achsenspiegelungsmodus, gibt der zählerinitialisierende Multiplexer 1607 den
Wert L-1, z.B. 15, ab, um den Anfangswert des Zählers 1605 entsprechend auf
L-1 festzulegen. Anschließend
führt der
Zähler 1605 einen
dekrementierenden Zählvorgang
von L-1 bis 0, z.B. von 15 bis 0, aus, um das Datenauswahlsignal
Data_Select für
den wortsequenzmodifizierenden Multiplexer 1603 zu liefern.
-
Wenn
beispielsweise der Zähler 1605 den Wert
15 abgibt, wählt
der wortsequenzmodifizierende Multiplexer 1603 von den
sechzehn Worten W1 bis W16 das Wort W16 aus und gibt es ab. Wenn
der Zähler 1605 den
Wert 14 abgibt, wählt
der wortsequenzmodifizierende Multiplexer 1603 von den
sechzehn Worten W1 bis W16 das Wort W15 aus und gibt es ab, usw.
Wenn der Zähler 1605 den
Wert 1 abgibt, wählt
der wortse quenzmodifizierende Multiplexer 1603 von den
sechzehn Worten W1 bis W16 das Wort W2 aus und gibt es ab. Wenn
der Zähler 1605 schließlich den
Wert null abgibt, wählt
der wortsequenzmodifizierende Multiplexer 1603 von den
sechzehn Worten W1 bis W16 das Wort W1 aus und gibt es ab. Als Ergebnis
wird die Sequenz von Ausgabeworten in der Reihenfolge W16, W15,
W14,..., W2, W1 angeordnet, d.h. umgekehrt zu der Sequenz W1, W2,...,
W15, W16, in welcher diese Worte W1 bis 16 im internen Pufferspeicher 1609 abgelegt
sind. Andererseits geht im Normalmodus oder im x-Achsenspiegelungsmodus
das Modusauswahlsignal Flip_mode im Multiplexer 1607 auf
niedrigen Logikpegel, um den Wert 0 als Anfangswert für den Zähler 1605 festzulegen.
Der Zähler
inkrementiert dann seine Zählwerte von
0 bis 15 und führt
die Zählwerte
dem wortsequenzmodifizierenden Multiplexer 1603 zu. Als
Ergebnis gibt der wortsequenzmodifizierende Multiplexer 1603 die
Worte in der gleichen Sequenz W1, W2,..., W15, W16 ab, in der diese
im internen Pufferspeicher 1609 gespeichert sind.
-
Dementsprechend
ist die Sequenz von Pixeln in einem Wort ebenso wie die Wortsequenz
umgekehrt, wenn sich das Modusauswahlsignal Flip_mode auf hohem
Logikpegel befindet, d.h. im xy-Achsenspiegelungsmodus oder im y-Achsenspiegelungsmodus.
-
17 veranschaulicht
die Zeitsteuerung der DMA-Adressmodifikation und deren Reihenfolge. Wie
aus 17 ersichtlich, werden in Reaktion auf eine fallende
Flanke eines Einzelbildstartsignals VSYNC die Einzelbild- und die
Zeilenstartadresse vom Adressengenerator 211a bzw. 211b festgelegt. Alle
vom spezifischen Funktionsregister gesetzten Befehle werden mit
Gültigkeit
an den fallenden Flanken des Einzelbildstartsignals VSYNC aktiviert.
Nach Bereitstellen der Einzelbild- und der Zeilenstartadresse wird
ein Zeilentransferstartsignal HREF freigegeben, z.B. auf hohen Logikpegel.
Nach dieser Aktivierung des Zeilentransferstartsignals HREF wird
durch das oben erläuterte
Verfahren vor einem Bündeltransfer
eine Bündeltransferstartadresse
erzeugt. Durch Zählen
der Anzahl durchgeführter
Bündelübertragungen
wird zu gegebener Zeit ein Zeilenendesignal EOL erzeugt, welches
das Ende einer horizontalen Seite anzeigt, und das Zeilentransferstartsignal HREF
wird inaktiv, z.B. auf niedrigem Logikpegel.
-
Während sich
die vorstehende Erläuterung auf
eine Codier/Decodier-DMA-Einheit,
wie die Einheit 119a von 2, bezieht,
kann auch eine Voransicht-DMA-Einheit, wie die Einheit 119b von 2 in gleicher
Weise mit der gleichen Struktur und Funktion implementiert werden.
Während
jedoch die Codier/Decodier-DMA-Einheit so konfiguriert wird, dass ein
Wort aus vier Pixeln besteht, da ein Pixel einem Byte entspricht,
ist die Voransicht-DMA-Einheit mit einem RGB-Format von 16 Bit oder
24 Bit konfiguriert. 18 veranschaulicht derartige
RGB-Datentypen, wie sie im Kameramodul verarbeitet werden. In diesem
Fall ist im Unterschied zur Codier/Decodier-DMA-Einheit ein Wort
aus zwei 16-Bit-Pixeln aufgebaut, wenn das RGB-Format aus 16 Bit
besteht, indem jedes Pixel 5 Bit für R, 6 Bit für G und
5 Bit für
B umfasst. Wenn das RGB-Format aus 24 Bit besteht, ist ein Wort
aus einem Pixel mit je 8 Bit für
R, G und B aufgebaut, und in diesem Fall gibt es keine Änderung
der Sequenz von Pixeln in einem Wort im xy-Achsenspiegelungsmodus
und im y-Achsenspiegelungsmodus.
-
Wie
sich aus den gezeigten und oben beschriebenen Ausführungsbeispielen
ergibt, ermöglicht
die Erfindung eine Reduzierung der Größe z.B. eines Digitalkameramoduls
mittels Durchführen
von Bildspiegelungsfunktionen unter Verwendung einer DMA-Einheit,
wodurch sich ein Bildtransformationssystem mit hoher Geschwindigkeit
und niedrigem Leistungsverbrauch realisieren lässt.