-
HINTERGRUND
DER ERFINDUNG
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf eine Bildverarbeitungsvorrichtung
und ein Bildverarbeitungsverfahren, die zum Durchführen eines
Filterungsprozesses und Codierungsprozesses von Bilddaten geeignet
sind, und auf einen durch einen Computer lesbaren Speicherträger, der
einen Prozess zum Realisieren eines derartigen Verfahrens speichert.
-
Verwandter
Stand der Technik
-
Digitale
Stehbildkameras werden verbreitet als eine Bildaufnahmevorrichtung
für Computer
verwendet. Ein Bildkomprimierungsverfahren unter Nutzung einer DCT
(diskreten Kosinustransformation) wie beispielsweise JPEG wird für digitale
Stehbildkameras verwendet. Während
digitale Stehbildkameras sich durchsetzen, sind ein kontinuierliches
Fotografieren mit hoher Geschwindigkeit und ein Energiesparen gewünscht worden.
Um die zum Aufnehmen von Bildern und Aufzeichnen von Bilddaten gebrauchte
Zeit zu verkürzen,
sind die Prozesse von einer Signalverarbeitung bis zu einer Bildkomprimierung
ehemals durch Hardware durchgeführt
worden.
-
Mit
einem herkömmlichen
Hardwareaufbau ist eine zu der Eingabebildabtastgröße in einer
horizontalen Richtung proportionale Kapazität für einen Puffer, der zum Filtern
von von Bildaufnahmeelementen wie beispielsweise einem CCD gelesenen
angesammelten Ladungsinformationen in der Horizontal- und Vertikalrichtung
bzw. horizontalen und vertikalen Richtung verwendet wird, und für einen
Puffer, der für eine
Raster/Block-Wandlung von rasterabtastsequentiellen Bilddaten (raster
scan sequential Image data) in blockabtastsequentielle Bilddaten
(block scan sequential image data) verwendet wird, erforderlich.
Unter der Annahme, dass eingegebene Bilddaten 1034 Bildelemente
in der horizontalen Richtung und 770 Bildelemente in der vertikalen
Richtung aufweisen, ein Horizontalfilter 11 Abgriffe (taps)
aufweist, ein Vertikalfilter 3 Abgriffe aufweist, ein YUV-Abtastverhältnis von
JPEG 4:2:2 ist, CCD-Bilddaten 10 Bits aufweisen und jedes von YUV
8 Bits aufweist, werden zum Beispiel die folgenden Daten bestimmt:
Hd
= 1034, wobei Hd die Anzahl von Bildelementen von eingegebenen Bilddaten
in der horizontalen Richtung ist;
Hr = 1034 – INT(11/2) × 2 = 1024,
wobei Hr die Anzahl von Bildelementen von nach einer Signalverarbeitung
(einem Filterungsprozess, einer YC-Trennung, einem Kantenprozess, einem
Gammaprozess und dergleichen) ausgegebenen Bilddaten in der horizontalen
Richtung ist;
eine Kapazität
eines Puffers zum Filtern in der horizontalen und vertikalen Richtung
= 2 × Hd × 10 = 20680
(Bits); und
eine Kapazität
eines Puffers zur Raster/Block-Wandlung
= 8 × Hr
((die Anzahl von Bits von Y) + (die Anzahl von Bits von UV)) = 8 × 1024 × 16 = 131072 (Bits).
-
Bei
dem eine Vielzahl von Bildgrößen verwendenden
System ist die Pufferkapazität
herkömmlich
jeweils für
einen Puffer zum Filtern in der horizontalen und vertikalen Richtung
und für
einen Puffer zur Raster/Block-Wandlung gemäß einer maximalen Horizontalbildgröße bzw.
horizontalen Bildgröße bestimmt
worden. Dies ist nicht wirtschaftlich.
-
Herkömmliche
Techniken sind mit einem Problem dahingehend verbunden, dass dann,
wenn ein nichtquadratischer CCD-Sensor
verwendet wird, die komprimierten Bilddaten eine Störung aufweisen.
-
Es
ist auch ein Problem dahingehend vorhanden, dass es deswegen, weil
Bilddaten nach einer Signalverarbeitung JPEG-komprimiert werden, schwierig
ist, die Größe der Bilddaten
zu ändern.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
US-Patentbeschreibung Nr. US-A-5168375 offenbart eine Verarbeitung
eines Felds von Bilddatenabtastwerten zur nachfolgenden Verarbeitung
zum Beispiel in einem JPEG-Komprimierungssystem.
Die Verarbeitung wird in Blöcken, die überlappen,
ausgeführt,
gefolgt von Speicherungen von bezeichneten Abtastwerten und einem
Verwerfen von Überschussabtastwerten
aus Bereichen der Überlappung.
-
Mit
dem vorstehend beschriebenen Hintergrund der Erfindung ist es ein
Anliegen der vorliegenden Erfindung, eine Bildverarbeitungsvorrichtung und
ein Bildverarbeitungsverfahren, die zum Verarbeiten von Bilddaten
mit einer beliebigen Größe mit hoher
Geschwindigkeit unabhängig
von der Kapazität
eines Pufferspeichers in der Lage sind, und einen durch einen Computer
lesbaren Speicherträger,
der ein derartiges Verfahren realisierende Prozesse speichert, bereitzustellen.
-
Gemäß einer
Ausgestaltung der vorliegenden Erfindung werden eine Bildverarbeitungsvorrichtung
wie in dem Patentanspruch 1 definiert und ein Verfahren zum Verarbeiten
von Bilddaten wie in dem Patentanspruch 5 definiert bereitgestellt.
-
Andere
Vorteile, Merkmale und Vorteile der Erfindung werden aus der in
Verbindung mit den beigefügten
Zeichnungen genommenen folgenden ausführlichen Beschreibung ersichtlich.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
ein Blockschaltbild, das die Struktur einer Bildverarbeitungsvorrichtung
gemäß einem
ersten Ausführungsbeispiel
der Erfindung darstellt.
-
2 zeigt
eine graphische Darstellung, die in einem RAM 4 gespeicherte
Bilddaten darstellt.
-
3 zeigt
eine graphische Darstellung, die den Betrieb eines zweidimensionalen
DMAC veranschaulicht.
-
4 zeigt
eine graphische Darstellung, die ein Verfahren zum Aufteilen von
eingegebenen Daten veranschaulicht, wobei das Verfahren durch eine Signalverarbeitungsschaltung
ausgeführt
wird.
-
5 zeigt
eine graphische Darstellung, die einen effektiven Bildbereich jedes
aufgeteilten Bereichs darstellt.
-
6 zeigt
eine graphische Darstellung, die eine Überlappung von Blöcken in
der horizontalen Richtung veranschaulicht.
-
7 zeigt
eine graphische Darstellung, die eine Überlappung von Blöcken in
der vertikalen Richtung veranschaulicht.
-
8 zeigt
eine graphische Darstellung, die ausgegebene Daten der Signalverarbeitungsschaltung
veranschaulicht.
-
9 zeigt
ein Blockschaltbild, das eine Taktsteuerung der Signalverarbeitungsschaltung
veranschaulicht, wobei die Taktsteuerung durch eine Prozess-SSG-Schaltung
(process SSG circuit) ausgeführt
wird.
-
10 zeigt
ein Blockschaltbild, das die Struktur bei einer Bildverarbeitungsvorrichtung
gemäß einem
zweiten Ausführungsbeispiel
der Erfindung darstellt.
-
11 zeigt
eine graphische Darstellung, die eine Phasenbeziehung von eingegebenen
und ausgegebenen Daten während
einer Vergrößerung und
Verkleinerung veranschaulicht.
-
12 zeigt
ein Blockschaltbild, das die Struktur einer Bildverarbeitungsvorrichtung
gemäß einem
dritten Ausführungsbeispiel
der Erfindung darstellt.
-
13 zeigt
ein Blockschaltbild, das die Strukturen einer Vergrößerungs-
und Verkleinerungsschaltung und von Phasenpuffern gemäß dem dritten Ausführungsbeispiel
darstellt.
-
14 zeigt
ein Blockschaltbild, das die grundlegenden Strukturen der Vergrößerungs-
und Verkleinerungsschaltung und der Phasenpuffer darstellt.
-
15 zeigt
ein Zeitablaufdiagramm, das den Lauf von von einer Prozess-SSG-Schaltung
ausgegebenen Steuerungssignalen veranschaulicht.
-
16 zeigt
ein Blockschaltbild, das die Struktur einer Bildverarbeitungsvorrichtung
gemäß einem
vierten Ausführungsbeispiel
der Erfindung darstellt.
-
17 zeigt
ein Blockschaltbild, das die Strukturen einer Vergrößerungs-
und Verkleinerungsschaltung und von Phasenpuffern gemäß dem vierten
Ausführungsbeispiel
darstellt.
-
AUSFÜHRLICHE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
1 zeigt
ein Blockschaltbild, das eine Bildverarbeitungsvorrichtung gemäß dem ersten Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Ein ROM 14 ist ein
Speicherträger
zum Speichern eines Programms, das durch eine CPU 5 zum Ausführen eines
nachstehend zu beschreibenden Prozesses verwendet wird. Dieser Speicherträger kann
ein Halbleiterspeicher, eine optische Platte, eine magneto-optische
Platte, ein magnetischer Träger
oder dergleichen sein. Diese Speicherträger können auch eine nichtflüchtige Speicherkarte,
ein DC-ROM, eine Diskette, eine magnetische Karte oder dergleichen
sein.
-
Mit
Bezug auf 1 wird ein durch ein nicht gezeigtes
optisches System auf einem CCD 1 fokussiertes Bild in angesammelte
Ladungsinformationen gewandelt, die durch einen A/D-Wandler 2 von
analogen Signalen in digitale Signale gewandelt werden. Das digitale
Signal wird über
einen CPU-Bus 3 zu einem RAM 4 transferiert. Falls
ein Vollbildlesen bzw. Rahmenlesen des CCD 1 durchgeführt wird,
werden die digitalen angesammelten Ladungsinformationen in einem
RAM 4 gespeichert wie in 2 gezeigt.
-
Die
CPU 5 stellt vorbestimmte Parameter für eine Signalverarbeitungsschaltung 9,
eine Prozess-SSG-Schaltung 7 und
eine JPEG-Komprimierungsschaltung 11 ein und weist die
Prozess-SSG-Schaltung 7 zum Verarbeiten von Signalen an.
Die vorbestimmten Parameter schließen einen Bilddatenort eines
Speichers, eine Bildgröße, Farbfilterinformationen
des CCD 1, einen Gammakorrekturwert, einen Bildkomprimierungseinstellungswert
und dergleichen ein.
-
Die
Prozess-SSG-Schaltung 7 stellt vier Werte einschließlich einer
DMA-Transferstartadresse (adr), einer Horizontaltransferanzahl (m),
einer Vertikaltransferanzahl (n) und eines Vertikaloffsetwerts (offset)
für einen
zweidimensionalen DMAC (Direkter-Speicherzugriff-Controller) 6 ein,
um dadurch Bilddaten aus dem RAM 4 zu lesen.
-
3 veranschaulicht
die Lesesequenz von Bilddaten aus dem RAM 4 unter der Annahme,
dass adr = 0x030 (im Folgenden sind Zahlen, denen 0x hinzugefügt ist,
hexadezimale Zahlen), m = 0x8, n = 0x5 und offset = 0x010.
-
Der
zweidimensionale DMAC 6 hält adr darin als eine Lesestartadresse
und setzt einen internen Zähler
zum Halten der Horizontalleseanzahl und einen anderen internen Zähler zum
Halten der Vertikalleseanzahl auf "0" zurück. Jedes
Mal, wenn Daten gelesen werden, wird der Zähler zum Halten der Horizontalleseanzahl
um "1" erhöht.
-
Wenn
der Zählwert
des Zählers
zum Halten der Horizontalleseanzahl mit m zusammenfällt, wird die
Datenlesestartadresse um offset erhöht, der Zähler zum Halten der Horizontalleseanzahl
wird auf "0" zurückgesetzt,
und der Zähler
zum Halten der Vertikalleseanzahl wird um "1" erhöht. Das
Datenlesen wird beendet, nachdem der Zähler zum Halten der Vertikalleseanzahl
mit n zusammenfällt.
In dieser Art und Weise werden durch ein sequentielles Ändern der
Leseadresse Daten aus einem rechteckigen Bereich des RAM 4 gelesen
wie in 3 gezeigt.
-
Die
Prozess-SSG-Schaltung 7 steuert den zweidimensionalen DMAC 6 wiederholt
zum Aufteilen von Bilddaten in dem RAM in eine Vielzahl von Blöcken und
Lesen von Blöcken
0, 1, 2, ... pg-1 in dieser Reihenfolge aus dem RAM 4 wie
in 4 gezeigt.
-
Mit
Bezug auf 4 stellen H und V die Horizontal-
und Vertikalgröße bzw.
horizontale und vertikale Größe von Bilddaten
eines von dem CCD 1 zu dem RAM 4 transferierten
Vollbilds bzw. Rahmens dar. Die Bilddaten werden in p × q Blöcke aufgeteilt, p
Blöcke
in der horizontalen Richtung und q Blöcke in der vertikalen Richtung,
wobei schraffierte Abschnitte überlappen.
-
In
der vorstehenden Art und Weise aus dem RAM 4 gelesene Bilddaten
werden über
den CPU-Bus 3 zu einer Verzögerungsschaltung 8 und der Signalverarbeitungsschaltung 9 gesendet.
Eine Speicherkapazität
der Verzögerungsschaltung 8 ist:
2
(Zeilen) × Hb × (die Anzahl
von ein Bildelement ausdrückenden
Bits).
-
Jeder
in 4 gezeigte Block besteht aus vier Bereichen wie
in 5 gezeigt.
-
Mit
Bezug auf 5 ist ein Bereich 4-A ein Bereich,
in dem aus dem RAM 4 gelesene Bilddaten gültig sind
und aus der Verzögerungsschaltung 8 gelesene
Bilddaten ungültig
sind. Daher ist in diesem Bereich eine Ausgabe von der Signalverarbeitungsschaltung 9 ebenfalls
ungültig. "Vverzögerung" ist gleich der Anzahl
von verzögerten
Zeilen. Bei diesem Ausführungsbeispiel
ist unter der Annahme, dass die Signalverarbeitungsschaltung 9 ein
Filter mit drei Vertikalabgriffen bzw. vertikalen Abgriffen verwendet, die
Vverzögerung "2".
-
Bereiche
4-B und 4-D sind Bereiche, in denen, obwohl aus dem RAM 4 und
der Verzögerungsschaltung 8 gelesene
Bilddaten gültig
sind, eine Ausgabe der Signalverarbeitungsschaltung 9 ungültig ist, da
Horizontalbilddaten bzw. horizontale Bilddaten von zwei Zeilen in
den Filtern der Signalverarbeitungsschaltung 9 vorhanden
sind. Falls es angenommen wird, dass die Signalverarbeitungsschaltung 9 durch
eine aus einer Verzögerungsschaltung
und einem Filter mit der Anzahl von NAbgriff von Abgriffen in der
horizontalen Richtung bestehende Schaltung gebildet wird, ist die
Länge der
Bereiche 4-B und 4-D in der horizontalen Richtung NAbgriff/2. Die
horizontale Länge
ist zum Beispiel "5", falls NAbgriff "11" ist, da die Ziffern
niedriger als der Dezimalpunkt abgerundet werden. Bei diesem Ausführungsbeispiel
ist NAbgriff "11", so dass die horizontale
Länge Hfil
= "5".
-
Ein
Bereich 4-C ist ein Bereich, in dem eine Ausgabe der Signalverarbeitungsschaltung 9 gültig ist.
Die Horizontallänge
bzw. horizontale Länge
Ha dieses Bereichs 4-C wird auf ein Vielfaches einer Größe einer
MCU (minimale codierte Einheit (MCU): minimale Dateneinheit von
JPEG) in horizontaler Richtung eingestellt, und die Vertikallänge bzw.
vertikale Länge
Va wird auf die Größe der MCU
in vertikaler Richtung eingestellt. Va ist daher für ein Ausdünnungsverhältnis von
4:2:2 von JPEG "8".
-
Wie
vorstehend beschrieben wird eine Ausgabe der Signalverarbeitungsschaltung 9 nur
in einem Teilbereich jedes Blocks gültig. Wie in 4 gezeigt
steuert die Prozess-SSG-Schaltung 7 den zweidimensionalen
DMAC 16 in einer derartigen Weise, dass der Bereich 4-A
den Bereich 4-C des oberen Blocks überlappt und der Bereich 4-B
den Bereich 4-C des linken Blocks überlappt.
-
Die Überlappung
in der horizontalen Richtung ist in 6 gezeigt,
und die in der vertikalen Richtung ist in 7 gezeigt.
-
Mit
Bezug auf 6 überlappen Blöcke X und
X+1 in der horizontalen Richtung. In diesem Fall gilt Hoffset =
Ha.
-
Mit
Bezug auf 7 überlappen Blöcke X und
X+p in der vertikalen Richtung. In diesem Fall gilt Voffset = Va.
-
Wie
in 8 gezeigt verarbeitet die Signalverarbeitungsschaltung 9 Bilddaten
eines Rahmens und führt
einem Raster/Block-Wandler 10 ausgegebene Blöcke 0, 1,
... pg-1 in dieser Reihenfolge zu. Von der Signalverarbeitungsschaltung 9 ausgegebene
Bilddaten sind jedoch bei dem rechten und linken Endabschnitt in
der horizontalen Richtung um Hfil und bei dem oberen Endabschnitt
in der vertikalen Richtung um Vverzögerung Zeilen kleiner als die ganzen
eingegebenen Bilddaten.
-
Die
Größe jedes
ausgegebenen Blocks ist in der horizontalen Richtung Ha und in der
vertikalen Richtung Va. Der Raster/Block-Wandler 10 wandelt diese
ausgegebenen Blöcke
sequentiell und kontinuierlich und gibt Signale aus, die zu denen,
wenn nicht in Blöcke
aufgeteilte Bilddaten zugeführt
werden, äquivalent
sind. Eine Speicherkapazität
eines Zeilenpuffers in dem Raster/Block-Wandler 10 ist
daher ausreichend, falls die derartige Kapazität Ha Zeilen in der horizontalen
Richtung und Va Zeilen in der vertikalen Richtung ist.
-
Als
Nächstes
komprimiert eine JPEG-Komprimierungsschaltung 11 durch
den Raster/Block-Wandler 10 Raster/Block-gewandelte Bilddaten
gemäß dem JPEG-Verfahren und schreibt
die komprimierten Bilddaten über
den CPU-Bus 3 in das RAM 4. Bei einem Empfang
einer Anweisung von der CPU 5 werden die in das RAM 4 geschriebenen JPEG-komprimierten
Daten über
den CPU-Bus 3 und eine I/F 12 gemäß einem
Dateiaufzeichnungsformat wie beispielsweise FAT auf einem Aufzeichnungsträger 13 aufgezeichnet.
-
Bei
diesem Ausführungsbeispiel
werden die für
die Verzögerungsschaltung 8 und
den Raster/Block-Wandler 10 erforderlichen Pufferkapazitäten unter
der Annahme, dass eingegebene Bilddaten 1034 Bildelemente in der
horizontalen Richtung und 770 Bildelemente in der vertikalen Richtung
aufweisen, das Horizontalfilter der Signalverarbeitungsschaltung 9 11 Abgriffe
aufweist, das Vertikalfilter drei Abgriffe aufweist, das Ausdünnungsverhältnis von JPEG
4:2:2 ist, CCD-Bilddaten zehn Bits pro Bildelement aufweisen, YUV
jeweils acht Bits pro Bildelement aufweist und ein Bild in 46 Blöcke in der
horizontalen Richtung und 96 Blöcke
in der vertikalen Richtung aufgeteilt wird, in der folgenden Art
und Weise berechnet:
Ha = (1034 – Hfil × 2)/4 (Division)
= (1034 – 5 × 2)/4
=
256
Va = 8
Vb = Va + 2
= 10 Bits
Hb = Ha + Hfil × 2
=
256 + 5 × 2
=
266
daher ist die Pufferkapazität der
Verzögerungsschaltung 8
2 × Hb × 10 Bits
= 5320 Bits; und
die Pufferkapazität des Raster/Block-Wandlers
ist
Va × Ha × ((Anzahl
von Bits von Y) + (Anzahl von Bits von UV)) = 8 × Ha × ((Anzahl von Bits von Y)
+ (Anzahl von Bits von UV)) = 8 × 256 × 16 Bits
= 32768 Bits.
-
Das
Ausführungsbeispiel
kann daher die Pufferkapazität
mehr als die durch den vorstehend beschriebenen herkömmlichen
Prozess verwendete verringern.
-
Während Bilddaten
aus dem in 5 gezeigten Bereich 4-A des
RAM 4 gelesen werden, ist die Ausgabe der Signalverarbeitungsschaltung 9 immer
ungültig,
und das von der Verzögerungsschaltung 8 zu
der Signalverarbeitungsschaltung 9 ausgegebene Signal ist
ebenfalls ungültig.
Daher kann wie in 9 gezeigt die Prozess-SSG-Schaltung 7 Taktsignale,
die die Signalverarbeitungsschaltung 9 ansteuern, steuern,
und während
der Periode, während der
Bilddaten in dem Bereich 4-A aus dem RAM 4 gelesen werden,
wird eine Zuführung
von Taktsignalen zu der Signalverarbeitungsschaltung 9 durch
einen Schalter 15 gestoppt. Selbst wenn eine derartige Taktsteuerung
für die
Signalverarbeitungsschaltung 9 durchgeführt wird, werden gültige ausgegebene
Signale überhaupt
nicht beeinflusst, da die Taktsteuerung während der Periode, während der
ungültige
Signale ausgegeben werden, durchgeführt wird.
-
Obwohl
bei diesem Ausführungsbeispiel
Parameter und ein zweidimensionaler DMAC 6 verwendet werden,
kann die Prozess-SSG-Schaltung 7 einen gewöhnlichen
DMAC zum Lesen von Bilddaten aus dem RAM 4 in der dem Ausführungsbeispiel ähnlichen
Art und Weise steuern.
-
10 zeigt
ein Blockschaltbild, das eine Bildverarbeitungsvorrichtung gemäß dem zweiten Ausführungsbeispiel
der Erfindung darstellt. Bei diesem Ausführungsbeispiel sind der Vorrichtung
gemäß dem ersten
Ausführungsbeispiel
Schalter 19 und 20 sowie eine Vergrößerungs-
und Verkleinerungsschaltung 17 hinzugefügt. In 10 sind
gleiche Elemente wie die in 1 gezeigten
unter Verwendung von identischen Bezugszeichen dargestellt. Angesammelte
Ladungsinformationen des CCD 1 werden A/D-gewandelt und
in dem RAM 4 gespeichert wie in 2 gezeigt.
-
Eine
Prozess-SSG-Schaltung 7 stellt vier Werte einschließlich einer
DMA-Transferstartadresse adr, einer Horizontaltransferanzahl m,
einer Vertikaltransferanzahl n und eines Vertikaloffsetwerts offset für einen zweidimensionalen
DMAC 6 ein, um dadurch Bilddaten aus dem RAM 4 zu
lesen.
-
3 veranschaulicht
die Lesesequenz von Bilddaten aus dem RAM 4 unter der Annahme,
dass adr = 0x030 (im Folgenden sind Zahlen, denen 0x hinzugefügt ist,
hexadezimale Zahlen), m = 0x8, n = 0x5 und offset = 0x010.
-
Der
zweidimensionale DMAC 6 hält adr darin als eine Lesestartadresse
und setzt einen internen Zähler
zum Halten der Horizontalleseanzahl und einen anderen internen Zähler zum
Halten der Vertikalleseanzahl auf "0" zurück. Jedes
Mal, wenn Daten gelesen werden, wird der Zähler zum Halten der Horizontalleseanzahl
um "1" erhöht, und
die Leseadresse wird ebenfalls um "1" erhöht.
-
Wenn
der Zählwert
des Zählers
zum Halten der Horizontalleseanzahl mit m zusammenfällt, wird die
Datenlesestartadresse um offset erhöht, der Zähler zum Halten der Horizontalleseanzahl
wird auf "0" zurückgesetzt,
der Zähler
zum Halten der Vertikalleseanzahl wird um "1" erhöht, und
die Lesestartadresse wird als die Leseadresse eingestellt. Das Datenlesen
wird beendet, nachdem der Zähler
zum Halten der Vertikalleseanzahl mit n zusammenfällt. In
dieser Art und Weise werden durch ein sequentielles Ändern der
Leseadresse Daten aus einem rechteckigen Bereich des RAM 4 gelesen
wie in 3 gezeigt.
-
Die
Prozess-SSG-Schaltung 7 steuert den zweidimensionalen DMAC 6 wiederholt
zum Aufteilen von Bilddaten in dem RAM in eine Vielzahl von Blöcken und
Lesen von Blöcken
0, 1, 2, ... pg-1 in dieser Reihenfolge aus dem RAM 4 wie
in 4 gezeigt. In dieser Art und Weise werden die
aus dem RAM 4 gelesenen Bilddaten über den CPU-Bus 3 einer
Verzögerungsschaltung 8 und
einer Signalverarbeitungsschaltung 9 zugeführt.
-
Jeder
von Blöcken
0 bis pq-1 besteht aus vier Bereichen wie in 5 gezeigt,
und jeder Block ist gestaltet wie vorstehend beschrieben.
-
Als
Nächstes
vergrößert oder
verkleinert die Vergrößerungs-
und Verkleinerungsschaltung 17 eine Ausgabe der Signalverarbeitungsschaltung 9 mit
einem durch die CPU 5 bezeichneten Vergrößerungs-
oder Verkleinerungsfaktor. Die Struktur dieser Vergrößerungs- und Verkleinerungsschaltung 17 ist zum
Beispiel in der japanischen Patentanmeldung Nr. 5-227414 offenbart.
Ein Verfahren zum Berechnen von von der Vergrößerungs- und Verkleinerungsschaltung 17 auszugebenden
Daten ändert
sich gemäß der sequentiellen
Reihenfolge von eingegebenen Bilddaten.
-
11 zeigt
zum Beispiel eine Phasenbeziehung zwischen eingegebenen und ausgegebenen Daten,
wenn Bilddaten um 4/9 verkleinert werden und wenn Bilddaten um 9/4
vergrößert werden.
-
In
dem Fall der Verkleinerung um 4/9 ändert sich die Phase von eingegebenen
Daten in neun Perioden, und die Phase von ausgegebenen Daten ändert sich
in vier Perioden als:
Daus1 = Dein1
Daus1 = 3/4Dein3 +
1/4Dein4
Daus3 = 2/4Dein5 + 2/4Dein6
Daus4 = 1/4Dein7
+ 3/4Dein8
Daus5 = Dein10
-
Auf ähnliche
Weise ändert
sich in dem Fall der Vergrößerung um
9/4 die Phase von eingegebenen Daten in vier Perioden, und die Phase
von ausgegebenen Daten ändert
sich in neun Perioden als:
Daus1 = Dein1
Daus2 = 5/9Dein1
+ 4/9Dein2
Daus3 = 1/9Dein1 + 8/9Dein2
Daus4 = 6/9Dein2
+ 3/9Dein3
Daus5 = 2/9Dein2 + 7/9Dein3
Daus6 = 7/9Dein3
+ 2/9Dein4
Daus7 = 3/9Dein3 + 6/9Dein4
Daus8 = 8/9Dein4
+ 1/9Dein5
Daus9 = 4/9Dein4 + 5/9Dein5
Daus10 = Dein5
-
Mit
einem Vergrößerungsfaktor
von M/N sind (N+1) Stücke
von eingegebenen Daten erforderlich, um M Stücke von Daten aus der Vergrößerungs-
und Verkleinerungsschaltung 17 auszugeben. Daher werden
Ha und Va, die die Größe des Bereichs
4-C definieren, in der folgenden Art und Weise bestimmt.
-
Vergrößerung nur
in der horizontalen Richtung
-
Falls
die Vergrößerungs-
und Verkleinerungsschaltung 17 ein Bild in der horizontalen
Richtung um M/N vergrößert, um
die Größe des Bilds
zu ändern
oder das Bild quadratisch auszubilden, werden Ha und Va derart bestimmt,
dass die Bilddaten von Ha × Va,
die durch die Vergrößerungs-
und Verkleinerungsschaltung 17 verarbeitet und von ihr
ausgegeben werden, eine horizontale Größe, die ein Vielfaches der
Größe der MCU
in horizontaler Richtung ist, und eine vertikale Größe, die
gleich der Größe der MCU
in vertikaler Richtung ist, aufweisen. Daher nimmt Ha einen durch
ein Multiplizieren eines kleinsten gemeinsamen Vielfachen von M
und der Größe der MCU
in horizontaler Richtung mit N/M und Addieren von "1" zu dem Multiplikationsergebnis bereitgestellten
Wert an, und Va nimmt die Größe der MCU
in vertikaler Richtung an.
-
Wenn
nur die horizontale Richtung vergrößert wird, werden die Schalter 19 und 20 beide
zu der Seite des Kontakts "1" gedreht, so dass
die Ausgabe der Vergrößerungs-
und Verkleinerungsschaltung 17 über die Schalter 19 und 20 einem
Raster/Block-Wandler 10 zugeführt wird.
-
Unter
der Annahme, dass effektive Bilddaten nach einer Signalverarbeitung
für das
CCD 1 960 (horizontal) × 768 (vertikal) Bildelemente
aufweisen, das Bild zum Erzeugen von Bilddaten mit 1024 (horizontal) × 768 (vertikal)
Bildelementen in der horizontalen Richtung um 16/15 vergrößert wird
und diese Bilddaten durch ein Ausdünnen von 4:2:2 JPEG-komprimiert
werden, werden Ha und Va zum Beispiel in der folgenden Art und Weise
bestimmt:
Größe der MCU
in horizontaler Richtung = 16 Bildelemente, und
Größe der MCU
in vertikaler Richtung = 8 Bildelemente;
daher
Ha = (kleinstes
gemeinsames Vielfaches von 16 und 16)/16 × 15 × n + 1 = 15 × n + 1
(n ist eine natürliche Zahl),
und
Va = 8.
-
Der
maximale Wert von n wird aus den Pufferkapazitäten der Verzögerungsschaltung 8 und
des Raster/Block-Wandlers 10 bestimmt. Unter der Annahme,
dass angesammelte Ladungsinformationen eines Bildelements des CCD
aus 10 Bits bestehen, die Verzögerungsschaltung 8 eine
Pufferkapazität, die
zum Speichern von zwei Zeilen von horizontalen 640 Bildelementen
in der Lage ist, aufweist, der Raster/Block-Wandler 10 eine
Pufferkapazität,
die zum Speichern von acht Zeilen von horizontalen 640 Bildelementen
in der Lage ist, aufweist und Hfil "5" ist,
gilt dann zum Beispiel:
n1 = (640 – 1 – Hfil × 2)/15 = 41 (Ziffern niedriger
als der Dezimalpunkt werden abgerundet);
n2 = 640(15 × 16/15)
= 40 (Ziffern niedriger als der Dezimalpunkt werden abgerundet);
und
(maximaler Wert von n) = (der kleinere von n1 und n2) =
40.
-
Jedes
Mal, wenn die Signalverarbeitungsschaltung 9 einen Block
verarbeitet, gibt die Vergrößerungs-
und Verkleinerungsschaltung 17 Bilddaten mit (16 × n) (horizontal) × 8 (vertikal)
Bildelementen, das heißt
Bilddaten mit einer horizontalen Größe, die ein Vielfaches der
Größe der MCU
in horizontaler Richtung ist, und einer vertikalen Größe, die
gleich der Größe der MCU
in vertikaler Richtung ist, zu dem Raster/Block-Wandler 10 aus.
-
Verkleinerung
nur in der horizontalen Richtung
-
Falls
die Vergrößerungs-
und Verkleinerungsschaltung 17 ein Bild in der horizontalen
Richtung um M/N verkleinert, um die Größe des Bilds zu ändern oder
das Bild quadratisch auszubilden, werden Ha und Va derart bestimmt,
dass die Bilddaten von Ha × Va,
die durch die Vergrößerungs-
und Verkleinerungsschaltung 17 verarbeitet und von ihr
ausgegeben werden, eine horizontale Größe, die ein Vielfaches der
Größe der MCU
in horizontaler Richtung ist, und eine vertikale Größe, die
gleich der Größe der MCU
in vertikaler Richtung ist, aufweisen. Daher nimmt Ha einen durch
ein Multiplizieren von N/M mit einem kleinsten gemeinsamen Vielfachen
von M und der Größe der MCU
in horizontaler Richtung bereitgestellten Wert an, und Va nimmt
die Größe der MCU
in vertikaler Richtung an.
-
Wenn
nur die horizontale Richtung verkleinert wird, werden die Schalter 19 und 20 beide
auf die Seite des Kontakts "1" gedreht, so dass
die Ausgabe der Vergrößerungs-
und Verkleinerungsschaltung 17 über die Schalter 19 und 20 einem
Raster/Block-Wandler 10 zugeführt wird.
-
Unter
der Annahme, dass effektive Bilddaten nach einer Signalverarbeitung
für das
CCD 1 1060 (horizontal) × 768 (vertikal) Bildelemente
aufweisen, das Bild zum Erzeugen von Bilddaten mit 1024 (horizontal) × 768 (vertikal)
Bildelementen in der horizontalen Richtung um 28/29 verkleinert
wird und diese Bilddaten durch ein Ausdünnen von 4:2:2 JPEG-komprimiert
werden, werden zum Beispiel Ha und Va in der folgenden Art und Weise
bestimmt:
Größe der MCU
in horizontaler Richtung = 16 Bildelemente, und
Größe der MCU
in vertikaler Richtung = 8 Bildelemente;
daher
Ha = (kleinstes
gemeinsames Vielfaches von 28 und 16)/28 × 29 × n = 116 × n (n ist eine natürliche Zahl), und
Va
= 8.
-
Der
maximale Wert von n wird aus den Pufferkapazitäten der Verzögerungsschaltung 8 und
des Raster/Block-Wandlers 10 bestimmt. Unter der Annahme,
dass angesammelte Ladungsinformationen eines Bildelements des CCD
aus 10 Bits bestehen, die Verzögerungsschaltung 8 eine Pufferkapazität, die zum
Speichern von zwei Zeilen von horizontalen 640 Bildelementen in
der Lage ist, aufweist, der Raster/Block-Wandler 10 eine
Pufferkapazität,
die zum Speichern von acht Zeilen von horizontalen 640 Bildelementen
in der Lage ist, aufweist und Hfil "5" ist,
gilt dann zum Beispiel:
n1 = (640 – 2 × Hfil)/116 = 5 (Ziffern niedriger
als der Dezimalpunkt werden abgerundet);
n2 = 640/(116 × 28/29)
= 5 (Ziffern niedriger als der Dezimalpunkt werden abgerundet);
und
(maximaler Wert von n) = (der kleinere von n1 und n2) =
5.
-
Jedes
Mal, wenn die Signalverarbeitungsschaltung 9 einen Block
verarbeitet, gibt die Vergrößerungs-
und Verkleinerungsschaltung 17 Bilddaten mit (7 × 16 × n) (horizontal) × 8 (vertikal)
Bildelementen, das heißt
Bilddaten mit einer horizontalen Größe, die ein Vielfaches der
Größe der MCU
in horizontaler Richtung ist, und einer vertikalen Größe, die
gleich der Größe der MCU
in vertikaler Richtung ist, zu dem Raster/Block-Wandler 10 aus.
-
Vergrößerung in der vertikalen Richtung
um einen Divisor der Größe der MCU
in vertikaler Richtung
-
Falls
die Vergrößerungs-
und Verkleinerungsschaltung 17 ein Bild in der vertikalen
Richtung um einen Divisor der Größe der MCU
in vertikaler Richtung vergrößert, wird
Ha in einer ähnlichen
Art und Weise wie der bei der "Vergrößerung nur
in der horizontalen Richtung" oder
der "Verkleinerung
nur in der vertikalen Richtung" bestimmt.
-
Die
vertikale Größe Va des
Blocks wird wie folgt bestimmt:
wenn die Größe der MCU in vertikaler Richtung "8" ist, dann
Va = 8 bei einem Vergrößerungsfaktor "1"
Va = 4 bei einem Vergrößerungsfaktor "2"
Va = 2 bei einem Vergrößerungsfaktor "4"
Va = 1 bei einem Vergrößerungsfaktor "8";
wohingegen wenn die Größe der MCU
in vertikaler Richtung "16" ist, dann
Va
= 16 bei einem Vergrößerungsfaktor "1"
Va = 8 bei einem Vergrößerungsfaktor "2"
Va = 4 bei einem Vergrößerungsfaktor "4"
Va = 2 bei einem Vergrößerungsfaktor "8"
Va = 1 bei einem Vergrößerungsfaktor "16".
-
In
diesem Fall werden die Schalter 19 und 20 beide
zu der Seite des Kontakts "1" gedreht, so dass die
Ausgabe der Vergrößerungs-
und Verkleinerungsschaltung 17 über die Schalter 19 und 20 dem Raster/Block-Wandler 10 zugeführt wird.
Jedes Mal, wenn die Signalverarbeitungsschaltung 9 einen Block
verarbeitet, gibt die Vergrößerungs-
und Verkleinerungsschaltung 17 Bilddaten mit einer horizontalen
Größe, die
ein Vielfaches der Größe der MCU in
horizontaler Richtung ist, und einer vertikalen Größe, die
gleich der Größe der MCU
in vertikaler Richtung ist, zu dem Raster/Block-Wandler 10 aus.
-
Verkleinerung in der vertikalen
Richtung um 1/n
-
Falls
die Vergrößerungs-
und Verkleinerungsschaltung 17 ein Bild um 1/n verkleinert,
wird Ha in einer ähnlichen
Art und Weise wie der bei der "Vergrößerung nur
in der horizontalen Richtung" oder der "Verkleinerung nur
in der vertikalen Richtung" bestimmt.
-
Va
wird bestimmt als:
Va = (Größe der MCU
in vertikaler Richtung) × n.
-
In
diesem Fall werden die Schalter 19 und 20 beide
zu der Seite des Kontakts "1" gedreht, so dass die
Ausgabe der Vergrößerungs-
und Verkleinerungsschaltung 17 über die Schalter 19 und 20 einem Raster/Block-Wandler 10 zugeführt wird.
Jedes Mal, wenn die Signalverarbeitungsschaltung 9 einen Block
verarbeitet, gibt die Vergrößerungs-
und Verkleinerungsschaltung 17 Bilddaten mit einer horizontalen
Größe, die
ein Vielfaches der Größe der MCU in
horizontaler Richtung ist, und einer vertikalen Größe, die
gleich der Größe der MCU
in vertikaler Richtung ist, zu dem Raster/Block-Wandler 10 aus.
-
Andere
Vergrößerung/Verkleinerung
in der vertikalen Richtung als eine Vergrößerung um einen Divisor der
Größe der MCU
in vertikaler Richtung und eine Verkleinerung um 1/n
-
Falls
die Vergrößerungs-
und Verkleinerungsschaltung 17 ein Bild um ein anderes
Mv/Nv als einen Divisor der Größe der MCU
in vertikaler Richtung und 1/n in der vertikalen Richtung vergrößert und
das Bild um Mh/Nh in der horizontalen Richtung vergrößert oder
verkleinert, wird Ha bestimmt als
Ha = (Vielfaches von Nh)
+ 1 für
Vergrößerung;
und
Ha = (Vielfaches von Nh) für Verkleinerung.
-
Va
wird als ein Vielfaches von Va bestimmt. In diesem Fall arbeitet
die CPU 5 derart, dass bewirkt wird, dass die Schalter 19 und 20 beide
zu der Seite des Kontakts "0" gedreht werden,
so dass die Ausgabe der Signalverarbeitungsschaltung 9 durch
die Vergrößerungs- und Verkleinerungsschaltung 17 vergrößert oder verkleinert
wird und danach vorübergehend in
dem RAM 4 gespeichert wird. Die in das RAM 4 geschriebenen
Bilddaten werden in die Einheit der Größe der MCU in vertikaler Richtung
aufgeteilt und werden über
den Schalter 20 dem Raster/Block-Wandler 10 zugeführt.
-
Durch
ein Bestimmen von Ha und Va und Steuern der Schalter 19 und 20 in
der vorstehend beschriebenen Art und Weise werden Bilddaten mit
einer horizontalen Größe, die
ein ganzzahliges Vielfaches der Größe der MCU in horizontaler
Richtung ist, und einer vertikalen Größe, die gleich der Größe der MCU
in vertikaler Richtung ist, zu dem Raster/Block-Wandler 10 ausgegeben.
-
Die
Prozess-SSG-Schaltung 7 steuert den zweidimensionalen DMAC 6 in
einer derartigen Weise, dass Bereiche von jedem Block wie in 6 gezeigt
in der horizontalen Richtung und wie in 7 gezeigt
in der vertikalen Richtung überlappen.
-
In 6 ist
Hoffset:
Hoffset = Ha (für
Verkleinerung); und
Hoffset = Ha – 1 (für Vergrößerung).
-
Für die Verkleinerung
werden die Bereiche 4-C der Blöcke
X und X+1 in der horizontalen Richtung kontinuierlich, und für die Vergrößerung überlappen
die Bereiche 4-C der Blöcke
X und X+1 in der horizontalen Richtung um ein Bildelement.
-
In 7 ist
Voffset:
Voffset = Va.
-
Die
Bereiche 4-C der Blöcke
X und X+p werden in der vertikalen Richtung kontinuierlich.
-
Mit
den vorstehenden Operationen wird selbst dann, wenn das Bild durch
die Vergrößerungs- und
Verkleinerungsschaltung 17 aufgeteilt und in der Einheit
des Blocks verarbeitet wird, keine durch Phasendifferenzen zu verursachende
Störung
des Bilds erzeugt.
-
Bei
dem zweiten Ausführungsbeispiel
wird Ha aus einem Vergrößerungs-
oder Verkleinerungsfaktor bestimmt. Dieser Faktor kann aus den Pufferkapazitäten der
Verzögerungsschaltung 8 und
des Raster/Block-Wandlers 10 bestimmt werden.
-
Unter
der Annahme, dass die Pufferkapazität des Raster/Block-Wandlers 10 320
Bildelemente in der horizontalen Richtung ist, ein Zielvergrößerungsfaktor
11/10 ist und die Größe der MCU
in horizontaler Richtung 16 ist, ist zum Beispiel die Größe Ha des Bereichs
4-C eines Blocks in horizontaler Richtung, die den Pufferspeicher
des Raster/Block-Wandlers 10 voll macht:
Ha = 320 × 10/11
= 291 (Ziffer niedriger als der Dezimalpunkt werden abgerundet).
-
In
diesem Fall wird der Vergrößerungsfaktor der
Vergrößerungs-
und Verkleinerungsschaltung 17 auf 320/291 eingestellt,
so dass die Anzahl von horizontalen Bildelementen in einer Ausgabe
der Vergrößerungs-
und Verkleinerungsschaltung 17 320 ist, was die Bedingung
eines Vielfachen der Größe der MCU
in horizontaler Richtung erfüllt.
Obwohl dieser Faktor von dem Zielvergrößerungsfaktor verschieden ist,
wirft diese Genauigkeit kein praktisches Problem auf.
-
12 zeigt
ein Blockschaltbild, das eine Bildverarbeitungsvorrichtung gemäß dem dritten Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Bei diesem Ausführungsbeispiel
ist ein Phasenpuffer 21, der mit einer Prozess-SSG-Schaltung 7 und
einer Vergrößerungs-
und Verkleinerungsschaltung 17 verbunden ist, bereitgestellt.
In 12 sind die gleichen Elemente wie die in 10 gezeigten unter
Verwendung von identischen Bezugszeichen dargestellt.
-
Wie
in 2 gezeigt in dem RAM 4 gespeicherte Bildinformationen
des CCD 1 werden durch die Prozess-SSG-Schaltung 7 und einen zweidimensionalen
DMAC 6 in der in 3 veranschaulichten Reihenfolge
gelesen. In diesem Fall werden in dem zweidimensionalen DMAC 6 die
Operationen eines internen Zählers
zum Halten der Horizontalleseanzahl und eines anderen internen Zählers zum
Halten der Vertikalleseanzahl in einer dem in 10 veranschaulichten
zweiten Ausführungsbeispiel ähnlichen Art
und Weise durchgeführt.
Durch ein Ändern
der Leseadresse des RAM 4 werden Bilddaten aus einem rechteckigen
Bereich des RAM 4 gelesen wie in 3 gezeigt.
-
Wie
in 4 gezeigt werden in eine Vielzahl von Blöcken aufgeteilte
Bilddaten in der Reihenfolge von Blöcken 0, 1, 2, ..., pg-1 aus
dem RAM 4 gelesen. Die aus dem RAM 4 gelesenen
Bilddaten werden über
einen CPU-Bus 3 einer Verzögerungsschaltung 8 und
einer Signalverarbeitungsschaltung 9 zugeführt. Jeder
von Blöcken
0 bis pq-1 besteht aus vier Bereichen wie in 5 gezeigt.
-
Ähnlich wie
bei dem in 10 gezeigten Ausführungsbeispiel
berechnet die Vergrößerungs- und Verkleinerungsschaltung 17 ausgegebene
Daten durch ein von der sequentiellen Reihenfolge von eingegebenen
Bilddaten abhängendes
verschiedenes Verfahren.
-
Die
Phasenbeziehungen zwischen eingegebenen und ausgegebenen Daten mit
einem Verkleinerungsfaktor von 1/9 und mit einem Vergrößerungsfaktor
von 9/4 werden zum Beispiel in der Art und Weise wie in 11 veranschaulicht
eingestellt.
-
Wie
vorstehend beschrieben sind N+1 Stücke von eingegebenen Daten
notwendig, damit die Vergrößerungs- und Verkleinerungsschaltung
17 M Stücke
von Daten mit einem Vergrößerungsfaktor von
M/N ausgibt. Daher kann abhängig
von der Breite von Ha die Phase in der Vergrößerungs- und Verkleinerungsschaltung 17 diskontinuierlich
werden, wenn der Block sich ändert,
und es wird eine Bildstörung
erzeugt.
-
Um
dies zu vermeiden, werden bei diesem Ausführungsbeispiel die Phase in
der Vergrößerungs-
und Verkleinerungsschaltung 17 an der Grenze von benachbarten
Blöcken
und Bilddaten in dem Phasenpuffer gespeichert. Wenn der Block sich ändert, werden
die Phase an der Grenze von geometrisch benachbarten Blöcken und
Bilddaten gelesen, um eine Interpolationsoperation für die Vergrößerung und
Verkleinerung durchzuführen.
-
Die
Operation des Speicherns und Lesens der Phase und von Bilddaten
an der Blockgrenze wird beschrieben.
-
13 zeigt
die Strukturen der Vergrößerungs-
und Verkleinerungsschaltung 17 und des Phasenpuffers 21.
Die Vergrößerungs-
und Verkleinerungsschaltung 17 wird durch eine Horizontalvergrößerungs-
und -verkleinerungsschaltung 171 und eine Vertikalvergrößerungs-
und -verkleinerungsschaltung 172 gebildet, und der Phasenpuffer 21 wird durch
einen Horizontalphasenpuffer 211 und einen Vertikalphasenpuffer 212 gebildet.
-
14 zeigt
die Strukturen einer jede Vergrößerungs- und Verkleinerungsschaltung 171, 172 bildenden
Vergrößerungs-
und Verkleinerungsschaltung 66 und eines jeden Phasenpuffer 211, 212 bildenden
Phasenpuffers 67. In 14 sind
SIG-IN, STO, LOAD und SEL von der Prozess-SSG-Schaltung 7 zugeführte Steuerungssignale.
Die Vergrößerungs-
und Verkleinerungsschaltung 66 liest Bilddaten über SIG-IN,
und eine Interpolationsoperation wird durch eine Interpolationsoperationsschaltung 61 durchgeführt. Eine
Phase für
eine derartige Interpolationsoperation wird von dem Phasenzähler 62 erhalten.
-
Wenn
STO aktiv wird (bei der folgenden Beschreibung nimmt das Steuerungssignal
einen aktiven hohen Pegel an), werden Bilddaten, Bilddaten an zwei
Punkten zur linearen Interpolation, die in der Interpolationsoperationsschaltung 61 gespeichert
sind, über
einen Anschluss DAT der Interpolationsoperationsschaltung ausgegeben,
und WEN (Schreibfreigabe) wird aktiv ausgebildet. Zu dieser Zeit
werden Bilddaten in einen durch einen Schalter 64 gemäß dem Wert
von SEL ausgewählten
Pufferspeicher 65 geschrieben. Zu dieser Zeit wird auch
ein eine derzeitige Phase angebender und über einen Anschluss CNT des
Phasenzählers 62 ausgegebener
Zählwert durch
den Schalter ausgewählt
und in den Pufferspeicher 65 geschrieben.
-
Wenn
LOAD aktiv wird, werden die Phase und die Bilddaten, die in dem
durch einen Schalter 63 gemäß dem Wert von SEL ausgewählten Pufferspeicher 65 gespeichert
sind, zu dem Phasenzähler 62 und
der Interpolationsoperationsschaltung 61 ausgegeben. Wenn
LOAD aktiv wird, führt
die Interpolationsoperationsschaltung 61 die Bilddaten über einen Anschluss
LOAD-DAT der Interpolationsoperationsschaltung 61 zu. Wenn
LOAD aktiv wird, liest der Phasenzähler 62 die Phase über einen
Anschluss LOAD-CNT.
-
Die
durch die Prozess-SSG-Schaltung 7 relativ zu der Horizontalvergrößerungs-
und -verkleinerungsschaltung 171, dem Horizontalphasenpuffer 211,
der Vertikalvergrößerungs-
und -verkleinerungsschaltung 172 und dem Vertikalphasenpuffer 212,
die in der vorstehenden Art und Weise arbeiten, auszuführende Steuerung
wird unter Bezugnahme auf 15 beschrieben.
-
In 15 sind
HSEL, HSTO und HLOAD SEL, STO und LOAD der Horizontalvergrößerungs- und
-verkleinerungsschaltung 171 und des Horizontalphasenpuffers 211.
VSEL, VSTO und VLOAD sind SEL, STO und LOAD der Vertikalvergrößerungs- und -verkleinerungsschaltung 172 und
des Vertikalphasenpuffers 212.
-
HLOAD
wird aktiv ausgebildet, bevor die Horizontalvergrößerungs-
und -verkleinerungsschaltung 171 Bilddaten an dem oberen
Ende einer Zeile jedes Blocks verarbeitet, und HSEL wird auf den
gleichen Wert wie die Zeilennummer in dem Block von derzeitigen
Bilddaten eingestellt. Daher liest die Horizontalvergrößerungs-
und -verkleinerungsschaltung 171 die Bilddaten und die
Phase an dem Ende der gleichen Zeile in dem vorhergehenden Block
aus dem Horizontalphasenpuffer 211.
-
HSTO
wird aktiv ausgebildet, nachdem die Horizontalvergrößerungs-
und -verkleinerungsschaltung 171 Bilddaten an dem Ende
einer Zeile jedes Blocks verarbeitet hat, und HSEL wird auf den
gleichen Wert wie die Zeilennummer in dem Block von derzeitigen
Bilddaten eingestellt. Daher werden die Bilddaten und die Phase
an dem Ende der derzeitigen Zeile aus der Horizontalvergrößerungs-
und -verkleinerungsschaltung 171 ausgelesen und daraufhin in
den Horizontalphasenpuffer 211 geschrieben.
-
VLOAD
wird aktiv ausgebildet, während
die Vergrößerungs- und Verkleinerungsschaltung 172 Bilddaten
der ersten Zeile jedes Blocks verarbeitet, und VSEL wird auf den
die horizontale Bildelementposition der zu verarbeitenden Bilddaten
in dem Block angebenden Wert eingestellt. Daher liest die Vertikalvergrößerungs-
und -verkleinerungsschaltung 172 die Bilddaten an der gleichen
horizontalen Bildelementposition eine Zeile zuvor aus dem Vertikalphasenpuffer 212.
-
VSTO
wird aktiv ausgebildet, während
die Vergrößerungs- und Verkleinerungsschaltung 172 Bilddaten
der letzten Zeile jedes Blocks verarbeitet, und VSEL wird auf den
die horizontale Bildelementposition der zu verarbeitenden Bilddaten
in dem Block angebenden Wert eingestellt. Daher werden die Bilddaten
und die Phase bei der derzeitigen Zeile aus der Vertikalvergrößerungs-
und -verkleinerungsschaltung 172 ausgelesen und daraufhin
in den Vertikalphasenpuffer 212 geschrieben.
-
Der
Horizontalphasenpuffer 211 wird zurückgesetzt, wenn die Vergrößerung/Verkleinerung
für den
in 4 gezeigten Block p-1, 2p-1, ..., pq-1, das heißt den letzten
horizontalen Block, abgeschlossen ist. Der Vertikalphasenpuffer 212 wird
zurückgesetzt, wenn
die Vergrößerung/Verkleinerung
für den
in 4 gezeigten Block pq-1, das heißt den letzten Block
eines Rahmens, abgeschlossen ist.
-
Da
die Prozess-SSG-Schaltung 7, die Vergrößerungs- und Verkleinerungsschaltung 17 und der
Phasenpuffer 21 in der vorstehend beschriebenen Art und
Weise arbeiten, kann selbst dann, wenn Bilddaten aufgeteilt werden,
eine Vergrößerung/Verkleinerung
ohne eine Störung
durch Pipeline-Verarbeitungsvorgänge
durch Hardware durchgeführt
werden.
-
Eine
Ausgabe der Vergrößerungs-
und Verkleinerungsschaltung 17 wird in einen Raster/Block-Wandler 10 eingegeben.
Der Raster/Block-Wandler 10 führt eine Raster/Block-Wandlung
der Bilddaten mit einer horizontalen Größe, die ein Vielfaches der
Größe der MCU
in horizontaler Richtung ist, und einer vertikalen Größe, die
gleich der Größe der MCU
in vertikaler Richtung ist, durch. Ha und Va des Bereichs 4-C werden
daher derart bestimmt, dass die durch die Vergrößerungs- und Verkleinerungsschaltung 17 vergrößerten/verkleinerten Bilddaten
eine horizontale Größe, die
ein Vielfaches der Größe der MCU
in horizontaler Richtung ist, und eine vertikale Größe, die
gleich der Größe der MCU in
vertikaler Richtung ist, aufweisen.
-
Die
zum Speichern der Phase und der Bilddaten notwendige Pufferkapazität des Phasenpuffers 21 wird
wie folgt bestimmt. Unter der Annahme, dass das vergrößerte/verkleinerte
Bild 1024 horizontale Bildelemente aufweist, ein Bildelement aus
16 Bits besteht, die Phase durch 8 Bits ausgedrückt wird, die Größe der MCU
in vertikaler Richtung 8 ist und die Verkleinerung in der
vertikalen Richtung mit einem Verkleinerungsfaktor von 4/5 durchgeführt wird,
sind zum Beispiel die Pufferkapazitäten:
(16 + 8) × 8 × 5/4 =
240 Bits für
den Horizontalphasenpuffer 211; und
(16 + 8) × 1024 =
24576 Bits für
den Vertikalphasenpuffer 212.
-
16 zeigt
ein Blockschaltbild, das eine Bildverarbeitungsvorrichtung gemäß dem vierten Ausführungsbeispiel
der Erfindung darstellt. Ein von dem dritten Ausführungsbeispiel
verschiedener Punkt ist eine Bereitstellung von Schaltern 19 und 20.
-
Bei
diesem Ausführungsbeispiel
werden wie in 17 gezeigt eine Vergrößerungs-
und Verkleinerungsschaltung 17 und ein Phasenpuffer 21 durch eine
Horizontalvergrößerungs-
und -verkleinerungsschaltung 91, eine Vertikalvergrößerungs-
und -verkleinerungsschaltung 93 und einen Horizontalphasenpuffer 92 gebildet.
-
Falls
das CCD 1 nichtquadratische Bildelemente aufweist, bildet
die Vergrößerungs-
und Verkleinerungsschaltung 17 jedes Bildelement durch
ein Vergrößern oder
Verkleinern nur in der horizontalen Richtung quadratisch aus. In
diesem Fall wird die Blockaufteilung von Bilddaten in einer ähnlichen
Art und Weise wie bei dem dritten Ausführungsbeispiel durchgeführt, und
die CPU 5 dreht die Schalter 19 und 20 zu
der Seite des Kontakts "1".
-
Die
Vergrößerungs-
und Verkleinerungsschaltung 17 kann daher ein Bild mit
einer horizontalen Größe, die
ein Vielfaches der Größe der MCU
in horizontaler Richtung ist, und einer vertikalen Größe, die
gleich der Größe der MCU
in vertikaler Richtung ist, ausgeben. Eine Ausgabe der Vergrößerungs-
und Verkleinerungsschaltung 17 wird über die Schalter 19 und 20 in
einen Raster/Block-Wandler 10 eingegeben, um Raster/Block-gewandelt
zu werden, und danach durch eine JPEG-Komprimierungsschaltung 11 JPEG-komprimiert. Die
JPEG-komprimierten Daten werden in das RAM 4 geschrieben.
-
Falls
die Bilddaten nicht nur quadratisch ausgebildet werden, sondern
auch ihre Größe geändert wird,
dreht die CPU 5 die Schalter 19 und 20 zu
der Seite des Kontakts "0". Von Ha und Va des
Bereichs 4-C jedes Blocks wird Ha auf einen beliebigen Wert, der
den durch die Pufferkapazität
der Verzögerungsschaltung 8 bestimmten
zulässigen
Bereich nicht überschreitet,
eingestellt, und Va wird mit einem Vergrößerungsfaktor von Mv/Nv bei
der Vergrößerungs- und
Verkleinerungsschaltung 17 als Va = Nv × n (n ist eine natürliche Zahl)
eingestellt.
-
Wie
vorstehend bei dem dritten Ausführungsbeispiel
beschrieben realisiert die Horizontalvergrößerungs- und -verkleinerungsschaltung 91 der Vergrößerungs-
und Verkleinerungsschaltung 17 eine Kontinuität der Phase
davon durch ein Lesen der vorhergehenden Bilddaten und Phase aus
dem Phasenpuffer 21, wohingegen die Vertikalvergrößerungs-
und -verkleinerungsschaltung 93 eine Kontinuität der Phase
davon durch ein Einstellen von Va auf ein gemeinsames Vielfaches
von Nv realisiert.
-
Eine
Ausgabe der Vergrößerungs-
und Verkleinerungsschaltung 17 wird über den Schalter 19 und
den CPU-Bus 3 in das RAM 4 geschrieben. Die vergrößerten/verkleinerten
und in dem RAM 4 gespeicherten Bilddaten werden über den
CPU-Bus 3 und den Schalter 20 dem Raster/Block-Wandler 10 zugeführt, um
Raster/Block gewandelt zu werden, und danach durch die JPEG-Komprimierungsschaltung 11 JPEG-komprimiert.
Die JPEG-komprimierten Daten
werden in das RAM 4 geschrieben.
-
Wie
vorstehend beschrieben werden gemäß den Ausführungsbeispielen Bilddaten
verarbeitet, nachdem sie in Blöcke
aufgeteilt sind. Daher kann die für die nachfolgenden Prozesse
wie beispielsweise Prozesse durch eine Verzögerungsschaltung und einen
Raster/Block-Wandler notwendige Pufferkapazität verringert werden.
-
Ferner
hängt die
eine Bildsignalverarbeitung erlaubende horizontale Bildelementgröße nicht
von den Kapazitäten
von durch die Verzögerungsschaltung
und den Raster/Block-Wandler
zu verwendenden Pufferspeichern ab. Daher ist es möglich, Bilddaten
mit einer beliebigen horizontalen Bildelementgröße zu verarbeiten. Es ist daher
möglich,
die Speicherkapazität
und die Kosten zu verringern.
-
Bilddaten
mit einer beliebigen Größe können verarbeitet
und komprimiert werden, ohne einen Speicher wie beispielsweise RAM
zu verwenden, so dass eine Hochgeschwindigkeitssignalverarbeitung möglich ist.
-
Gemäß den Ausführungsbeispielen
können aus
RAM oder dergleichen gelesene und durch JPEG oder dergleichen komprimierte
Bilddaten durch eine Hardware-Pipeline-Verarbeitung verarbeitet werden, so
dass eine Hochgeschwindigkeitssignalverarbeitung möglich ist.
-
Da
die Anzahl von Zugriffen auf RAM verringert werden kann, kann eine
zur Signalverarbeitung erforderliche Energie gespart werden.
-
Bilddaten
mit einer beliebigen Größe können unabhängig von
den Kapazitäten
der Pufferspeicher vergrößert oder
verkleinert werden. Es ist daher möglich, die Speicherkapazität und die
Kosten zu verringern.
-
Ein
quadratisches Ausbilden eines Bilds einschließlich einer Signalverarbeitung
und einer Komprimierung kann durch eine Hardware-Pipeline-Verarbeitung
durchgeführt
werden, ohne einen Speicher wie beispielsweise RAM zu verwenden.
-
Darüber hinaus
können
zur Signalverarbeitung verwendete Taktsignale während einer spezifischen Periode
gestoppt werden, so dass eine zur Signalverarbeitung erforderliche
Energie gespart werden kann.
-
Bei
den vorstehenden Ausführungsbeispielen
wird ein JPEG-Schema
als ein Komprimierungscodierungsverfahren verwendet. Die Erfindung
ist nicht nur darauf beschränkt,
sondern ist auf alle Codierungssysteme zum Ausführen einer Codierung auf einer
Grundlage einer vorbestimmten Blockeinheit (zum Beispiel ein MPEG-Schema)
anwendbar.
-
Mit
anderen Worten ist die vorhergehende Beschreibung von Ausführungsbeispielen
nur zu veranschaulichenden Zwecken angegeben worden und nicht als
irgendeine Beschränkung
in irgendeiner Hinsicht auferlegend aufzufassen.
-
Der
Bereich der Erfindung wird daher einzig und allein durch die folgenden
Patentansprüche
bestimmt.