DE112016002160T5 - Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren - Google Patents

Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren Download PDF

Info

Publication number
DE112016002160T5
DE112016002160T5 DE112016002160.7T DE112016002160T DE112016002160T5 DE 112016002160 T5 DE112016002160 T5 DE 112016002160T5 DE 112016002160 T DE112016002160 T DE 112016002160T DE 112016002160 T5 DE112016002160 T5 DE 112016002160T5
Authority
DE
Germany
Prior art keywords
data
image processing
buffer
processing module
pixel data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112016002160.7T
Other languages
English (en)
Inventor
Keisuke Nakazono
Akira Ueno
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Olympus Corp
Original Assignee
Olympus Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Olympus Corp filed Critical Olympus Corp
Publication of DE112016002160T5 publication Critical patent/DE112016002160T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Image Processing (AREA)
  • Information Transfer Systems (AREA)

Abstract

Es wird eine Bildverarbeitungsvorrichtung bereitgestellt, die einen Speicher und einen Bildverarbeitungsteil umfasst, wobei der Speicher und der Bildverarbeitungsteil an einen Datenbus angeschlossen sind und der Bildverarbeitungsteil eine Pipeline umfasst, bei der mehrere Verarbeitungsmodule in Reihe geschaltet sind, wobei jedes Verarbeitungsmodul dafür eingerichtet ist, einen vorgegebenen Prozess an Eingabedaten auszuführen, und der Bildverarbeitungsteil eine Pipeline-Verarbeitung ausführt, indem die Verarbeitungsmodule den Prozess sequenziell ausführen. Jedes der Verarbeitungsmodule umfasst einen Datenpuffer, der dafür eingerichtet ist, die Daten in Verarbeitungseinheiten zwischenzuspeichern, und einen Steuerteil, der dafür eingerichtet ist, anhand des Zustandes des Datenflusses bei der Pipeline-Verarbeitung und des Zustandes der im Datenpuffer gespeicherten Daten zu bestimmen, ob die Daten in den Datenpuffer zu speichern sind, und auf der Grundlage des Ergebnisses der Bestimmung einen Pfad innerhalb des Verarbeitungsmoduls auszuwählen, über den die Daten übertragen werden, und den Betrieb des Datenpuffers zu steuern.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft eine Bildverarbeitungsvorrichtung und ein Bildverarbeitungsverfahren.
  • Es wird die Priorität der japanischen Patentanmeldung Nr. 2015-119 684 , eingereicht am 12. Juni 2015, beansprucht, deren Inhalt durch die Bezugnahme Bestandteil dieses Dokuments ist.
  • Stand der Technik
  • Bei vielen Bildverarbeitungsvorrichtungen, wie etwa bei einer System-LSI, mit der eine Bildgebungsvorrichtung wie etwa eine Standbildkamera, eine Laufbildkamera, eine Kamera eines medizinischen Endoskops oder eine Kamera eines industriellen Endoskops ausgerüstet ist, wird ein angeschlossener dynamischer Direktzugriffsspeicher (DRAM) von mehreren integrierten Verarbeitungsblöcken gemeinsam genutzt. Bei solch einer System-LSI sind die mehreren integrierten Verarbeitungsblöcke an einen Datenbus in der System-LSI angeschlossen, und jeder Verarbeitungsblock greift bei direktem Speicherzugriff (DMA) auf das DRAM zu.
  • Außerdem gibt es Verarbeitungsblöcke, die mehrere Verarbeitungsmodule umfassen und mittels der Verarbeitungsmodule, die in Reihe mit entsprechenden der in solch einer System-LSI bereitgestellten Verarbeitungsblöcke geschaltet werden, eine Pipeline-Verarbeitung ausführen. Bei einer System-LSI beispielsweise, die in einer Bildgebungsvorrichtung bereitgestellt ist, ist ein Bildverarbeitungsteil, der eine Bildverarbeitung ausführt, ein Verarbeitungsblock, der eine Pipeline-Verarbeitung ausführt. Außerdem implementiert der Bildverarbeitungsteil eine sehr schnelle Bildverarbeitung im Bildverarbeitungsteil, die einer Pipeline-Verarbeitung entspricht, bei der mehrere Bildverarbeitungsmodule, die eine Bildverarbeitung ausführen, in Reihe geschaltet sind. Im Allgemeinen ist in einem Verarbeitungsblock, der mehrere Verarbeitungsmodule aufweist, die dafür eingerichtet sind, die Pipeline-Verarbeitung auszuführen, ein Datenpuffer bereitstellt, der Daten zwischen den Verarbeitungsmodulen übermittelt; eine Verzögerung einer Verarbeitung in jeglichem Verarbeitungsmodul wird durch den Datenpuffer aufgefangen, und die Pipeline-Verarbeitung kann normal ausgeführt werden.
  • Beispielsweise offenbart Patentdokument 1 die Technologie einer Bildverarbeitungsvorrichtung mit einer Pipeline-Konfiguration, bei der zwischen Verarbeitungsstufen, die Verarbeitungsmodule sind, ein Doppelpuffer bereitgestellt ist, der ein Datenpuffer ist. Bei der im Patentdokument 1 offenbarten Bildverarbeitungsvorrichtung ist die Pipeline-Verarbeitung implementiert, wobei die Verarbeitung durch jede der Verarbeitungsstufen sequenziell erfolgt, indem zwischen den Verarbeitungsstufen Daten via den Doppelpuffer übermittelt werden.
  • Bei der im Patentdokument 1 offenbarten Bildverarbeitungsvorrichtung werden von einer vorhergehenden Verarbeitungsstufe verarbeitete Daten im Doppelpuffer zwischengespeichert, und die im Doppelpuffer gespeicherten Daten werden von einer nachfolgenden Verarbeitungsstufe ausgelesen, sodass die Daten von der vorhergehenden Verarbeitungsstufe zur nachfolgenden Verarbeitungsstufe übermittelt werden. Das heißt, bei der im Patentdokument 1 offenbarten Bildverarbeitungsvorrichtung erfolgt notwendigerweise, wenn Daten von der vorhergehenden Verarbeitungsstufe zur nachfolgenden Verarbeitungsstufe übermittelt werden, durch die vorhergehende Verarbeitungsstufe ein Schreiben der Daten in den Doppelpuffer und durch die nachfolgende Verarbeitungsstufe ein Auslesen der Daten aus dem Doppelpuffer. Anführungen
  • Patentliteratur
  • Patentdokument 1:
    • Ungeprüfte japanische Patentanmeldung, Erstveröffentlichung Nr. H10-334 225
  • Kurzdarstellung der Erfindung
  • Technische Aufgabe
  • Ein Verarbeitungsblock, der eine Pipeline-Verarbeitung ausführt, kann jedoch Daten direkt, entsprechend einem Fortschrittszustand der Verarbeitung in jedem Verarbeitungsmodul, das für den Verarbeitungsblock bereitgestellt ist, zwischen dem Verarbeitungsmodul der vorhergehenden Stufe und dem Verarbeitungsmodul der nachfolgenden Stufe übermitteln, ohne den Datenpuffer einzubeziehen. Das heißt, entsprechend der zeitlichen Steuerung der Verarbeitung, die durch jegliches Verarbeitungsmodul erfolgt, können die Daten für ein Ausführen einer Pipeline-Verarbeitung problemlos durch jedes Verarbeitungsmodul fließen. Selbst in solch einer Situation erfolgen bei der im Patentdokument 1 offenbarten Bildverarbeitungsvorrichtung ein Schreiben in den Doppelpuffer durch die vorhergehende Verarbeitungsstufe und ein Auslesen aus dem Doppelpuffer durch die nachfolgende Verarbeitungsstufe.
  • Im Datenpuffer wird entsprechend der Operation des Schreibens bzw. Auslesens von Daten Energie verbraucht. Dementsprechend wird bei der im Patentdokument 1 offenbarten Bildverarbeitungsvorrichtung auf jeder Verarbeitungsstufe der Pipeline-Verarbeitung im Zusammenhang mit dem Betrieb des Doppelpuffers während jeder Operation des Schreibens von Daten in den Doppelpuffer und des Auslesens von Daten aus dem Doppelpuffer Energie verbraucht. Bei der im Patentdokument 1 offenbarten Bildverarbeitungsvorrichtung wird entsprechend dem Betrieb des Doppelpuffers ungeachtet des Fortschrittszustandes der Verarbeitung in jeder Verarbeitungsstufe Energie verbraucht.
  • Die vorliegende Erfindung ist ausgehend von dem vorstehend beschriebenen Problem, das erkannt wurde, gemacht worden, und eine Aufgabe der Erfindung besteht darin, eine Bildverarbeitungsvorrichtung und ein Bildverarbeitungsverfahren bereitzustellen, die fähig sind, den Energieverbrauch zu senken, ohne die Leistungsfähigkeit der Pipeline-Verarbeitung zu verschlechtern.
  • Lösung der Aufgabe
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung ist eine Bildverarbeitungsvorrichtung eine solche Bildverarbeitungsvorrichtung, die einen Speicher und einen Bildverarbeitungsteil umfasst, wobei der Speicher und der Bildverarbeitungsteil an einen Datenbus angeschlossen sind und der Bildverarbeitungsteil eine Pipeline umfasst, bei der mehrere Verarbeitungsmodule in Reihe geschaltet sind, wobei jedes Verarbeitungsmodul dafür eingerichtet ist, einen vorgegebenen Prozess an Eingabedaten auszuführen, und der Bildverarbeitungsteil eine Pipeline-Verarbeitung ausführt, indem die Verarbeitungsmodule den Prozess sequenziell ausführen, wobei jedes der Verarbeitungsmodule umfasst: einen Datenpuffer, der dafür eingerichtet ist, die Daten in Verarbeitungseinheiten zwischenzuspeichern; und einen Steuerteil, der dafür eingerichtet ist, anhand des Zustandes des Datenflusses bei der Pipeline-Verarbeitung und des Zustandes der im Datenpuffer gespeicherten Daten zu bestimmen, ob die Daten in den Datenpuffer zu speichern sind, und auf der Grundlage des Ergebnisses der Bestimmung einen Pfad innerhalb des Verarbeitungsmoduls auszuwählen, über den die Daten übertragen werden, und den Betrieb des Datenpuffers zu steuern.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung kann bei der Bildverarbeitungsvorrichtung des vorstehend beschriebenen ersten Aspekts der Steuerteil einen Pfad zum Auslesen und Übertragen der Daten, nachdem die Daten im Datenpuffer zwischengespeichert worden sind, auswählen und, wenn die Daten weiterhin im Datenpuffer gespeichert sein können, den Datenpuffer in einem Zustand betreiben, in dem die Daten in der Speicherkapazität des Datenpuffers gespeichert sind, der Steuerteil kann einen Pfad zum Auslesen und Übertragen der Daten, nachdem die Daten im Datenpuffer zwischengespeichert worden sind, auswählen und, wenn die Daten nicht weiterhin im Datenpuffer gespeichert sein können, den Datenpuffer derart betreiben, dass die gespeicherten Daten zurückgehalten werden, in einem Zustand, in dem der Datenfluss bei der Pipeline-Verarbeitung verzögert wird, und der Steuerteil kann einen Pfad auswählen, entlang dessen die Daten unter Umgehung des Datenpuffers übertragen werden, ohne im Datenpuffer gespeichert zu werden, und ein Stoppen des Betriebs des Datenpuffers veranlassen, wenn in der gesamten Speicherkapazität des Datenpuffers keine Daten gespeichert sind, in einem Zustand, in dem der Datenfluss bei der Pipeline-Verarbeitung nicht verzögert wird.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung kann bei der Bildverarbeitungsvorrichtung des vorstehend beschriebenen zweiten Aspekts der Steuerteil ein Zustandsmeldesignal, das den Betriebszustand des Verarbeitungsmoduls, das mit diesem Steuerteil selbst ausgerüstet ist, anzeigt, an das Verarbeitungsmodul einer in der Konfiguration der Pipeline vorhergehenden Stufe ausgeben, und der Steuerteil kann den Zustand des Datenflusses bei der Pipeline-Verarbeitung anhand des Zustandsmeldesignals, das vom Verarbeitungsmodul einer in der Konfiguration der Pipeline nachfolgenden Stufe eingegeben wird, bestimmen.
  • Gemäß einem vierten Aspekt der vorliegenden Erfindung kann bei der Bildverarbeitungsvorrichtung des vorstehend beschriebenen dritten Aspekts der Steuerteil den Zustand des Datenflusses bei der Pipeline-Verarbeitung anhand der Zustandsmeldesignale, die von mehreren Verarbeitungsmodulen der in der Konfiguration der Pipeline nachfolgenden Stufen eingegeben werden, bestimmen.
  • Gemäß einem fünften Aspekt der vorliegenden Erfindung kann bei der Bildverarbeitungsvorrichtung des vorstehend beschriebenen dritten Aspekts oder vierten Aspekts das Zustandsmeldesignal ein Signal sein, das anzeigt, ob es möglich ist, die Daten zu empfangen, an denen das Verarbeitungsmodul der vorhergehenden Stufe den Prozess ausgeführt hat, wobei das Zustandsmeldesignal ein Datenanforderungssignal zum Anfordern einer Ausgabe der Daten, an denen das Verarbeitungsmodul der vorhergehenden Stufe den Prozess ausgeführt hat, umfassen kann, und der Steuerteil bestimmen kann, dass der Datenfluss bei der Pipeline-Verarbeitung nicht verzögert wird, wenn das Datenanforderungssignal zum Anfordern einer Ausgabe der Daten vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird.
  • Gemäß einem sechsten Aspekt der vorliegenden Erfindung kann bei der Bildverarbeitungsvorrichtung des vorstehend beschriebenen fünften Aspekts der Steuerteil das Datenanforderungssignal zum Anfordern der Ausgabe der Daten an das Verarbeitungsmodul der vorhergehenden Stufe ausgeben, wenn die Daten im Datenpuffer gespeichert werden können.
  • Gemäß einem siebten Aspekt der vorliegenden Erfindung kann bei der Bildverarbeitungsvorrichtung des vorstehend beschriebenen fünften Aspekts der Steuerteil eine Ausgabe des Datenanforderungssignals zum Anfordern der Ausgabe der Daten an das Verarbeitungsmodul der vorhergehenden Stufe so lange aufschieben, bis ein Zustand erreicht ist, in dem in der gesamten Speicherkapazität des Datenpuffers keine Daten gespeichert sind, und nachdem der Zustand erreicht worden ist, in dem in der gesamten Speicherkapazität des Datenpuffers keine Daten gespeichert sind, kann der Steuerteil das Datenanforderungssignal an das Verarbeitungsmodul der vorhergehenden Stufe ausgeben, den Pfad auswählen, entlang dessen die Daten unter Umgehung des Datenpuffers übertragen werden, und ein Stoppen des Betriebs des Datenpuffers veranlassen.
  • Gemäß einem achten Aspekt der vorliegenden Erfindung kann bei der Bildverarbeitungsvorrichtung irgendeines vom vorstehend beschriebenen zweiten bis siebten Aspekt der Bildverarbeitungsteil ferner einen Busverkehr-Überwachungsteil umfassen, der dafür eingerichtet ist, durch Überwachen des Zugriffs durch mehrere Bus-Master, die an den Datenbus zum Speicher angeschlossen sind, den Busverkehr auf dem Datenbus zu überwachen, der Busverkehr-Überwachungsteil kann ein Puffer-Umgehen-Anweisungssignal ausgeben, das eine Auswahl eines Pfades anzeigt, entlang dessen die Daten unter Umgehung des Datenpuffers zu jeglichem Verarbeitungsmodul übertragen werden, wenn auf der Grundlage des überwachten Busverkehrs bestimmt wird, dass die Menge der Daten, die über den Datenbus fließt, gering ist, und der Steuerteil innerhalb jedes Verarbeitungsmoduls kann bestimmen, dass der Datenfluss bei der Pipeline-Verarbeitung nicht in einem verzögerten Zustand ist, wenn das Puffer-Umgehen-Anweisungssignal eingegeben wird.
  • Gemäß einem neunten Aspekt der vorliegenden Erfindung kann bei der Bildverarbeitungsvorrichtung irgendeines vom vorstehend beschriebenen zweiten bis achten Aspekt das Verarbeitungsmodul ferner eine Auswahleinrichtung umfassen, die dafür eingerichtet ist, einen von beiden, entweder den Pfad, entlang dessen die aus dem Datenpuffer ausgelesenen Daten übertragen werden, oder den Pfad, entlang die Daten unter Umgehung des Datenpuffers übertragen werden, als den Pfad auszuwählen, entlang dessen die Daten übertragen werden, der Steuerteil kann einen Datenmengenmanagementteil, der dafür eingerichtet ist, die Menge der im Datenpuffer gespeicherten Daten zu managen und Datenmengeninformationen auszugeben, die die überwachte Menge der Daten anzeigen; einen Puffer-Umgehen-Bestimmungsteil, der dafür eingerichtet ist, auf der Grundlage der Datenmengeninformationen und des Zustandes des Datenflusses bei der Pipeline-Verarbeitung eine Operation zu bestimmen, die im Datenpuffer auszuführen ist, und auf der Grundlage des Ergebnisses der Bestimmung ein Anweisungssignal, das den Datenpuffer anweist, die Daten zu schreiben und die Daten aus dem Datenpuffer auszulesen, und ein Steuersignal zum Auswählen des Pfades, entlang dessen die Daten übertragen werden, auszugeben; einen Puffer-Schreibmanagementteil, der dafür eingerichtet ist, ein Pufferschreibsignal zu erzeugen, das ein Steuersignal zum Steuern des Schreibens der Daten in den Datenpuffer entsprechend dem Anweisungssignal zum Schreiben der Daten in den Datenpuffer ist; und einen Puffer-Lesemanagementteil, der dafür eingerichtet ist, ein Pufferlesesignal zu erzeugen, das ein Steuersignal zum Steuern des Auslesens der Daten aus dem Datenpuffer entsprechend dem Anweisungssignal zum Auslesen der Daten aus dem Datenpuffer ist, umfassen, der Datenmengenmanagementteil kann die Datenmenge auf der Grundlage der Anzahl der eingegebenen Daten und des Pufferlesesignals managen, der Puffer-Umgehen-Bestimmungsteil kann das Anweisungssignal zum Erteilen einer Anweisung zum Ausführen des Schreibens der Daten in den Datenpuffer und des Auslesens der Daten aus dem Datenpuffer und das Steuersignal zum Auswählen eines Pfades zum Auslesen und Übertragen der Daten, nachdem die Daten im Datenpuffer zwischengespeichert worden sind, ausgeben, wenn die Datenmengeninformationen angeben, dass die Menge der Daten ein Wert größer als 0 ist, der Puffer-Umgehen-Bestimmungsteil kann das Anweisungssignal zum Erteilen einer Anweisung zum Stoppen des Schreibens der Daten in den Datenpuffer und des Auslesens der Daten aus dem Datenpuffer und das Steuersignal zum Auswählen eines Pfades, entlang dessen die Daten unter Umgehung des Datenpuffers übertragen werden, ausgeben, wenn die Datenmengeninformationen angeben, dass die Menge der Daten 0 ist, und die Auswahleinrichtung kann entsprechend dem Steuersignal einen Pfad auswählen, nämlich als den Pfad, entlang dessen die Daten übertragen werden.
  • Gemäß einem zehnten Aspekt der vorliegenden Erfindung ist ein Bildverarbeitungsverfahren ein solches Bildverarbeitungsverfahren in einer Bildverarbeitungsvorrichtung, die einen Speicher und einen Bildverarbeitungsteil umfasst, wobei der Speicher und der Bildverarbeitungsteil an einen Datenbus angeschlossen sind und der Bildverarbeitungsteil eine Pipeline umfasst, bei der mehrere Verarbeitungsmodule in Reihe geschaltet sind, wobei jedes Verarbeitungsmodul dafür eingerichtet ist, einen vorgegebenen Prozess an Eingabedaten auszuführen, und der Bildverarbeitungsteil eine Pipeline-Verarbeitung ausführt, indem die Verarbeitungsmodule den Prozess sequenziell ausführen, wobei das Bildverarbeitungsverfahren umfasst: einen Steuerschritt bei jedem der Verarbeitungsmodule, um anhand des Zustandes des Datenflusses bei der Pipeline-Verarbeitung und des Zustandes der Daten, die in einem Datenpuffer gespeichert sind, der die Daten in Verarbeitungseinheiten zwischenspeichert, zu bestimmen, ob die Daten in den Datenpuffer zu speichern sind, und auf der Grundlage des Ergebnisses der Bestimmung einen Pfad innerhalb des Verarbeitungsmoduls auszuwählen, über den die Daten übertragen werden, und den Betrieb des Datenpuffers zu steuern.
  • Vorteilhafte Wirkungen der Erfindung
  • Jedem der vorstehend beschriebenen Aspekte entsprechend wird als vorteilhafte Wirkung erzielt, dass eine Bildverarbeitungsvorrichtung und ein Bildverarbeitungsverfahren bereitgestellt werden, die fähig sind, den Energieverbrauch zu senken, ohne die Leistungsfähigkeit der Pipeline-Verarbeitung zu verschlechtern.
  • Kurze Beschreibung der Zeichnung
  • 1 ist ein Blockdiagramm, das schematisch eine Ausgestaltung einer Bildverarbeitungsvorrichtung in einer ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • 2 ist eine schematische Darstellung, die ein Beispiel für ein Verfahren zum Datentransfer zwischen Bildverarbeitungsmodulen in einem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • 3 ist ein Blockdiagramm, das schematisch eine Ausgestaltung des Bildverarbeitungsmoduls in dem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • 4 ist ein Zeitdiagramm, das ein Beispiel für einen Betrieb des Bildverarbeitungsmoduls in dem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • 5 ist ein Blockdiagramm, das eine Ausgestaltung des Bildverarbeitungsmoduls in dem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • 6 ist ein Ablaufplan, der eine Verarbeitungsprozedur des Bildverarbeitungsmoduls in dem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • 7 ist ein Zeitdiagramm, das ein Beispiel für einen Betrieb des Bildverarbeitungsmoduls in dem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • 8 ist ein Zeitdiagramm, das ein Beispiel für einen anderen Betrieb des Bildverarbeitungsmoduls in dem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • 9 ist ein Blockdiagramm, das schematisch eine Ausgestaltung des Bildverarbeitungsmoduls in dem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • 10 ist ein Zeitdiagramm, das ein Beispiel für einen Betrieb des Bildverarbeitungsmoduls in dem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • 11 ist ein Blockdiagramm, das schematisch eine Ausgestaltung einer Bildverarbeitungsvorrichtung in einer zweiten Ausführungsform der vorliegenden Erfindung zeigt.
  • 12 ist ein Zeitdiagramm, das ein Beispiel für einen Betrieb eines Busverkehr-Überwachungsteils in einem Bildverarbeitungsteil zeigt, der in der Bildverarbeitungsvorrichtung der zweiten Ausführungsform der vorliegenden Erfindung bereitgestellt ist.
  • Beschreibung von Ausführungsformen
  • (Erste Ausführungsform)
  • Im Folgenden wird eine Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die Zeichnung beschrieben. 1 ist ein Blockdiagramm, das schematisch eine Ausgestaltung einer Bildverarbeitungsvorrichtung in der ersten Ausführungsform der vorliegenden Erfindung zeigt. Die in 1 gezeigte Bildverarbeitungsvorrichtung 1 umfasst einen DMA-Bus 10, ein DRAM 20 und einen Bildverarbeitungsteil 30. Ferner umfasst der Bildverarbeitungsteil 30 einen Verbindungsumschaltteil 31, ein Eingabe-DMA-Modul 32, drei Bildverarbeitungsmodule 33-1 bis 33-3 und ein Ausgabe-DMA-Modul 34. Die Bildverarbeitungsvorrichtung 1 ist in einer Bildgebungsvorrichtung, wie beispielsweise einer Standbildkamera, bereitgestellt.
  • In 1 ist auf die Darstellung weiterer Bestandteilelemente, die in der Bildverarbeitungsvorrichtung 1 bereitgestellt und an den DMA-Bus 10 angeschlossen sind, verzichtet worden. Weitere Bestandteilelemente der Bildverarbeitungsvorrichtung 1 sind beispielsweise ein Bildverarbeitungsteil zum Steuern einer Halbleiter-Bildgebungsvorrichtung, die eine optische Abbildung von einem Objekt, die durch eine in der Bildgebungsvorrichtung bereitgestellte Optik geformt wird, fotoelektrisch wandelt, ein Aufzeichnungsverarbeitungsteil zum Ausführen eines Aufzeichnungsprozesses zum Aufzeichnen von Daten eines vom Bildverarbeitungsteil 30 verarbeiteten Bildes, und ein Anzeigeverarbeitungsteil zum Anzeigen der Daten des vom Bildverarbeitungsteil 30 verarbeiteten Bildes auf einer in der Bildverarbeitungsvorrichtung 1 bereitgestellten Anzeigeeinheit. Außerdem zählen zu den weiteren Bestandteilelementen, die in der Bildverarbeitungsvorrichtung 1 bereitgestellt sind, beispielsweise auch ein Systemsteuerteil zum Steuern der in der Bildverarbeitungsvorrichtung 1 bereitgestellten Bestandteilelemente und Ähnliches.
  • Das DRAM 20 ist an den DMA-Bus 10 angeschlossen und speichert verschiedene Daten, die in der Bildgebungsvorrichtung zu verarbeiten sind. Beispielsweise speichert das DRAM 20 Daten einer Standbildausgabe von einer Halbleiter-Bildgebungsvorrichtung (nicht gezeigt), die in der Bildgebungsvorrichtung bereitgestellt ist. In der Bildverarbeitungsvorrichtung 1 werden die Daten eines Standbildes/eines Rahmens, die im DRAM 20 gespeichert sind, in eine Vielzahl vorgegebener kleiner Blöcke unterteilt, und der Bildverarbeitungsteil 30 führt für jeden Block eine Bildverarbeitung aus.
  • Wie in 1 gezeigt, führt in der Bildverarbeitungsvorrichtung 1 der Bildverarbeitungsteil 30 sequenziell eine Bildverarbeitung, einer Pipeline-Verarbeitung entsprechend, bei der das Eingabe-DMA-Modul 32, das Bildverarbeitungsmodul 33-1, das Bildverarbeitungsmodul 33-2, das Bildverarbeitungsmodul 33-3 und das Ausgabe-DMA-Modul 34 in Reihe zusammengeschaltet sind, aus. In der folgenden Beschreibung werden die Daten, die in einem Block enthalten sind, der durch Aufteilen der Daten eines Standbildes/eines Rahmens erhalten wird, als „Block-Bilddaten” bezeichnet. Der Bildverarbeitungsteil 30 liest von jedem Pixel Daten (im Folgenden als „Pixeldaten” bezeichnet), die in den Block-Bilddaten enthalten sind, beispielsweise aus dem DRAM 20 für eine beliebige vorgegebene Anzahl von Spalten aus, und führt unter Verwendung der ausgelesenen Pixeldaten als eine Verarbeitungseinheit eine Bildverarbeitung aus. In der folgenden Beschreibung wird eine Vielzahl einzelner aufeinanderfolgender Pixeldaten, die in derselben Spalte in Pixeldaten einer Verarbeitungseinheit enthalten sind, bei welcher der Bildverarbeitungsteil 30 die Bildverarbeitung ausführt, als „Zeileneinheit” bezeichnet.
  • Der Bildverarbeitungsteil 30 hat zur Aufgabe, die Bildverarbeitung auszuwählen, die an Daten eines Standbildes/eines Rahmens auszuführen ist. Genauer gesagt, der Bildverarbeitungsteil 30 kann eine Bildverarbeitung sequenziell durch jedes der Bildverarbeitungsmodule 33-1, 33-2 und 33-3 ausführen und kann eine Bildverarbeitung durch eines oder mehrere der Bildverarbeitungsmodule 33-1 bis 33-3 ausführen oder kann eine Bildverarbeitung bei Änderung der Reihenfolge der Bildverarbeitungsmodule 33-1 bis 33-3 ausführen. In der folgenden Beschreibung wird jedes der Bildverarbeitungsmodule 33-1 bis 33-3 als „Bildverarbeitungsmodul 33 bezeichnet, wenn jegliches der Bildverarbeitungsmodule 33-1 bis 33-3 ohne zu unterscheiden angegeben wird.
  • Der Verbindungsumschaltteil 31 schaltet ein Ausgabeziel der Bilddatenausgabe durch jegliches der Bestandteilelemente, die im Bildverarbeitungsteil 30 bereitgestellt sind, um, d. h. er schaltet eine Verbindung zwischen den im Bildverarbeitungsteil 30 bereitgestellten Bestandteilelementen um. Beispielsweise, wenn der Bildverarbeitungsteil 30 die Bildverarbeitung nur mittels des Bildverarbeitungsmoduls 33-2 ausführt, wird eine Verbindung jegliches Bestandteilelements derart geschaltet, dass ein Ausgangsanschluss des Eingabe-DMA-Moduls 32 und ein Eingangsanschluss des Bildverarbeitungsmoduls 33-2 verbunden werden und ein Ausgangsanschluss des Bildverarbeitungsmoduls 33-2 und ein Eingangsanschluss des Ausgabe-DMA-Moduls 34 verbunden werden. Außerdem wird, beispielsweise, wenn die Bildverarbeitung durch den Bildverarbeitungsteil 30 in der Reihenfolge Bildverarbeitungsmodul 33-3 und Bildverarbeitungsmodul 33-1 ausgeführt wird, eine Verbindung jegliches Bestandteilelements derart geschaltet, dass der Ausgangsanschluss des Eingabe-DMA-Moduls 32 und ein Eingangsanschluss des Bildverarbeitungsmoduls 33-3 verbunden werden, ein Ausgangsanschluss des Bildverarbeitungsmoduls 33-3 und ein Eingangsanschluss des Bildverarbeitungsmoduls 33-1 verbunden werden und ein Ausgangsanschluss des Bildverarbeitungsmoduls 33-1 und ein Eingangsanschluss des Ausgabe-DMA-Moduls 34 verbunden werden. Außerdem schaltet der Verbindungsumschaltteil 31 zwischen Verbindungen der im Bildverarbeitungsteil 30 bereitgestellten Bestandteilelemente, beispielsweise entsprechend der Steuerung vonseiten des Systemsteuerteils (nicht gezeigt), der in der Bildverarbeitungsvorrichtung 1 bereitgestellt ist, um.
  • Das Eingabe-DMA-Modul 32 ist ein Verarbeitungsmodul zum Auslesen der Pixeldaten, die in den im DRAM 20 gespeicherten Block-Bilddaten enthalten sind, für jede Zeileneinheit, und Ausgeben der ausgelesenen Pixeldaten an ein Bildverarbeitungsmodul 33, das ein Verarbeitungsmodul zum Ausführen einer nächsten Bildverarbeitung ist, via den Verbindungsumschaltteil 31. Beispielsweise liest das Eingabe-DMA-Modul 32 Pixeldaten aus dem DRAM 20 via den DMA-Bus 10 entsprechend der Steuerung vonseiten des Systemsteuerteils (nicht gezeigt), der in der Bildverarbeitungsvorrichtung 1 bereitgestellt ist, aus und gibt die ausgelesenen Pixeldaten an das Bildverarbeitungsmodul 33 aus, das ein Verbindungsziel darstellt, zu dem mittels des Verbindungsumschaltteils 31 eine Verbindung geschaltet wird.
  • Das Eingabe-DMA-Modul 32 umfasst einen Datenpuffer, der zu einem Zwischenspeichern von Pixeldaten für eine vorgegebene Anzahl von Zeileneinheiten fähig ist. Demnach kann das Eingabe-DMA-Modul 32 die aus dem DRAM 20 ausgelesenen Pixeldaten via den DMA-Bus 10 im Datenpuffer zwischenspeichern und die im Datenpuffer zwischengespeicherten Pixeldaten an das Bildverarbeitungsmodul 33 ausgeben, das jenes Verbindungsziel darstellt, zu dem mittels des Verbindungsumschaltteils 31 eine Verbindung geschaltet ist.
  • Jedes der Bildverarbeitungsmodule 33-1 bis 33-3 ist ein Verarbeitungsmodul zum Ausführen verschiedener vorgegebener digitaler Bildverarbeitungen an den Pixeldaten, die vom Eingabe-DMA-Modul 32 oder von dem Bildverarbeitungsmodul 33 mit dem Verbindungsziel, zu dem mittels des Verbindungsumschaltteils 31 via den Verbindungsumschaltteil 31 eine Verbindung geschaltet ist, eingegeben werden. Die von jedem der Bildverarbeitungsmodule 33-1 bis 33-3 ausgeführte Bildverarbeitung umfasst beispielsweise eine YC-Verarbeitung zum Erzeugen eines Y-(Luminanz-)Signals und eines C-(Farb-)Signals entsprechend jedem der Pixeldaten, eine Verarbeitung zur Rauschminderung, um das in jedem der Pixeldaten enthaltene Rauschen zu reduzieren, eine Verarbeitung zur Verzerrungskorrektur, um die bei einer Vergrößerung auftretende chromatische Aberration und dergleichen in einem Bild, das durch einzelne Pixeldaten repräsentiert wird, zu korrigieren, und Ähnliches. Beispielsweise führt jedes der Bildverarbeitungsmodule 33-1 bis 33-3 eine Bildverarbeitung an den via den Verbindungsumschaltteil 31 eingegebenen Pixeldaten entsprechend einer Steuerung vonseiten des Systemsteuerteils (nicht gezeigt), der in der Bildverarbeitungsvorrichtung 1 bereitstellt ist, aus und gibt die Pixeldaten, die der Bildverarbeitung unterzogen wurden, an das Bildverarbeitungsmodul 33 oder das Ausgabe-DMA-Modul 34, das ein Verbindungsziel darstellt, zu dem mittels des Verbindungsumschaltteils 31 eine Verbindung geschaltet ist, aus.
  • Außerdem ist auch jedes der Bildverarbeitungsmodule 33-1 bis 33-3 mit einem Datenpuffer ausgestattet, der fähig ist, Pixeldaten einer vorgegebenen Anzahl von Zeileneinheiten zwischenzuspeichern. Jedoch steuert jedes der Bildverarbeitungsmodule 33-1 bis 33-3 auf der Grundlage des Flusses der Pixeldaten bei der Pipeline-Verarbeitung, ob die via den Verbindungsumschaltteil 31 eingegebenen Pixeldaten im Datenpuffer zwischengespeichert werden.
  • In der folgenden Beschreibung werden Pixeldaten, die einer Bildverarbeitung unterzogen wurden, als „verarbeitete Pixeldaten” bezeichnet, wenn die Pixeldaten, die einer Bildverarbeitung unterzogen wurden, im Unterschied zu im DRAM 20 gespeicherten Pixeldaten, die einer Bildverarbeitung zu unterziehen sind, beschrieben werden.
  • Das Ausgabe-DMA-Modul 34 ist ein Verarbeitungsmodul zum Schreiben (Speichern) der verarbeiteten Pixeldaten, die via den Verbindungsumschaltteil 31 vom Bildverarbeitungsmodul 33, das ein Verbindungsziel darstellt, zu dem mittels des Verbindungsumschaltteils 31 eine Verbindung geschaltet ist, eingegeben wurden, in das DRAM 20. Beispielsweise gibt das Ausgabe-DMA-Modul 34 die verarbeiteten Pixeldaten, die via den Verbindungsumschaltteil 31 eingegeben wurden, entsprechend einer Steuerung vonseiten des Systemsteuerteils (nicht gezeigt), der in der Bildverarbeitungsvorrichtung 1 bereitstellt ist, via den DMA-Bus 10 an das DRAM 20 aus.
  • Das Ausgabe-DMA-Modul 34 umfasst ebenfalls einen Datenpuffer, der zu einem Zwischenspeichern der verarbeiteten Pixeldaten für eine vorgegebene Anzahl von Zeileneinheiten fähig ist. Demnach kann das Ausgabe-DMA-Modul 34 die verarbeiteten Pixeldaten, die via den Verbindungsumschaltteil 31 in den Datenpuffer eingegeben wurden, zwischenspeichern und die im Datenpuffer zwischengespeicherten verarbeiteten Pixeldaten via den DMA-Bus 10 an das DRAM 20 ausgeben.
  • Auf diese Weise teilt jedes Verarbeitungsmodul im Bildverarbeitungsteil 30 die Daten eines Standbildes/eines Rahmens in Block-Bilddaten ein und führt eine Reihe von Bildverarbeitungen an jedem der Block-Bilddaten aus, beispielsweise durch sequenzielles Ausführen von Bildverarbeitungen entsprechend einer Steuerung vonseiten des Systemsteuerteils (nicht gezeigt), der in der Bildverarbeitungsvorrichtung 1 bereitstellt ist, an Bilddaten, die jeweils in den Block-Bilddaten für jegliche Zeileneinheit enthalten sind.
  • Als Nächstes werden eine Ausgestaltung und der Betrieb jedes Verarbeitungsmoduls, das im Bildverarbeitungsteil 30 bereitgestellt ist, beschrieben. Zunächst wird ein Verfahren zum Übermitteln von Pixeldaten zwischen Verarbeitungsmodulen, die in dem Bildverarbeitungsteil 30 bereitgestellt sind, beschrieben.
  • 2 ist eine schematische Darstellung, die ein Beispiel für ein Verfahren zum Datentransfer zwischen den Bildverarbeitungsmodulen 33 im Bildverarbeitungsteil 30 zeigt, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 2 ist ein Beispiel gezeigt, in dem die verarbeiteten Pixeldaten, an denen das Bildverarbeitungsmodul 33-1 eine Bildverarbeitung ausgeführt hat, an das Bildverarbeitungsmodul 33-2 ausgegeben werden. Wie vorstehend beschrieben, werden im Bildverarbeitungsteil 30 die von jedem Verarbeitungsmodul ausgegebenen Pixeldaten via den Verbindungsumschaltteil 31 an das Verarbeitungsmodul ausgegeben, das die nächste Verarbeitung ausführt. In 2 ist jedoch auf eine Darstellung des Verbindungsumschaltteils 31 verzichtet worden, und die verarbeiteten Pixeldaten sind als direkt vom Bildverarbeitungsmodul 33-1 an das Bildverarbeitungsmodul 33-2 ausgegeben darstellt.
  • Wie vorstehend beschrieben, führt im Bildverarbeitungsteil 30 jedes Verarbeitungsmodul eine Bildverarbeitung unter Verwendung mehrerer Zeileneinheiten als eine Verarbeitungseinheit aus. Demnach erfolgt im Bildverarbeitungsteil 30 die Übermittlung der Pixeldaten zwischen den Verarbeitungsmodulen, die im Bildverarbeitungsteil 30 bereitgestellt sind, ebenfalls für jeweils eine Verarbeitungseinheit. In 2 ist ein Fall dargestellt, in dem das Bildverarbeitungsmodul 33-1 der vorhergehenden Stufe die verarbeiteten Pixeldaten von jeweils acht Zeileneinheiten als eine Verarbeitungseinheit an das Bildverarbeitungsmodul 33-2 der nachfolgenden Stufe ausgibt. Außerdem umfasst eine Zeileneinheit eine Vielzahl von einzelnen aufeinanderfolgenden der verarbeiteten Pixeldaten, die in derselben Spalte enthalten sind, die der Bildverarbeitung unterzogen wird.
  • In 2 ist zwar ein Beispiel für ein Verfahren zum Übermitteln (Übertragen) der verarbeiteten Pixeldaten zwischen dem Bildverarbeitungsmodul 33-1 und dem Bildverarbeitungsmodul 33-2 gezeigt, doch sind ein Verfahren zum Übermitteln von Pixeldaten zwischen dem Eingabe-DMA-Modul 32 und dem Bildverarbeitungsmodul 33 und ein Verfahren zum Übermitteln der verarbeiteten Pixeldaten zwischen dem Bildverarbeitungsmodul 33 und dem Ausgabe-DMA-Modul 34 jenem von 2 ebenfalls ähnlich. Außerdem ist zwar in 2 ein Beispiel dargestellt, in dem die verarbeiteten Pixeldaten jeder der acht Zeileneinheiten als eine Verarbeitungseinheit übermittelt werden, doch die Anzahl der Zeileneinheiten bei Durchführung einer Übermittlung zwischen Verarbeitungsmodulen ist nicht auf die in 2 gezeigte Anzahl, d. h. 8, beschränkt.
  • Erste Ausgestaltung
  • Als Nächstes wird die erste Ausgestaltung jedes Verarbeitungsmoduls, das im Bildverarbeitungsteil 30 bereitgestellt ist, beschrieben. 3 ist ein Blockdiagramm, das schematisch eine Ausgestaltung des Bildverarbeitungsmoduls 33 in dem Bildverarbeitungsteil 30 zeigt, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 3 ist eine Grundkonfiguration des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung dargestellt. Das in 3 gezeigte Bildverarbeitungsmodul 33 der ersten Ausgestaltung umfasst einen Eingabepuffer 331, eine Auswahleinrichtung 332, einen Arithmetikteil 333 und einen Steuerteil 334.
  • Der Eingabepuffer 331 ist ein Datenpuffer, der die Eingabedaten, die in das Bildverarbeitungsmodul 33 eingegeben werden, zwischenspeichert. Er wird beispielsweise von einem Speicher, wie etwa einem statischen Direktzugriffsspeicher (SRAM), gebildet. Der Eingabepuffer 331 weist eine Speicherkapazität auf, die ermöglicht, Pixeldaten einer vorgegebenen Anzahl von Zeileneinheiten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, als Eingabedaten zwischenzuspeichern. Der Eingabepuffer 331 speichert die Eingabedaten, die eingegeben worden sind, entsprechend einem Steuersignal, das vom Steuerteil 334 eingegeben wird, zwischen.
  • Außerdem kann der Eingabepuffer 331 aus einem sogenannten Doppelpuffer gebildet sein, der zwei Speicherkapazitätssätze zum Speichern von Pixeldaten (Eingabedaten) für eine vorgegebene Anzahl von Zeileneinheiten umfasst und derart arbeitet, dass eine Eingabe und eine Ausgabe von Pixeldaten einer Verarbeitungseinheit gleichzeitig durchgeführt werden können, indem abwechselnd ein Schreiben von Pixeldaten in einen Speicherkapazitätssatz und ein Auslesen von Pixeldaten aus dem anderen Speicherkapazitätssatz erfolgen.
  • Bei der Auswahleinrichtung 332 handelt es sich um eine Auswahleinheit, die Pixeldaten auswählt, die an den Arithmetikteil 333 auszugeben sind. Die Auswahleinrichtung 332 gibt entweder die Eingabedaten (Pixeldaten), die im Eingabepuffer 331 zwischengespeichert sind, oder die Eingabedaten (Pixeldaten), die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, entsprechend einem Steuersignal, das vom Steuerteil 334 eingegeben wird, an den Arithmetikteil 333 aus. Das heißt, die Auswahleinrichtung 332 gibt entweder die Pixeldaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben und im Eingabepuffer 331 zwischengespeichert worden sind, oder die intakten Pixeldaten, die zurzeit vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, an den Arithmetikteil 333 aus.
  • Der Arithmetikteil 333 führt an den eingegebenen Pixeldaten eine arithmetische Operation für verschiedene vorgegebene digitale Bildverarbeitungen aus. Er gibt die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung erzeugt sind, als Ausgabedaten des Bildverarbeitungsmoduls 33 nach außen aus. Das heißt, der Arithmetikteil 333 gibt die erzeugten/die verarbeiteten Pixeldaten via den Verbindungsumschaltteil 31 an ein anderes Bildverarbeitungsmodul 33 oder das Ausgabe-DMA-Modul 34 aus.
  • Der Steuerteil 334 stellt eine Meldung eines Betriebszustandes des Bildverarbeitungsmoduls 33 bereit und steuert jedes im Bildverarbeitungsmodul 33 bereitgestellte Bestandteilelement. Er gibt an das Verarbeitungsmodul der vorhergehenden Stufe ein Zustandsmeldesignal aus, das den Betriebszustand des Bildverarbeitungsmoduls 33 anzeigt. Außerdem steuert der Steuerteil 334 den Betrieb des Eingabepuffers 331 in Abhängigkeit davon, ob es im Eingabepuffer 331 freie Speicherkapazität gibt.
  • Genauer gesagt, wenn es im Eingabepuffer 331 freie Speicherkapazität gibt, kann der Eingabepuffer 331 die in das Bildverarbeitungsmodul 33 eingegebenen Eingabedaten zwischenspeichern. In diesem Fall gibt der Steuerteil 334 ein Signal zum Anfordern der Ausgabe der Pixeldaten an das Verarbeitungsmodul der vorhergehenden Stufe als Zustandsmeldesignal aus, das einen Zustand anzeigt, in dem es möglich ist, die Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe zu empfangen. Dann steuert der Steuerteil 334 den Eingabepuffer 331 derart, dass die Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, entsprechend dem Zustandsmeldesignal zum Anfordern der Ausgabe der Ausgabe-Pixeldaten zwischengespeichert (geschrieben) werden.
  • Außerdem ist, wenn es im Eingabepuffer 331 keine freie Speicherkapazität gibt, der Eingabepuffer 331 in einem Zustand, in dem die vom Bildverarbeitungsmodul 33 eingegebenen Eingabedaten nicht zwischengespeichert werden können. In diesem Fall gibt der Steuerteil 334 ein Signal, das anzeigt, dass die Ausgabe von Pixeldaten nicht angefordert ist, an das Verarbeitungsmodul der vorhergehenden Stufe als Zustandsmeldesignal aus, das einen Zustand anzeigt, in dem es nicht möglich ist, Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe zu empfangen. Außerdem kann zu diesem Zeitpunkt das Zustandsmeldesignal dem Verarbeitungsmodul der vorhergehenden Stufe durch einen Logikpegel des Signals zum Anfordern der Ausgabe von Pixeldaten anzeigen, dass die Ausgabe von Pixeldaten nicht angefordert ist, oder kann dem Verarbeitungsmodul der vorhergehenden Stufe beispielsweise durch ein Signal, wie etwa ein Pipeline-Stall-Signal, das anzeigt, dass die Pipeline-Verarbeitung (vorübergehend) gestoppt ist, und vom Signal zum Anfordern der Ausgabe der Pixeldaten verschieden ist, anzeigen, dass die Ausgabe von Pixeldaten nicht angefordert ist.
  • Außerdem steuert der Steuerteil 334 eine Operation zum Auslesen der im Eingabepuffer 331 zwischengespeicherten Pixeldaten und die Auswahl (durch Umschalten) der Pixeldaten, die an den Arithmetikteil 333 ausgegeben werden mittels der Auswahleinrichtung 332. Im Steuerteil 334 erfolgen die Steuerung der Operation zum Auslesen von Pixeldaten aus dem Eingabepuffer 331 und die Steuerung des Umschaltens der Auswahleinrichtung 332 auf der Grundlage des Ergebnisses einer Bestimmung, ob es im Eingabepuffer 331 freie Speicherkapazität gibt, und des Zustandsmeldesignals, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird. Außerdem ist das Zustandsmeldesignal, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, ein Zustandsmeldesignal, das von dem Steuerteil 334 ausgegeben wird, der im Verarbeitungsmodul der nachfolgenden Stufe bereitgestellt ist, die ein Ausgabeziel der verarbeiteten Pixeldaten, die vom Arithmetikteil 333 erzeugt sind, ist, und umfasst ein Signal, das anzeigt, ob das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, d. h. ein Signal, das anzeigt, ob eine Ausgabe der verarbeiteten Pixeldaten anzufordern ist, und Ähnliches, wie bereits beschrieben.
  • Wenn das Zustandsmeldesignal, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, anzeigt, dass es möglich ist, die verarbeiteten Pixeldaten zu empfangen, steuert der Steuerteil 334 die Auswahleinrichtung 332 in Abhängigkeit davon, ob es im Eingabepuffer 331 freie Speicherkapazität gibt, und veranlasst entweder, dass die Pixeldaten im Eingabepuffer 331 zwischengespeichert werden oder dass die zurzeit in das Bildverarbeitungsmodul 33 eingegebenen Pixeldaten an den Arithmetikteil 333 ausgegeben werden.
  • Genauer gesagt, wenn die Speicherkapazität des Eingabepuffers 331 nicht völlig frei ist, sind Pixeldaten für mindestens eine Zeileneinheit im Eingabepuffer 331 zwischengespeichert. In diesem Fall steuert der Steuerteil 334 den Eingabepuffer 331 derart, dass die zwischengespeicherten Pixeldaten ausgelesen werden, und steuert die Auswahleinrichtung 332 derart, dass die aus dem Eingabepuffer 331 ausgelesenen Pixeldaten zum Arithmetikteil 333 übertragen werden. Dadurch gibt der Arithmetikteil 333 die verarbeiteten Pixeldaten, die durch Ausführen einer arithmetischen Operation zur Bildverarbeitung an den im Eingabepuffer 331 zwischengespeicherten Pixeldaten erzeugt sind, an das Bildverarbeitungsmodul 33 der nachfolgenden Stufe aus. Wenn zu diesem Zeitpunkt die Eingabedaten entsprechend dem Zustandsmeldesignal zum Anfordern der Ausgabe der Ausgabe-Pixeldaten vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, steuert der Steuerteil 334 den Eingabepuffer 331 derart, dass die Eingabedaten, die eingegeben worden sind, in die freie Speicherkapazität gespeichert (geschrieben) werden.
  • Auch sind, wenn die Speicherkapazität des Eingabepuffers 331 völlig frei ist, keine Pixeldaten für irgendeine Zeileneinheit im Eingabepuffer 331 zwischengespeichert. In diesem Fall steuert der Steuerteil 334 den Eingabepuffer 331 derart, dass der Betrieb gestoppt wird. Dadurch kann das Bildverarbeitungsmodul 33 den Energieverbrauch des Eingabepuffers 331 senken. Dann steuert der Steuerteil 334 die Auswahleinrichtung 332 derart, dass die Pixeldaten, die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, so ausgegeben werden, das heißt, die zurzeit eingegebenen Pixeldaten werden direkt an den Arithmetikteil 333 ausgegeben, ohne im Eingabepuffer 331 zwischengespeichert zu werden. Dadurch gibt der Arithmetikteil 333 die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den zurzeit in das Bildverarbeitungsmodul 33 eingegebenen Pixeldaten erzeugt sind, an das Bildverarbeitungsmodul 33 der nachfolgenden Stufe aus.
  • Wenn hingegen das Zustandsmeldesignal, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, anzeigt, dass es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, und es im Eingabepuffer 331 freie Speicherkapazität gibt, steuert der Steuerteil 334 den Eingabepuffer 331 derart, dass die Eingabedaten, die in das Bildverarbeitungsmodul 33 eingegeben werden, in die freie Speicherkapazität zwischengespeichert (geschrieben) werden.
  • Außerdem, wenn das Zustandsmeldesignal, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, anzeigt, dass es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, und es im Eingabepuffer 331 keine freie Speicherkapazität gibt, werden vom Verarbeitungsmodul der vorhergehenden Stufe keine Eingabedaten eingegeben, da der Steuerteil 334 ein Zustandsmeldesignal ausgibt, das anzeigt, dass es nicht möglich ist, die Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe zu empfangen. Demzufolge wird der Betrieb des Eingabepuffers 331 nicht vom Steuerteil 334 gesteuert.
  • Bei solch einer Ausgestaltung führt jedes Verarbeitungsmodul, das im Bildverarbeitungsteil 30 bereitgestellt ist, einen Empfang der Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe und eine Auswahl (durch Umschalten) der Pixeldaten, an denen der Arithmetikteil 333 eine arithmetische Operation zur Bildverarbeitung ausführt, auf der Grundlage des Zustandes freier Speicherkapazität im Eingabepuffer 331 aus.
  • Als Nächstes wird der Betrieb jedes Verarbeitungsmoduls, das im Bildverarbeitungsteil 30 bereitgestellt ist, beschrieben. 4 ist ein Zeitdiagramm, das ein Beispiel für einen Betrieb des Bildverarbeitungsmoduls 33 im Bildverarbeitungsteil 30 zeigt, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 4 zeigt ein Beispiel für eine Übermittlung der verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 33-1 zum Bildverarbeitungsmodul 33-2, wenn der Bildverarbeitungsteil 30 die Pipeline-Verarbeitung entsprechend einer Ausgestaltung ausführt, bei der das Eingabe-DMA-Modul 32, die Bildverarbeitungsmodule 33-1 bis 33-3 der ersten Ausgestaltung und das Ausgabe-DMA-Modul 34 wie in 1 gezeigt in Reihe geschaltet sind (Pipeline-Schaltung).
  • In 4 sind Eingabedaten, die einzugeben sind, ein Pufferschreiben, das ein Schreiben der Eingabedaten in den Eingabepuffer 331 anzeigt, ein Pufferlesen, das ein Auslesen der Eingabedaten aus dem Eingabepuffer 331 anzeigt, und Ausgabedaten, die auszugeben sind, bezüglich jedes der Bildverarbeitungsmodule 33-1 und 33-2 dargestellt. Außerdem ist in 4 ein Signal zum Anfordern der Ausgabe von Eingabedaten (im Folgenden als „Datenanforderungssignal” bezeichnet), als Zustandsmeldesignal, das von jedem der Bildverarbeitungsmodule 33-1 und 33-2 an das Verarbeitungsmodul der vorhergehenden Stufe ausgegeben wird, dargestellt. Außerdem ist in 4 auch ein Datenanforderungssignal dargestellt, das vom Bildverarbeitungsmodul 33-3, das an die dem Bildverarbeitungsmodul 33-2 nachfolgende Stufe angeschlossen ist, als Zustandsmeldesignal ausgegeben wird.
  • Bei der Beschreibung von 4 ist davon ausgegangen worden, dass die Bildverarbeitung unter Verwendung einer Zeileneinheit als eine Verarbeitungseinheit ausgeführt wird. In 4 sind Zahlen zur Angabe der Anzahl der Zeileneinheiten bezüglich der Eingabedaten, des Pufferschreibens, des Pufferlesens und der Ausgabedaten gezeigt. Außerdem wird davon ausgegangen, dass jedes Verarbeitungsmodul, das im Bildverarbeitungsteil 30 bereitgestellt ist, einen Datenpuffer mit einer Kapazität umfasst, die zum Speichern von Pixeldaten für zwei Zeileneinheiten imstande ist. In der folgenden Beschreibung wird zur Unterscheidung zwischen den jeweiligen Bestandteilelementen, die im Bildverarbeitungsmodul 33-1 bereitgestellt sind, und den jeweiligen Bestandteilelementen, die im Bildverarbeitungsmodul 33-2 bereitgestellt sind, das Bestandteilelement durch Hinzufügen von „–”, zu dem Bildverarbeitungsmodul 33, und einer Zahl nach dem „–” hinter dem jedem Bestandteilelement zugeordneten Bezugszeichen angegeben. Beispielsweise wird der Steuerteil 334, der im Bildverarbeitungsmodul 33-1 bereitgestellt ist, als „Steuerteil 334-1” dargestellt, und der Steuerteil 334, der im Bildverarbeitungsmodul 33-2 bereitgestellt ist, wird als „Steuerteil 334-2” dargestellt.
  • Wenn der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, gibt jedes von den Bildverarbeitungsmodulen 33-1, 33-2 33-3 und dem Ausgabe-DMA-Modul 34 ein Datenanforderungssignal zum Anfordern einer Ausgabe von Eingabedaten an das Verarbeitungsmodul der vorhergehenden Stufe aus. Denn die Speicherkapazität des in jedem Bildverarbeitungsmodul 33 bereitgestellten Eingabepuffers 331 ist in einem ersten Schritt, in dem der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, völlig frei, und deshalb ist es möglich, Eingabedaten zu empfangen. In diesem Fall sind der Arithmetikteil 333-1, der im Bildverarbeitungsmodul 33-1 bereitgestellt ist, und der Arithmetikteil 333-2, der im Bildverarbeitungsmodul 33-2 bereitgestellt ist, in einem Zustand, in dem an den eingegebenen Pixeldaten sofort eine Bildverarbeitung ausgeführt werden kann. Dies liegt auch daran, dass im ersten Schritt, in dem der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, das Ausgabe-DMA-Modul 34 in einem Zustand ist, in dem die Eingabedaten (die verarbeiteten Pixeldaten), die eingegeben worden sind, via den DMA-Bus 10 sofort an das DRAM 20 ausgegeben werden können.
  • Außerdem stellt in 4 eine Periode, während der das Datenanforderungssignal einen hohen Pegel („High”) aufweist, eine Anforderungsperiode dar, während der jedes Verarbeitungsmodul in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen, und eine Periode, während der das Datenanforderungssignal einen niedrigen Pegel („Low”) aufweist, stellt eine Anforderungsnegationsperiode dar, während der jedes Verarbeitungsmodul in einem Zustand ist, in dem es nicht möglich ist, Pixeldaten zu empfangen.
  • Wenn vom Bildverarbeitungsmodul 33-1 der nachfolgenden Stufe ein Datenanforderungssignal eingegeben wird, liest für jede Zeileneinheit zunächst das Eingabe-DMA-Modul 32 die Pixeldaten der ersten Zeileneinheit, die im DRAM 20 gespeichert ist, sequenziell via den DMA-Bus 10 aus. Dann gibt das Eingabe-DMA-Modul 32 die ausgelesenen Pixeldaten an das Bildverarbeitungsmodul 33-1 aus. Zu diesem Zeitpunkt wird vom Bildverarbeitungsmodul 33-1, das mit der dem Eingabe-DMA-Modul 32 nachfolgenden Stufe in Verbindung steht, angezeigt, sich in einem Zustand zu befinden, in dem es möglich ist, die Pixeldaten zu empfangen, und zwar durch Ausgeben des Datenanforderungssignals hohen Pegels („High”). Dementsprechend gibt das Eingabe-DMA-Modul 32 die ausgelesenen Pixeldaten so an das Bildverarbeitungsmodul 33-1 aus, ohne sie im Datenpuffer zwischenzuspeichern. Zu diesem Zeitpunkt stoppt das Eingabe-DMA-Modul 32 den Betrieb des Datenpuffers und senkt dadurch dessen Energieverbrauch. Danach liest das Eingabe-DMA-Modul 32 die Pixeldaten der zweiten Zeileneinheit, die im DRAM 20 gespeichert ist, aus und beginnt eine Ausgabe an das Bildverarbeitungsmodul 33-1.
  • Außerdem führt das Bildverarbeitungsmodul 33-1 an den Pixeldaten der ersten Zeileneinheit, die vom Eingabe-DMA-Modul 32 eingegeben wurde, eine Bildverarbeitung aus, wenn vom Bildverarbeitungsmodul 33-2 der nachfolgenden Stufe ein Datenanforderungssignal eingegeben wird. Wie bereits beschrieben, ist zu diesem Zeitpunkt das Bildverarbeitungsmodul 33-1 in einem Zustand, in dem die Speicherkapazität des Eingabepuffers 331-1 völlig frei ist, und ist in einem Zustand, in dem der Arithmetikteil 333-1 sofort die Bildverarbeitung an den eingegebenen Pixeldaten ausführen kann. Außerdem wird zu diesem Zeitpunkt vom Bildverarbeitungsmodul 33-2, das mit der dem Bildverarbeitungsmodul 33-1 nachfolgenden Stufe verbunden ist, angezeigt, sich in einem Zustand zu befinden, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, und zwar durch Ausgeben des Datenanforderungssignals hohen Pegels („High”). Demzufolge steuert der Steuerteil 334-1 die Auswahleinrichtung 332-1 derart, dass die Pixeldaten der ersten Zeileneinheit, die zurzeit vom Eingabe-DMA-Modul 32 der vorhergehenden Stufe eingegeben werden, so an den Arithmetikteil 333-1 ausgegeben werden. Außerdem führt der Steuerteil 334-1 die Steuerung derart durch, dass der Betrieb des Eingabepuffers 331-1 gestoppt wird, und senkt dadurch dessen Energieverbrauch. Dadurch gibt der Arithmetikteil 333-1 die verarbeiteten Pixeldaten, die durch Ausführen einer arithmetischen Operation zur Bildverarbeitung an den Pixeldaten der ersten Zeileneinheit erzeugt sind, die via die Auswahleinrichtung 332-1 eingegeben wurde, an das Bildverarbeitungsmodul 33-2 der nachfolgenden Stufe aus. Außerdem werden die verarbeiteten Pixeldaten, die vom Bildverarbeitungsmodul 33-1 ausgegeben werden, ausgegeben, nachdem sie um eine Verzögerungszeit (im Folgenden als „Latenzzeit” bezeichnet) bis zur Ausgabe der verarbeiteten Pixeldaten, nachdem die vom Arithmetikteil 333-1, der die arithmetische Operation zur Bildverarbeitung ausführt, erzeugten Pixeldaten eingegeben wurden, verzögert worden sind. Danach beginnt das Bildverarbeitungsmodul 33-1 mit der Bildverarbeitung an den vom Eingabe-DMA-Modul 32 eingegebenen Pixeldaten der zweiten Zeileneinheit.
  • Außerdem führt das Bildverarbeitungsmodul 33-2 an den verarbeiteten Pixeldaten, die der vom Bildverarbeitungsmodul 33-1 eingegebenen ersten Zeileneinheit entsprechen, eine Bildverarbeitung aus, wenn vom Bildverarbeitungsmodul 33-3 der nachfolgenden Stufe das Datenanforderungssignal eingegeben wird. Wie bereits beschrieben, ist zu diesem Zeitpunkt das Bildverarbeitungsmodul 33-2 ebenfalls in einem Zustand, in dem die Speicherkapazität des Eingabepuffers 331-2 völlig frei ist, und ist in einem Zustand, in dem der Arithmetikteil 333-2 sofort die Bildverarbeitung an den eingegebenen/den verarbeiteten Pixeldaten ausführen kann. Außerdem wird zu diesem Zeitpunkt auch vom Bildverarbeitungsmodul 33-3, das mit der dem Bildverarbeitungsmodul 33-2 nachfolgenden Stufe verbunden ist, angezeigt, sich in einem Zustand zu befinden, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, und zwar durch Ausgeben des Datenanforderungssignals hohen Pegels („High”). Demzufolge steuert der Steuerteil 334-2 auch die Auswahleinrichtung 332-2 derart, dass die verarbeiteten Pixeldaten, die der ersten Zeileneinheit entsprechen, die zurzeit vom Bildverarbeitungsmodul 33-1 der vorhergehenden Stufe eingegeben wird, so an den Arithmetikteil 333-2 ausgegeben werden. Außerdem führt der Steuerteil 334-2 die Steuerung derart durch, dass der Betrieb des Eingabepuffers 331-2 gestoppt wird, und senkt dadurch dessen Energieverbrauch. Der Arithmetikteil 333-2 führt eine arithmetische Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der via die Auswahleinrichtung 332-2 eingegebenen ersten Zeileneinheit entsprechen, aus und gibt dadurch die verarbeiteten Pixeldaten, die im Arithmetikteil 333-2 um die Latenzzeit verzögert wurden, an das Bildverarbeitungsmodul 33-3 aus. Danach beginnt auch das Bildverarbeitungsmodul 33-2 mit der Bildverarbeitung an den verarbeiteten Pixeldaten, die einer vom Bildverarbeitungsmodul 33-1 eingegebenen zweiten Zeileneinheit entsprechen.
  • Auf diese Weise übermittelt im Bildverarbeitungsteil 30 jedes Verarbeitungsmodul Eingabedaten, die eingegeben worden sind, sequenziell an ein Verarbeitungsmodul der an die Pipeline angeschlossenen nachfolgenden Stufe. Dabei werden deshalb, weil jedes Verarbeitungsmodul in einem Zustand ist, in dem die Speicherkapazität des Eingabepuffers 331, der im Verarbeitungsmodul selbst bereitgestellt ist, völlig frei ist und das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem es möglich ist, Eingabedaten zu empfangen, die Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, nicht im Eingabepuffer 331 zwischengespeichert, sondern werden so oder durch sofortiges Ausführen einer arithmetischen Operation zur Bildverarbeitung an das Verarbeitungsmodul der nachfolgenden Stufe ausgegeben. Was das Pufferschreiben und Pufferlesen jedes der Bildverarbeitungsmodule 33-1 und 33-2 anbelangt, so ist in 4 eine Periode, während der Eingabedaten nicht im Eingabepuffer 331 zwischengespeichert werden, das heißt, eine Periode, während der Eingabedaten zum Arithmetikteil 333 übertragen werden, ohne dabei den Eingabepuffer 331 einzubeziehen, als Pufferumgehungsperiode dargestellt.
  • Des Weiteren führt der Bildverarbeitungsteil 30 die Steuerung derart durch, dass jegliches Verarbeitungsmodul den Betrieb des Datenpuffers (des Eingabepuffers 331), der im Verarbeitungsmodul selbst bereitgestellt ist, stoppt. Das heißt, der Bildverarbeitungsteil 30 stoppt in der Pufferumgehungsperiode in jedem Verarbeitungsmodul den Betrieb des Datenpuffers (des Eingabepuffers 331). Dadurch kann der Bildverarbeitungsteil 30 den Energieverbrauch des Datenpuffers (des Eingabepuffers 331), der in jedem Verarbeitungsmodul bereitgestellt ist, senken.
  • Hier wird ein Betrieb beschrieben, der auftritt, wenn das Bildverarbeitungsmodul 33-3 der nachfolgenden Stufe in einem Zustand ist, in dem es aus irgendeinem Grund nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, wenn das Bildverarbeitungsmodul 33-2 die der zweiten Zeileneinheit entsprechenden verarbeiteten Pixeldaten ausgibt. In diesem Fall zeigt das Bildverarbeitungsmodul 33-3 an, in einem Zustand zu sein, in dem es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, das heißt, es zeigt durch Setzen des Datenanforderungssignals, das an das Bildverarbeitungsmodul 33-2 auszugeben ist, auf den niedrigen Pegel („Low”) an, dass keine Ausgabe von Eingabedaten angefordert ist. Auch ist ein Verfahren, durch das jedes Verarbeitungsmodul dem Verarbeitungsmodul der vorhergehenden Stufe meldet, dass die Ausgabe der Eingabedaten nicht angefordert ist, nicht auf das vorstehend beschriebene Verfahren, das auf dem Logikpegel des Datenanforderungssignals beruht, beschränkt, und es kann sich um ein Verfahren handeln, bei dem eine Meldung bereitgestellt wird, die anzeigt, dass jedes Verarbeitungsmodul in einem Zustand ist, in dem es nicht möglich ist, die Pixeldaten zu empfangen, nämlich indem das Pipeline-Stall-Signal ausgegeben wird.
  • Da zu diesem Zeitpunkt das Bildverarbeitungsmodul 33-2 in einem Zustand ist, in dem die Speicherkapazität des Eingabepuffers 331-2 völlig frei ist (Zustand, in dem Speicherkapazität für zwei Zeileneinheiten frei ist), steuert der Steuerteil 334-2 den Eingabepuffer 331-2 derart, dass die verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, die zurzeit vom Bildverarbeitungsmodul 33-1 der vorhergehenden Stufe eingegeben wird, zwischengespeichert werden. Dadurch speichert der Eingabepuffer 331-2 die verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, und ist in einem Zustand, in dem Speicherkapazität für eine Zeileneinheit frei ist (bleibt).
  • Ferner steuert im Bildverarbeitungsmodul 33-2 der Steuerteil 334-2 den Eingabepuffer 331-2 derart, dass die verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, die zurzeit vom Bildverarbeitungsmodul 33-1 der vorhergehenden Stufe eingegeben wird, zwischengespeichert werden. Dadurch speichert der Eingabepuffer 331-2 auch die verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, und ist in einem Zustand, in dem es keine freie Speicherkapazität gibt. Mit anderen Worten, das Bildverarbeitungsmodul 33-2 ist in einem Zustand, in dem es nicht möglich ist, die verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 33-1 zu empfangen. Um anzuzeigen, dass das Bildverarbeitungsmodul 33-2 in einem Zustand ist, in dem es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, setzt also der Steuerteil 334-2 das Datenanforderungssignal, das an das Bildverarbeitungsmodul 33-1 auszugeben ist, auf den niedrigen Pegel („Low”).
  • Dadurch steuert im Bildverarbeitungsmodul 33-1 der Steuerteil 334-1, ähnlich wie der Steuerteil 334-2, der im Bildverarbeitungsmodul 33-2 bereitgestellt ist, den Eingabepuffer 331-1 derart, dass Pixeldaten jeder von der fünften und sechsten Zeileneinheit, die vom Eingabe-DMA-Modul 32 eingegeben werden, zwischengespeichert werden. Dadurch speichert der Eingabepuffer 331-1 die Pixeldaten jeder von der fünften und sechsten Zeileneinheit, und das Bildverarbeitungsmodul 33-1 ist in einem Zustand, in dem es nicht möglich ist, die Pixeldaten aus dem Eingabe-DMA-Modul 32 zu empfangen. Dementsprechend setzt auch der Steuerteil 334-1, ähnlich wie der Steuerteil 334-2, das Datenanforderungssignal, das an das Eingabe-DMA-Modul 32 auszugeben ist, auf den niedrigen Pegel („Low”), um anzuzeigen, dass das Bildverarbeitungsmodul 33-1 in einem Zustand ist, in dem es nicht möglich ist, die Pixeldaten zu empfangen.
  • Dadurch schiebt das Eingabe-DMA-Modul 32 ein Auslesen der im DRAM 20 gespeicherten Pixeldaten einer siebten Zeileneinheit auf. Das Eingabe-DMA-Modul 32 umfasst ebenfalls einen Datenpuffer mit einer Kapazität, in der Pixeldaten für zwei Zeileneinheiten gespeichert werden können. Somit kann das Eingabe-DMA-Modul 32 Pixeldaten jeder von der siebten und achten Zeileneinheit auslesen, die ausgelesenen Pixeldaten im Datenpuffer zwischenspeichern und dann ein Auslesen von Pixeldaten einer neunten Zeileneinheit aufschieben.
  • Auf diese Weise stoppt im Bildverarbeitungsteil 30 jegliches Verarbeitungsmodul die Ausgabe der Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe, wenn das vom Verarbeitungsmodul der an die Pipeline angeschlossenen nachfolgenden Stufe eingegebene Datenanforderungssignal einen Zustand anzeigt, in dem es nicht möglich ist, Pixeldaten zu empfangen. Jedes Verarbeitungsmodul stellt eine Meldung bereit, die anzeigt, dass das Verarbeitungsmodul selbst in einem Zustand ist, in dem es nicht möglich ist, die Pixeldaten zu empfangen, nachdem es Pixeldaten in der Menge, die der freien Speicherkapazität des im Verarbeitungsmodul selbst bereitgestellten Eingabepuffers 331 entspricht, zwischengespeichert hat.
  • Außerdem führt im Bildverarbeitungsteil 30 jedes Verarbeitungsmodul ein Verarbeiten jeder Verarbeitungseinheit aus. Dementsprechend wird, auch wenn der Bildverarbeitungsteil 30 eine Meldung bereitstellt, die einen Zustand anzeigt, in dem es nicht möglich ist, die Pixeldaten zu empfangen, während jedes Verarbeitungsmodul die Pixeldaten einer Verarbeitungseinheit an das Verarbeitungsmodul der nachfolgenden Stufe ausgibt, eine Ausgabe der Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe gestoppt, nachdem alle Pixeldaten einer Verarbeitungseinheit, die gerade ausgegeben wird, ausgegeben worden sind.
  • Als Nächstes wird ein Betrieb beschrieben, der auftritt, wenn das Bildverarbeitungsmodul 33-3 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen. In diesem Fall zeigt das Bildverarbeitungsmodul 33-3 an, in einem Zustand zu sein, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, das heißt, es zeigt durch Setzen des Datenanforderungssignals, das an das Bildverarbeitungsmodul 33-2 auszugeben ist, auf den hohen Pegel („High”), an, dass eine Ausgabe von Eingabedaten angefordert ist. Auch ist ein Verfahren, durch das jedes Verarbeitungsmodul dem Verarbeitungsmodul der vorhergehenden Stufe meldet, dass die Ausgabe der Eingabedaten wieder angefordert wird, nicht auf das vorstehend beschriebene Verfahren, das auf dem Logikpegel des Datenanforderungssignals beruht, beschränkt, und es kann sich um ein Verfahren zum Bereitstellen einer Meldung handeln, bei dem durch Stoppen der Ausgabe des Pipeline-Stall-Signals angezeigt wird, dass jedes Verarbeitungsmodul in einem Zustand ist, in dem es möglich ist, die Pixeldaten zu empfangen.
  • Zu diesem Zeitpunkt ist das Bildverarbeitungsmodul 33-2 in einem Zustand, in dem es im Eingabepuffer 331-2 keine freie Speicherkapazität gibt (Zustand, in dem die verarbeiteten Pixeldaten, die der dritten und vierten Zeileneinheit entsprechen, zwischengespeichert sind). Demzufolge steuert der Steuerteil 334-2 den Eingabepuffer 331-2 und die Auswahleinrichtung 332-2 derart, dass zunächst die verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, die im Eingabepuffer 331-2 gespeichert ist, aus dem Eingabepuffer 331-2 ausgelesen werden, und die ausgelesenen verarbeiteten Pixel werden an den Arithmetikteil 333-2 ausgegeben. Dadurch gibt der Eingabepuffer 331-2 die verarbeiteten Pixeldaten, die der gespeicherten dritten Zeileneinheit entsprechen, an die Auswahleinrichtung 332-2 aus, und die Auswahleinrichtung 332-2 gibt die verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, die vom Eingabepuffer 331-2 eingegeben wurde, an den Arithmetikteil 333-2 aus. Dann führt der Arithmetikteil 333-2 eine arithmetische Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, die von der Auswahleinrichtung 332-2 ausgegeben wurde, aus und gibt die verarbeiteten Pixeldaten, die im Arithmetikteil 333-2 um die Latenzzeit verzögert wurden, an das Bildverarbeitungsmodul 33-3 der nachfolgenden Stufe aus.
  • Außerdem gibt der Eingabepuffer 331-2 die verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, aus, sodass ein Zustand vorliegt, in dem die Speicherkapazität für eine Zeileneinheit frei ist (bleibt). Das heißt, das Bildverarbeitungsmodul 33-2 ist in einem Zustand, in dem es möglich ist, die verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 33-1 zu empfangen. Um anzuzeigen, dass das Bildverarbeitungsmodul 33-2 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, setzt also der Steuerteil 334-2 das Datenanforderungssignal, das an das Bildverarbeitungsmodul 33-1 auszugeben ist, auf den hohen Pegel („High”).
  • Ferner gibt es im Bildverarbeitungsmodul 33-2 freie Speicherkapazität im Eingabepuffer 331-2, jedoch sind die verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, zwischengespeichert. Demzufolge steuert der Steuerteil 334-2 den Eingabepuffer 331-2 und die Auswahleinrichtung 332-2 derart, dass die verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, die im Eingabepuffer 331-2 gespeichert ist, aus dem Eingabepuffer 331-2 ausgelesen und an den Arithmetikteil 333-2 ausgegeben werden. Dadurch werden die verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, die im Eingabepuffer 331-2 gespeichert ist, via die Auswahleinrichtung 332-2 in den Arithmetikteil 333-2 eingegeben. Dann gibt der Arithmetikteil 333-2 die verarbeiteten Pixeldaten, die durch Ausführen einer arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, erzeugt sind, via die Auswahleinrichtung 332-2 an das Bildverarbeitungsmodul 33-3 aus.
  • Außerdem gibt im Bildverarbeitungsmodul 33-1 dann, wenn das vom Bildverarbeitungsmodul 33-2 der nachfolgenden Stufe eingegebene Datenanforderungssignal den hohen Pegel („High”) aufweist und eine Meldung bereitgestellt ist, die anzeigt, dass das Bildverarbeitungsmodul 33-2 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, der Steuerteil 334-1, wie der im Bildverarbeitungsmodul 33-2 bereitgestellte Steuerteil 334-2, die verarbeiteten Pixeldaten, die der fünften und der sechsten Zeileneinheit entsprechen, an das Bildverarbeitungsmodul 33-2 aus. Genauer gesagt steuert der Steuerteil 334-1 den Eingabepuffer 331-2 und die Auswahleinrichtung 332-2 derart, dass die Pixeldaten jeder von der fünften und sechsten Zeileneinheit, die im Eingabepuffer 331-1 gespeichert sind, sequenziell ausgelesen und an den Arithmetikteil 333-1 ausgegeben werden. Dadurch führt der Arithmetikteil 333-1 eine arithmetische Operation zur Bildverarbeitung an den Pixeldaten jeder von der fünften und sechsten Zeileneinheit, die via die Auswahleinrichtung 332-1 sequenziell eingegeben werden, aus und gibt die verarbeiteten Pixeldaten, die im Arithmetikteil 333-1 um die Latenzzeit verzögert wurden, an das Bildverarbeitungsmodul 33-2 der nachfolgenden Stufe aus.
  • Außerdem ist, wenn die Pixeldaten der fünften Zeileneinheit ausgegeben sind, der Eingabepuffer 331-1 in einem Zustand, in dem die Speicherkapazität für eine Zeileneinheit frei ist (bleibt), und das Bildverarbeitungsmodul 33-1 ist in einem Zustand, in dem es möglich ist, Pixeldaten aus dem Eingabe-DMA-Modul 32 zu empfangen. Dementsprechend setzt der Steuerteil 334-1, ähnlich wie der Steuerteil 334-2, das Datenanforderungssignal, das an das Eingabe-DMA-Modul 32 auszugeben ist, auf den hohen Pegel („High”), um anzuzeigen, dass das Bildverarbeitungsmodul 33-1 in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen.
  • Dadurch nimmt das Eingabe-DMA-Modul 32 das Auslesen der Pixeldaten aus der siebten Zeileneinheit, die im DRAM 20 gespeichert ist, wieder auf und gibt die ausgelesenen Pixeldaten an das Bildverarbeitungsmodul 33-1 aus. Wenn das Eingabe-DMA-Modul 32 die Pixeldaten jeder von der siebten und achten Zeileneinheit im Datenpuffer speichert, wenn das Auslesen der im DRAM 20 gespeicherten Pixeldaten aufgeschoben wird, kann das Auslesen der Pixeldaten aus der neunten Zeileneinheit wieder aufgenommen werden, nachdem die Pixeldaten der siebten Zeileneinheit, die im Datenpuffer gespeichert sind, an das Bildverarbeitungsmodul 33-1 ausgegeben worden sind.
  • Auf diese Weise nimmt im Bildverarbeitungsteil 30, wenn das vom Verarbeitungsmodul der an die Pipeline angeschlossenen nachfolgenden Stufe eingegebene Datenanforderungssignal in einen Zustand wechselt, in dem es wieder möglich ist, Pixeldaten zu empfangen, jedes Verarbeitungsmodul die Ausgabe der Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe wieder auf. Dabei gibt jedes Verarbeitungsmodul von den Pixeldaten, die in dem im Verarbeitungsmodul selbst bereitgestellten Eingabepuffer 331 gespeichert sind, sequenziell an das Verarbeitungsmodul der nachfolgenden Stufe aus. Jedes Verarbeitungsmodul stellt eine Meldung bereit, die anzeigt, dass das Verarbeitungsmodul selbst in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen, sobald in dem im Verarbeitungsmodul selbst bereitgestellten Eingabepuffer 331 Speicherkapazität frei wird. Danach speichert jedes Verarbeitungsmodul die eingegebenen Pixeldaten in dem im Verarbeitungsmodul selbst bereitgestellten Eingabepuffer 331 zwischen, liest die gespeicherten Pixeldaten aus und gibt die ausgelesenen Pixeldaten sequenziell an das Verarbeitungsmodul der nachfolgenden Stufe aus.
  • Danach führt der Bildverarbeitungsteil 30 durch Wiederholen der vorstehend beschriebenen Operation eine Reihe von Bildverarbeitungen an Block-Bilddaten aus, indem er die Pipeline-Verarbeitung an Pixeldaten, die in den Block-Bilddaten enthalten sind, sequenziell ausführt, und zwar für jede Zeileneinheit in jedem Verarbeitungsmodul, das an die Pipeline angeschlossen ist.
  • Obwohl dies in dem in 4 gezeigten Beispiel für ein Zeitdiagramm des Betriebs des Bildverarbeitungsmoduls 33 nicht dargestellt ist, wird, wenn wieder ein Zustand erreicht ist, in dem es möglich ist, die Eingabedaten so an das Verarbeitungsmodul der nachfolgenden Stufe auszugeben, ohne den Eingabepuffer 331 einzubeziehen, nachdem der Bildverarbeitungsteil 30 die Ausgabe der Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe durch jedes Verarbeitungsmodul wieder aufgenommen hat, die Steuerung derart durchgeführt, dass der Betrieb des Eingabepuffers 331 gestoppt wird, wie beim ersten Schritt des Startens der in 4 gezeigten Pipeline-Verarbeitung. Dadurch kann der Bildverarbeitungsteil 30 den Energieverbrauch des Eingabepuffers 331, der in jedem Verarbeitungsmodul bereitgestellt ist, senken.
  • Als Nächstes wird die Ausgestaltung des im Bildverarbeitungsmodul 33 bereitgestellten Steuerteils 334 beschrieben. 5 ist ein Blockdiagramm, das eine Ausgestaltung des Bildverarbeitungsmoduls 33 im Bildverarbeitungsteil 30 zeigt, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 5 ist schematisch eine Konfiguration des Steuerteils 334 dargestellt, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist. In 5 sind außerdem der Eingabepuffer 331, die Auswahleinrichtung 332 und der Arithmetikteil 333, die im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt sind, gemeinsam gezeigt. Der in 5 gezeigte Steuerteil 334 umfasst einen Datenmengenmanagementteil 3341, einen Puffer-Umgehen-Bestimmungsteil 3342, einen Eingabepuffer-Schreibmanagementteil 3343 und einen Eingabepuffer-Lesemanagementteil 3344.
  • Zum Managen der Datenmenge der Eingabedaten (Pixeldaten), die im Eingabepuffer 331 zwischengespeichert wird, managt der Datenmengenmanagementteil 3341 die Anzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischenzuspeichern ist. Genauer gesagt, der Datenmengenmanagementteil 3341 bestimmt anhand des vom Verarbeitungsmodul der vorhergehenden Stufe eingegebenen Datengültigkeitssignals, ob die zurzeit eingegebenen Pixeldaten gültige Pixeldaten sind, die im Eingabepuffer 331 zwischenzuspeichern sind. Das Datengültigkeitssignal ist ein Signal, das anzeigt, ob in der Zeileneinheit enthaltene Pixeldaten gültige Pixeldaten sind. Durch Zählen der einzelnen gültigen Pixeldaten bestimmt der Datenmengenmanagementteil 3341, ob alle gültigen Pixeldaten, die in der Zeileneinheit enthalten sind, die zurzeit eingegeben wird, vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben worden sind.
  • Wenn eine gültige Pixeldaten enthaltende Zeileneinheit eingegeben ist, aktualisiert zudem der Datenmengenmanagementteil 3341 Informationen, die die Anzahl der im Eingabepuffer 331 zwischengespeicherten Zeileneinheiten angeben (im Folgenden als „Informationen über die Datenmenge im Puffer” bezeichnet). Beispielsweise erhöht der Datenmengenmanagementteil 3341 jedes Mal, wenn vom Verarbeitungsmodul der vorhergehenden Stufe eine gültige Pixeldaten enthaltende Zeileneinheit eingegeben wird, die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, um 1. Der Zeitpunkt, zu dem der Datenmengenmanagementteil 3341 die Informationen über die Datenmenge im Puffer inkrementiert, ist ein Zeitpunkt, zu dem erste gültige Pixeldaten in der Zeileneinheit bestimmt werden. Denn wenn die ersten gültigen Pixeldaten einer Zeileneinheit eingegeben sind, werden danach gültige Pixeldaten, die in der Zeileneinheit enthalten sind, kontinuierlich eingegeben.
  • Außerdem zählt der Datenmengenmanagementteil 3341 die Anzahl der einzelnen aus dem Eingabepuffer 331 ausgelesenen Pixeldaten anhand eines Pufferlesesignals zum Auslesen der im Eingabepuffer 331 zwischengespeicherten Pixeldaten mittels des Eingabepuffer-Lesemanagementteils 3344 und bestimmt, ob all die Pixeldaten, die in der Zeileneinheit enthalten sind, die zurzeit auszugeben ist, aus dem Eingabepuffer 331 ausgelesen worden sind. Wenn bestimmt wird, dass all die Pixeldaten, die in der Zeileneinheit enthalten sind, ausgelesen worden sind, aktualisiert der Datenmengenmanagementteil 3341 die Informationen über die Datenmenge im Puffer. Beispielsweise verringert der Datenmengenmanagementteil 3341 jedes Mal, wenn bestimmt wird, dass eine Zeileneinheit ausgelesen worden ist, die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, um 1. Der Zeitpunkt, zu dem der Datenmengenmanagementteil 3341 die Informationen über die Datenmenge im Puffer dekrementiert, ist ein Zeitpunkt, zu dem letzte gültige Pixeldaten, die in der Zeileneinheit enthalten sind, bestimmt werden, das heißt, ein Zeitpunkt, zu dem alle Pixeldaten, die in einer Zeileneinheit enthalten sind, aus dem Eingabepuffer 331 ausgelesen worden sind. Denn Pixeldaten jeder der anderen Zeileneinheiten können erst dann im Eingabepuffer 331 zwischengespeichert werden, wenn das Auslesen aller Pixeldaten, die in einer Zeileneinheit enthalten sind, abgeschlossen ist.
  • Auf diese Weise managt der Datenmengenmanagementteil 3341 die Anzahl der im Eingabepuffer 331 zwischengespeicherten Zeileneinheiten. Des Weiteren gibt der Datenmengenmanagementteil 3341 die Informationen über die Datenmenge im Puffer an den Puffer-Umgehen-Bestimmungsteil 3342 und den Eingabepuffer-Lesemanagementteil 3344 aus.
  • Wenn bestimmt wird, dass im Ergebnis des Managements der Menge der im Eingabepuffer 331 zwischengespeicherten Daten (der Anzahl der Zeileneinheiten) im Eingabepuffer 331 freie Speicherkapazität vorhanden ist, gibt zudem der Datenmengenmanagementteil 3341 ein Datenanforderungssignal zum Anfordern einer Ausgabe von Eingabedaten an das Verarbeitungsmodul der vorhergehenden Stufe aus. Genauer gesagt, wenn der Wert, der durch Subtrahieren der Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, das heißt, der momentanen Anzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert sind, von der Maximalzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert werden können, erhalten wird, größer als „0” ist, bestimmt der Datenmengenmanagementteil 3341, dass es im Eingabepuffer 331 freie Speicherkapazität gibt, und gibt an das Verarbeitungsmodul der vorhergehenden Stufe ein Datenanforderungssignal aus, das anzeigt, dass eine Ausgabe von Eingabedaten angefordert ist. Mit anderen Worten, wenn die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, kleiner ist als die Maximalzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert werden können, gibt der Datenmengenmanagementteil 3341 das Datenanforderungssignal, das anzeigt, dass die Ausgabe der Eingabedaten angefordert ist, an das Verarbeitungsmodul der vorhergehenden Stufe aus. Außerdem, wenn der Wert, der durch Subtrahieren der Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, von der Maximalzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert werden können, erhalten wird, „0” ist, bestimmt der Datenmengenmanagementteil 3341, dass es im Eingabepuffer 331 keine freie Speicherkapazität gibt, und setzt das Datenanforderungssignal, das an das Verarbeitungsmodul der vorhergehenden Stufe auszugeben ist, auf einen Logikpegel, der anzeigt, dass keine Ausgabe von Eingabedaten angefordert ist. Zu diesem Zeitpunkt gibt der Datenmengenmanagementteil 3341 das Pipeline-Stall-Signal, das anzeigt, dass keine Ausgabe von Eingabedaten angefordert ist, an das Verarbeitungsmodul der vorhergehenden Stufe aus. Das heißt, wenn die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, gleich der Maximalzahl der Zeileneinheiten ist, die zurzeit im Eingabepuffer 331 zwischengespeichert werden können, setzt der Datenmengenmanagementteil 3341 das Datenanforderungssignal, das an das Verarbeitungsmodul der vorhergehenden Stufe auszugeben ist, auf den Logikpegel, der anzeigt, dass die Ausgabe der Eingabedaten nicht angefordert ist, und gibt an das Verarbeitungsmodul der vorhergehenden Stufe das Pipeline-Stall-Signal aus.
  • Außerdem ist gezeigt, dass beim Betrieb des vorstehend beschriebenen Datenmengenmanagementteils 3341 dann, wenn die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, kleiner ist als die Maximalzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert werden können, eine Operation zum Ausgeben des Datenanforderungssignals, das anzeigt, dass die Ausgabe der Eingabedaten angefordert ist, an das Verarbeitungsmodul der vorhergehenden Stufe erfolgt. Wenn jedoch, beispielsweise, eine Verzögerungszeit (Latenzzeit), bis die Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe entsprechend dem Datenanforderungssignal, das angibt, dass die Ausgabe der Eingabedaten angefordert ist, eingegeben werden, im Voraus bekannt ist, kann der Datenmengenmanagementteil 3341 den Zeitpunkt vorhersagen, zu dem ein Auslesen der Pixeldaten aus dem Eingabepuffer 331 abgeschlossen ist, und zu einem Zeitpunkt, bevor das Auslesen der Pixeldaten abgeschlossen ist, das Datenanforderungssignal zum Anfordern der Ausgabe der Eingabedaten ausgeben.
  • Der Puffer-Umgehen-Bestimmungsteil 3342 bestimmt ein Verfahren zum Steuern des Eingabepuffers 331 auf der Grundlage der vom Datenmengenmanagementteil 3341 eingegebenen Informationen über die Datenmenge im Puffer und des Datenanforderungssignals und des Pipeline-Stall-Signals, die vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben werden. Mit anderen Worten, der Puffer-Umgehen-Bestimmungsteil 3342 bestimmt, ob die Eingabedaten, die in das Bildverarbeitungsmodul 33 eingegeben werden, in den Eingabepuffer 331 zwischenzuspeichern (zu schreiben) sind, bestimmt, ob die im Eingabepuffer 331 zwischengespeicherten Eingabedaten (Pixeldaten) auszulesen sind, und bestimmt die Auswahl (durch Umschalten) der Eingabedaten (der Pixeldaten), die an den Arithmetikteil 333 auszugeben sind. Auf der Grundlage des Ergebnisses der Bestimmung gibt der Puffer-Umgehen-Bestimmungsteil 3342 ein Anweisungssignal aus, um jeden vom Eingabepuffer-Schreibmanagementteil 3343 und Eingabepuffer-Lesemanagementteil 3344 anzuweisen, eine Operation am Eingabepuffer 331 auszuführen (im Folgenden als „Anweisungssignal für eine Pufferoperation” bezeichnet). Außerdem gibt der Puffer-Umgehen-Bestimmungsteil 3342 ein Steuersignal zum Steuern der Auswahleinrichtung 332 (im Folgenden als Puffer-Umgehen-Signal bezeichnet) aus.
  • Genauer gesagt, wenn vom Verarbeitungsmodul der nachfolgenden Stufe das Datenanforderungssignal eingegeben wird und das Pipeline-Stall-Signal nicht eingegeben wird, bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, dass das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen. Wenn die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, ein Wert ist, der größer als „0” ist, bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, dass mindestens eine Zeileneinheit der Pixeldaten im Eingabepuffer 331 zwischengespeichert ist. In diesem Fall gibt der Puffer-Umgehen-Bestimmungsteil 3342 ein Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Schreibmanagementteil 3343 anzuweisen, die in das Bildverarbeitungsmodul 33 eingegebenen Daten zwischenzuspeichern (zu schreiben), aus. Außerdem gibt der Puffer-Umgehen-Bestimmungsteil 3342 ein Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Lesemanagementteil 3344 anzuweisen, die im Eingabepuffer 331 zwischengespeicherten Pixeldaten auszulesen, aus. Ferner gibt der Puffer-Umgehen-Bestimmungsteil 3342 an die Auswahleinrichtung 332 ein Puffer-Umgehen-Signal aus, um die Steuerung derart durchzuführen, dass die vom Eingabepuffer 331 ausgegebenen Pixeldaten an den Arithmetikteil 333 ausgegeben werden. Dadurch werden die Pixeldaten, die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, ausgelesen, nachdem sie im Eingabepuffer 331 zwischengespeichert worden sind, das heißt, die Pixeldaten werden zum Arithmetikteil 333 übertragen, nachdem sie im Eingabepuffer 331 zwischengespeichert worden sind.
  • Außerdem, wenn der Puffer-Umgehen-Bestimmungsteil 3342 bestimmt, dass das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, wird bestimmt, dass keine Pixeldaten für irgendeine Zeileneinheit im Eingabepuffer 331 zwischengespeichert sind, wenn die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, „0” ist. Das heißt, der Puffer-Umgehen-Bestimmungsteil 3342 bestimmt, dass die Pipeline-Verarbeitung problemlos ausgeführt wird, ohne dass es zu Verzögerungen des Flusses der verarbeiteten Pixeldaten kommt. In diesem Fall gibt der Puffer-Umgehen-Bestimmungsteil 3342 ein Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Schreibmanagementteil 3343 anzuweisen, den Betrieb des Eingabepuffers 331 zu stoppen, aus. Außerdem gibt der Puffer-Umgehen-Bestimmungsteil 3342 ein Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Lesemanagementteil 3344 anzuweisen, die im Eingabepuffer 331 zwischengespeicherten Pixeldaten nicht auszulesen, aus. Ferner gibt der Puffer-Umgehen-Bestimmungsteil 3342 an die Auswahleinrichtung 332 das Puffer-Umgehen-Signal aus, um die Steuerung derart durchzuführen, dass die Eingabedaten (Pixeldaten), die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, so an den Arithmetikteil 333 ausgegeben werden. Dadurch werden die Pixeldaten, die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, direkt zum Arithmetikteil 333 übertragen, ohne im Eingabepuffer 331 zwischengespeichert zu werden, d. h. der Eingabepuffer 331 wird umgangen.
  • Außerdem, wenn vom Verarbeitungsmodul der nachfolgenden Stufe kein Datenanforderungssignal eingegeben wird oder wenn vom Verarbeitungsmodul der nachfolgenden Stufe zwar das Datenanforderungssignal nicht aber das Pipeline-Stall-Signal eingegeben wird, bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, dass das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen. In diesem Fall, nämlich wenn die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, kleiner ist als die Maximalzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert werden können, bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, dass Pixeldaten für mindestens eine Zeileneinheit im Eingabepuffer 331 zwischengespeichert werden können. In diesem Fall gibt der Puffer-Umgehen-Bestimmungsteil 3342 das Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Schreibmanagementteil 3343 anzuweisen, die in das Bildverarbeitungsmodul 33 eingegebenen Eingabedaten zwischenzuspeichern (zu schreiben), aus. Dadurch werden die Pixeldaten, die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, im Eingabepuffer 331 zwischengespeichert.
  • Zu diesem Zeitpunkt gibt der Puffer-Umgehen-Bestimmungsteil 3342 das Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Lesemanagementteil 3344 anzuweisen, die im Eingabepuffer 331 zwischengespeicherten Pixeldaten nicht auszulesen, aus. Ferner gibt der Puffer-Umgehen-Bestimmungsteil 3342 an die Auswahleinrichtung 332 das Puffer-Umgehen-Signal aus, um die Steuerung derart durchzuführen, dass vom Eingabepuffer 331 ausgegebene Pixeldaten an den Arithmetikteil 333 ausgegeben werden. Dadurch werden Pixeldaten, nämlich jene Pixeldaten, die zurzeit in das Bildverarbeitungsmodul 33 eingegeben und im Eingabepuffer 331 zwischengespeichert werden (Pixeldaten, die zurzeit keiner arithmetischen Operation zur Bildverarbeitung unterzogen werden), nicht über einen Pfad unter Umgehung des Eingabepuffers 331 an den Arithmetikteil 333 ausgegeben, und es lässt sich verhindern, dass der Arithmetikteil 333 bei einer Ausführung einer unnötigen Operation Energie verbraucht.
  • Außerdem, wenn im Bildverarbeitungsmodul 33 bestimmt wird, dass das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, und wenn die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, gleich der Maximalzahl der Zeileneinheiten ist, die zurzeit im Eingabepuffer 331 zwischengespeichert werden können, gibt der Datenmengenmanagementteil 3341 das Pipeline-Stall-Signal, das anzeigt, dass die Ausgabe der Eingabedaten nicht angefordert ist, an das Verarbeitungsmodul der vorhergehenden Stufe aus. Demzufolge werden keine Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe in das Bildverarbeitungsmodul 33 eingegeben. Zu diesem Zeitpunkt weist der Puffer-Umgehen-Bestimmungsteil 3342 jeden vom Eingabepuffer-Schreibmanagementteil 3343 und Eingabepuffer-Lesemanagementteil 3344 an, am Eingabepuffer 331 keine Lese- und Schreiboperationen auszuführen. Das heißt, der Puffer-Umgehen-Bestimmungsteil 3342 erteilt eine Anweisung, derart, dass die im Eingabepuffer 331 zwischengespeicherten Pixeldaten zurückgehalten werden. Außerdem gibt zu diesem Zeitpunkt der Puffer-Umgehen-Bestimmungsteil 3342 das Puffer-Umgehen-Signal an die Auswahleinrichtung 332 aus, um die Steuerung derart durchzuführen, dass vom Eingabepuffer 331 ausgegebene Pixeldaten an den Arithmetikteil 333 ausgegeben werden. Dadurch werden keine Pixeldaten in den Arithmetikteil 333 eingegeben.
  • Entsprechend dem vom Puffer-Umgehen-Bestimmungsteil 3342 eingegebenen Anweisungssignal für eine Pufferoperation erzeugt der Eingabepuffer-Schreibmanagementteil 3343 ein Steuersignal (im Folgenden als „Pufferschreibsignal” bezeichnet) zum Ausführen einer Operation zum Schreiben von Eingabedaten in den Eingabepuffer 331 und gibt das erzeugte Steuersignal an den Eingabepuffer 331 aus. Genauer gesagt, wenn das Anweisungssignal für eine Pufferoperation eingegeben wird, um die Anweisung zu erteilen, die Eingabedaten, die in das Bildverarbeitungsmodul 33 eingegeben werden, zwischenzuspeichern (zu schreiben), erzeugt der Eingabepuffer-Schreibmanagementteil 3343 das Pufferschreibsignal zum Schreiben der Eingabedaten (Pixeldaten) in den Eingabepuffer 331, die durch das vom Verarbeitungsmodul der vorhergehenden Stufe eingegebene Datengültigkeitssignal als gültig angezeigt werden, und gibt das erzeugte Pufferschreibsignal an den Eingabepuffer 331 aus. Wenn das Anweisungssignal für eine Pufferoperation eingegeben wird, um die Anweisung zu erteilen, den Betrieb des Eingabepuffers 331 zu stoppen, gibt der Eingabepuffer-Schreibmanagementteil 3343 nicht das Pufferschreibsignal zum Schreiben von Eingabedaten in den Eingabepuffer 331 an den Eingabepuffer 331 aus. Wenn das Anweisungssignal für eine Pufferoperation zum Erteilen der Anweisung, um den Betrieb des Eingabepuffers 331 zu stoppen, eingegeben wird, kann der Eingabepuffer-Schreibmanagementteil 3343 beispielsweise ein Steuersignal zum Stoppen des Betriebs durch Versetzen des Eingabepuffers 331 in einen Ruhezustand erzeugen und das erzeugte Steuersignal an den Eingabepuffer 331 ausgeben. In 5 ist nur das Pufferschreibsignal gezeigt, und die Darstellung des Steuersignals zum Stoppen des Betriebs des Eingabepuffers 331, beispielsweise eines Ruhesignals, wurde weggelassen.
  • Entsprechend dem vom Puffer-Umgehen-Bestimmungsteil 3342 eingegebenen Anweisungssignal für eine Pufferoperation erzeugt der Eingabepuffer-Lesemanagementteil 3344 ein Steuersignal (im Folgenden als „Pufferlesesignal” bezeichnet) zum Ausführen einer Operation zum Auslesen von Pixeldaten aus dem Eingabepuffer 331 und gibt das erzeugte Steuersignal an den Eingabepuffer 331 aus. Genauer gesagt, wenn das Anweisungssignal für eine Pufferoperation eingegeben wird, um die Anweisung zu erteilen, die im Eingabepuffer 331 zwischengespeicherten Pixeldaten auszulesen, erzeugt der Eingabepuffer-Lesemanagementteil 3344 das Pufferlesesignal zum Ausführen eines sequenziellen Auslesens aus der zum frühesten Zeitpunkt zwischengespeicherten Zeileneinheit von den im Eingabepuffer 331 zwischengespeicherten Zeileneinheiten und gibt das erzeugte Pufferlesesignal an den Eingabepuffer 331 aus. Außerdem, wenn das Anweisungssignal für eine Pufferoperation eingegeben wird, um die Anweisung zu erteilen, die im Eingabepuffer 331 zwischengespeicherten Pixeldaten nicht auszulesen, gibt der Eingabepuffer-Lesemanagementteil 3344 kein Pufferlesesignal zum Ausführen eines Auslesens von Pixeldaten aus irgendeiner der im Eingabepuffer 331 zwischengespeicherten Zeileneinheiten an den Eingabepuffer 331 aus.
  • Hier wird jeder Bestimmungsvorgang beschrieben, der vom Puffer-Umgehen-Bestimmungsteil 3342 auszuführen ist. 6 ist ein Ablaufplan, der eine Verarbeitungsprozedur des Bildverarbeitungsmoduls 33 im Bildverarbeitungsteil 30 zeigt, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 6 ist eine Bestimmungsverarbeitungsprozedur des Steuerungsverfahrens für den Eingabepuffer 331 im Puffer-Umgehen-Bestimmungsteil 3342, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist, gezeigt.
  • Wenn der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, bestimmt der Puffer-Umgehen-Bestimmungsteil 3342 zunächst, ob vom Verarbeitungsmodul der nachfolgenden Stufe ein Datenanforderungssignal eingegeben worden ist, d. h. ob das Verarbeitungsmodul der nachfolgenden Stufe die Ausgabe der verarbeiteten Pixeldaten angefordert hat (Schritt S100). Wenn im Schritt S100 bestimmt wird, dass kein Datenanforderungssignal eingegeben worden ist, das heißt, wenn bestimmt wird, dass das Verarbeitungsmodul der nachfolgenden Stufe nicht die Ausgabe der verarbeiteten Pixeldaten angefordert hat („NEIN” im Schritt S100), fährt der Puffer-Umgehen-Bestimmungsteil 3342 mit dem Schritt S105 fort.
  • Wenn hingegen im Schritt S100 bestimmt wird, dass das Datenanforderungssignal eingegeben worden ist, das heißt, wenn bestimmt wird, dass das Verarbeitungsmodul der nachfolgenden Stufe die Ausgabe der verarbeiteten Pixeldaten angefordert hat („JA” im Schritt S100), bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, ob die Pipeline-Verarbeitung des Verarbeitungsmoduls der nachfolgenden Stufe (vorübergehend) gestoppt ist und der Zustand ein Pipeline-Stall-Zustand ist, in dem es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen (Schritt S101). Die Bestimmung im Schritt S101 kann in Abhängigkeit davon erfolgen, ob vom Verarbeitungsmodul der nachfolgenden Stufe das Pipeline-Stall-Signal eingegeben worden ist.
  • Wenn im Schritt S101 bestimmt wird, dass das Verarbeitungsmodul der nachfolgenden Stufe nicht im Pipeline-Stall-Zustand ist („NEIN” im Schritt S101), bestimmt im Schritt S102 der Puffer-Umgehen-Bestimmungsteil 3342, ob die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, die vom Datenmengenmanagementteil 3341 eingegeben werden, „0” ist.
  • Wenn im Schritt S102 die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, nicht „0” ist, das heißt, wenn die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, ein Wert ist, der größer als „0” ist („NEIN” im Schritt S102), bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, dass die Pixeldaten für mindestens eine Zeileneinheit im Eingabepuffer 331 zwischengespeichert sind. Dann steuert der Puffer-Umgehen-Bestimmungsteil 3342 jeden/jede von dem Eingabepuffer-Schreibmanagementteil 3343, dem Eingabepuffer-Lesemanagementteil 3344 und der Auswahleinrichtung 332 derart, dass die Pixeldaten, die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, ausgelesen werden, nachdem sie im Eingabepuffer 331 zwischengespeichert worden sind, und zum Arithmetikteil 333 übertragen werden (Schritt S103). Genauer gesagt, der Puffer-Umgehen-Bestimmungsteil 3342 gibt das Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Schreibmanagementteil 3343 anzuweisen, die in das Bildverarbeitungsmodul 33 eingegebenen Eingabedaten zwischenzuspeichern (zu schreiben), aus und gibt das Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Lesemanagementteil 3344 anzuweisen, die im Eingabepuffer 331 zwischengespeicherten Pixeldaten auszulesen, aus. Außerdem gibt der Puffer-Umgehen-Bestimmungsteil 3342 an die Auswahleinrichtung 332 das Puffer-Umgehen-Signal aus, um die Steuerung derart durchzuführen, dass die vom Eingabepuffer 331 ausgegebenen Pixeldaten an den Arithmetikteil 333 ausgegeben werden.
  • Wenn hingegen im Schritt S102 die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, „0” ist („JA” im Schritt S102), bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, dass im Eingabepuffer 331 keinerlei Daten für Zeileneinheiten zwischengespeichert sind, das heißt, dass die Speicherkapazität des Eingabepuffers 331 völlig frei ist. Dies ist ein Zustand, in dem der Fluss der Pixeldaten nicht verzögert ist und die Pipeline-Verarbeitung problemlos ausgeführt wird. Folglich steuert der Puffer-Umgehen-Bestimmungsteil 3342 jeden/jede von dem Eingabepuffer-Schreibmanagementteil 3343, dem Eingabepuffer-Lesemanagementteil 3344 und der Auswahleinrichtung 332 derart, dass die Pixeldaten, die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, direkt zum Arithmetikteil 333 gesendet werden (Schritt S104). Das heißt, der Puffer-Umgehen-Bestimmungsteil 3342 führt die Steuerung derart durch, dass die Pixeldaten, die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden. Genauer gesagt, der Puffer-Umgehen-Bestimmungsteil 3342 gibt das Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Schreibmanagementteil 3343 anzuweisen, den Betrieb des Eingabepuffers 331 zu stoppen, aus und gibt das Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Lesemanagementteil 3344 anzuweisen, kein Lesen des Eingabepuffers 331 auszuführen, aus. Außerdem gibt der Puffer-Umgehen-Bestimmungsteil 3342 an die Auswahleinrichtung 332 ein Puffer-Umgehen-Signal aus, um die Steuerung so durchzuführen, dass die Eingabedaten (Pixeldaten), die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, so an den Arithmetikteil 333 ausgegeben werden.
  • Wenn hingegen im Schritt S101 bestimmt wird, dass das Verarbeitungsmodul der nachfolgenden Stufe im Pipeline-Stall-Zustand ist („JA” im Schritt S101), oder wenn im Schritt S100 bestimmt wird, dass das Verarbeitungsmodul der nachfolgenden Stufe keine Ausgabe der verarbeiteten Pixeldaten anfordert („NEIN” im Schritt S100), fährt der Puffer-Umgehen-Bestimmungsteil 3342 mit dem Schritt S105 fort. Im Schritt S105 bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, ob die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, die vom Datenmengenmanagementteil 3341 eingegeben werden, kleiner ist als die Maximalzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert werden können.
  • Wenn im Schritt S105 die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, kleiner ist als die Maximalzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert werden können („JA” im Schritt S105), bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, dass es möglich ist, Pixeldaten für mindestens eine Zeileneinheit im Eingabepuffer 331 zwischenzuspeichern. Dann steuert der Puffer-Umgehen-Bestimmungsteil 3342 jeden/jede von dem Eingabepuffer-Schreibmanagementteil 3343, dem Eingabepuffer-Lesemanagementteil 3344 und der Auswahleinrichtung 332 derart, dass die Pixeldaten, die zurzeit in das Bildverarbeitungsmodul 33 eingegeben werden, im Eingabepuffer 331 zwischengespeichert werden (Schritt S106). Genauer gesagt, der Puffer-Umgehen-Bestimmungsteil 3342 gibt das Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Schreibmanagementteil 3343 anzuweisen, die in das Bildverarbeitungsmodul 33 eingegebenen Eingabedaten zwischenzuspeichern (zu schreiben), aus und gibt das Anweisungssignal für eine Pufferoperation, um den Eingabepuffer-Lesemanagementteil 3344 anzuweisen, die im Eingabepuffer 331 zwischengespeicherten Pixeldaten auszulesen, aus. Außerdem gibt der Puffer-Umgehen-Bestimmungsteil 3342 an die Auswahleinrichtung 332 das Puffer-Umgehen-Signal aus, um die Steuerung derart durchzuführen, dass die vom Eingabepuffer 331 ausgegebenen Pixeldaten an den Arithmetikteil 333 ausgegeben werden.
  • Wenn hingegen im Schritt S105 bestimmt wird, dass die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, nicht kleiner ist als die Maximalzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert werden können, das heißt, wenn die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, gleich der Maximalzahl der Zeileneinheiten ist, die derzeit im Eingabepuffer 331 zwischengespeichert werden können („NEIN” im Schritt S105), bestimmt der Puffer-Umgehen-Bestimmungsteil 3342, dass es nicht möglich ist, Eingabedaten (Pixeldaten) im Eingabepuffer 331 zwischenzuspeichern. Dann führt der Puffer-Umgehen-Bestimmungsteil 3342 die Steuerung derart durch, dass keiner/keine von dem Eingabepuffer-Schreibmanagementteil 3343, dem Eingabepuffer-Lesemanagementteil 3344 und der Auswahleinrichtung 332 arbeitet, d. h. dass die im Eingabepuffer 331 zwischengespeicherten Pixeldaten zurückgehalten werden (Schritt S107). Zu diesem Zeitpunkt gibt im Bildverarbeitungsmodul 33 der Datenmengenmanagementteil 3341 das Datenanforderungssignal oder das Pipeline-Stall-Signal, das anzeigt, dass die Ausgabe der Eingabedaten nicht angefordert ist, an das Verarbeitungsmodul der vorhergehenden Stufe aus.
  • Entsprechend einer solchen Verarbeitung bestimmt der Puffer-Umgehen-Bestimmungsteil 3342 ein Verfahren zum Steuern des Eingabepuffers 331, und steuert den Eingabepuffer-Schreibmanagementteil 3343, den Eingabepuffer-Lesemanagementteil 3344 und die Auswahleinrichtung 332 auf der Grundlage des Ergebnisses der Bestimmung. Die Bestimmung des Verfahrens zum Steuern des Eingabepuffers 331 im Puffer-Umgehen-Bestimmungsteil 3342 wird wiederholt, bis die Pipeline-Verarbeitung im Bildverarbeitungsteil 30 abgeschlossen ist.
  • Entsprechend einer solchen Ausgestaltung und Verarbeitung fordert der Steuerteil 334, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist, auf der Grundlage des Zustandes freier Speicherkapazität im Eingabepuffer 331 vom Verarbeitungsmodul der vorhergehenden Stufe, die Bereitstellung von Eingabedaten (Pixeldaten) an. Außerdem führt der Steuerteil 334 auf der Grundlage des Zustandes freier Speicherkapazität im Eingabepuffer 331 und des Betriebszustandes des Verarbeitungsmoduls der nachfolgenden Stufe ein Schreiben der vom Verarbeitungsmodul der vorhergehenden Stufe in das Bildverarbeitungsmodul 33 eingegebenen Daten (Pixeldaten) in den Eingabepuffer 331, ein Auslesen der im Eingabepuffer 331 zwischengespeicherten Pixeldaten und eine Auswahl (durch Umschalten) der Pixeldaten, an denen der Arithmetikteil 333 eine arithmetische Operation zur Bildverarbeitung ausführt, aus. Dadurch gibt der Arithmetikteil 333 die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den eingegebenen Pixeldaten erzeugt sind, an das Verarbeitungsmodul der nachfolgenden Stufe aus. Außerdem ist in 5 eine Ausgestaltung dargestellt, bei der der Arithmetikteil 333 ein Datengültigkeitssignal erzeugt, das anzeigt, ob die verarbeiteten Pixeldaten, die in der Zeileneinheit enthalten sind, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung erzeugt ist, gültige Pixeldaten sind, und das erzeugte Datengültigkeitssignal an das Verarbeitungsmodul der nachfolgenden Stufe ausgibt.
  • Als Nächstes wird ein Betrieb des in 5 gezeigten Bildverarbeitungsmoduls 33 der ersten Ausgestaltung beschrieben. 7 ist ein Zeitdiagramm, das ein Beispiel für einen Betrieb des Bildverarbeitungsmoduls 33 im Bildverarbeitungsteil 30 zeigt, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 7 ist ein Beispiel für die Übermittlung von Pixeldaten im Bildverarbeitungsmodul 33 der in 5 gezeigten ersten Ausgestaltung gezeigt.
  • In 7 sind das Datenanforderungssignal und das Pipeline-Stall-Signal, die vom Verarbeitungsmodul der nachfolgenden Stufe in das Bildverarbeitungsmodul 33 eingegeben werden, und die Ausgabedaten, die vom Bildverarbeitungsmodul 33 an das Verarbeitungsmodul der nachfolgenden Stufe ausgegeben werden, gezeigt. Außerdem sind in 7 das Datenanforderungssignal, das Pipeline-Stall-Signal und das Datengültigkeitssignal, die vom Bildverarbeitungsmodul 33 an das Verarbeitungsmodul der vorhergehenden Stufe ausgegeben werden, sowie das Datengültigkeitssignal, das vom Verarbeitungsmodul der vorhergehenden Stufe in das Bildverarbeitungsmodul 33 eingegeben wird, gezeigt. Ferner sind in 7 das Puffer-Umgehen-Signal, das vom im Bildverarbeitungsmodul 33 bereitgestellten Steuerteil 334 an die Auswahleinrichtung 332 ausgegeben wird, das Pufferschreibsignal, das vom Eingabepuffer-Schreibmanagementteil 3343 im Steuerteil 334, der im Bildverarbeitungsmodul 33 bereitgestellt ist, an den Eingabepuffer 331 ausgegeben wird, und das Pufferlesesignal, das vom Eingabepuffer-Lesemanagementteil 3344 im Steuerteil 334, der im Bildverarbeitungsmodul 33 bereitgestellt ist, an den Eingabepuffer 331 gezeigt. Ferner sind in 7 die Informationen über die Datenmenge im Puffer, nämlich ein Signal in dem im Bildverarbeitungsmodul 33 bereitgestellten Steuerteil 334, und die Pixeldaten, die in den im Bildverarbeitungsmodul 33 bereitgestellten Arithmetikteil 333 eingegeben werden, gezeigt.
  • Bei der Beschreibung von 7 ist davon ausgegangen worden, dass die Bildverarbeitung unter Verwendung einer Zeileneinheit als eine Verarbeitungseinheit ausgeführt wird. Außerdem wird davon ausgegangen, dass der Eingabepuffer 331, der im Bildverarbeitungsmodul 33 bereitgestellt ist, eine Speicherkapazität aufweist, die zum Speichern von Pixeldaten für zwei Zeileneinheiten imstande ist.
  • Wenn der Bildverarbeitungsteil 30 zum Zeitpunkt t1 mit der Pipeline-Verarbeitung beginnt, gibt jedes im Bildverarbeitungsteil 30 bereitgestellte Verarbeitungsmodul das Datenanforderungssignal zum Anfordern einer Ausgabe von Eingabedaten an das Verarbeitungsmodul der vorhergehenden Stufe aus. Im Bildverarbeitungsmodul 33 gibt der Datenmengenmanagementteil 3341 das Datenanforderungssignal an das Verarbeitungsmodul der vorhergehenden Stufe aus. Außerdem wird in das Bildverarbeitungsmodul 33 das Datenanforderungssignal vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben.
  • Außerdem kann dadurch, dass das Bildverarbeitungsmodul 33 in einem Zustand ist, in dem in einem ersten Schritt sofort eine Bildverarbeitung an eingegebenen Pixeldaten ausgeführt werden kann, wobei der Bildverarbeitungsteil 30 wie vorstehend beschrieben mit der Pipeline-Verarbeitung beginnt, der Steuerteil 334 die Steuerung derart durchführen, dass die Pixeldaten den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden. Bei der folgenden Beschreibung wird jedoch zur Vereinfachung der Beschreibung einer Änderung bei den Informationen über die Datenmenge im Puffer bei dem ersten Schritt, in dem der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, vorausgesetzt, dass der Steuerteil 334 die Steuerung derart durchführt, dass Pixeldaten, die in das Bildverarbeitungsmodul 33 eingegeben werden, ausgelesen werden, nachdem sie im Eingabepuffer 331 zwischengespeichert worden sind, und an den Arithmetikteil 333 übertragen werden.
  • Im Bildverarbeitungsmodul 33 werden entsprechend dem zum Zeitpunkt t1 ausgegebenen Datenanforderungssignal die Eingabedaten und das Datengültigkeitssignal vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben. Der Datenmengenmanagementteil 3341 aktualisiert anhand des eingegebenen Datengültigkeitssignals die Informationen über die Datenmenge im Puffer. Genauer gesagt, wenn zum Zeitpunkt t2 bestimmt wird, dass im Einklang mit dem hohen Pegel („High”) des Datengültigkeitssignals eine gültige Pixeldaten enthaltende Zeileneinheit eingegeben worden ist, addiert der Datenmengenmanagementteil 3341 „1” zu der Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird. Dadurch sind die Informationen über die Datenmenge im Puffer = „1”.
  • Außerdem, im Einklang mit dem hohen Pegel („High”) des Datenanforderungssignals, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, und dem hohen Pegel („High”) des Pipeline-Stall-Signals, erteilt der Puffer-Umgehen-Bestimmungsteil 3342 eine Anweisung, derart, dass die Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, im Eingabepuffer 331 zwischengespeichert und nachdem zum Arithmetikteil 333 übertragen werden. Dadurch gibt der Eingabepuffer-Schreibmanagementteil 3343 zum Zeitpunkt t2 das Pufferschreibsignal an den Eingabepuffer 331 aus. Außerdem ist das Pufferschreibsignal ein Signal, das eine Vielzahl von Taktsignalen umfasst, um die Pixeldaten jeder der Zeileneinheiten, die zurzeit eingegeben werden, in den Eingabepuffer 331 zwischenzuspeichern (zu schreiben), und ist in 7 als Signal mit hohem Pegel („High”) gezeigt. Außerdem gibt zum Zeitpunkt t2 der Puffer-Umgehen-Bestimmungsteil 3342 ein Puffer-Umgehen-Signal niedrigen Pegels („Low”) aus, um die Auswahleinrichtung 332 derart zu steuern, dass die vom Eingabepuffer 331 ausgegebenen Pixeldaten an den Arithmetikteil 333 ausgegeben werden.
  • Wenn die zurzeit eingegebene Zeileneinheit im Eingabepuffer 331 zwischengespeichert wird, gibt danach, zum Zeitpunkt t3, der Eingabepuffer-Lesemanagementteil 3344 das Pufferlesesignal an den Eingabepuffer 331 aus. Das Pufferlesesignal ist ebenfalls ein Signal, das eine Vielzahl von Taktsignalen umfasst, um die Pixeldaten jeder der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert sind, auszulesen, und ist in 7 wie das Pufferschreibsignal als Signal mit hohem Pegel („High”) gezeigt. Dadurch werden im Arithmetikteil 333 die Pixeldaten, die aus dem Eingabepuffer 331 ausgelesen werden, via die Auswahleinrichtung 332 sequenziell eingegeben. Dann führt der Arithmetikteil 333 eine arithmetische Operation zur Bildverarbeitung an den eingegebenen Pixeldaten aus und gibt die verarbeiteten Pixeldaten, verzögert um die Latenzzeit im Arithmetikteil 333, als Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe aus. Zu diesem Zeitpunkt gibt der Arithmetikteil 333 außerdem Datengültigkeitssignal, das anzeigt, dass in den Ausgabedaten gültige Pixeldaten enthalten ist, an das Verarbeitungsmodul der nachfolgenden Stufe aus.
  • Wenn danach bestimmt wird, dass die nächste Zeileneinheit, die gültige Pixeldaten enthält, eingegeben worden ist, aktualisiert der Datenmengenmanagementteil 3341 zum Zeitpunkt t4 die Informationen über die Datenmenge im Puffer. Dadurch sind die Informationen über die Datenmenge im Puffer = „2”.
  • Außerdem, wenn bestimmt wird, dass all die Pixeldaten, die in der zurzeit gelesenen Zeileneinheit enthalten sind, aus dem Eingabepuffer 331 ausgelesen worden sind, aktualisiert der Datenmengenmanagementteil 3341 zum Zeitpunkt t5 die Informationen über die Datenmenge im Puffer. Genauer gesagt, der Datenmengenmanagementteil 3341 subtrahiert „1” von der Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird. Dadurch sind die Informationen über die Datenmenge im Puffer = „1”.
  • Danach werden auf die gleiche Weise ein Zwischenspeichern (Schreiben) der Pixeldaten jeder der Zeileneinheiten, die zurzeit eingegeben werden, mittels des Eingabepuffer-Schreibmanagementteils 3343 in den Eingabepuffer 331, ein Auslesen der Pixeldaten jeder der Zeileneinheiten, die zurzeit mittels des Eingabepuffer-Lesemanagementteils 3344 aus dem Eingabepuffer 331 ausgelesen werden, und ein Aktualisieren der Informationen über die Datenmenge im Puffer durch den Datenmengenmanagementteil 3341 wiederholt. Dadurch gibt der Arithmetikteil 333 die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den Pixeldaten, die nach einer Zwischenspeicherung im Eingabepuffer 331 übertragen wurden, erzeugt worden sind, und das Datengültigkeitssignal an das Verarbeitungsmodul der nachfolgenden Stufe aus.
  • Danach, wenn das Auslesen der Pixeldaten jeder der sämtlichen Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert sind, mittels des Eingabepuffer-Lesemanagementteils 3344 abgeschlossen ist, zum Zeitpunkt t6, sind die durch den Datenmengenmanagementteil 3341 aktualisierten Informationen über die Datenmenge im Puffer „0”. Dadurch führt der Puffer-Umgehen-Bestimmungsteil 3342 die Steuerung derart durch, dass die vom Verarbeitungsmodul der vorhergehenden Stufe eingegebenen Eingabedaten als Pixeldaten so an den Arithmetikteil 333 ausgegeben werden, und setzt das Puffer-Umgehen-Signal auf den hohen Pegel („High”) – im Einklang mit dem hohen Pegel („High”) des Datenanforderungssignals, dem hohen Pegel („High”) des Pipeline-Stall-Signals und den Informationen über die Datenmenge im Puffer = „0”, die vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben werden.
  • Dadurch werden, wenn zum darauffolgenden Zeitpunkt t7 vom Verarbeitungsmodul der vorhergehenden Stufe eine gültige Pixeldaten enthaltende Zeileneinheit eingegeben wird, die Pixeldaten so via die Auswahleinrichtung 332 sequenziell in den Arithmetikteil 333 eingegeben. Des Weiteren gibt der Arithmetikteil 333 die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den eingegebenen Pixeldaten erzeugt sind, und das Datengültigkeitssignal an das Verarbeitungsmodul der nachfolgenden Stufe aus.
  • Danach werden auf die gleiche Weise die Pixeldaten jeder der Zeileneinheiten, die zurzeit vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, direkt in den Arithmetikteil 333 eingegeben, und der Arithmetikteil 333 wiederholt eine Ausgabe der verarbeiteten Pixeldaten und des Datengültigkeitssignal an das Verarbeitungsmodul der nachfolgenden Stufen.
  • Danach, zum Zeitpunkt t8, wenn das vom Verarbeitungsmodul der nachfolgenden Stufe eingegebene Pipeline-Stall-Signal auf den niedrigen Pegel („Low”) gesetzt wird, um anzuzeigen, dass es wegen des Stall-Zustandes der Pipeline nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, setzt der Puffer-Umgehen-Bestimmungsteil 3342 das Puffer-Umgehen-Signal auf den niedrigen Pegel („Low”), nachdem die Übertragung der Pixeldaten jeder der Zeileneinheiten, die zurzeit vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, zum Arithmetikteil 333 abgeschlossen worden ist. Außerdem führt der Puffer-Umgehen-Bestimmungsteil 3342 die Steuerung derart durch, dass – im Einklang mit dem hohen Pegel („High”) des Datenanforderungssignals, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, und dem niedrigen Pegel („Low”) des Pipeline-Stall-Signals – vom Verarbeitungsmodul der vorhergehenden Stufe eingegebene Eingabedaten im Eingabepuffer 331 zwischengespeichert werden.
  • Dadurch werden die Eingabedaten, die zum Zeitpunkt t9 vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, entsprechend dem Pufferschreibsignal, das vom Eingabepuffer-Schreibmanagementteil 3343 an den Eingabepuffer 331 ausgegeben wird, im Eingabepuffer 331 zwischengespeichert. Zu diesem Zeitpunkt aktualisiert der Datenmengenmanagementteil 3341 die Informationen über die Datenmenge im Puffer. Dadurch sind die Informationen über die Datenmenge im Puffer = „1”.
  • Danach, zum Zeitpunkt t10, wird das vom Verarbeitungsmodul der nachfolgenden Stufe eingegebene Pipeline-Stall-Signal auf den hohen Pegel („High”) gesetzt, um anzuzeigen, dass es möglich ist, die verarbeiteten Pixeldaten zu empfangen, denn der Pipeline-Stall-Zustand ist aufgehoben. Im Einklang mit den hohen Pegeln („High”) des Datenanforderungssignals und des Pipeline-Stall-Signals, die vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben werden, und den Informationen über die Datenmenge im Puffer = „1”, erteilt dann der Puffer-Umgehen-Bestimmungsteil 3342 eine Anweisung, sodass Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, im Eingabepuffer 331 zwischengespeichert und zum Arithmetikteil 333 übertragen werden. Dadurch gibt der Eingabepuffer-Lesemanagementteil 3344, nachdem ein Zwischenspeichern (Schreiben) von Pixeldaten jeder der Zeileneinheiten, die zurzeit vom Verarbeitungsmodul der vorhergehenden Stufe in den Eingabepuffer 331 eingegeben werden, abgeschlossen worden ist, zum Zeitpunkt t11 das Pufferlesesignal an den Eingabepuffer 331 aus. Dann werden die aus dem Eingabepuffer 331 ausgelesenen Pixeldaten sequenziell in den Arithmetikteil 333 eingegeben. Der Arithmetikteil 333 verzögert die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den eingegebenen Pixeldaten erzeugt sind, und das Datengültigkeitssignal um die Latenzzeit im Arithmetikteil 333 und gibt sie an das Verarbeitungsmodul der nachfolgenden Stufe aus.
  • In 7 wird das Pufferlesesignal zum Zeitpunkt t11 ausgegeben, nachdem das Zwischenspeichern (Schreiben) der Pixeldaten jeder der zurzeit eingegebenen Zeileneinheiten in den Eingabepuffer 331 abgeschlossen worden ist. Denn wenn der Puffer-Umgehen-Bestimmungsteil 3342 eine Anweisung erteilt, damit die Eingabedaten, die eingegeben worden sind, im Eingabepuffer 331 zwischengespeichert und zum Arithmetikteil 333 übertragen werden, sind für noch keine Zeileneinheit Pixeldaten im Eingabepuffer 331 zwischengespeichert. Dementsprechend kann dann, falls die Pixeldaten für eine oder mehrere Zeileneinheiten bereits im Eingabepuffer 331 zwischengespeichert sind, wenn der Puffer-Umgehen-Bestimmungsteil 3342 die Anweisung erteilt, der Eingabepuffer-Lesemanagementteil 3344 das Pufferlesesignal an den Eingabepuffer 331 ausgeben, ohne den Abschluss des Zwischenspeicherns (Schreibens) der Pixeldaten jeder der zurzeit eingegebenen Zeileneinheiten in den Eingabepuffer 331 abzuwarten.
  • Danach werden auf die gleiche Weise ein Zwischenspeichern (Schreiben) der Pixeldaten jeder der Zeileneinheiten, die zurzeit eingegeben werden, mittels des Eingabepuffer-Schreibmanagementteils 3343 in den Eingabepuffer 331, ein Auslesen der Pixeldaten jeder der Zeileneinheiten, die zurzeit mittels des Eingabepuffer-Lesemanagementteils 3344 aus dem Eingabepuffer 331 ausgelesen werden, und ein Aktualisieren der Informationen über die Datenmenge im Puffer durch den Datenmengenmanagementteil 3341 wiederholt. Dadurch gibt der Arithmetikteil 333 die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den Pixeldaten, die nach einer Zwischenspeicherung im Eingabepuffer 331 übertragen wurden, erzeugt worden sind, und das Datengültigkeitssignal an das Verarbeitungsmodul der nachfolgenden Stufe aus.
  • Wenn danach, zum Zeitpunkt t12, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegebene Pipeline-Stall-Signal auf den niedrigen Pegel („Low”) gesetzt ist, setzt der Eingabepuffer-Schreibmanagementteil 3343 nur das Zwischenspeichern (Schreiben) der Pixeldaten jeder der eingegebenen Zeileneinheiten in den Eingabepuffer 331 fort. Dann, zum Zeitpunkt t13, nachdem die Informationen über die Datenmenge im Puffer = ”2” geworden sind, setzt der Datenmengenmanagementteil 3341 das Pipeline-Stall-Signal, das an das Verarbeitungsmodul der vorhergehenden Stufe auszugeben ist, auf den niedrigen Pegel („Low”), um anzuzeigen, dass es wegen des Stall-Zustandes der Pipeline nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen. Dadurch wird nach Abschluss der Eingabe der Pixeldaten jeder der aktiven Zeileneinheiten die Ausgabe der Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe zeitweilig gestoppt.
  • Danach, zum Zeitpunkt t14, wenn das vom Verarbeitungsmodul der nachfolgenden Stufe eingegebene Pipeline-Stall-Signal auf den hohen Pegel („High”) gesetzt wird und zwar im Einklang mit den hohen Pegeln („High”) des Datenanforderungssignals und des Pipeline-Stall-Signals, die vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben werden, und den Informationen über die Datenmenge im Puffer = „2”, erteilt der Puffer-Umgehen-Bestimmungsteil 3342 eine Anweisung, derart, dass die Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, im Eingabepuffer 331 zwischengespeichert und nachdem zum Arithmetikteil 333 übertragen werden. Dadurch gibt der Eingabepuffer-Lesemanagementteil 3344 das Pufferlesesignal an den Eingabepuffer 331 aus, und der Arithmetikteil 333 verzögert die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den aus dem Eingabepuffer 331 ausgelesenen Pixeldaten erzeugt sind, und das Datengültigkeitssignal um die Latenzzeit im Arithmetikteil 333 und gibt sie an das Verarbeitungsmodul der nachfolgenden Stufe aus.
  • Außerdem sind, wenn das Auslesen aller Pixeldaten der Zeileneinheit, die zurzeit mittels des Eingabepuffer-Lesemanagementteils 3344 ausgelesen werden, abgeschlossen ist, zum Zeitpunkt t15, die durch den Datenmengenmanagementteil 3341 aktualisierten Informationen über die Datenmenge im Puffer „1”. Dadurch setzt der Datenmengenmanagementteil 3341 das Pipeline-Stall-Signal, das an das Verarbeitungsmodul der vorhergehenden Stufe auszugeben ist, auf den hohen Pegel („High”), der anzeigt, dass es möglich ist, die verarbeiteten Pixeldaten zu empfangen, denn der Pipeline-Stall-Zustand ist aufgehoben. Dadurch nimmt das Verarbeitungsmodul der vorhergehenden Stufe entsprechend dem Datenanforderungssignal zum Zeitpunkt t16 die Ausgabe der Eingabedaten und des Datengültigkeitssignals wieder auf.
  • Danach werden auf die gleiche Weise ein Zwischenspeichern (Schreiben) der Pixeldaten jeder der Zeileneinheiten, die zurzeit eingegeben werden, mittels des Eingabepuffer-Schreibmanagementteils 3343 in den Eingabepuffer 331, ein Auslesen der Pixeldaten jeder der Zeileneinheiten, die zurzeit mittels des Eingabepuffer-Lesemanagementteils 3344 aus dem Eingabepuffer 331 ausgelesen werden, und ein Aktualisieren der Informationen über die Datenmenge im Puffer durch den Datenmengenmanagementteil 3341 wiederholt. Danach wiederholt der Arithmetikteil 333 die Ausgabe der verarbeiteten Pixeldaten und des Datengültigkeitssignals, die den vom Eingabepuffer 331 eingegebenen Pixeldaten entsprechen, an das Verarbeitungsmodul der nachfolgenden Stufe.
  • Danach, zum Zeitpunkt t17, schließt das Bildverarbeitungsmodul 33 die Verarbeitung ab, wenn die Ausgaben der verarbeiteten Pixeldaten und der Datengültigkeitssignale, die all den Zeileneinheiten entsprechend, an das Verarbeitungsmodul der nachfolgenden Stufe abgeschlossen sind. Wenn die Verarbeitung durch jedes im Bildverarbeitungsteil 30 bereitgestellte Verarbeitungsmodul abgeschlossen ist, schließt der Bildverarbeitungsteil 30 die Pipeline-Verarbeitung ab.
  • Gemäß der ersten Ausgestaltung der ersten Ausführungsform wird eine Bildverarbeitungsvorrichtung (die Bildverarbeitungsvorrichtung 1) mit einem Speicher (dem DRAM 20) und einem Bildverarbeitungsteil (dem Bildverarbeitungsteil 30) bereitgestellt, wobei das DRAM 20 und der Bildverarbeitungsteil 30 an einen Datenbus (den DMA-Bus 10) angeschlossen sind, wobei der Bildverarbeitungsteil 30 eine Pipeline umfasst, bei der mehrere Verarbeitungsmodule (die Bildverarbeitungsmodule 33-1 bis 33-3) in Reihe geschaltet sind, wobei jedes der Verarbeitungsmodule (der Bildverarbeitungsmodule 33) dafür eingerichtet ist, einen vorgegebenen Prozess an Eingabedaten (den Pixeldaten oder den verarbeiteten Pixeldaten) auszuführen, und der Bildverarbeitungsteil 30 eine Pipeline-Verarbeitung ausführt, indem die Bildverarbeitungsmodule 33 den Prozess sequenziell ausführen, wobei jedes der Bildverarbeitungsmodule 33 umfasst: einen Datenpuffer (den Eingabepuffer 331), der dafür eingerichtet ist, die Pixeldaten oder die verarbeiteten Pixeldaten in Verarbeitungseinheiten zwischenzuspeichern; und einen Steuerteil (den Steuerteil 334), der dafür eingerichtet ist, anhand des Zustandes des Flusses der verarbeiteten Pixeldaten bei der Pipeline-Verarbeitung und des Zustandes der im Eingabepuffer 331 gespeicherten Pixeldaten oder verarbeiteten Pixeldaten zu bestimmen, ob die Pixeldaten oder die verarbeiteten Pixeldaten in den Eingabepuffer 331 zu speichern sind, und auf der Grundlage des Ergebnisses der Bestimmung einen Pfad innerhalb des Bildverarbeitungsmoduls 33 auszuwählen, über den die Pixeldaten oder die verarbeiteten Pixeldaten (zum Arithmetiktel 333) übertragen werden, und eine Operation des Eingabepuffers 331 zu steuern.
  • Außerdem handelt es sich gemäß der ersten Ausgestaltung der ersten Ausführungsform um die Bildverarbeitungsvorrichtung 1, die derart eingerichtet ist, dass der Steuerteil 334 einen Pfad zum Auslesen und Übertragen der Pixeldaten oder der verarbeiteten Pixeldaten (an den Arithmetikteil 333), nachdem die Pixeldaten oder die verarbeiteten Pixeldaten im Eingabepuffer 331 zwischengespeichert worden sind, auswählt und, wenn die Pixeldaten oder die verarbeiteten Pixeldaten weiterhin im Eingabepuffer 331 gespeichert sein können, den Eingabepuffer 331 in einem Zustand betreibt, in dem die Pixeldaten oder die verarbeiteten Pixeldaten in der Speicherkapazität des Eingabepuffers 331 gespeichert sind, der Steuerteil 334 einen Pfad zum Auslesen und übertragen der Pixeldaten oder der verarbeiteten Pixeldaten (an den Arithmetikteil 333), nachdem die Pixeldaten oder die verarbeiteten Pixeldaten im Eingabepuffer 331 zwischengespeichert worden sind, auswählt und, wenn die Pixeldaten oder die verarbeiteten Pixeldaten nicht weiterhin im Eingabepuffer 331 gespeichert sein können, den Eingabepuffer 331 derart betreibt, dass die gespeicherten Pixeldaten oder die verarbeiteten Pixeldaten zurückgehalten werden, in einem Zustand, in dem der Fluss der Pixeldaten oder der verarbeiteten Pixeldaten bei der Pipeline-Verarbeitung verzögert wird, und der Steuerteil 334 einen Pfad auswählt, entlang dessen die Pixeldaten oder die verarbeiteten Pixeldaten unter Umgehung des Eingabepuffers 331 (zum Arithmetikteil 333) übertragen werden, ohne im Eingabepuffer 331 gespeichert zu werden, und ein Stoppen des Betriebs des Eingabepuffers 331 veranlasst, wenn in der gesamten Speicherkapazität des Eingabepuffers 331 keine Pixeldaten oder verarbeiteten Pixeldaten gespeichert sind, in einem Zustand, in dem der Fluss der verarbeiteten Pixeldaten bei der Pipeline-Verarbeitung nicht verzögert wird (einem Zustand, der nicht der Pipeline-Stall-Zustand ist).
  • Außerdem ist gemäß der ersten Ausgestaltung der ersten Ausführungsform die Bildverarbeitungsvorrichtung 1 derart eingerichtet, dass der Steuerteil 334 ein Zustandsmeldesignal, das den Betriebszustand des Bildverarbeitungsmoduls 33 anzeigt, das mit dem Steuerteil 334 selbst ausgerüstet ist, an das Bildverarbeitungsmodul 33 einer in der Konfiguration der Pipeline vorhergehenden Stufe ausgibt, und der Steuerteil 334 den Zustand des Flusses der verarbeiteten Pixeldaten bei der Pipeline-Verarbeitung anhand des Zustandsmeldesignals, das vom Bildverarbeitungsmodul 33 einer in der Konfiguration der Pipeline nachfolgenden Stufe eingegeben wird, bestimmt.
  • Außerdem ist gemäß der ersten Ausgestaltung der ersten Ausführungsform die Bildverarbeitungsvorrichtung 1 derart eingerichtet, dass der Steuerteil 334 den Zustand des Flusses der Pixeldaten oder der verarbeiteten Pixeldaten bei der Pipeline-Verarbeitung anhand der Zustandsmeldesignale, die von mehreren Bildverarbeitungsmodulen 33 der in der Konfiguration der Pipeline nachfolgenden Stufen eingegeben werden, bestimmt.
  • Außerdem ist gemäß der ersten Ausgestaltung der ersten Ausführungsform die Bildverarbeitungsvorrichtung 1 derart eingerichtet, dass das Zustandsmeldesignal ein Signal ist, das anzeigt, ob es möglich ist, die Pixeldaten oder die verarbeiteten Pixeldaten zu empfangen, an denen das Bildverarbeitungsmodul 33 der vorhergehenden Stufe den Prozess ausgeführt hat, das Zustandsmeldesignal ein Datenanforderungssignal zum Anfordern einer Ausgabe der Pixeldaten oder der verarbeiteten Pixeldaten, an denen das Bildverarbeitungsmodul 33 der vorhergehenden Stufe den Prozess ausgeführt hat, umfasst, und der Steuerteil 334 bestimmt, dass der Fluss der Pixeldaten oder der verarbeiteten Pixeldaten bei der Pipeline-Verarbeitung nicht verzögert wird (der Zustand nicht der Pipeline-Stall-Zustand ist), wenn das Datenanforderungssignal zum Anfordern einer Ausgabe der Pixeldaten oder der verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 33 der nachfolgenden Stufe eingegeben wird.
  • Außerdem ist gemäß der ersten Ausgestaltung der ersten Ausführungsform die Bildverarbeitungsvorrichtung 1 derart eingerichtet, dass der Steuerteil 334 das Datenanforderungssignal zum Anfordern der Ausgabe der Pixeldaten oder der verarbeiteten Pixeldaten an das Bildverarbeitungsmodul 33 der vorhergehenden Stufe ausgibt, wenn die Pixeldaten oder die verarbeiteten Pixeldaten im Eingabepuffer 331 gespeichert werden können.
  • Außerdem ist gemäß der ersten Ausgestaltung der ersten Ausführungsform die Bildverarbeitungsvorrichtung 1 derart eingerichtet, dass das Bildverarbeitungsmodul 33 ferner eine Auswahleinrichtung (die Auswahleinrichtung 332) umfasst, die dafür eingerichtet ist, einen von beiden, entweder den Pfad, entlang dessen die aus dem Eingabepuffer 331 ausgelesenen Pixeldaten oder verarbeiteten Pixeldaten (zum Arithmetikteil 333) übertragen werden, oder den Pfad, entlang dessen die Pixeldaten oder die verarbeiteten Pixeldaten unter Umgehung des Eingabepuffers 331 (zum Arithmetikteil 333) übertragen werden, als den Pfad auszuwählen, entlang dessen die Pixeldaten oder die verarbeiteten Pixeldaten (zum Arithmetikteil 333) übertragen werden, der Steuerteil 334 einen Datenmengenmanagementteil (den Datenmengenmanagementteil 3341) umfasst, der dafür eingerichtet ist, die Menge der im Eingabepuffer 331 gespeicherten Pixeldaten oder verarbeiteten Pixeldaten zu managen und Datenmengeninformationen (die Informationen über die Datenmenge im Puffer) auszugeben, die die überwachte Menge der Pixeldaten oder der verarbeiteten Pixeldaten anzeigen; ein Puffer-Umgehen-Bestimmungsteil (der Puffer-Umgehen-Bestimmungsteil 3342) dafür eingerichtet ist, auf der Grundlage der Informationen über die Datenmenge im Puffer und des Zustandes des Flusses der verarbeiteten Pixeldaten bei der Pipeline-Verarbeitung eine Operation zu bestimmen, die im Eingabepuffer 331 auszuführen ist, und auf der Grundlage des Ergebnisses der Bestimmung ein Anweisungssignal (das Anweisungssignal für eine Pufferoperation), das den Eingabepuffer 331 anweist, die Pixeldaten oder die verarbeiteten Pixeldaten zu schreiben und die Pixeldaten oder die verarbeiteten Pixeldaten aus dem Eingabepuffer 331 auszulesen, und ein Steuersignal (das Puffer-Umgehen-Signal) zum Auswählen des Pfades, entlang dessen die Pixeldaten oder die verarbeiteten Pixeldaten (zum Arithmetikteil 333) übertragen werden, auszugeben; ein Puffer-Schreibmanagementteil (der Eingabepuffer-Schreibmanagementteil 3343) dafür eingerichtet ist, ein Pufferschreibsignal zu erzeugen, das ein Steuersignal zum Steuern des Schreibens der Pixeldaten oder der verarbeiteten Pixeldaten in den Eingabepuffer 331 entsprechend dem Anweisungssignal für eine Pufferoperation zum Schreiben der Pixeldaten oder der verarbeiteten Pixeldaten in den Eingabepuffer 331 ist; und ein Puffer-Lesemanagementteil (der Eingabepuffer-Lesemanagementteil 3344) dafür eingerichtet ist, ein Pufferlesesignal zu erzeugen, das ein Steuersignal zum Steuern des Auslesens der Pixeldaten oder der verarbeiteten Pixeldaten aus dem Eingabepuffer 331 entsprechend dem Anweisungssignal für eine Pufferoperation zum Auslesen der Pixeldaten oder der verarbeiteten Pixeldaten aus dem Eingabepuffer 331 ist, der Datenmengenmanagementteil 3341 die Menge der Pixeldaten oder der verarbeiteten Pixeldaten auf der Grundlage der Anzahl der eingegebenen Pixeldaten oder der verarbeiteten Pixeldaten und des Pufferlesesignals managt, der Puffer-Umgehen-Bestimmungsteil 3342 das Anweisungssignal für eine Pufferoperation ausgibt, um eine Anweisung zum Ausführen des Schreibens der Pixeldaten oder der verarbeiteten Pixeldaten in den Eingabepuffer 331 oder des Auslesens der Pixeldaten oder der verarbeiteten Pixeldaten aus dem Eingabepuffer 331, zu erteilen, und das Puffer-Umgehen-Signal zum Auswählen eines Pfades zum Auslesen und Übertragen der Pixeldaten oder der verarbeiteten Pixeldaten (an den Arithmetikteil 333), nachdem die Pixeldaten oder die verarbeiteten Pixeldaten im Eingabepuffer 331 zwischengespeichert worden sind, ausgibt, wenn die Informationen über die Datenmenge im Puffer anzeigen, dass die Menge der Pixeldaten oder der verarbeiteten Pixeldaten ein Wert größer als 0 ist, der Puffer-Umgehen-Bestimmungsteil 3342 das Anweisungssignal für eine Pufferoperation ausgibt, um eine Anweisung zum Stoppen des Schreibens der Pixeldaten oder der verarbeiteten Pixeldaten in den Eingabepuffer 331 oder des Auslesens der Pixeldaten oder der verarbeiteten Pixeldaten aus dem Eingabepuffer 331 zu erteilen, und das Puffer-Umgehen-Signal zum Auswählen eines Pfades ausgibt, entlang dessen die Pixeldaten oder die verarbeiteten Pixeldaten unter Umgehung des Eingabepuffers 331 (zum Arithmetikteil 333) übertragen werden, wenn die Informationen über die Datenmenge im Puffer anzeigen, dass die Menge der Pixeldaten oder der verarbeiteten Pixeldaten 0 ist, und die Auswahleinrichtung 32 entsprechend dem Puffer-Umgehen-Signal einen Pfad als den Pfad auswählt, entlang dessen die Pixeldaten oder die verarbeiteten Pixeldaten (zum Arithmetikteil 333) übertragen werden.
  • Außerdem wird gemäß der ersten Ausgestaltung der ersten Ausführungsform ein Bildverarbeitungsverfahren in einer Bildverarbeitungsvorrichtung (der Bildverarbeitungsvorrichtung 1) mit einem Speicher (dem DRAM 20) und einem Bildverarbeitungsteil (dem Bildverarbeitungsteil 30) bereitgestellt, wobei das DRAM 20 und der Bildverarbeitungsteil 30 an einen Datenbus (den DMA-Bus 10) angeschlossen sind, der Bildverarbeitungsteil 30 eine Pipeline umfasst, bei der mehrere Verarbeitungsmodule (die Bildverarbeitungsmodule 33-1 bis 33-3) in Reihe geschaltet sind, wobei jedes der Verarbeitungsmodule (der Bildverarbeitungsmodule 33) dafür eingerichtet ist, einen vorgegebenen Prozess an Eingabedaten (den Pixeldaten oder den verarbeiteten Pixeldaten) auszuführen, und der Bildverarbeitungsteil 30 eine Pipeline-Verarbeitung ausführt, indem die Bildverarbeitungsmodule 33 den Prozess sequenziell ausführen, wobei das Bildverarbeitungsverfahren umfasst: einen Steuerschritt, der von jedem der Bildverarbeitungsmodule 33 ausgeführt wird, um anhand des Zustandes des Flusses der verarbeiteten Pixeldaten bei der Pipeline-Verarbeitung und des Zustandes der Pixeldaten oder verarbeiteten Pixeldaten im Eingabepuffer 331, der die Pixeldaten oder die verarbeiteten Pixeldaten in Verarbeitungseinheiten zwischenspeichert, zu bestimmen, ob die Pixeldaten oder die verarbeiteten Pixeldaten in einen Datenpuffer (den Eingabepuffer 331) zu speichern sind, und auf der Grundlage des Ergebnisses der Bestimmung einen Pfad innerhalb des Bildverarbeitungsmoduls 33 auszuwählen, über den die Pixeldaten oder die verarbeiteten Pixeldaten (zum Arithmetikteil 333) übertragen werden, und eine Operation des Eingabepuffers 331 zu steuern.
  • Wie vorstehend beschrieben fordert das Bildverarbeitungsmodul 33 der ersten Ausgestaltung das Verarbeitungsmodul, das mit der in der Pipeline-Konfiguration vorhergehenden Stufe in Verbindung steht, auf der Grundlage des Zustandes freier Speicherkapazität im Eingabepuffer 331 auf, Eingabedaten bereitzustellen, und steuert das Zwischenspeichern (Schreiben) der vom Verarbeitungsmodul der vorhergehenden Stufe eingegebenen Eingabedaten (Pixeldaten) in den Eingabepuffer 331. Außerdem steuert das Bildverarbeitungsmodul 33 der ersten Ausgestaltung auf der Grundlage des Zustandes freier Speicherkapazität im Eingabepuffer 331 und des Betriebszustandes des Verarbeitungsmoduls, das mit der in der Pipeline-Konfiguration nachfolgenden Stufe in Verbindung steht, ein Auslesen der im Eingabepuffer 331 zwischengespeicherten Pixeldaten und eine Auswahl (durch Umschalten) der Pixeldaten, an denen der Arithmetikteil 333 eine arithmetische Operation zur Bildverarbeitung ausführt. Dadurch kann das Bildverarbeitungsmodul 33 der ersten Ausgestaltung die Steuerung derart durchführen, dass die vom Verarbeitungsmodul der vorhergehenden Stufe eingegebenen Eingabedaten den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden, wenn die Verarbeitungsmodule in der nachfolgenden Stufe nicht im Pipeline-Stall-Zustand sind und die gesamte Speicherkapazität des Eingabepuffers 331 frei ist. Dann kann das Bildverarbeitungsmodul 33 der ersten Ausgestaltung die verarbeiteten Pixeldaten, die mittels des Arithmetikteils 333 erzeugt sind, der direkt eine arithmetische Operation zur Bildverarbeitung an den Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe ausführt, die unter Umgehung des Eingabepuffers 331 übertragen werden, an das Verarbeitungsmodul der nachfolgenden Stufe ausgeben. Außerdem überträgt das Bildverarbeitungsmodul 33 der ersten Ausgestaltung die Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, zum Arithmetikteil 333, d. h. es umgeht den Eingabepuffer 331, sodass es zu diesem Zeitpunkt möglich ist, durch Stoppen des Betriebs des Eingabepuffers 331 dessen Energieverbrauch zu senken. Dadurch ist es möglich, im Bildverarbeitungsteil 30, der die Pipeline bildet, im Bildverarbeitungsmodul 33 der ersten Ausgestaltung die gewünschte Bildverarbeitung auszuführen, auch wenn ein Schreiben von Daten in den Datenpuffer und ein Auslesen von Daten aus dem Datenpuffer nicht zwangsläufig erfolgen, wenn die Pipeline im herkömmlichen Verarbeitungsmodul konfiguriert ist, und es ist möglich, den Energieverbrauch bei der Pipeline-Verarbeitung zu senken, ohne die Leistungsfähigkeit der Pipeline-Verarbeitung zu verschlechtern.
  • Beim Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung, unter Bezugnahme auf 4 und 7 beschrieben, erfolgt, nachdem die Steuerung derart durchgeführt worden ist, dass die Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, ausgelesen und zum Arithmetikteil 333 übertragen werden, nachdem sie im Zwischengespeichert 331 zwischengespeichert worden sind, die Steuerung nicht aktiv, sodass die Daten erneut den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden. Das heißt, beim Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung, in 4 und 7 gezeigt, hängt ein Prozess, um die Steuerung derart durchzuführen, dass die Eingabedaten den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden, von Betriebszuständen des Verarbeitungsmoduls der vorhergehenden Stufe und des Verarbeitungsmoduls der nachfolgenden Stufe ab. Jedoch kann bei dem Bildverarbeitungsmodul 33 der ersten Ausgestaltung der Steuerteil 334 gezielt die Steuerung derart durchführen, dass die Eingabedaten den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden.
  • Hier wird ein Betrieb beschrieben, bei dem das Bildverarbeitungsmodul 33, das im Bildverarbeitungsteil 30 bereitgestellt ist, gezielt die Steuerung derart durchführt, dass die Eingabedaten den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden. 8 ist ein Zeitdiagramm, das ein Beispiel für einen anderen Betrieb des Bildverarbeitungsmoduls 33 im Bildverarbeitungsteil 30 zeigt, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 8 zeigt ein Beispiel, das dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung entspricht, eine Übermittlung der verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 33-1 zum Bildverarbeitungsmodul 33-2, wenn der Bildverarbeitungsteil 30 die Pipeline-Verarbeitung entsprechend einer Ausgestaltung ausführt, bei der das Eingabe-DMA-Modul 32, die Bildverarbeitungsmodule 33-1 bis 33-3 der ersten Ausgestaltung und das Ausgabe-DMA-Modul 34 in Reihe geschaltet sind (Pipeline-Schaltung).
  • In 8, wie in dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33, sind Eingabedaten, Pufferschreiben, Pufferauslesen und Ausgabedaten mit Bezug auf jedes der Bildverarbeitungsmodule 33-1 und 33-2 dargestellt, und das Datenanforderungssignal ist als Zustandsmeldesignal dargestellt, das von jedem Bildverarbeitungsmodul 33 an das Verarbeitungsmodul der vorhergehenden Stufe auszugeben ist.
  • Außerdem wird bei der Beschreibung von 8 wie bei dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 vorausgesetzt, dass eine Bildverarbeitung unter Verwendung einer Zeileneinheit als eine Verarbeitungseinheit ausgeführt wird und die Zahlen, die die Anzahl der Zeileneinheiten anzeigen, sich auf die Eingabedaten, das Pufferschreiben, das Pufferauslesen und die Ausgabedaten beziehen. Außerdem wird bei der Beschreibung von 8 wie bei dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 vorausgesetzt, dass jedes Verarbeitungsmodul, das im Bildverarbeitungsteil 30 bereitgestellt ist, einen Datenpuffer mit einer Kapazität umfasst, die zum Speichern von Pixeldaten für zwei Zeileneinheiten imstande ist. Außerdem wird bei der Beschreibung von 8 wie bei dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 zur Unterscheidung zwischen den jeweiligen Bestandteilelementen, die in jedem Bildverarbeitungsmodul 33 bereitgestellt sind, das Bestandteilelement durch Hinzufügen von „–”, zu dem Bildverarbeitungsmodul 33, und einer Zahl nach dem „–” hinter dem jedem Bestandteilelement zugeordneten Bezugszeichen angegeben.
  • Außerdem stellt in 8 wie bei dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 eine Periode, während der das Datenanforderungssignal einen hohen Pegel („High”) aufweist, eine Anforderungsperiode dar, während der jedes Bildverarbeitungsmodul 33 in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen, und eine Periode, während der das Datenanforderungssignal einen niedrigen Pegel („Low”) aufweist, stellt eine Anforderungsnegationsperiode dar, während der jedes Bildverarbeitungsmodul 33 in einem Zustand ist, in dem es nicht möglich ist, Pixeldaten zu empfangen.
  • Wenn der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, gibt jedes von den Bildverarbeitungsmodulen 33-1, 33-2 33-3 und dem Ausgabe-DMA-Modul 34 ein Datenanforderungssignal zum Anfordern einer Ausgabe von Eingabedaten an das Verarbeitungsmodul der vorhergehenden Stufe aus. Außerdem ist in dem in 8 gezeigten Zeitdiagramm des Betriebs des Bildverarbeitungsmoduls 33 der Betrieb im ersten Schritt, in dem der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 ähnlich. Von daher entfällt eine ausführliche Beschreibung des Betriebs jedes Verarbeitungsmoduls. Da der Betrieb jedes Bildverarbeitungsmoduls bis zum Ende der Anforderungsnegationsperiode des Bildverarbeitungsmoduls 33-2 im in 8 gezeigten Zeitdiagramm des Betriebs der Bildverarbeitungsmoduls 33 ebenfalls dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 ähnlich ist, entfällt zudem eine ausführliche Beschreibung davon.
  • Als Nächstes wird ein Betrieb beschrieben, bei dem das Bildverarbeitungsmodul 33-3 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, wobei ein Zustand, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen (eine Ausgabe von Eingabedaten angefordert ist), durch Setzen des Datenanforderungssignal, das an das Bildverarbeitungsmodul 33-2 auszugeben ist, auf den hohen Pegel („High”) angezeigt wird.
  • Zu diesem Zeitpunkt ist das Bildverarbeitungsmodul 33-2 in einem Zustand, in dem die verarbeiteten Pixeldaten, die der dritten und der vierten Zeileneinheit entsprechen, im Eingabepuffer 331-2 (in einem Zustand, in dem es keine freie Speicherkapazität gibt) zwischengespeichert sind. Deshalb steuert der Steuerteil 334-2 den Eingabepuffer 331-2 und die Auswahleinrichtung 332-2 derart, dass die verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, die im Eingabepuffer 331-2 gespeichert ist, zuerst aus dem Eingabepuffer 331-2 ausgelesen und an den Arithmetikteil 333-2 ausgegeben werden. Dadurch gibt der Eingabepuffer 331-2 die verarbeiteten Pixeldaten, die der gespeicherten dritten Zeileneinheit entsprechen, an die Auswahleinrichtung 332-2 aus, und die Auswahleinrichtung 332-2 gibt die verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, die vom Eingabepuffer 331-2 eingegeben wurde, an den Arithmetikteil 333-2 aus. Dann führt der Arithmetikteil 333-2 eine arithmetische Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, die von der Auswahleinrichtung 332-2 ausgegeben wurde, aus und gibt die verarbeiteten Pixeldaten, die im Arithmetikteil 333-2 um die Latenzzeit verzögert wurden, an das Bildverarbeitungsmodul 33-3 der nachfolgenden Stufe aus.
  • Dadurch gibt der Eingabepuffer 331-2 wie in dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 die verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, aus, sodass Speicherkapazität für eine Zeileneinheit frei ist (bleibt), und das Bildverarbeitungsmodul 33-2 kann in einem Zustand sein, in dem es möglich ist, die verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 33-1 zu empfangen. In dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 setzt zu diesem Zeitpunkt der Steuerteil 334-2 das Datenanforderungssignal, das an das Bildverarbeitungsmodul 33-1 auszugeben ist, auf den hohen Pegel („High”), um anzuzeigen, dass das Bildverarbeitungsmodul 33-2 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen. Bei dem in 8 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 behält jedoch der Steuerteil 334 den Niedrigpegel-(„Low”)Zustand bei, ohne das Datenanforderungssignal auf den hohen Pegel („High”) zu setzen. Das heißt, das Bildverarbeitungsmodul 33-2 schiebt den Wechsel des Datenanforderungssignals auf den hohen Pegel („High”) auf, um gezielt den Zustand beizubehalten, in dem die verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 33-1 nicht empfangen werden können. Denn das Bildverarbeitungsmodul 33-2 ist in einem Zustand, in dem alle Pixeldaten jeder der Zeileneinheiten, die im Eingabepuffer 331-2 zwischengespeichert sind, ausgelesen worden sind und infolge der Ausgabe der verarbeiteten Pixeldaten, die der im Eingabepuffer 331-2 zwischengespeicherten vierten Zeileneinheit entsprechen, die gesamte Speicherkapazität des Eingabepuffers 331-2 frei ist.
  • Des Weiteren steuert der Steuerteil 334-2 den Eingabepuffer 331-2 und die Auswahleinrichtung 332-2 derart, dass die verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, die im Eingabepuffer 331-2 gespeichert ist, aus dem Eingabepuffer 331-2 ausgelesen und an den Arithmetikteil 333-2 ausgegeben werden. Dadurch werden die verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, die im Eingabepuffer 331-2 gespeichert ist, via die Auswahleinrichtung 332-2 in den Arithmetikteil 333-2 eingegeben. Dann gibt der Arithmetikteil 333-2 die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, erzeugt sind, via die Auswahleinrichtung 332-2 an das Bildverarbeitungsmodul 33-3 aus.
  • Der Eingabepuffer 331-2 gibt die verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, aus, sodass die gesamte Speicherkapazität frei ist. Mit anderen Worten, das Bildverarbeitungsmodul 33-2 ist in einem Zustand, in dem es möglich ist, die verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 33-1 zu empfangen und die empfangenen/die verarbeiteten Pixeldaten direkt an den Arithmetikteil 333-2 zu übertragen, ohne die verarbeiteten Pixeldaten im Eingabepuffer 331-2 zwischenzuspeichern. Um anzuzeigen, dass das Bildverarbeitungsmodul 33-2 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, setzt hier der Steuerteil 334-2 das Datenanforderungssignal, das an das Bildverarbeitungsmodul 33-1 auszugeben ist, auf den hohen Pegel („High”).
  • Außerdem steuert der Steuerteil 334-2 die Auswahleinrichtung 332-2 derart, dass die verarbeiteten Pixeldaten jeder der Zeileneinheiten, die darauffolgend vom Bildverarbeitungsmodul 33-1 eingegeben werden, so an den Arithmetikteil 333-2 ausgegeben werden. Der Steuerteil 334-2 führt ferner die Steuerung derart durch, dass der Betrieb des Eingabepuffers 331-2 gestoppt wird, und senkt dadurch dessen Energieverbrauch.
  • Wenn im Bildverarbeitungsmodul 33-1 das vom Bildverarbeitungsmodul 33-2 der nachfolgenden Stufe eingegebene Datenanforderungssignal den hohen Pegel („High”) aufweist und eine Meldung bereitgestellt ist, die angibt, dass das Bildverarbeitungsmodul 33-2 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, gibt der Steuerteil 334-1, wie der im Bildverarbeitungsmodul 33-2 bereitgestellte Steuerteil 334-2, die verarbeiteten Pixeldaten, die der fünften und der sechsten Zeileneinheit entsprechen, an das Bildverarbeitungsmodul 33-2 aus. Genauer gesagt steuert der Steuerteil 334-1 den Eingabepuffer 331-2 und die Auswahleinrichtung 332-2 derart, dass die Pixeldaten jeder von der fünften und sechsten Zeileneinheit, die im Eingabepuffer 331-1 gespeichert sind, sequenziell ausgelesen und an den Arithmetikteil 333-1 ausgegeben werden. Dadurch führt der Arithmetikteil 333-1 die arithmetische Operation zur Bildverarbeitung an den Pixeldaten jeder von der fünften und sechsten Zeileneinheit, die via die Auswahleinrichtung 332-1 sequenziell eingegeben werden, aus und gibt die verarbeiteten Pixeldaten, die im Arithmetikteil 333-1 um die Latenzzeit verzögert wurden, an das Bildverarbeitungsmodul 33-2 der nachfolgenden Stufe aus. Zu diesem Zeitpunkt setzt der Steuerteil 334-1 ähnlich wie der Steuerteil 334-2, der im Bildverarbeitungsmodul 33-2 bereitgestellt ist, das Datenanforderungssignal ebenfalls auf den hohen Pegel („High”), nachdem das Auslesen der Pixeldaten jeder der sechsten Zeileneinheiten abgeschlossen worden ist, ohne das Datenanforderungssignal auf den hohen Pegel („High”) zu setzen, nachdem die Pixeldaten jeder der fünften Zeileneinheiten ausgelesen worden ist, d. h. wenn die gesamte Speicherkapazität des Eingabepuffers 331-1 frei ist. Das heißt, das Bildverarbeitungsmodul 33-1 stellt auch keine Meldung bereit, die einen Zustand anzeigt, in dem es möglich ist, Pixeldaten sofort zu empfangen, wenn es möglich ist, Pixeldaten aus dem Eingabe-DMA-Modul 32 zu empfangen, aber es stellt eine Meldung bereit, die einen Zustand anzeigt, in dem es möglich ist, Pixeldaten zu empfangen, wenn die empfangenen Pixeldaten direkt zum Arithmetikteil 333-1 übertragen werden können, ohne im Eingabepuffer 331-1 zwischengespeichert zu werden.
  • Ähnlich wie der Steuerteil 334-2, der im Bildverarbeitungsmodul 33-2 bereitgestellt ist, steuert der Steuerteil 334-1 die Auswahleinrichtung 332-1 derart, dass die Pixeldaten jeder der Zeileneinheiten, die darauffolgend vom Eingabe-DMA-Modul 32 eingegeben werden, so an den Arithmetikteil 333-1 ausgegeben werden. Der Steuerteil 334-1 führt ferner ähnlich wie der Steuerteil 334-2, der im Bildverarbeitungsmodul 33-2 bereitgestellt ist, die Steuerung derart durch, dass der Betrieb des Eingabepuffers 331-1 gestoppt wird, und senkt dadurch dessen Energieverbrauch.
  • Wenn eine Meldung bereitgestellt wird, die anzeigt, dass das Bildverarbeitungsmodul 33-2 in einem Zustand sein kann, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, nimmt entsprechend dem Datenanforderungssignal, das vom Bildverarbeitungsmodul 33-1 der nachfolgenden Stufe eingegeben wird, das Eingabe-DMA-Modul 32 das Auslesen von Pixeldaten aus der siebten Zeileneinheit, die im DRAM 20 gespeichert ist, wieder auf und gibt die ausgelesenen Pixeldaten an das Bildverarbeitungsmodul 33-1 aus. Wenn Pixeldaten jeder von der siebten und achten Zeileneinheit im Datenpuffer gespeichert sind, wenn das Eingabe-DMA-Modul 32 das Auslesen der im DRAM 20 gespeicherten Pixeldaten aufschiebt, kann ein Auslesen der Pixeldaten aus der neunten Zeileneinheit wieder aufgenommen werden, nachdem die Pixeldaten jeder der siebten und achten Zeileneinheit, die im Datenpuffer gespeichert sind, an das Bildverarbeitungsmodul 33-1 ausgegeben worden sind.
  • Auf diese Weise nimmt im Bildverarbeitungsteil 30, wenn das vom Verarbeitungsmodul der an die Pipeline angeschlossenen nachfolgenden Stufe eingegebene Datenanforderungssignal in einen Zustand wechselt, in dem es wieder möglich ist, Pixeldaten zu empfangen, jedes Verarbeitungsmodul die Ausgabe der Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe wieder auf. Dabei gibt jedes Verarbeitungsmodul von den Pixeldaten, die in dem im Verarbeitungsmodul selbst bereitgestellten Eingabepuffer 331 gespeichert sind, sequenziell an das Verarbeitungsmodul der nachfolgenden Stufe aus. Jedes Verarbeitungsmodul stellt eine Meldung bereit, die anzeigt, dass das Verarbeitungsmodul selbst in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen, sobald die Speicherkapazität des Eingabepuffers 331, der im Verarbeitungsmodul selbst bereitgestellt ist, Speicherkapazität völlig frei wird. Dann gibt jedes Verarbeitungsmodul die eingegebenen Pixeldaten sequenziell an das Verarbeitungsmodul der nachfolgenden Stufen aus, ohne die eingegebenen Pixeldaten im Eingabepuffer 331, der im Verarbeitungsmodul selbst bereitgestellt ist, zwischenzuspeichern. Außerdem führt jedes Verarbeitungsmodul die Steuerung derart durch, dass der Betrieb des im Verarbeitungsmodul selbst bereitgestellten Eingabepuffers 331 gestoppt wird, und senkt dadurch dessen Energieverbrauch.
  • Danach führt der Bildverarbeitungsteil 30 durch Wiederholen der vorstehend beschriebenen Operation eine Reihe von Bildverarbeitungen an Block-Bilddaten aus, indem er die Pipeline-Verarbeitung an Pixeldaten, die in den Block-Bilddaten enthalten sind, sequenziell ausführt, und zwar für jede Zeileneinheit in jedem Verarbeitungsmodul, das an die Pipeline angeschlossen ist.
  • In dem in 8 gezeigten Beispiel für das Zeitdiagramm des Betriebs des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung ist ein Fall dargestellt, in dem einen Meldung bereitgestellt wird, die angibt, dass jedes Verarbeitungsmodul in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen, sobald die Speicherkapazität des im Verarbeitungsmodul selbst bereitgestellten Eingabepuffers 331 völlig frei wird. In dem in 8 gezeigten Beispiel für das Zeitdiagramm des Betriebs des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung ist ein Fall dargestellt, in dem die Pixeldaten, die in jedes Verarbeitungsmodul eingegeben werden, sequenziell an das Verarbeitungsmodul der nachfolgenden Stufe ausgegeben werden, ohne im Eingabepuffer 331 zwischengespeichert zu werden, und der Energieverbrauch durch Stoppen des Betriebs des Eingabepuffers 331 gesenkt wird. Wenn jedoch der Eingabepuffer 331, der in jedem Verarbeitungsmodul selbst bereitgestellt ist, eine Speicherkapazität aufweist, die imstande ist, Pixeldaten für viele Zeileneinheiten zu speichern, wird vermutlich viel Zeit benötigt, bis die Pipeline-Verarbeitung abgeschlossen ist, nämlich wenn gemeldet wird, dass die Pixeldaten empfangen werden können, sobald die Speicherkapazität des in jedem Verarbeitungsmodul selbst bereitgestellten Eingabepuffers 331 völlig frei ist. Von daher kann der in jedem Verarbeitungsmodul bereitgestellte Steuerteil 334 auf der Grundlage der Anzahl der Zeileneinheiten, die im Eingabepuffer 331 zwischengespeichert sind, bestimmen, ob eine Steuerung derart durchzuführen ist, dass die eingegebenen Pixeldaten ausgelesen und an den Arithmetikteil 333 übertragen werden, nachdem sie im Eingabepuffer 331 zwischengespeichert worden sind, oder ob die Steuerung derart durchzuführen ist, dass die eingegebenen Pixeldaten so zum Arithmetikteil 333 übertragen werden, ohne im Eingabepuffer 331 zwischengespeichert zu werden.
  • Genauer gesagt, wenn eine Meldung bereitgestellt werden kann, die angibt, dass das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen, kann ein vorgegebener Schwellenwert für die Anzahl der Zeileneinheiten mit der Anzahl der Zeileneinheiten, die von den Informationen über die Datenmenge im Puffer angezeigt werden, auf der Grundlage der Anzahl der Zeileneinheiten, die vom Eingabepuffer 331 zwischengespeichert werden können, verglichen werden, und entsprechend dem Vergleichsergebnis kann der Betrieb des Eingabepuffers 331 umgeschaltet werden. Als Beispiel kann ein Fall betrachtet werden, in dem der Eingabepuffer 331 eine Speicherkapazität aufweist, die imstande ist, Pixeldaten für 10 Zeileneinheiten zu speichern, und der vorgegebene Schwellenwert für die Anzahl der Zeileneinheiten „5” ist. In diesem Fall wird, wenn die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, „5” oder kleiner ist, wenn eine Meldung anzeigt, dass das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem ein Empfangen von Pixeldaten möglich ist, die Steuerung derart durchgeführt, dass nachfolgend eingegebene Pixeldaten zum Arithmetikteil 333 übertragen werden, ohne im Eingabepuffer 331 zwischengespeichert zu werden, das heißt, die Steuerung wird wie in dem in 8 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 durchgeführt. Dagegen wird, wenn die Anzahl der Zeileneinheiten, angezeigt durch die Informationen über die Datenmenge im Puffer, größer als „5” ist, wenn eine Meldung anzeigt, dass das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem ein Empfangen von Pixeldaten möglich ist, die Steuerung derart durchgeführt, dass nachfolgend eingegebene Pixeldaten zum Arithmetikteil 333 übertragen werden, wobei sie nach einem Zwischenspeichern im Eingabepuffer 331 ausgelesen werden, das heißt, die Steuerung wird wie in dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 durchgeführt. Dadurch kann der Bildverarbeitungsteil 30 zwischen einer Steuerung, bei der die Senkung des Energieverbrauchs des in jedem Verarbeitungsmodul bereitgestellten Eingabepuffers 331 Priorität hat, und einer Steuerung, bei der die Verkürzung der Verarbeitungszeit, die für die Pipeline-Verarbeitung benötigt wird, Priorität hat, wechseln.
  • Gemäß der ersten Ausgestaltung der ersten Ausführungsform ist die Bildverarbeitungsvorrichtung (die Bildverarbeitungsvorrichtung 1) dafür eingerichtet, dass der Steuerteil (der Steuerteil 334) eine Ausgabe des Datenanforderungssignals zum Anfordern der Ausgabe der Pixeldaten oder der verarbeiteten Pixeldaten an das Verarbeitungsmodul (das Bildverarbeitungsmodul 33) der vorhergehenden Stufe aufschiebt, bis ein Zustand erreicht ist, in dem keine Pixeldaten oder verarbeiteten Pixeldaten in der Speicherkapazität des Datenpuffers (des Eingabepuffers 331) gespeichert sind, und nachdem der Zustand, in dem keine Pixeldaten oder verarbeiteten Pixeldaten in der Speicherkapazität des Eingabepuffers 331 gespeichert sind, erreicht ist, der Steuerteil 334 das Datenanforderungssignal an das Bildverarbeitungsmodul 33 der vorhergehenden Stufe ausgibt, den Pfad auswählt, entlang dessen die Pixeldaten oder die verarbeiteten Pixeldaten unter Umgehung des Eingabepuffers 331 übertragen werden, und ein Stoppen des Betriebs des Eingabepuffers 331 veranlasst.
  • Wie vorstehend beschrieben führt das Bildverarbeitungsmodul 33 der ersten Ausgestaltung gezielt die Steuerung derart durch, dass die Eingabedaten den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden, indem auf der Grundlage des Zustandes freier Speicherkapazität im Eingabepuffer 331 eine solche zeitliche Koordinierung erfolgt, bei der das Verarbeitungsmodul, das mit der in der Pipeline-Konfiguration vorhergehenden Stufe in Verbindung steht, aufgefordert wird, Eingabedaten bereitzustellen. Demnach ist es bei dem Bildverarbeitungsmodul 33 der ersten Ausgestaltung möglich, zu diesem Zeitpunkt durch Stoppen des Betriebs des Eingabepuffers 331 dessen Energieverbrauch zu senken. Demnach ist es möglich, im Bildverarbeitungsteil 30, der die Pipeline bildet, im Bildverarbeitungsmodul 33 der ersten Ausgestaltung den Energieverbrauch bei der Pipeline-Verarbeitung zu senken, ohne die Leistungsfähigkeit der Pipeline-Verarbeitung zu verschlechtern, wenn die gewünschte Bildverarbeitung ausgeführt wird.
  • Außerdem ist im Bildverarbeitungsmodul 33 der ersten Ausgestaltung eine Ausgestaltung zum Steuern des Zwischenspeicherns (Schreibens) der Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe in den Eingabepuffer 331 eingegeben werden, gezeigt. Das heißt, bei dem Bildverarbeitungsmodul 33 der ersten Ausgestaltung ist die Ausgestaltung des Verarbeitungsmoduls gezeigt, bei der der Datenpuffer (der Eingabepuffer 331) eingabeseitig bereitgestellt ist, wenn die arithmetische Operation zur Bildverarbeitung ausgeführt wird. Die Ausgestaltung jedes Verarbeitungsmoduls, das die Pipeline-Verarbeitung ausführt, ist jedoch nicht auf die Ausgestaltung beschränkt, bei der, wie vorstehend beschrieben, der Datenpuffer eingabeseitig bereitgestellt ist, und kann eine Ausgestaltung sein, bei der der Datenpuffer ausgabeseitig bereitgestellt ist, wenn die arithmetische Operation zur Bildverarbeitung ausgeführt wird.
  • (Zweite Ausgestaltung)
  • Als Nächstes wird die zweite Ausgestaltung jedes Verarbeitungsmoduls, das im Bildverarbeitungsteil 30 bereitgestellt ist, beschrieben. 9 ist ein Blockdiagramm, das schematisch eine Ausgestaltung des Bildverarbeitungsmoduls im Bildverarbeitungsteil 30 zeigt, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 9 ist eine Grundkonfiguration eines Bildverarbeitungsmoduls (im Folgenden als „Bildverarbeitungsmodul 43” bezeichnet) der zweiten Ausgestaltung dargestellt, das einen ausgabeseitigen Datenpuffer aufweist. Das in 9 dargestellte Bildverarbeitungsmodul 43 der zweiten Ausgestaltung umfasst einen Arithmetikteil 433, einen Ausgabepuffer 431, eine Auswahleinrichtung 432 und einen Steuerteil 434. Ähnlich wie das Bildverarbeitungsmodul 33 der ersten Ausgestaltung ist das Bildverarbeitungsmodul 43 ein Bestandteilelement, das die Pipeline-Verarbeitung im Bildverarbeitungsteil 30 ausführt.
  • Ähnlich wie der Arithmetikteil 333, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist, führt der Arithmetikteil 433 eine arithmetische Operation für verschiedene vorgegebene digitale Bildverarbeitungen an den eingegebenen Pixeldaten aus. Der Arithmetikteil 433 gibt die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung erzeugt sind, als Ausgabedaten an den Ausgabepuffer 431 und die Auswahleinrichtung 432 aus.
  • Der Ausgabepuffer 431 ist ein Datenpuffer, der die verarbeiteten Pixeldaten, die vom Arithmetikteil 433 eingegeben werden, zwischenspeichert. Ähnlich wie der Eingabepuffer 331, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist, wird der Ausgabepuffer 431 beispielsweise von einem Speicher wie etwa einem SRAM gebildet. Der Ausgabepuffer 431 weist eine Speicherkapazität auf, die imstande ist, die verarbeiteten Pixeldaten für eine vorgegebene Anzahl von Zeileneinheiten, die vom Arithmetikteil 433 eingegeben werden, als Ausgabedaten zu speichern. Der Ausgabepuffer 431 speichert die Eingabe/die verarbeiteten Pixeldaten entsprechend einem Steuersignal, das vom Steuerteil 434 eingegeben wird, zwischen.
  • Ähnlich wie der Eingabepuffer 331, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist, kann der Ausgabepuffer 431 auch von einem sogenannten Doppelpuffer gebildet werden, der zwei Speicherkapazitätssätze zum Speichern der verarbeiteten Pixeldaten (Ausgabedaten) für eine vorgegebene Anzahl von Zeileneinheiten umfasst, die vom Arithmetikteil 433 eingegeben werden, und bei dem ein abwechselndes Umschalten zwischen einem Schreiben der verarbeiteten Pixeldaten in einen Speicherkapazitätssatz und einem Auslesen der verarbeiteten Pixeldaten aus dem anderen Speicherkapazitätssatz erfolgt.
  • Bei der Auswahleinrichtung 432 handelt es sich um eine Auswahleinheit, die die verarbeiteten Pixeldaten auswählt, die vom Bildverarbeitungsmodul 43 als Ausgabedaten nach außen auszugeben sind. Eine Ausgestaltung der Auswahleinrichtung 432 ist jener der Auswahleinrichtung 332 ähnlich, die im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist. Entsprechend dem vom Steuerteil 434 eingegebenen Steuersignal gibt die Auswahleinrichtung 432 entweder Ausgabedaten (die verarbeiteten Pixeldaten), die im Ausgabepuffer 431 zwischengespeichert sind, oder Ausgabedaten (die verarbeiteten Pixeldaten), die zurzeit vom Arithmetikteil 433 ausgegeben werden, vom Bildverarbeitungsmodul 43 nach außen aus. Das heißt, die Auswahleinrichtung 432 gibt entweder die verarbeiteten Pixeldaten, die vom Arithmetikteil 433 ausgegeben und im Ausgabepuffer 431 zwischengespeichert werden, oder intakt die verarbeiteten Pixeldaten, die zurzeit vom Arithmetikteil 433 ausgegeben werden, via den Verbindungsumschaltteil 31 an das andere Bildverarbeitungsmodul 43 oder das Ausgabe-DMA-Modul 34 aus.
  • Ähnlich wie der Steuerteil 334, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist, führt der Steuerteil 434 die Meldung des Betriebszustandes des Bildverarbeitungsmoduls 43 und die Steuerung jedes im Bildverarbeitungsmodul 43 enthaltenden Bestandteilelements durch. Der Steuerteil 434 gibt an das Verarbeitungsmodul der vorhergehenden Stufe ein Zustandsmeldesignal aus, das den Betriebszustand des Bildverarbeitungsmoduls 43 anzeigt. Außerdem steuert der Steuerteil 434 den Betrieb des Ausgabepuffers 431 in Abhängigkeit davon, ob es im Ausgabepuffer 431 freie Speicherkapazität gibt.
  • Genauer gesagt, wenn es im Ausgabepuffer 431 freie Speicherkapazität gibt, ist der Ausgabepuffer 431 in einem Zustand, in dem es möglich ist, die vom Arithmetikteil 433 ausgegebenen verarbeiteten Pixeldaten zwischenspeichern. In diesem Fall gibt der Steuerteil 434 ein Signal zum Anfordern der Ausgabe von Pixeldaten (ein Datenanforderungssignal) an das Verarbeitungsmodul der vorhergehenden Stufe als Zustandsmeldesignal aus, das einen Zustand anzeigt, in dem es möglich ist, die Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe zu empfangen. Dann steuert der Steuerteil 434 den Ausgabepuffer 431 derart, dass die verarbeiteten Pixeldaten, die vom Arithmetikteil 433 erzeugt sind, der an den vom Verarbeitungsmodul der vorhergehenden Stufe eingegebenen Eingabedaten eine arithmetische Operation zur Bildverarbeitung ausführt, entsprechend dem Zustandsmeldesignal zum Anfordern der Ausgabe der Ausgabe-Pixeldaten zwischengespeichert (geschrieben) werden.
  • Außerdem, wenn es im Ausgabepuffer 431 keine freie Speicherkapazität gibt, ist der Ausgabepuffer 431 in einem Zustand, in dem es nicht möglich ist, die vom Arithmetikteil 433 ausgegebenen verarbeiteten Pixeldaten zwischenspeichern. In diesem Fall gibt der Steuerteil 434 ein Signal, das anzeigt, dass die Ausgabe von Pixeldaten nicht angefordert ist (ein Datenanforderungssignal mit einem Logikpegel, der anzeigt, dass die Ausgabe von Pixeldaten nicht angefordert ist), an das Verarbeitungsmodul der vorhergehenden Stufe als Zustandsmeldesignal aus, das einen Zustand anzeigt, in dem es nicht möglich ist, die Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe zu empfangen. Außerdem kann zu diesem Zeitpunkt das Zustandsmeldesignal wie bei dem Steuerteil 334, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist, ein Pipeline-Stall-Signal sein.
  • Außerdem steuert der Steuerteil 434 eine Operation zum Auslesen der im Ausgabepuffer 431 zwischengespeicherten Pixeldaten und eine Auswahl (durch Umschalten) der verarbeiteten Pixeldaten (Ausgabedaten), die vom Bildverarbeitungsmodul 43 nach außen auszugeben sind, mittels der Auswahleinrichtung 432. Im Steuerteil 434 erfolgen die Steuerung der Operation zum Auslesen der verarbeiteten Pixeldaten aus dem Ausgabepuffer 431 und die Steuerung des Umschaltens der Auswahleinrichtung 432 auf der Grundlage des Ergebnisses einer Bestimmung, ob es im Ausgabepuffer 431 freie Speicherkapazität gibt, und des Zustandsmeldesignals, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, wie bei dem Steuerteil 334, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist. Außerdem ist das Zustandsmeldesignal, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, das Zustandsmeldesignal, das von dem Steuerteil 434 ausgegeben wird, der im Verarbeitungsmodul der nachfolgenden Stufe bereitgestellt ist, die das Ausgabeziel der von der Auswahleinrichtung 432 ausgewählten und ausgegebenen verarbeiteten Pixeldaten ist, und umfasst ein Signal, das anzeigt, ob das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, d. h. ein Signal, das anzeigt, ob eine Ausgabe der verarbeiteten Pixeldaten anzufordern ist, und Ähnliches, wie bereits beschrieben.
  • Wenn das Zustandsmeldesignal, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, anzeigt, dass es möglich ist, die verarbeiteten Pixeldaten zu empfangen, steuert der Steuerteil 434 die Auswahleinrichtung 432 in Abhängigkeit davon, ob es im Ausgabepuffer 431 freie Speicherkapazität gibt, und veranlasst entweder, dass die verarbeiteten Pixeldaten im Ausgabepuffer 431 zwischengespeichert werden oder dass die verarbeiteten Pixeldaten, die zurzeit vom Arithmetikteil 433 ausgegeben werden, als Ausgabedaten vom Bildverarbeitungsmodul 43 nach außen ausgegeben werden. Das heißt, ähnlich wie der Steuerteil 334, der im Bildverarbeitungsmodul 33 der ersten Ausgestaltung bereitgestellt ist, führt der Steuerteil 434 die Steuerung des Betriebs des Ausgabepuffers 431 und die Steuerung des Umschaltens der Auswahleinrichtung 432 in Abhängigkeit davon, ob die Pipeline-Verarbeitung problemlos erfolgt, ohne den Fluss der verarbeiteten Pixeldaten zu verzögern, durch.
  • Genauer gesagt, wenn die Speicherkapazität des Ausgabepuffers 431 nicht völlig frei ist, sind die verarbeiteten Pixeldaten für mindestens eine Zeileneinheit im Ausgabepuffer 431 zwischengespeichert. In diesem Fall steuert der Steuerteil 434 den Ausgabepuffer 431 derart, dass die zwischengespeicherten/die verarbeiteten Pixeldaten ausgelesen werden, und steuert die Auswahleinrichtung 432 derart, dass die vom Ausgabepuffer 431 ausgegebenen verarbeiteten Pixeldaten nach außen ausgegeben werden. Dadurch gibt die Auswahleinrichtung 432 die verarbeiteten Pixeldaten, die ausgelesen werden, nachdem sie im Ausgabepuffer 431 zwischengespeichert worden sind, an das Bildverarbeitungsmodul 43 der nachfolgenden Stufe aus. Wenn dabei die Eingabedaten entsprechend dem Zustandsmeldesignal zum Anfordern der Ausgabe der Ausgabe-Pixeldaten vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, steuert der Steuerteil 434 den Ausgabepuffer 431 derart, dass die verarbeiteten Pixeldaten, die vom Arithmetikteil 433 erzeugt sind, der an den Eingabedaten eine arithmetische Operation zur Bildverarbeitung ausführt, in die freie Speicherkapazität zwischengespeichert (geschrieben) werden.
  • Außerdem werden, wenn die Speicherkapazität des Ausgabepuffers 431 völlig frei ist, keine verarbeiteten Pixeldaten für irgendeine Zeileneinheit im Ausgabepuffer 431 zwischengespeichert. In diesem Fall steuert der Steuerteil 434 den Ausgabepuffer 431 derart, dass der Betrieb gestoppt wird. Dadurch kann das Bildverarbeitungsmodul 43 den Energieverbrauch des Ausgabepuffers 431 senken. Dann steuert der Steuerteil 434 die Auswahleinrichtung 432 derart, dass die verarbeiteten Pixeldaten, die zurzeit vom Arithmetikteil 433 ausgegeben werden, so ausgegeben werden, das heißt, dass die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den zurzeit in den Arithmetikteil 433 eingegebenen Pixeldaten erzeugt sind, ohne Zwischenspeicherung im Ausgabepuffer 431 direkt nach außen ausgegeben werden. Dadurch gibt der Arithmetikteil 433 die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den Eingabedaten (Pixeldaten), die zurzeit in das Bildverarbeitungsmodul 43 eingegeben werden, erzeugt sind, an das Bildverarbeitungsmodul 43 der nachfolgenden Stufe aus.
  • Wenn hingegen das Zustandsmeldesignal, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, anzeigt, dass es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, und es im Ausgabepuffer 431 freie Speicherkapazität gibt, steuert der Steuerteil 434 den Ausgabepuffer 431 derart, dass die verarbeiteten Pixeldaten, die vom Arithmetikteil 433 erzeugt sind, der an den Eingabedaten, die in das Bildverarbeitungsmodul 43 eingegeben werden, eine arithmetische Operation zur Bildverarbeitung ausführt, in die freie Speicherkapazität zwischengespeichert (geschrieben) werden.
  • Außerdem, wenn das Zustandsmeldesignal, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, anzeigt, dass es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, und es im Ausgabepuffer 431 keine freie Speicherkapazität gibt, werden vom Verarbeitungsmodul der vorhergehenden Stufe keine Eingabedaten eingegeben, denn der Steuerteil 434 gibt das Zustandsmeldesignal aus, das anzeigt, dass es nicht möglich ist, die Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe zu empfangen. Demzufolge wird der Betrieb des Ausgabepuffers 431 nicht vom Steuerteil 434 gesteuert.
  • Bei solch einer Ausgestaltung führt jedes der Verarbeitungsmodule der zweiten Ausgestaltung, die im Bildverarbeitungsteil 30 bereitgestellt sind, einen Empfang der Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe und eine Auswahl (durch Umschalten) der verarbeiteten Pixeldaten, die nach außen auszugeben sind, auf der Grundlage des Zustandes freier Speicherkapazität im Ausgabepuffer 431 aus.
  • Als Nächstes wird der Betrieb jedes Verarbeitungsmoduls der zweiten Ausgestaltung, das im Bildverarbeitungsteil 30 bereitgestellt ist, beschrieben. 10 ist ein Zeitdiagramm, das ein Beispiel für einen Betrieb des Bildverarbeitungsmoduls 43 im Bildverarbeitungsteil 30 zeigt, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 10 ist wie bei dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung, ein Beispiel für eine Übermittlung der verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 43-1 an das Bildverarbeitungsmodul 43-2 gezeigt, wenn der Bildverarbeitungsteil 30 die Pipeline-Verarbeitung entsprechend einer Ausgestaltung ausführt, bei der das Eingabe-DMA-Modul 32, die Bildverarbeitungsmodule 43-1 bis 43-3 der zweiten Ausgestaltung und das Ausgabe-DMA-Modul 34 in Reihe geschaltet sind (Pipeline-Schaltung).
  • In 10 sind Eingabedaten, die einzugeben sind, die verarbeiteten Pixeldaten, die durch Ausführen einer arithmetischen Operation zur Bildverarbeitung im Arithmetikteil 433, Pufferschreiben, d. h. Schreiben der verarbeiteten Pixeldaten in den Ausgabepuffer 431, und Pufferlesen, d. h. Auslesen der verarbeiteten Pixeldaten aus dem Ausgabepuffer 431, ausgegeben werden und Ausgabedaten, die auszugeben sind, bezüglich jedes der Bildverarbeitungsmodule 43-1 und 43-2 dargestellt. Außerdem ist in 10 das Datenanforderungssignal zum Anfordern der Ausgabe von Eingabedaten als Zustandsmeldesignal, das von jedem der Bildverarbeitungsmodule 43-1 und 43-2 an das Verarbeitungsmodul der vorhergehenden Stufe auszugeben ist, dargestellt. Außerdem ist in 10 auch das Datenanforderungssignal dargestellt, das vom Bildverarbeitungsmodul 43-3, das mit der dem Bildverarbeitungsmodul 43-2 nachfolgenden Stufe in Verbindung steht, als Zustandsmeldesignal ausgegeben wird.
  • Außerdem wird bei der Beschreibung von 10 wie bei dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung vorausgesetzt, dass eine Bildverarbeitung unter Verwendung einer Zeileneinheit als eine Verarbeitungseinheit ausgeführt wird und die Zahlen, die die Anzahl der Zeileneinheiten anzeigen, sich auf die Eingabedaten, die verarbeiteten Pixeldaten, das Pufferschreiben, das Pufferauslesen und die Ausgabedaten beziehen. Außerdem wird bei der Beschreibung von 10 wie bei dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung vorausgesetzt, dass jedes Verarbeitungsmodul, das im Bildverarbeitungsteil 30 bereitgestellt ist, einen Datenpuffer mit einer Kapazität umfasst, die zum Speichern von Pixeldaten für zwei Zeileneinheiten imstande ist. Außerdem wird bei der Beschreibung von 10 wie bei dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung zur Unterscheidung zwischen den jeweiligen Bestandteilelementen, die in jedem Bildverarbeitungsmodul 43 bereitgestellt sind, das Bestandteilelement durch Hinzufügen von „–”, zu dem Bildverarbeitungsmodul 43, und einer Zahl nach dem „–” hinter dem jedem Bestandteilelement zugeordneten Bezugszeichen angegeben. Beispielsweise wird der Steuerteil 434, der im Bildverarbeitungsmodul 43-1 bereitgestellt ist, als „Steuerteil 434-1” dargestellt, und der Steuerteil 434, der im Bildverarbeitungsmodul 43-2 bereitgestellt ist, wird als „Steuerteil 434-2” dargestellt.
  • Wenn der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, gibt jedes von den Bildverarbeitungsmodulen 43-1, 43-2, 43-3 und dem Ausgabe-DMA-Modul 34 das Datenanforderungssignal zum Anfordern einer Ausgabe von Eingabedaten an das Verarbeitungsmodul der vorhergehenden Stufe aus. Denn wie in dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung ist bei einem ersten Schritt, in dem der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, die Speicherkapazität des Ausgabepuffers 431, der in jedem Bildverarbeitungsmodul 43 bereitgestellt ist, völlig frei, und deshalb ist es möglich, die verarbeiteten Pixeldaten zwischenzuspeichern und die Eingabedaten zu empfangen. Das liegt daran, dass der Arithmetikteil 433-1, der im Bildverarbeitungsmodul 43-1 bereitgestellt ist, und der Arithmetikteil 433-2, der im Bildverarbeitungsmodul 43-2 bereitgestellt ist, in einem Zustand sind, in dem an den eingegebenen Pixeldaten sofort eine Bildverarbeitung ausgeführt werden kann. Außerdem ist wie bei dem Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung, das in 4 gezeigt ist, im ersten Schritt, in dem der Bildverarbeitungsteil 30 mit der Pipeline-Verarbeitung beginnt, das Ausgabe-DMA-Modul 34 ebenfalls in einem Zustand, in dem die Eingabedaten (die verarbeiteten Pixeldaten), die eingegeben worden sind, via den DMA-Bus 10 sofort an das DRAM 20 ausgegeben werden können.
  • Außerdem stellt in 10 wie bei dem in 4 gezeigten Beispiel für den Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung eine Periode, während der das Datenanforderungssignal einen hohen Pegel („High”) aufweist, eine Anforderungsperiode dar, während der jedes Verarbeitungsmodul in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen, und eine Periode, während der das Datenanforderungssignal einen niedrigen Pegel („Low”) aufweist, stellt eine Anforderungsnegationsperiode dar, während der jedes Verarbeitungsmodul in einem Zustand ist, in dem es nicht möglich ist, Pixeldaten zu empfangen.
  • Wenn vom Bildverarbeitungsmodul 43-1 der nachfolgenden Stufe das Datenanforderungssignal eingegeben wird, liest für jede Zeileneinheit zunächst das Eingabe-DMA-Modul 32 die Pixeldaten der ersten Zeileneinheit, die im DRAM 20 gespeichert ist, sequenziell via den DMA-Bus 10 aus. Dann gibt das Eingabe-DMA-Modul 32 die ausgelesenen Pixeldaten an das Bildverarbeitungsmodul 43-1 aus. Zu diesem Zeitpunkt wird vom Bildverarbeitungsmodul 43-1, das mit der dem Eingabe-DMA-Modul 32 nachfolgenden Stufe in Verbindung steht, angezeigt, sich in einem Zustand zu befinden, in dem es möglich ist, die Pixeldaten zu empfangen, und zwar durch Ausgeben des Datenanforderungssignals hohen Pegels. Dementsprechend gibt das Eingabe-DMA-Modul 32 die ausgelesenen Pixeldaten so an das Bildverarbeitungsmodul 43-1 aus, ohne sie im Datenpuffer zwischenzuspeichern. Zu diesem Zeitpunkt stoppt das Eingabe-DMA-Modul 32 den Betrieb des Datenpuffers und senkt dadurch dessen Energieverbrauch. Danach liest das Eingabe-DMA-Modul 32 die Pixeldaten der zweiten Zeileneinheit, die im DRAM 20 gespeichert ist, aus und beginnt mit der Ausgabe an das Bildverarbeitungsmodul 43-1.
  • Außerdem führt das Bildverarbeitungsmodul 43-1 an den Pixeldaten der ersten Zeileneinheit, die vom Eingabe-DMA-Modul 32 eingegeben wurde, eine Bildverarbeitung aus, wenn vom Bildverarbeitungsmodul 43-2 der nachfolgenden Stufe ein Datenanforderungssignal eingegeben wird. Wie bereits beschrieben, ist zu diesem Zeitpunkt das Bildverarbeitungsmodul 43-1 in einem Zustand, in dem die Speicherkapazität des Ausgabepuffers 431-1 völlig frei ist, und ist in einem Zustand, in dem der Arithmetikteil 433-1 sofort die Bildverarbeitung an den eingegebenen Pixeldaten ausführen kann. Außerdem wird zu diesem Zeitpunkt vom Bildverarbeitungsmodul 43-2, das mit der dem Bildverarbeitungsmodul 43-1 nachfolgenden Stufe in Verbindung steht, angezeigt, sich in einem Zustand zu befinden, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, und zwar durch Ausgeben des Datenanforderungssignals hohen Pegels. Demzufolge steuert der Steuerteil 434-1 die Auswahleinrichtung 432-1 derart, dass die verarbeiteten Pixeldaten, die vom Arithmetikteil 433-1 erzeugt sind, der an Pixeldaten der ersten Zeileneinheit, die zurzeit vom Eingabe-DMA-Modul 32 der vorhergehenden Stufe eingegeben werden, eine arithmetische Operation zur Bildverarbeitung ausführt, so als Ausgabedaten nach außen ausgegeben werden. Außerdem führt der Steuerteil 434-1 die Steuerung derart durch, dass der Betrieb des Ausgabepuffers 431-1 gestoppt wird, und senkt dadurch dessen Energieverbrauch. Dadurch gibt die Auswahleinrichtung 432-1 die verarbeiteten Pixeldaten, die vom Arithmetikteil 433-1 ausgegeben wurden, so als Ausgabedaten an das Bildverarbeitungsmodul 43-2 der nachfolgenden Stufe aus. Außerdem erfolgt die Ausgabe der Ausgabedaten (der verarbeiteten Pixeldaten), die vom Bildverarbeitungsmodul 43-1 ausgegeben werden, nachdem sie um eine Verzögerungszeit (Latenzzeit) verzögert worden sind, die durch das Ausführen der arithmetischen Operation zur Bildverarbeitung im Arithmetikteil 433-1 bedingt ist. Danach beginnt das Bildverarbeitungsmodul 43-1 mit der Bildverarbeitung an den vom Eingabe-DMA-Modul 32 eingegebenen Pixeldaten der zweiten Zeileneinheit.
  • Außerdem führt das Bildverarbeitungsmodul 43-2 an den verarbeiteten Pixeldaten, die der vom Bildverarbeitungsmodul 43-1 eingegebenen ersten Zeileneinheit entsprechen, eine Bildverarbeitung aus, wenn vom Bildverarbeitungsmodul 43-3 der nachfolgenden Stufe das Datenanforderungssignal eingegeben wird. Wie bereits beschrieben, ist zu diesem Zeitpunkt das Bildverarbeitungsmodul 43-2 ebenfalls in einem Zustand, in dem die Speicherkapazität des Ausgabepuffers 431-2 völlig frei ist, und ist in einem Zustand, in dem der Arithmetikteil 433-2 sofort die Bildverarbeitung an den eingegebenen/den verarbeiteten Pixeldaten ausführen kann. Außerdem wird zu diesem Zeitpunkt auch vom Bildverarbeitungsmodul 43-3, das mit der dem Bildverarbeitungsmodul 43-2 nachfolgenden Stufe in Verbindung steht, angezeigt, sich in einem Zustand zu befinden, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, und zwar durch Ausgeben des Datenanforderungssignals hohen Pegels („High”). Demzufolge steuert der Steuerteil 434-2 die Auswahleinrichtung 432-2 derart, dass die verarbeiteten Pixeldaten, die vom Arithmetikteil 433-2 erzeugt sind, der an Pixeldaten der ersten Zeileneinheit, die zurzeit vom Bildverarbeitungsmodul 43-1 der vorhergehenden Stufe eingegeben werden, eine arithmetische Operation zur Bildverarbeitung ausführt, so als Ausgabedaten nach außen ausgegeben werden. Außerdem führt der Steuerteil 434-2 die Steuerung derart durch, dass der Betrieb des Ausgabepuffers 431-2 gestoppt wird, und senkt dadurch dessen Energieverbrauch. Dadurch gibt die Auswahleinrichtung 432-2 die verarbeiteten Pixeldaten, die im Arithmetikteil 433-2 um die Latenzzeit verzögert und vom Arithmetikteil 433-2 ausgegeben wurden, so als Ausgabedaten an das Bildverarbeitungsmodul 43-3 der nachfolgenden Stufe aus. Danach beginnt auch das Bildverarbeitungsmodul 43-2 mit der Bildverarbeitung an den verarbeiteten Pixeldaten, die der vom Bildverarbeitungsmodul 43-1 eingegebenen zweiten Zeileneinheit entsprechen.
  • Auf diese Weise übermittelt im Bildverarbeitungsteil 30 jedes Verarbeitungsmodul der zweiten Ausgestaltung sequenziell Eingabedaten, die eingegeben worden sind, an das Verarbeitungsmodul der an die Pipeline angeschlossenen nachfolgenden Stufe. Dabei werden deshalb, weil jedes Verarbeitungsmodul der zweiten Ausgestaltung in einem Zustand ist, in dem die Speicherkapazität des Ausgabepuffers 431, der im Verarbeitungsmodul selbst bereitgestellt ist, völlig frei ist und das Verarbeitungsmodul der nachfolgenden Stufe in einem Zustand ist, in dem es möglich ist, die Eingabedaten zu empfangen, die Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, so oder durch sofortiges Ausführen einer arithmetischen Operation zur Bildverarbeitung an den Eingabedaten an das Verarbeitungsmodul der nachfolgenden Stufe ausgegeben und nicht im Ausgabepuffer 431 zwischengespeichert. Was das Pufferschreiben und Pufferlesen jedes der Bildverarbeitungsmodule 43-1 und 43-2 anbelangt, so ist in 10 eine Periode, während der Eingabedaten nicht im Ausgabepuffer 431 zwischengespeichert werden, das heißt, eine Periode, während der Eingabedaten nach außen ausgegeben werden, ohne dabei den Ausgabepuffer 431 einzubeziehen, als Pufferumgehungsperiode dargestellt.
  • Des Weiteren führt der Bildverarbeitungsteil 30 die Steuerung derart durch, dass jegliches Verarbeitungsmodul der zweiten Ausgestaltung den Betrieb des Datenpuffers (des Ausgabepuffers 431), der im Verarbeitungsmodul selbst bereitgestellt ist, stoppt. Das heißt, der Bildverarbeitungsteil 30 stoppt in der Pufferumgehungsperiode in jedem Verarbeitungsmodul den Betrieb des Datenpuffers (des Ausgabepuffers 431). Dadurch kann der Bildverarbeitungsteil 30 den Energieverbrauch des Datenpuffers (des Ausgabepuffers 431), der in jedem Verarbeitungsmodul bereitgestellt ist, senken.
  • Hier wird ein Betrieb beschrieben, der auftritt, wenn das Bildverarbeitungsmodul 43-3 der nachfolgenden Stufe in einem Zustand ist, in dem es aus irgendeinem Grund nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, wenn das Bildverarbeitungsmodul 43-2 die der zweiten Zeileneinheit entsprechenden verarbeiteten Pixeldaten ausgibt. In diesem Fall zeigt das Bildverarbeitungsmodul 43-3 an, in einem Zustand zu sein, in dem es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, das heißt, es zeigt durch Setzen des Datenanforderungssignals, das an das Bildverarbeitungsmodul 33-2 auszugeben ist, auf den niedrigen Pegel („Low”) an, dass keine Ausgabe von Eingabedaten angefordert ist. Auch ist ein Verfahren, durch das jedes Verarbeitungsmodul der zweiten Ausgestaltung dem Verarbeitungsmodul der vorhergehenden Stufe meldet, dass die Ausgabe der Eingabedaten nicht angefordert ist, nicht auf das vorstehend beschriebene Verfahren, das auf dem Logikpegel des Datenanforderungssignals beruht, beschränkt, und es kann sich um ein Verfahren handeln, bei dem eine Meldung bereitgestellt wird, die anzeigt, dass jedes Verarbeitungsmodul in einem Zustand ist, in dem es nicht möglich ist, die Pixeldaten zu empfangen, nämlich indem das Pipeline-Stall-Signal ausgegeben wird.
  • Da zu diesem Zeitpunkt das Bildverarbeitungsmodul 43-2 in einem Zustand ist, in dem die Speicherkapazität des Ausgabepuffers 431-2 völlig frei ist (Zustand, in dem Speicherkapazität für zwei Zeileneinheiten frei ist), steuert der Steuerteil 434-2 den Ausgabepuffer 431-2 derart, dass die verarbeiteten Pixeldaten, die vom Arithmetikteil 433-2 erzeugt sind, der an den verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, die zurzeit vom Bildverarbeitungsmodul 43-1 der vorhergehenden Stufe eingegeben wird, eine arithmetische Operation zur Bildverarbeitung ausführt, zwischengespeichert werden. Dadurch speichert der Ausgabepuffer 431-2 die verarbeiteten Pixeldaten, die durch weiteres Ausführen einer arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, erzeugt sind, und ist in einem Zustand, in dem Speicherkapazität für eine Zeileneinheit frei ist (bleibt).
  • Ferner steuert im Bildverarbeitungsmodul 43-2 der Steuerteil 434-2 den Ausgabepuffer 431-2 derart, dass die verarbeiteten Pixeldaten, die vom Arithmetikteil 433-2 erzeugt sind, der eine arithmetische Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten ausführt, die der vierten Zeileneinheit entsprechen, die zurzeit vom Bildverarbeitungsmodul 33-1 der vorhergehenden Stufe eingegeben wird, zwischengespeichert werden. Dadurch speichert der Ausgabepuffer 431-2 auch die verarbeiteten Pixeldaten, die durch weiteres Ausführen einer arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, erzeugt sind, und ist in einem Zustand, in dem es keine freie Speicherkapazität gibt. Mit anderen Worten, das Bildverarbeitungsmodul 43-2 ist in einem Zustand, in dem es nicht möglich ist, die verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 43-1 zu empfangen. Um anzuzeigen, dass das Bildverarbeitungsmodul 43-2 in einem Zustand ist, in dem es nicht möglich ist, die verarbeiteten Pixeldaten zu empfangen, setzt also der Steuerteil 434-2 das Datenanforderungssignal, das an das Bildverarbeitungsmodul 43-1 auszugeben ist, auf den niedrigen Pegel („Low”).
  • Dadurch steuert im Bildverarbeitungsmodul 43-1 der Steuerteil 434-1, ähnlich wie der Steuerteil 434-2, der im Bildverarbeitungsmodul 43-2 bereitgestellt ist, den Ausgabepuffer 431-1 derart, dass die verarbeiteten Pixeldaten, die vom Arithmetikteil 433-1 erzeugt sind, der an Pixeldaten jeder von der fünften und sechsten Zeileneinheit, die vom Eingabe-DMA-Modul 32 eingegeben werden, eine arithmetische Operation zur Bildverarbeitung ausführt, zwischengespeichert werden. Dadurch speichert der Ausgabepuffer 431-1 die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den Pixeldaten jeder von der fünften und sechsten Zeileneinheit erzeugt sind, und das Bildverarbeitungsmodul 43-1 ist in einem Zustand, in dem es nicht möglich ist, die Pixeldaten aus dem Eingabe-DMA-Modul 32 zu empfangen. Dementsprechend setzt der Steuerteil 434-1, ähnlich wie der Steuerteil 434-2, ebenfalls das Datenanforderungssignal, das an das Eingabe-DMA-Modul 32 auszugeben ist, auf den niedrigen Pegel („Low”), um anzuzeigen, dass das Bildverarbeitungsmodul 43-1 in einem Zustand ist, in dem es nicht möglich ist, die Pixeldaten zu empfangen.
  • Dadurch schiebt das Eingabe-DMA-Modul 32 ein Auslesen der im DRAM 20 gespeicherten Pixeldaten einer siebten Zeileneinheit auf. Da das Eingabe-DMA-Modul 32 ebenfalls einen Datenpuffer mit einer Kapazität umfasst, in der Pixeldaten für zwei Zeileneinheiten gespeichert werden können, kann es Pixeldaten von jeder der siebten und achten Zeileneinheit auslesen, die ausgelesenen Pixeldaten im Datenpuffer zwischenspeichern und dann ein Auslesen von Pixeldaten einer neunten Zeileneinheit aufschieben.
  • Auf diese Weise stoppt im Bildverarbeitungsteil 30 jegliches Verarbeitungsmodul die Ausgabe der Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe, wenn das vom Verarbeitungsmodul der an die Pipeline angeschlossenen nachfolgenden Stufe eingegebene Datenanforderungssignal einen Zustand anzeigt, in dem es nicht möglich ist, Pixeldaten zu empfangen. Jedes Verarbeitungsmodul stellt eine Meldung bereit, die anzeigt, dass das Verarbeitungsmodul selbst in einem Zustand ist, in dem es nicht möglich ist, die Pixeldaten zu empfangen, nachdem es die verarbeiteten Pixeldaten in einer Menge, die der freien Speicherkapazität des im Verarbeitungsmodul selbst bereitgestellten Ausgabepuffers 431 entspricht, zwischengespeichert hat.
  • Außerdem führt im Bildverarbeitungsteil 30 jedes Verarbeitungsmodul der zweiten Ausgestaltung ein Verarbeiten jeder Verarbeitungseinheit aus. Dementsprechend wird, auch wenn der Bildverarbeitungsteil 30 eine Meldung bereitstellt, die einen Zustand anzeigt, in dem es nicht möglich ist, die Pixeldaten zu empfangen, während jedes Verarbeitungsmodul die Pixeldaten einer Verarbeitungseinheit an das Verarbeitungsmodul der nachfolgenden Stufe ausgibt, eine Ausgabe der Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe gestoppt, nachdem alle Pixeldaten einer Verarbeitungseinheit, die gerade ausgegeben wird, ausgegeben worden sind.
  • Als Nächstes wird ein Betrieb beschrieben, der auftritt, wenn das Bildverarbeitungsmodul 43-3 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen. In diesem Fall zeigt das Bildverarbeitungsmodul 43-3 an, in einem Zustand zu sein, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, das heißt, es zeigt durch Setzen des Datenanforderungssignals, das an das Bildverarbeitungsmodul 43-2 auszugeben ist, auf den hohen Pegel („High”), an, dass eine Ausgabe von Eingabedaten angefordert ist. Auch ist ein Verfahren, durch das jedes Verarbeitungsmodul der zweiten Ausgestaltung dem Verarbeitungsmodul der vorhergehenden Stufe meldet, dass die Ausgabe der Eingabedaten wieder angefordert wird, nicht auf das vorstehend beschriebene Verfahren, das auf dem Logikpegel des Datenanforderungssignals beruht, beschränkt, und es kann sich um ein Verfahren zum Bereitstellen einer Meldung handeln, bei dem durch Stoppen der Ausgabe des Pipeline-Stall-Signals angezeigt wird, dass jedes Verarbeitungsmodul in einem Zustand ist, in dem es möglich ist, die Pixeldaten zu empfangen.
  • Zu diesem Zeitpunkt ist das Bildverarbeitungsmodul 43-2 in einem Zustand, in dem es im Ausgabepuffer 431-2 keine freie Speicherkapazität gibt (Zustand, in dem die verarbeiteten Pixeldaten, die vom Arithmetikteil 433-2 erzeugt sind, der an den verarbeiteten Pixeldaten, die der dritten und vierten Zeileneinheit entsprechen, eine arithmetische Operation zur Bildverarbeitung ausführt, zwischengespeichert sind). Demzufolge steuert der Steuerteil 434-2 den Ausgabepuffer 431-2 und die Auswahleinrichtung 432-2 derart, dass die verarbeiteten Pixeldaten, die durch weiteres Ausführen der arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, erzeugt sind und im Ausgabepuffer 431-2 gespeichert sind, zuerst aus dem Ausgabepuffer 431-2 ausgelesen und nach außen ausgegeben werden. Dadurch gibt der Ausgabepuffer 431-2 die verarbeiteten Pixeldaten, die durch weiteres Ausführen der arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der gespeicherten dritten Zeileneinheit entsprechen, erzeugt sind, an die Auswahleinrichtung 432-2 aus, und die Auswahleinrichtung 432-2 gibt die verarbeiteten Pixeldaten, die durch weiteres Ausführen der arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, die vom Ausgabepuffer 431-2 eingegeben wird, erzeugt sind, als Ausgabedaten nach außen aus. Da außerdem die verarbeiteten Pixeldaten, die vom Bildverarbeitungsmodul 43-2 im Ausgabepuffer 431-2 gespeichert werden, die verarbeiteten Pixeldaten sind, die durch vorheriges Ausführen der arithmetischen Operation zur Bildverarbeitung im Arithmetikteil 433-2 erzeugt sind, können die verarbeiteten Pixeldaten an das Bildverarbeitungsmodul 43-3 der nachfolgenden Stufe ausgegeben werden, ohne durch eine Latenzzeit im Arithmetikteil 433-2 verzögert zu werden.
  • Außerdem gibt der Ausgabepuffer 431-2 die verarbeiteten Pixeldaten, die durch weiteres Ausführen der arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der dritten Zeileneinheit entsprechen, erzeugt sind, aus, sodass ein Zustand vorliegt, in dem die Speicherkapazität für eine Zeileneinheit frei ist (bleibt). Das heißt, das Bildverarbeitungsmodul 43-2 ist in einem Zustand, in dem es möglich ist, die verarbeiteten Pixeldaten vom Bildverarbeitungsmodul 43-1 zu empfangen. Um anzuzeigen, dass das Bildverarbeitungsmodul 43-2 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, setzt also der Steuerteil 434-2 das Datenanforderungssignal, das an das Bildverarbeitungsmodul 43-1 auszugeben ist, auf den hohen Pegel („High”).
  • Ferner gibt es im Bildverarbeitungsmodul 43-2 freie Speicherkapazität im Ausgabepuffer 431-2, jedoch sind die verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, zwischengespeichert. Demzufolge steuert der Steuerteil 434-2 den Ausgabepuffer 431-2 und die Auswahleinrichtung 432-2 derart, dass die verarbeiteten Pixeldaten, die durch weiteres Ausführen der arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der vierten Zeileneinheit entsprechen, erzeugt sind und im Ausgabepuffer 431-2 gespeichert sind, aus dem Ausgabepuffer 431-2 ausgelesen und nach außen ausgegeben werden. Dadurch gibt der Ausgabepuffer 431-2 die verarbeiteten Pixeldaten, die durch weiteres Ausführen der arithmetischen Operation zur Bildverarbeitung an den verarbeiteten Pixeldaten, die der gespeicherten vierten Zeileneinheit entsprechen, erzeugt sind, als Ausgabedaten an das Bildverarbeitungsmodul 43-3 aus.
  • Außerdem gibt im Bildverarbeitungsmodul 43-1 dann, wenn das vom Bildverarbeitungsmodul 43-2 der nachfolgenden Stufe eingegebene Datenanforderungssignal den hohen Pegel („High”) aufweist und eine Meldung bereitgestellt ist, die angibt, dass das Bildverarbeitungsmodul 43-2 in einem Zustand ist, in dem es möglich ist, die verarbeiteten Pixeldaten zu empfangen, der Steuerteil 434-1, wie der im Bildverarbeitungsmodul 43-2 bereitgestellte Steuerteil 434-2, die verarbeiteten Pixeldaten, die der fünften und der sechsten Zeileneinheit entsprechen, an das Bildverarbeitungsmodul 43-2 aus. Genauer gesagt, der Steuerteil 434-1 steuert den Ausgabepuffer 431-2 und die Auswahleinrichtung 432-2 derart, dass die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den Pixeldaten jeder von der fünften und sechsten Zeileneinheit erzeugt und im Ausgabepuffer 431-1 gespeichert sind, sequenziell ausgelesen und nach außen ausgegeben werden. Dadurch gibt der Ausgabepuffer 431-1 die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den Pixeldaten der gespeicherten fünften und sechsten Zeileneinheit erzeugt sind, als Ausgabedaten an das Bildverarbeitungsmodul 43-2 der nachfolgenden Stufe aus. Da außerdem die verarbeiteten Pixeldaten, die vom Bildverarbeitungsmodul 43-1 im Ausgabepuffer 431-1 gespeichert werden, die verarbeiteten Pixeldaten sind, die durch vorheriges Ausführen der arithmetischen Operation zur Bildverarbeitung im Arithmetikteil 433-1 erzeugt sind, können die verarbeiteten Pixeldaten an das Bildverarbeitungsmodul 43-2 der nachfolgenden Stufe ausgegeben werden, ohne durch eine Latenzzeit im Arithmetikteil 433-1 verzögert zu werden.
  • Außerdem ist nach der Ausgabe der verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den Pixeldaten der fünften Zeileneinheit erzeugt sind, der Ausgabepuffer 431-1 in einem Zustand, in dem die Speicherkapazität für eine Zeileneinheit frei ist (bleibt), und das Bildverarbeitungsmodul 43-1 ist in einem Zustand, in dem es möglich ist, Pixeldaten aus dem Eingabe-DMA-Modul 32 zu empfangen. Dementsprechend setzt der Steuerteil 434-1, ähnlich wie der Steuerteil 434-2, das Datenanforderungssignal, das an das Eingabe-DMA-Modul 32 auszugeben ist, auf den hohen Pegel („High”), um anzuzeigen, dass das Bildverarbeitungsmodul 43-1 in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen.
  • Dadurch nimmt das Eingabe-DMA-Modul 32 das Auslesen der Pixeldaten aus der siebten Zeileneinheit, die im DRAM 20 gespeichert ist, wieder auf und gibt die ausgelesenen Pixeldaten an das Bildverarbeitungsmodul 43-1 aus. Wenn das Eingabe-DMA-Modul 32 die Pixeldaten jeder von der siebten und achten Zeileneinheit im Datenpuffer speichert, wenn das Auslesen der im DRAM 20 gespeicherten Pixeldaten aufgeschoben wird, kann das Auslesen der Pixeldaten aus der neunten Zeileneinheit wieder aufgenommen werden, nachdem die Pixeldaten der siebten Zeileneinheit, die im Datenpuffer gespeichert sind, an das Bildverarbeitungsmodul 43-1 ausgegeben worden sind.
  • Auf diese Weise nimmt im Bildverarbeitungsteil 30, wenn das vom Verarbeitungsmodul der an die Pipeline angeschlossenen nachfolgenden Stufe eingegebene Datenanforderungssignal in einen Zustand wechselt, in dem es wieder möglich ist, Pixeldaten zu empfangen, jedes Verarbeitungsmodul der zweiten Ausgestaltung die Ausgabe der Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe wieder auf. Dabei gibt jedes Verarbeitungsmodul der zweiten Ausgestaltung von den Pixeldaten, die in dem im Verarbeitungsmodul selbst bereitgestellten Ausgabepuffer 431 gespeichert sind, sequenziell an das Verarbeitungsmodul der nachfolgenden Stufe aus. Jedes Verarbeitungsmodul der zweiten Ausgestaltung stellt eine Meldung bereit, die anzeigt, dass das Verarbeitungsmodul selbst in einem Zustand ist, in dem es möglich ist, Pixeldaten zu empfangen, sobald in dem im Verarbeitungsmodul selbst bereitgestellten Ausgabepuffer 431 Speicherkapazität frei wird. Danach speichert jedes Verarbeitungsmodul der zweiten Ausgestaltung die verarbeiteten Pixeldaten, die durch Ausführen einer arithmetischen Operation zur Bildverarbeitung an den eingegebenen Pixeldaten im Arithmetikteil 433, der im Verarbeitungsmodul selbst bereitgestellt ist, erzeugt sind, im Ausgabepuffer 431, der im Verarbeitungsmodul selbst bereitgestellt ist, zwischen, liest die gespeicherten/die verarbeiteten Pixeldaten aus und gibt die ausgelesenen/die verarbeiteten Pixeldaten an das Verarbeitungsmodul der nachfolgenden Stufe aus.
  • Danach führt der Bildverarbeitungsteil 30 durch Wiederholen der vorstehend beschriebenen Operation eine Reihe von Bildverarbeitungen an Block-Bilddaten aus, indem er die Pipeline-Verarbeitung an Pixeldaten, die in den Block-Bilddaten enthalten sind, sequenziell ausführt, und zwar für jede Zeileneinheit in jedem Verarbeitungsmodul der zweiten Ausgestaltung, das an die Pipeline angeschlossen ist.
  • Obwohl dies in dem in 10 gezeigten Beispiel für das Zeitdiagramm des Betriebs des Bildverarbeitungsmoduls 43 nicht dargestellt ist, wird, wenn ein Zustand erreicht ist, in dem es möglich ist, die verarbeiteten Pixeldaten, die durch Ausführen einer arithmetischen Operation zur Bildverarbeitung an Eingabedaten erzeugt sind, so an das Verarbeitungsmodul der nachfolgenden Stufe auszugeben, ohne den Ausgabepuffer 431 erneut einzubeziehen, nachdem der Bildverarbeitungsteil 30 die Ausgabe der Ausgabedaten an das Verarbeitungsmodul der nachfolgenden Stufe durch jedes Verarbeitungsmodul der zweiten Ausgestaltung wieder aufgenommen hat, die Steuerung derart durchgeführt, dass der Betrieb des Ausgabepuffers 431 gestoppt wird, wie beim ersten Schritt des Startens der in 10 gezeigten Pipeline-Verarbeitung. Dadurch kann der Bildverarbeitungsteil 30 den Energieverbrauch des Ausgabepuffers 431, der in jedem Verarbeitungsmodul der zweiten Ausgestaltung bereitgestellt ist, senken.
  • Wie vorstehend beschrieben fordert das Bildverarbeitungsmodul 43 der zweiten Ausgestaltung das Verarbeitungsmodul, das mit der in der Pipeline-Konfiguration vorhergehenden Stufe in Verbindung steht, auf der Grundlage des Zustandes freier Speicherkapazität im Ausgabepuffer 431 auf, Eingabedaten bereitzustellen, und steuert das Zwischenspeichern (Schreiben) der verarbeiteten Pixeldaten in den Ausgabepuffer 431, nachdem an den Eingabedaten (Pixeldaten), die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben wurden, die arithmetische Operation zur Bildverarbeitung ausgeführt worden ist. Außerdem steuert das Bildverarbeitungsmodul 43 der zweiten Ausgestaltung auf der Grundlage des Zustandes freier Speicherkapazität im Ausgabepuffer 431 und des Betriebszustandes des Verarbeitungsmoduls, das mit der in der Pipeline-Konfiguration nachfolgenden Stufe in Verbindung steht, ein Auslesen der im Ausgabepuffer 431 zwischengespeicherten verarbeiteten Pixeldaten und eine Auswahl (durch Umschalten) der verarbeiteten Pixeldaten, die an das Verarbeitungsmodul der nachfolgenden Stufe auszugeben sind. Dadurch kann im Bildverarbeitungsmodul 43 der zweiten Ausgestaltung die Steuerung derart durchgeführt werden, dass die verarbeiteten Pixeldaten, nachdem der Arithmetikteil 433 die arithmetische Operation zur Bildverarbeitung an den vom Verarbeitungsmodul der vorhergehenden Stufe eingegebenen Eingabedaten ausgeführt hat, den Ausgabepuffer 431 umgehen und an das Verarbeitungsmodul der nachfolgenden Stufe ausgegeben werden, wenn das Verarbeitungsmodul der nachfolgenden Stufe nicht im Pipeline-Stall-Zustand ist und die gesamte Speicherkapazität des Ausgabepuffers 431 frei ist. Außerdem werden im Bildverarbeitungsmodul 43 der zweiten Ausgestaltung die verarbeiteten Pixeldaten, nachdem der Arithmetikteil 433 die arithmetische Operation zur Bildverarbeitung an den vom Verarbeitungsmodul der vorhergehenden Stufe eingegebenen Eingabedaten ausgeführt hat, unter Umgehung des Ausgabepuffers 431 an das Verarbeitungsmodul der nachfolgenden Stufe ausgegeben, sodass es zu diesem Zeitpunkt möglich ist, durch Stoppen des Betriebs des Ausgabepuffers 431 dessen Energieverbrauch zu senken. Dadurch ist es möglich, sogar im Bildverarbeitungsteil 30, der die Pipeline bildet, im Bildverarbeitungsmodul 43 der zweiten Ausgestaltung eine gewünschte Bildverarbeitung auszuführen, auch wenn ein Schreiben von Daten in den Datenpuffer und ein Auslesen von Daten aus dem Datenpuffer nicht zwangsläufig erfolgen, wie wenn die Pipeline im herkömmlichen Verarbeitungsmodul konfiguriert ist, und es ist möglich, den Energieverbrauch bei der Pipeline-Verarbeitung zu senken, ohne die Leistungsfähigkeit der Pipeline-Verarbeitung zu verschlechtern.
  • Auch können die Ausgestaltung, der Bestimmungsvorgang und der Betrieb des Steuerteils 434, der im Bildverarbeitungsmodul 43 bereitgestellt ist, als der Ausgestaltung, dem Bestimmungsvorgang und dem Betrieb des Bildverarbeitungsmoduls 33 der in 5 bis 7 gezeigten ersten Ausgestaltung ähnlich angesehen werden. Von daher entfällt eine ausführliche Beschreibung der Ausgestaltung, der Bestimmungsverarbeitung und des Betriebs des Steuerteils 434, der im Bildverarbeitungsmodul 43 bereitgestellt ist. Das Bildverarbeitungsmodul 43 der zweiten Ausgestaltung hat jedoch eine Konfiguration, in der der Arithmetikteil 433 zuerst eine arithmetische Operation zur Bildverarbeitung an den Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, ausführt. Folglich sind bei dem Bildverarbeitungsmodul 43 der zweiten Ausgestaltung der Zeitpunkt, zu dem der Arithmetikteil 433 die arithmetische Berechnung der Bildverarbeitung an den Eingabedaten ausführt, der Zeitpunkt, zu dem der Steuerteil 434 die Informationen über die Datenmenge im Puffer aktualisiert, der Zeitpunkt des Pufferschreibsignals, um dem Steuerteil 434 das Schreiben der verarbeiteten Pixeldaten in den Ausgabepuffer 431 freizugeben, und der Zeitpunkt des Datengültigkeitssignals, das vom Bildverarbeitungsmodul 43 an das Verarbeitungsmodul der nachfolgenden Stufe ausgegeben wird, von jenen des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung verschieden.
  • Genauer gesagt, der Arithmetikteil 433 führt die arithmetische Operation zur Bildverarbeitung an gültigen Pixeldaten aus, die durch das Datengültigkeitssignal, das in der vom Verarbeitungsmodul der vorhergehenden Stufe eingegebenen Zeileneinheit enthalten ist, angezeigt werden. Außerdem, wenn die Anzahl der Zeileneinheiten, die durch die Informationen über die Datenmenge im Puffer angezeigt wird, durch Inkrementieren der Anzahl der Zeileneinheiten um „1” aktualisiert wird, aktualisiert der Datenmengenmanagementteil, der im Steuerteil 434 bereitgestellt ist und dem Datenmengenmanagementteil 3341, der im Steuerteil 334 des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung entspricht, die Informationen über die Datenmenge im Puffer, wobei vorausgesetzt wird, dass das vom Arithmetikteil 433 ausgegebene Datengültigkeitssignal das Datengültigkeitssignal ist, das vom Verarbeitungsmodul der vorhergehenden Stufe im Bildverarbeitungsmodul 33 der ersten Ausgestaltung eingegeben wurde. Der Ausgabepuffer-Schreibmanagementteil, der im Steuerteil 434 bereitgestellt ist und dem Eingabepuffer-Schreibmanagementteil 3343, der im Steuerteil 334 des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung bereitgestellt ist, entspricht, erzeugt das Pufferschreibsignal zum Schreiben der verarbeiteten Pixeldaten in den Ausgabepuffer 431 auf der Grundlage der verarbeiteten Pixeldaten, die durch das vom Arithmetikteil 433 ausgegebene Datengültigkeitssignal als gültig angezeigt werden, und gibt das erzeugte Pufferschreibsignal an den Ausgabepuffer 431 aus. Außerdem wählt (schaltet) die Auswahleinrichtung 432 das Datengültigkeitssignal, das nach außen auszugeben ist, derart aus (durch), dass das Datengültigkeitssignal ausgegeben wird, das den ausgewählten (durchgeschalteten)/den verarbeiteten Pixeldaten entspricht. Das heißt, die Auswahleinrichtung 432 gibt das Datengültigkeitssignal aus, das vom Arithmetikteil 433 ausgegeben wird, wenn der Arithmetikteil 433 die verarbeiteten Pixeldaten, die der arithmetischen Operation zur Bildverarbeitung unterzogen wurden, nach außen ausgibt, und wählt (schaltet) das nach außen auszugebende Datengültigkeitssignal derart aus (durch), dass es entsprechend der zeitlichen Steuerung des Auslesens der verarbeiteten Pixeldaten aus dem Ausgabepuffer 431, wenn die verarbeiteten Pixeldaten im Ausgabepuffer 431-1 gespeichert sind, nach außen ausgegeben wird. Außerdem kann der Ausgabepuffer-Lesemanagementteil, der im Steuerteil 434 bereitgestellt ist und dem Eingabepuffer-Lesemanagementteil 3344, der im Steuerteil 334 des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung bereitgestellt ist, entspricht, das Datengültigkeitssignal entsprechend der zeitlichen Steuerung des Auslesens der verarbeiteten Pixeldaten aus dem Ausgabepuffer 431 erzeugen und das erzeugte Datengültigkeitssignal an die Auswahleinrichtung 432 ausgeben, oder die Auswahleinrichtung 432 kann das Datengültigkeitssignal auf der Grundlage des vom Steuerteil 434 an den Ausgabepuffer 431 ausgegebenen Datengültigkeitssignals erzeugen.
  • Beim Betrieb des Bildverarbeitungsmoduls 43 der zweiten Ausgestaltung, unter Bezugnahme auf 10 beschrieben, wird, nachdem die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung an den Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben wurden, erzeugt sind, derart gesteuert worden sind, dass die Ausgabe an das Verarbeitungsmodul der nachfolgenden Stufe ausgelesen wird, nachdem sie im Ausgabepuffer 431 zwischengespeichert worden ist, die Steuerung nicht aktiv durchgeführt, sodass die verarbeiteten Pixeldaten, die vom Arithmetikteil 433 erzeugt sind, wiederum unter Umgehung des Ausgabepuffers 431 nach außen ausgegeben werden. Das heißt, auch beim Betrieb des Bildverarbeitungsmoduls 43 der zweiten Ausgestaltung, in 10 gezeigt, hängt wie beim Betrieb des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung, in 4 und 7 gezeigt, die Steuerung für ein externes Ausgeben in der Art, dass die verarbeiteten Pixeldaten, die durch Ausführen der arithmetischen Operation zur Bildverarbeitung im Arithmetikteil 433 erzeugt sind, den Ausgabepuffer 431 umgehen, von den Betriebszuständen des Verarbeitungsmoduls der vorhergehenden Stufe und des Verarbeitungsmoduls der nachfolgenden Stufe ab. Jedoch kann auch im Bildverarbeitungsmodul 43 der zweiten Ausgestaltung, wie im Bildverarbeitungsmodul 33 der ersten Ausgestaltung, der Steuerteil 434 gezielt die Steuerung derart durchführen, dass ein Zustand der verarbeiteten Pixeldaten, die vom Arithmetikteil 433, der die arithmetische Operation zur Bildverarbeitung ausführt, erzeugt sind, den Ausgabepuffer 431 umgeht und nach außen ausgegeben wird. Der Betrieb zu diesem Zeitpunkt kann als dem in 8 gezeigten Betrieb des Bildverarbeitungsmoduls 33 der ersten Konfiguration ähnlich angesehen werden. Von daher entfällt eine ausführliche Beschreibung eines Betriebs, bei dem das Bildverarbeitungsmodul 43 gezielt die Steuerung derart durchführt, dass ein Zustand der verarbeiteten Pixeldaten, die vom Arithmetikteil 433 erzeugt sind, der die arithmetische Operation zur Bildverarbeitung ausführt, den Ausgabepuffer 431 umgeht und nach außen ausgegeben wird.
  • Wie vorstehend beschrieben, fordert in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform jedes der Verarbeitungsmodule, die die Pipeline bilden, die im Bildverarbeitungsteil 30 bereitgestellt ist, das Verarbeitungsmodul, das mit der vorhergehenden Stufe in Verbindung steht, zur Eingabe von Daten auf und steuert das Zwischenspeichern (Schreiben) von Daten in den Datenpuffer auf der Grundlage eines Zustandes freier Speicherkapazität in dem Datenpuffer, der in jedem Verarbeitungsmodul bereitgestellt ist. Außerdem steuert in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform jedes Verarbeitungsmodul, das im Bildverarbeitungsteil 30 bereitgestellt ist, ein Auslesen der im Datenpuffer zwischengespeicherten Daten und eine Auswahl (durch Umschalten) der Ausgabedaten, die nach außen auszugeben sind, auf der Grundlage des Zustandes freier Speicherkapazität in dem Datenpuffer, der in jedem Verarbeitungsmodul bereitgestellt ist, und des Betriebszustandes des mit der nachfolgenden Stufe in Verbindung stehenden Verarbeitungsmoduls. Wenn zu diesem Zeitpunkt das Verarbeitungsmodul der nachfolgenden Stufe nicht im Pipeline-Stall-Zustand, sondern in einem Zustand ist, in dem die Speicherkapazität des Datenpuffers völlig frei ist, führt jedes Verarbeitungsmodul die Steuerung derart durch, dass die Daten den Datenpuffer umgehen, und stoppt den Betrieb des Datenpuffers. Dadurch ist es möglich, den Energieverbrauch des Datenpuffers in jedem Verarbeitungsmodul zu senken. Zu diesem Zeitpunkt kann der Bildverarbeitungsteil 30 das Verarbeitungsmodul, das die Steuerung derart durchführt, dass die Daten den Datenpuffer umgehen, und das Verarbeitungsmodul der darauffolgenden Stufe als ein einziges Verarbeitungsmodul ansehen. Andererseits, wenn das Verarbeitungsmodul der nachfolgenden Stufe im Pipeline-Stall-Zustand ist, führt jedes Verarbeitungsmodul die Steuerung derart durch, dass die Daten den Datenpuffer nicht umgehen. Dadurch ist es möglich zu verhindern, das jegliches Verarbeitungsmodul im Pipeline-Stall-Zustand ist. Infolgedessen ist es möglich, bei der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform den Energieverbrauch bei der Pipeline-Verarbeitung zu senken, ohne ihre Leistungsfähigkeit zu verschlechtern, wenn von jedem Verarbeitungsmodul, das im Bildverarbeitungsteil 30 bereitgestellt ist, die gewünschte Bildverarbeitung entsprechend der Pipeline-Verarbeitung ausgeführt wird.
  • Bei der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform ist eine Ausgestaltung beschrieben worden, bei der jedes der Verarbeitungsmodule, die die Pipeline bilden, die im Bildverarbeitungsteil 30 bereitgestellt ist, auf der Grundlage des Betriebszustandes eines unmittelbar nachfolgenden Verarbeitungsmoduls in der Pipeline-Konfiguration bestimmt, ob zu veranlassen ist, dass die Daten den in jedem Verarbeitungsmodul bereitgestellten Datenpuffer umgehen. Die Entscheidung, ob in jeglichem Verarbeitungsmodul zu veranlassen ist, dass die Daten den Datenpuffer umgehen, ist jedoch nicht auf eine Ausgestaltung beschränkt, bei der, wie bei der ersten Ausführungsform beschrieben, eine Bestimmung unter Beachtung des Betriebszustandes des unmittelbar nachfolgenden Verarbeitungsmoduls erfolgt. Beispielweise kann jedes Verarbeitungsmodul eine Ausgestaltung aufweisen, bei der auf der Grundlage der Betriebszustände mehrerer Verarbeitungsmodule der in der Pipeline-Konfiguration nachfolgenden Stufen oder aller Verarbeitungsmodule der nachfolgenden Stufen bestimmt wird, ob zu veranlassen ist, dass die Daten den in jedem Verarbeitungsmodul bereitgestellten Datenpuffer umgehen. Genauer gesagt, es kann eine Ausgestaltung angenommen werden, bei der auf der Grundlage eines Ergebnisses einer UND-Verknüpfung der Pipeline-Stall-Signale, die von den mehreren Verarbeitungsmodulen der nachfolgenden Stufen ausgegeben werden, bestimmt wird, ob zu veranlassen ist, dass die Daten den Datenpuffer umgehen. In diesem Fall kann jegliches Verarbeitungsmodul anhand eines Pipeline-Stall-Signals, das eingegeben wird, durch Ausführen der UND-Verknüpfung bestimmen, ob zu veranlassen ist, dass die Daten den Datenpuffer umgehen. Das heißt, jedes Verarbeitungsmodul kann bestimmen, ob zu veranlassen ist, dass die Daten den Datenpuffer umgehen, wenn keines der Verarbeitungsmodule der nachfolgenden Stufen, die die UND-Verknüpfung der Pipeline-Stall-Signale vornehmen, im Pipeline-Stall-Zustand ist. Wenn jedes Verarbeitungsmodul außerdem Informationen darüber, ob es in dem Datenpuffer, der im Verarbeitungsmodul der nachfolgenden Stufe bereitgestellt ist, freie Speicherkapazität gibt, als Zustandsmeldesignal erhalten kann, ist es möglich zu bestimmen, ob zu veranlassen ist, dass die Daten den Datenpuffer umgehen, wobei die Speicherkapazität des im Verarbeitungsmodul der nachfolgenden Stufe bereitgestellten Datenpuffers als Teil der Speicherkapazität des im Verarbeitungsmodul selbst bereitgestellten Datenpuffers angesehen wird.
  • Bei der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform, beispielsweise, ist ein Verfahren zum Anfordern der Eingabedaten vom Verarbeitungsmodul der vorhergehenden Stufe, wie in 7 gezeigt, nachdem jedes Verarbeitungsmodul alle im Datenpuffer zwischengespeicherten Daten ausgelesen hat, als Verfahren zur aktiven Durchführung der Steuerung, derart, dass die Daten den Datenpuffer wieder umgehen, nachdem die Steuerung derart durchgeführt worden ist, dass die Daten den Datenpuffer nicht umgehen, gezeigt. In jeglichem Verarbeitungsmodul ist jedoch das Verfahren zum aktiven Durchführen der Steuerung in der Weise, dass die Daten den Datenpuffer umgehen, nicht auf das in der ersten Ausführungsform beschriebene Verfahren beschränkt. Wenn beispielsweise eine vorgegebene Zeit lang oder länger kontinuierlich Eingabedatenanforderungen von mehreren Verarbeitungsmodulen nachfolgender Stufen ausgegeben werden, kann jedes Verarbeitungsmodul die Steuerung derart durchführen, dass die Daten den Datenpuffer umgehen.
  • In der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bestimmt jedes der Verarbeitungsmodule, die die Pipeline bilden, die im Bildverarbeitungsteil 30 bereitgestellt ist, ob zu veranlassen ist, dass die Daten den Datenpuffer umgehen, d. h. es bestimmt anhand des Pipeline-Stall-Zustandes beim Verarbeitungsmodul der nachfolgenden Stufe, ob zu veranlassen ist, dass die Daten den Datenpuffer umgehen. Bei Betrachtung der gesamten Bildverarbeitungsvorrichtung 1 wird jedoch eine Verzögerung des Flusses (Busverkehrs) der Daten auf dem DMA-Bus 10 ebenfalls als Ursache dafür angesehen, dass die Pipeline-Verarbeitung im Bildverarbeitungsteil 30 in den Pipeline-Stall-Zustand gerät. Denn eine Vielzahl von Bestandteilelementen, die in der Bildverarbeitungsvorrichtung 1 an den DMA-Bus 10 angeschlossen sind, tauschen bei einer Ausführung eines Prozesses Daten mit dem DRAM 20 via den DMA-Bus 10 aus. Demnach ist es wünschenswert, den Busverkehr auf dem DMA-Bus 10 derart zu berücksichtigen, dass die Leistungsfähigkeit der Pipeline-Verarbeitung im Bildverarbeitungsteil 30 nicht verschlechtert wird.
  • (Zweite Ausführungsform)
  • Als Nächstes wird eine Bildverarbeitungsvorrichtung der zweiten Ausführungsform der vorliegenden Erfindung beschrieben. 11 ist ein Blockdiagramm, das schematisch eine Ausgestaltung der Bildverarbeitungsvorrichtung in der zweiten Ausführungsform der vorliegenden Erfindung zeigt. Eine Bildverarbeitungsvorrichtung 2, in 11 gezeigt, umfasst den DMA-Bus 10, das DRAM 20, einen Bildverarbeitungsteil 50, einen Sensorschnittstellen-(I/F-)Teil 60, einen Videoschnittstellen-(I/F-)Teil 70, einen Speicherkartenschnittstellen-(I/F-)Teil 80 und eine CPU (Zentraleinheit) 90. Der Bildverarbeitungsteil 50 umfasst ferner den Verbindungsumschaltteil 31, das Eingabe-DMA-Modul 32, drei Bildverarbeitungsmodule 33-1 bis 33-3, das Ausgabe-DMA-Modul 34 und einen Busverkehr-Überwachungsteil 55. Ähnlich wie die Bildverarbeitungsvorrichtung 1 ist auch die Bildverarbeitungsvorrichtung 2 in einer Bildgebungsvorrichtung, wie beispielsweise einer Standbildkamera, bereitgestellt.
  • Die Bestandteilelemente der Bildverarbeitungsvorrichtung 2 umfassen Bestandteilelemente, die jenen ähnlich sind, die bei der in 1 gezeigten Bildverarbeitungsvorrichtung 1 der ersten Ausführungsformen gezeigt sind. Dementsprechend sind in der folgenden Beschreibung Bestandteilelemente der Bildverarbeitungsvorrichtung 2, denen die gleichen Bezugszeichen wie jenen zugeordnet sind, die als Bestandteilelemente der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bereitgestellt sind, diesen ähnlich und eine ausführliche Beschreibung jedes Bestandteilelements entfällt.
  • Der Sensorschnittstellenteil 60 ist ein Bildverarbeitungsteil, der an den DMA-Bus 10 angeschlossen ist und eine Halbleiter-Bildgebungsvorrichtung (einen Bildsensor) steuert, die eine fotoelektrische Wandlung einer optischen Abbildung von einem Objekt, die durch eine in der Bildgebungsvorrichtung bereitgestellte Optik geformt wird, durchführt. Der Sensorschnittstellenteil 60 bewirkt, dass das DRAM 20 Daten des Standbildes/jedes Rahmens, das/der vom Bildsensor aufgenommen wird, via den DMA-Bus 10 speichert. In der Bildverarbeitungsvorrichtung 2 werden die Daten eines Standbildes/eines Rahmens, die im DRAM 20 gespeichert werden, vom Sensorschnittstellenteil 60 in eine Vielzahl vorgegebener kleiner Blöcke unterteilt, und der Bildverarbeitungsteil 50 führt an jedem Block eine Bildverarbeitung aus.
  • Der Videoschnittstellenteil 70 ist ein Anzeigeverarbeitungsteil, der an den DMA-Bus 10 angeschlossen ist und bewirkt, dass Daten eines Anzeigebildes, die im DRAM 20 gespeichert sind, an einer in der Bildgebungsvorrichtung bereitgestellten Anzeigeeinheit (nicht gezeigt) angezeigt werden, indem im Bildverarbeitungsteil 50 eine Bildverarbeitung ausgeführt wird. Der Videoschnittstellenteil 70 liest die Daten des Anzeigebildes via den DMA-Bus 10 aus dem DRAM 20 aus und bewirkt, dass die Anzeigeeinheit die ausgelesenen Daten des Anzeigebildes zur Anzeige bringt.
  • Der Speicherkartenschnittstellenteil 80 ist ein Aufzeichnungsverarbeitungsteil, der an den DMA-Bus 10 angeschlossen ist und für ein Aufzeichnen bestimmte Bilddaten, die im DRAM 20 gespeichert sind, durch Ausführen einer Bildverarbeitung im Bildverarbeitungsteil 50 auf einem Speichermedium, wie etwa einer Speicherkarte, die an eine Anordnung angeschlossen ist, die von der Bildgebungsvorrichtung gelöst werden kann, aufzeichnet. Der Speicherkartenschnittstellenteil 80 liest die Bilddaten zum Aufzeichnen aus dem DRAM 20 via den DMA-Bus 10 aus und speichert die zum Speichern bestimmten ausgelesenen Bilddaten auf dem Aufzeichnungsmedium.
  • Die CPU 90 ist ein Systemsteuerteil, der an den DMA-Bus 10 angeschlossen ist und die Bestandteilelemente, die in der Bildverarbeitungsvorrichtung 2 enthalten sind, sowie die Bestandteilelemente, die in der Bildgebungsvorrichtung bereitgestellt sind, steuert. Die CPU 90 liest Programme und Daten zum Steuern der Bestandteilelemente via den DMA-Bus 10 aus und steuert die gesamte Bildgebungsvorrichtung entsprechend den ausgelesenen Programmen und Daten.
  • Wenn in der folgenden Beschreibung der Sensorschnittstellenteil 60, der Videoschnittstellenteil 70, der Speicherkartenschnittstellenteil 80 und die CPU 90, die an den DMA-Bus 10 angeschlossen sind und via den DMA-Bus 10 auf das DRAM 20 zugreifen, ohne Unterscheidung angegeben werden, sind sie als „Bus-Master” bezeichnet.
  • Ähnlich wie der Bildverarbeitungsteil 30, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bereitgestellt ist, unterteilt der Bildverarbeitungsteil 50 die Daten eines Standbildes/eines Rahmens, die im DRAM 20 gespeichert sind, in eine Vielzahl vorgegebener kleiner Blöcke und führt an jedem Block eine Bildverarbeitung aus. Der Bildverarbeitungsteil 50 ist ebenfalls ein Bus-Master, der an den DMA-Bus 10 angeschlossen ist. Wie in 11 gezeigt, führt in der Bildverarbeitungsvorrichtung 2 der Bildverarbeitungsteil 50 sequenziell eine Bildverarbeitung, einer Pipeline-Verarbeitung entsprechend, aus, wobei das Eingabe-DMA-Modul 32, das Bildverarbeitungsmodul 33-1, das Bildverarbeitungsmodul 33-2, das Bildverarbeitungsmodul 33-3 und das Ausgabe-DMA-Modul 34 in Reihe zusammengeschaltet sind.
  • Außerdem umfasst der Bildverarbeitungsteil 50 auch Bestandteilelemente, die den Bestandteilelementen des Bildverarbeitungsteils 30, der in der in 1 gezeigten Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bereitgestellt ist, ähnlich sind. Dementsprechend werden in der folgenden Beschreibung nur Unterschiede der Bestandteilelemente des Bildverarbeitungsteils 50 zu den Bestandteilelementen des Bildverarbeitungsteil 30, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bereitgestellt ist, beschrieben, und den Bestandteilelementen, die jenen des Bildverarbeitungsteil 30, der in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bereitgestellt ist, ähnlich sind, sind die gleichen Bezugszeichen zugeordnet, und eine ausführliche Beschreibung davon entfällt.
  • Der Verbindungsumschaltteil 31 führt entsprechend der Steuerung durch die CPU 90 ein Umschalten einer Verbindung zwischen im Bildverarbeitungsteil 50 bereitgestellten Verarbeitungsmodulen aus.
  • Der Busverkehr-Überwachungsteil 55 im Bildverarbeitungsteil 50 überwacht den Busverkehr des DMA-Busses 10 durch Überwachen des Zugriffs auf das DRAM 20 durch jeden Bus-Master, der an den DMA-Bus 10 angeschlossen ist. Außerdem gibt der Busverkehr-Überwachungsteil 55 auf der Grundlage des überwachten Busverkehrs des DMA-Busses 10 ein Anweisungssignal (im Folgenden als „Puffer-Umgehen-Anweisungssignal” bezeichnet) zum Erteilen einer Anweisung zum Ausgeben von Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 an jedes Bildverarbeitungsmodul 33 aus.
  • Genauer gesagt, der Busverkehr-Überwachungsteil 55 überwacht ein DMA-Steuersignal, wenn jeder Bus-Master, der an den DMA-Bus 10 angeschlossen ist, eine Übermittlung (Auslesen und Schreiben) von Daten aus dem bzw. in das DRAM 20 via den DMA-Bus 10 durchführt. Dieses DMA-Steuersignal ist beispielsweise ein DMA-Anforderungssignal, das ausgegeben wird, wenn jeglicher Bus-Master den Zugriff auf das DRAM 20 mittels DMA anfordert, ein DMA-Quittungssignal, das an den Bus-Master auszugeben ist und eine Zugriffsanforderung über einen Buszuteiler (nicht gezeigt) zum Zuteilen des Zugriffs jeglichen Bus-Masters auf das DRAM 20 mittels DMA genehmigt, o. ä. Der Busverkehr-Überwachungsteil 55 gibt das Puffer-Umgehen-Anweisungssignal zum Erteilen einer Anweisung zum Ausgeben der Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 aus, wenn auf der Grundlage des überwachten Busverkehrs des DMA-Busses 10 bestimmt wird, dass die Menge der Daten, die über den Datenbus 10 fließt, gering ist.
  • Wenn der überwachte Busverkehr des DMA-Busses 10 eine vorgegebene Bedingung erfüllt, bestimmt zudem der Busverkehr-Überwachungsteil 55, dass die Menge der Daten, die über den DMA-Bus 10 fließt, gering ist. Bei der Bedingung, anhand der der Busverkehr-Überwachungsteil 55 bestimmt, dass die Menge der Daten, die über den DMA-Bus 10 fließt, gering ist, handelt es sich beispielsweise um ein Intervall des DMA-Anforderungssignals, das vom Bus-Master ausgegeben wird, oder darum, ob das DMA-Anforderungssignal vom Bus-Master ausgegeben wird. Genauer gesagt, der Busverkehr-Überwachungsteil 55 bestimmt, dass die Menge der Daten, die über den DMA-Bus 10 fließt, gering ist, wenn das Intervall des DMA-Anforderungssignals von jedem Bus-Master, d. h. ein Intervall, in dem jeder Bus-Master via den DMA-Bus 10 auf das DRAM 20 zugreift, länger als ein vorgegebener Intervall-Schwellenwert ist. Außerdem bestimmt der Busverkehr-Überwachungsteil 55, dass die Menge der Daten, die über den DMA-Bus 10 fließt, gering ist, wenn eine Periode, während der keiner der Bus-Master mittels DMA Zugriff auf das DRAM 20 hat, länger als der vorgegebene Intervall-Schwellenwert ist.
  • Jedes der Bildverarbeitungsmodule 33 ist ein Verarbeitungsmodul mit einer Ausgestaltung, die jener des Bildverarbeitungsmoduls 33 ähnlich ist, das im Bildverarbeitungsteil 30 in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bereitgestellt ist. Gemäß dem Puffer-Umgehen-Anweisungssignal, das vom Busverkehr-Überwachungsteil 55 ausgegeben wird, trifft die Bildverarbeitungsvorrichtung 2 jedoch eine Auswahl (durch Umschalten) zwischen einer Ausgabe der Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 und einer Ausgabe der Eingabedaten an den Arithmetikteil 333, nachdem sie im Eingabepuffer 331 zwischengespeichert worden sind. Bei der Ausgestaltung des in 5 gezeigten Bildverarbeitungsmoduls 33 kann durch Eingeben des Puffer-Umgehen-Anweisungssignals, das vom Busverkehr-Überwachungsteil 55 ausgegeben wird, statt des Pipeline-Stall-Signals, das vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird, der Puffer-Umgehen-Bestimmungsteil 3342 eine Operation ausführen, die jener des in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bereitgestellten Bildverarbeitungsteils 30 ähnlich ist. Das heißt, der Puffer-Umgehen-Bestimmungsteil 3342 kann ein Puffer-Umgehen-Signal ausgeben, um die Auswahleinrichtung 332 auf der Grundlage des Puffer-Umgehen-Anweisungssignals zu steuern.
  • Außerdem ist das Pipeline-Stall-Signal ein Signal, das anzeigt, dass keine Ausgabe von Eingabedaten angefordert ist, da die Pipeline-Verarbeitung (vorübergehend) gestoppt ist, und das Puffer-Umgehen-Anweisungssignal ist ein Signal, das eine Anweisung zum Ausgeben der Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 anzeigt. Das heißt, die Bedeutung, die durch das Pipeline-Stall-Signal angegeben wird, und die Bedeutung, die durch das Puffer-Umgehen-Anweisungssignal angegeben wird, sind gegensätzlich. Dementsprechend bestimmt bei der in 5 gezeigten Ausgestaltung des Bildverarbeitungsmoduls 33 der Puffer-Umgehen-Bestimmungsteil 3342 ein Verfahren zum Steuern des Eingabepuffers 331 (das heißt, des Eingabepuffer-Schreibmanagementteils 3343 und des Eingabepuffer-Lesemanagementteils 3344) und der Auswahleinrichtung 332 durch Auffassen der Bedeutung des Puffer-Umgehen-Anweisungssignals, das anstelle des Pipeline-Stall-Signals einzugeben ist, in gegenteiliger Weise.
  • Jedes Bildverarbeitungsmodul 33 führt die Steuerung derart durch, dass die Eingabedaten, die vom Verarbeitungsmodul der vorhergehenden Stufe eingegeben werden, den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden, wenn das Puffer-Umgehen-Anweisungssignal eine Anweisung zum Ausgeben der Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 anzeigt, und die Speicherkapazität des Eingabepuffers 331 ist völlig frei. Zu diesem Zeitpunkt senkt jedes Bildverarbeitungsmodul 33 den Energieverbrauch des Eingabepuffers 331 durch Stoppen des Betriebs des Eingabepuffers 331.
  • Als Nächstes wird ein Überwachen des Busverkehrs des DMA-Busses 10 im Busverkehr-Überwachungsteil 55 beschrieben. 12 ist ein Zeitdiagramm, das ein Beispiel für den Betrieb des Busverkehr-Überwachungsteils 55 im Bildverarbeitungsteil 50 zeigt, der in der Bildverarbeitungsvorrichtung 2 der zweiten Ausführungsform der vorliegenden Erfindung bereitgestellt ist. In 12 ist ein Beispiel für ein DMA-Anforderungssignal gezeigt, das ausgegeben wird, wenn jeder Bus-Master, der in der Bildverarbeitungsvorrichtung 2 bereitgestellt ist, den Zugriff auf das DRAM 20 anfordert, und für ein DMA-Anforderungssignal, das ausgegeben wird, wenn das Eingabe-DMA-Modul 32 und das Ausgabe-DMA-Modul 34, die im Bildverarbeitungsteil 50 bereitgestellt sind, den Zugriff auf das DRAM 20 anfordern. Außerdem ist in 12 auch ein Beispiel für das Puffer-Umgehen-Anweisungssignal gezeigt, das vom Busverkehr-Überwachungsteil 55 entsprechend dem Ergebnis der Überwachung des Busverkehrs des DMA-Busses 10 ausgegeben wird.
  • Jeder Bus-Master, der in der Bildverarbeitungsvorrichtung 2 bereitgestellt ist, gibt entsprechend dem Verarbeitungszustand eine Anforderung eines Zugriffs mittels DMA (das DMA-Anforderungssignal) für das DRAM 20 an einen Buszuteiler (nicht gezeigt) aus. Der Buszuteiler (nicht gezeigt) entscheidet über das von jeglichem Bus-Master eingegebene DMA-Anforderungssignal und gibt an den Bus-Master ein DMA-Quittungssignal aus, das die Zugriffsanforderung genehmigt. Infolgedessen greift der Bus-Master, in den das DMA-Anforderungssignal eingegeben wird, d. h. der Bus-Master, für den die Zugriffsanforderung genehmigt ist, mittels DMA auf das DRAM 20 zu. Wie in 12 gezeigt erfolgt hier der Zugriff jedes Bus-Masters auf das DRAM 20 nicht in regelmäßigen Abständen.
  • Der Busverkehr-Überwachungsteil 55 überwacht den Busverkehr des DMA-Busses 10 durch Überwachen des Zugriffs, mittels DMA, auf das DRAM 20, der durch einen Bus-Master erfolgt, der vom Bildverarbeitungsteil 50 verschieden ist. Genauer gesagt, der Busverkehr-Überwachungsteil 55 misst für jeden Bus-Master das Intervall des DMA-Anforderungssignals, das von jedem vom Bildverarbeitungsteil 50 verschiedenen Bus-Master ausgegeben wird. Dadurch kann der Busverkehr-Überwachungsteil 55 den Zustand des Busverkehrs des DMA-Busses 10 bestimmen. Beispielsweise, wenn das DMA-Anforderungssignal von einem Bus-Master in Intervallen ausgegeben wird, die kürzer als ein vorgegebener Intervall-Schwellenwert sind, ist der Anteil der Belegung des DMA-Busses 10 durch diesen Bus-Master hoch, und der Zugriff auf das DRAM 20 erfolgt häufig, sodass bestimmt werden kann, dass viele Daten über den DMA-Bus 10 fließen. Außerdem, wenn beispielsweise das Intervall der DMA-Anforderungssignale, die von jedem Bus-Master ausgegeben werden, länger als der vorgegebene Intervall-Schwellenwert ist, aber von mehreren Bus-Mastern gleichzeitig DMA-Anforderungssignale ausgegeben werden, ist der Belegungsanteil jedes Bus-Masters am DMA-Bus 10 niedrig, aber auf das DRAM 20 wird von mehreren Bus-Mastern häufig zugegriffen, sodass bestimmt werden kann, dass viele Daten über den DMA-Bus 10 fließen.
  • Wie vorstehend beschrieben wird, wenn viele Daten über den DMA-Bus 10 fließen, auch wenn der Bildverarbeitungsteil 50 einen Zugriff, mittels DMA, auf das DRAM 20 anfordert, ein Fall angenommen, in dem das Intervall, in dem die Zugriffsanforderung genehmigt ist, verlängert wird und die Pipeline-Verarbeitung im Bildverarbeitungsteil 50 verzögert wird, d. h. dass der Pipeline-Stall-Zustand auftritt. Demzufolge gibt der Busverkehr-Überwachungsteil 55 nicht das Puffer-Umgehen-Anweisungssignal aus, das eine Anweisung zum Ausgeben der Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 anzeigt. In dem Zeitdiagramm, das in 12 gezeigt ist, braucht eine Anweisung zum Ausgeben der Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 nicht durch Setzen des Puffer-Umgehen-Anweisungssignals auf den niedrigen Pegel („Low”) angezeigt zu werden. Dadurch führt bei jedem Bildverarbeitungsmodul 33, das im Bildverarbeitungsteil 50 bereitgestellt ist, der Puffer-Umgehen-Bestimmungsteil 3342 die Steuerung derart durch, dass die Eingabedaten ausgelesen und zum Arithmetikteil 333 übertragen werden, nachdem sie im Eingabepuffer 331 zwischengespeichert worden sind. In jedem Bildverarbeitungsmodul 33 erfolgt dann eine Pipeline-Verarbeitung durch sequenzielles Ausgeben der verarbeiteten Pixeldaten, die durch Ausführen einer arithmetischen Operation zur Bildverarbeitung im Arithmetikteil 333 erzeugt sind, an das Verarbeitungsmodul der nachfolgenden Stufen.
  • Außerdem, wenn kein von einem Bus-Master, der vom Bildverarbeitungsteil 50 verschieden ist, ausgegebenes DMA-Anforderungssignal vorhanden ist, d. h. wenn der vom Bildverarbeitungsteil 50 verschiedene Bus-Master keinen Zugriff auf das DRAM 20 hat und dieser Zustand länger als eine vorgegebene Periode andauert, wie nach dem Zeitpunkt t1 im in 12 gezeigten Zeitdiagramm, bestimmt der Busverkehr-Überwachungsteil 55, dass die Menge der über den DMA-Bus 10 fließenden Daten gering ist. Dann gibt der Busverkehr-Überwachungsteil 55 das Puffer-Umgehen-Anweisungssignal aus, das eine Anweisung zum Ausgeben der Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 anzeigt. In dem Zeitdiagramm, das in 12 gezeigt ist, wird eine Anweisung zum Ausgeben der Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 durch Setzen des Puffer-Umgehen-Anweisungssignals ab einem Zeitpunkt t2 auf den hohen Pegel („High”) angezeigt. Dadurch steuert in jedem Bildverarbeitungsmodul 33, das im Bildverarbeitungsteil 50 bereitgestellt ist, der Puffer-Umgehen-Bestimmungsteil 3342 die Auswahleinrichtung 332 derart, dass die Eingabedaten den Eingabepuffer 331 umgehen und an den Arithmetikteil 333 ausgegeben werden, und stoppt den Betrieb des Eingabepuffers 331, um dessen Energieverbrauch zu senken. Des Weiteren, in jedem Bildverarbeitungsmodul 33 ist eine Pipeline-Verarbeitung eine Verarbeitung bei sequenziellem Ausgeben der verarbeiteten Pixeldaten, die vom Arithmetikteil 333 erzeugt sind, der die arithmetische Operation zur Bildverarbeitung an den Eingabedaten ausführt, die an das Verarbeitungsmodul der nachfolgenden Stufe übertragen werden, d. h den Eingabepuffer 331 umgehen.
  • Außerdem, wenn von einem Bus-Master, der vom Bildverarbeitungsteil 50 verschieden ist, ein DMA-Anforderungssignal ausgegeben wird, d. h. dass ein Zugriff auf das DRAM 20 durch einen Bus-Master, der vom Bildverarbeitungsteil 50 verschieden ist, erfolgt, wie nach einem Zeitpunkt t3 in dem in 12 gezeigten Zeitdiagramm, bestimmt der Busverkehr-Überwachungsteil 55, dass die Daten, die zum DMA-Bus 10 fließen, von nun an zunehmen werden. Demnach zeigt der Busverkehr-Überwachungsteil 55 an, dass eine Anweisung zum Ausgeben der Eingabedaten an den Arithmetikteil 333 unter Umgehung des Eingabepuffers 331 ab dem Zeitpunkt t4 nicht durch erneutes Setzen des Puffer-Umgehen-Anweisungssignals auf den niedrigen Pegel („Low”) angezeigt wird. Dadurch führt in jedem Bildverarbeitungsmodul 33, das im Bildverarbeitungsteil 50 bereitgestellt ist, der Puffer-Umgehen-Bestimmungsteil 3342 die Steuerung derart durch, dass Eingabedaten ausgelesen und zum Arithmetikteil 333 übertragen werden, nachdem sie im Eingabepuffer 331 zwischengespeichert worden sind.
  • Auf diese Weise überwacht der Busverkehr-Überwachungsteil 55 den Busverkehr des DMA-Busses 10 auf der Grundlage des Zugriffs auf das DRAM 20 durch jeden Bus-Master, der an den DMA-Bus 10 angeschlossen ist. Dann gibt der Busverkehr-Überwachungsteil 55 auf der Grundlage des überwachten Busverkehrs des DMA-Busses 10 das Puffer-Umgehen-Anweisungssignal zum Steuern, ob Eingabedaten unter Umgehung des Eingabepuffers 331 an den Arithmetikteil 333 jegliches der Bildverarbeitungsmodule 33, die im Bildverarbeitungsteil 50 die Pipeline bilden, zu übertragen sind, aus.
  • Die Bedingungen, die benutzt werden, um den Busverkehr im Busverkehr-Überwachungsteil 55 zu bestimmen, d. h. die Bedingungen, die benutzt werden, um zu bestimmen, ob die Datenmenge, die über den DMA-Bus 10 fließt, groß oder gering ist, sind nicht auf das Intervall des DMA-Anforderungssignal, das von jedem Bus-Master ausgegeben worden ist, noch auf die Bedingung, ob das DMA-Anforderungssignal vom Bus-Master ausgegeben wurde, wie vorstehend beschrieben, beschränkt, und die Bestimmung kann anhand anderer Bedingungen erfolgen. Beispielsweise kann der Busverkehr anhand der Anzahl der Bus-Master, die auf das DRAM 20 zugreifen, bestimmt werden. In diesem Fall bestimmt der Busverkehr-Überwachungsteil 55, dass die Menge der Daten, die über den DMA-Bus 10 fließt, gering ist, wenn die Anzahl der Bus-Master, die auf das DRAM 20 zugreifen, kleiner als die durch Schwellenwerte vorgegebene Anzahl ist, und bestimmt, dass die Menge der Daten, die über den DMA-Bus 10 fließt, groß ist, wenn die Anzahl der Bus-Master, die auf das DRAM 20 zugreifen, größer gleich der durch Schwellenwerte vorgegebenen Anzahl ist. Außerdem kann der Busverkehr beispielsweise anhand der Zeit von der Ausgabe des DMA-Anforderungssignals durch jeden Bus-Master bis zur Eingabe des DMA-Quittungssignals bestimmt werden. In diesem Fall bestimmt der Busverkehr-Überwachungsteil 55, dass die Menge der Daten, die über den DMA-Bus 10 fließt, gering ist, wenn die Zeit von der Ausgabe des DMA-Anforderungssignals bis zur Eingabe des DMA-Quittungssignals kürzer als ein vorgegebener Zeit-Schwellenwert ist, und bestimmt, dass die Menge der Daten, die über den DMA-Bus 10 fließt, groß ist, wenn die Zeit von der Ausgabe des DMA-Anforderungssignals bis zur Eingabe des DMA-Quittungssignals größer oder gleich dem vorgegebenen Zeitschwellenwert ist.
  • Gemäß der zweiten Ausführungsform ist eine Bildverarbeitungsvorrichtung (die Bildverarbeitungsvorrichtung 2), in welcher der Bildverarbeitungsteil (der Bildverarbeitungsteil 50) ferner einen Busverkehr-Überwachungsteil (den Busverkehr-Überwachungsteil 55), der dafür eingerichtet ist, den Busverkehr auf dem Datenbus (dem DMA-Bus 10) durch Überwachen des Zugriffs mehrerer Bus-Master (des Sensorschnittstellenteils 60, des Videoschnittstellenteils 70, des Speicherkarten-Schnittstellenteils 80, der CPU 90 und Ähnliches), die an den DMA-Bus 10 angeschlossen sind, auf den Speicher (das DRAM 20) zu überwachen, umfasst, dafür eingerichtet, dass der Busverkehr-Überwachungsteil 55 ein Puffer-Umgehen-Anweisungssignal ausgibt, das eine Auswahl eines Pfades anzeigt, entlang dessen die Daten (die Pixeldaten oder die verarbeiteten Pixeldaten) unter Umgehung des Datenpuffers (des Eingabepuffers 331) zu jedem Verarbeitungsmodul (zum Bildverarbeitungsmodul 33) (zum Arithmetikteil 333) übertragen werden, wenn auf der Grundlage des überwachten Busverkehrs bestimmt wird, dass die Menge der Daten, die über den DMA-Bus 10 fließt, gering ist, und der Steuerteil (der Steuerteil 334) in jedem Bildverarbeitungsmodul 33 bestimmt, dass die Pixeldaten oder verarbeiteten Pixeldaten, die bei der Pipeline-Verarbeitung fließen, nicht in einem verzögerten Zustand sind, wenn das Puffer-Umgehen-Anweisungssignal eingegeben wird.
  • Wie vorstehend beschrieben, überwacht in der Bildverarbeitungsvorrichtung 2 der zweiten Ausführungsform der Busverkehr-Überwachungsteil 55, der im Bildverarbeitungsteil 50 bereitgestellt ist, den Busverkehr auf dem DMA-Bus 10 durch Überwachen des Zugriffs eines anderen Bus-Masters, der in der Bildverarbeitungsvorrichtung 2 bereitgestellt ist, auf das DRAM 20. Dann steuert die Bildverarbeitungsvorrichtung 2 der zweiten Ausführungsform, ob die Eingabedaten, die in jedes der Bildverarbeitungsmodule 33, welche die im Bildverarbeitungsteil 50 bereitgestellte Pipeline bilden, eingegeben werden, unter Umgehung des Eingabepuffers 331 zum Arithmetikteil 333 zu übertragen sind, anhand des Busverkehrs, der vom Busverkehr-Überwachungsteil 55 überwacht wird. Dabei stoppt jedes Bildverarbeitungsmodul 33 den Betrieb des Eingabepuffers 331, wenn die Eingabedaten, die eingegeben werden, den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden. Dadurch kann jedes Bildverarbeitungsmodul 33 den Energieverbrauch im Eingabepuffer 331 senken. Demzufolge ist es bei der Bildverarbeitungsvorrichtung 2 der zweiten Ausführungsform wie bei der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform möglich, den Energieverbrauch bei der Pipeline-Verarbeitung zu senken, ohne die Leistungsfähigkeit der Pipeline-Verarbeitung zu verschlechtern, wenn von jedem Bildverarbeitungsmodul 33, das im Bildverarbeitungsteil 50 bereitgestellt ist, die gewünschte Bildverarbeitung entsprechend der Pipeline-Verarbeitung ausgeführt wird.
  • Außerdem ist bei der Bildverarbeitungsvorrichtung 2 der zweiten Ausführungsform eine Ausgestaltung beschrieben worden, bei der das Bildverarbeitungsmodul 33 entsprechend dem Puffer-Umgehen-Anweisungssignal, das auf der Grundlage des vom im Bildverarbeitungsteil 50 bereitgestellten Busverkehr-Überwachungsteil 55 überwachten Busverkehrs des DMA-Busses 10 ausgegeben wird, (durch Umschalten) auswählt, ob die Eingabedaten unter Umgehung des Eingabepuffers 331 an den Arithmetikteil 333 auszugeben sind oder ob die Eingabedaten an den Arithmetikteil 333 auszugeben sind, nachdem sie im Eingabepuffer 331 zwischengespeichert worden sind. Jedoch kann jedes Bildverarbeitungsmodul 33 eine Ausgestaltung aufweisen, bei der zusätzlich zum Puffer-Umgehen-Anweisungssignal wie bei der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bestimmt wird, ob zu veranlassen ist, dass bei dem Betriebszustand des Bildverarbeitungsmoduls 33 der nachfolgenden Stufe (mehrere nachfolgende Stufen eingeschlossen) die Daten den Eingabepuffer 331 umgehen. In diesem Fall kann der Puffer-Umgehen-Bestimmungsteil 3342 in jedem Bildverarbeitungsmodul 33, das im Bildverarbeitungsteil 50 bereitgestellt ist, den Eingabepuffer-Schreibmanagementteil 3343, den Eingabepuffer-Lesemanagementteil 3344 und die Auswahleinrichtung 332 auf der Grundlage des Puffer-Umgehen-Anweisungssignals und des Betriebszustandes des Verarbeitungsmoduls, das mit der nachfolgenden Stufe in Verbindung steht, steuern. Wie bei der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform ist es auch möglich, gezielt die Steuerung derart durchzuführen, dass die Eingabedaten den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden.
  • Außerdem ist bei der Bildverarbeitungsvorrichtung 2 der zweiten Ausführungsform die Ausgestaltung beschrieben worden, bei der der Busverkehr-Überwachungsteil 55 im Bildverarbeitungsteil 50 bereitgestellt ist. Der Busverkehr-Überwachungsteil 55 kann jedoch außerhalb des Bildverarbeitungsteils 50 bereitgestellt sein. Beispielsweise kann ein Buszuteiler (nicht gezeigt), der in der Bildverarbeitungsvorrichtung 2 bereitgestellt ist, das Überwachen des Busverkehrs des DMA-Busses 10 zur Aufgabe haben, wie bei dem Busverkehr-Überwachungsteil 55. In diesem Fall ist es möglich, eine Ausgestaltung anzunehmen, bei der der Puffer-Umgehen-Bestimmungsteil 3342 in jedem Bildverarbeitungsmodul 33, das im Bildverarbeitungsteil 50 bereitgestellt ist, anhand eines Signals, das den Zustand des Busverkehrs des DMA-Busses 10 anzeigt, der von einem Buszuteiler (nicht gezeigt) überwacht wird, bestimmt, ob zu veranlassen ist, dass die Daten den Eingabepuffer 331 umgehen, und den Eingabepuffer-Schreibmanagementteil 3343, den Eingabepuffer-Lesemanagementteil 3344 und die Auswahleinrichtung 332 steuert. Wie bei der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform ist es auch möglich, gezielt die Steuerung derart durchzuführen, dass die Eingabedaten den Eingabepuffer 331 umgehen und zum Arithmetikteil 333 übertragen werden.
  • Außerdem ist bei der Bildverarbeitungsvorrichtung 2 der zweiten Ausführungsform ein Fall beschrieben worden, in dem jedes der Verarbeitungsmodule, die eine Pipeline bilden, die im Bildverarbeitungsteil 50 bereitgestellt ist, ein Verarbeitungsmodul mit einer Ausgestaltung ist, die jener des Bildverarbeitungsmoduls 33 der ersten Ausgestaltung, das im Bildverarbeitungsteil 30 in der Bildverarbeitungsvorrichtung 1 der ersten Ausführungsform bereitgestellt ist, ähnlich ist. Jegliches der Verarbeitungsmodule, die die Pipeline bilden, die im Bildverarbeitungsteil 50 bereitgestellt ist, ist jedoch nicht auf das Bildverarbeitungsmodul 33 der ersten Ausgestaltung beschränkt, sondern kann auch das Bildverarbeitungsmodul 43 der zweiten Ausgestaltung sein. Selbst wenn jedes der Verarbeitungsmodule, die die im Bildverarbeitungsteil 50 enthaltene Pipeline bilden, das Bildverarbeitungsmodul 43 der zweiten Ausgestaltung ist, kann der Betrieb der Bildverarbeitungsvorrichtung 2 und des Bildverarbeitungsteils 50 der zweiten Ausführungsform als dem vorstehend beschriebenen Betrieb ähnlich angesehen werden. Von daher entfällt in dem Fall, in dem jedes der Verarbeitungsmodule, die die im Bildverarbeitungsteil 50 bereitgestellte Pipeline bilden, das Bildverarbeitungsmodul 43 der zweiten Ausgestaltung ist, eine ausführliche Beschreibung des Betriebs.
  • Wie vorstehend beschrieben, wird gemäß jeder Ausführungsform der vorliegenden Erfindung eine Ausgestaltung bereitgestellt, bei der ausgewählt (durchgeschaltet) wird, ob zu veranlassen ist, dass die Daten den im Verarbeitungsmodul selbst bereitgestellten Datenpuffer umgehen und zwar in jedem der Verarbeitungsmodule, die die Pipeline im Bildverarbeitungsteil bilden. Bei jeder Ausführungsform der vorliegenden Erfindung wird die Auswahl (durch Umschalten), ob zu veranlassen ist, dass die Daten den im Verarbeitungsmodul selbst bereitgestellten Datenpuffer umgehen, auf der Grundlage des Zustandes freier Speicherkapazität in dem Datenpuffer, der im Verarbeitungsmodul selbst bereitgestellt ist, und des Betriebszustandes des mit der nachfolgenden Stufe in Verbindung stehenden Verarbeitungsmoduls (mehrere nachfolgende Stufen eingeschlossen) gesteuert. Bei den Ausführungsformen der vorliegenden Erfindung überwacht der Bildverarbeitungsteil den Busverkehr des angeschlossenen DMA-Busses und steuert auf der Grundlage des überwachten Busverkehrs die Auswahl (durch Umschalten), ob zu veranlassen ist, dass die Daten den im Verarbeitungsmodul selbst bereitgestellten Datenpuffer umgehen. Dabei ist es bei jeder Ausführungsform der vorliegenden Erfindung möglich, eine Eingabedatenanforderung für das Verarbeitungsmodul, das mit der in der Pipeline-Konfiguration vorhergehenden Stufe in Verbindung steht, auf der Grundlage des Zustandes freier Speicherkapazität in dem Datenpuffer, der im Verarbeitungsmodul selbst bereitgestellt ist, gezielt zu steuern. Bei jeder Ausführungsform der vorliegenden Erfindung wird die Steuerung derart durchgeführt, dass der Betrieb des Datenpuffers gestoppt wird, wenn die Steuerung derart erfolgt, dass die Daten den Datenpuffer in jedem Verarbeitungsmodul umgehen. Dadurch ist es bei jeder Ausführungsform der vorliegenden Erfindung möglich, bei jedem Verarbeitungsmodul den Energieverbrauch des Datenpuffers, der im Verarbeitungsmodul selbst bereitgestellt ist, zu senken, wenn eine arithmetische Operation zur Bildverarbeitung ausgeführt wird. Infolgedessen ist es bei jeder Ausführungsform der vorliegenden Erfindung möglich, den Energieverbrauch bei der Pipeline-Verarbeitung zu senken, ohne die Leistungsfähigkeit der Pipeline-Verarbeitung zu verschlechtern, wenn von jedem Bildverarbeitungsmodul, das im Bildverarbeitungsteil bereitgestellt ist, die gewünschte Bildverarbeitung entsprechend der Pipeline-Verarbeitung ausgeführt wird.
  • Bei jeder der Ausführungsformen der vorliegenden Erfindung ist eine Ausgestaltung beschrieben worden, bei der in jedem der Bildverarbeitungsmodule, die in dem in der Bildverarbeitungsvorrichtung bereitgestellten Bildverarbeitungsteil die Pipeline bilden, eine Funktion zum Steuern der Auswahl (durch Umschalten), ob zu veranlassen ist, dass die Daten den im Verarbeitungsmodul selbst bereitgestellten Datenpuffer umgehen, bereitgestellt ist. Der Datenpuffer ist jedoch auch, wie vorstehend beschrieben, im Eingabe-DMA-Modul und im Ausgabe-DMA-Modul bereitgestellt, die Verarbeitungsmodule sind, die zur Pipeline im Bildverarbeitungsteil gehören. Von daher können das Eingabe-DMA-Modul und das Ausgabe-DMA-Modul ähnlich wie das Bildverarbeitungsmodul auch eine Funktion zum Steuern der Auswahl (durch Umschalten), ob zu veranlassen ist, dass die Daten selbst bereitgestellte Datenpuffer umgehen, aufweisen. Durch Bereitstellen dieser Funktion können im Eingabe-DMA-Modul und im Ausgabe-DMA-Modul vorteilhafte Wirkungen erzielt werden, die jenen des Bildverarbeitungsmoduls ähnlich sind.
  • Außerdem ist bei jeder Ausführungsform der vorliegenden Erfindung die Ausgestaltung beschrieben worden, bei der jedes der Verarbeitungsmodule, die die Pipeline bilden, im Bildverarbeitungsteil bereitgestellt ist, der in der Bildverarbeitungsvorrichtung bereitgestellt ist. Als Verarbeitungsvorrichtung, die eine Reihe von Prozessen entsprechend der Pipeline-Konfiguration ausführt, sind jedoch verschiedene Verarbeitungsvorrichtungen denkbar, die von der Bildverarbeitungsvorrichtung verschieden sind. Von daher ist die Verarbeitungsvorrichtung, auf die das Konzept der vorliegenden Erfindung angewandt werden kann, nicht auf die Bildverarbeitungsvorrichtung, die bei jeder Ausführungsform der vorliegenden Erfindung dargestellt wurde, beschränkt, und es ist möglich, das Konzept der vorliegenden Erfindung auf ähnliche Weise anzuwenden und vorteilhafte Wirkungen zu erzielen, die jenen der vorliegenden Erfindung ähnlich sind, sofern irgendeine Verarbeitungsvorrichtung zum Ausführen der Pipeline-Verarbeitung bei Zusammenschaltung mehrerer Verarbeitungsmodule in Reihe, um die Pipeline zu bilden, bereitgestellt wird.
  • Auch wenn vorstehend bevorzugte Ausführungsformen der vorliegenden Erfindung beschrieben und dargestellt worden sind, ist die Erfindung nicht auf die Ausführungsformen und abgewandelten Beispiele dafür beschränkt. Innerhalb eines Bereiches, in dem nicht vom Wesen oder Gedanken der vorliegenden Erfindung abgewichen wird, können Ergänzungen, Weglassungen, Ersetzungen und andere Abwandlungen an der Ausgestaltung vorgenommen werden.
  • Außerdem ist die vorliegende Erfindung nicht als auf die vorangehende Beschreibung beschränkt anzusehen, sondern sie wird nur durch den Schutzbereich der beigefügten Ansprüche beschränkt.
  • Gewerbliche Anwendbarkeit
  • Es ist möglich, jeder der vorstehend beschriebenen Ausführungsformen entsprechend eine Bildverarbeitungsvorrichtung und ein Bildverarbeitungsverfahren bereitzustellen, die fähig sind, den Energieverbrauch zu senken, ohne die Leistungsfähigkeit der Pipeline-Verarbeitung zu verschlechtern.
  • Bezugszeichenliste
  • 1
    Bildverarbeitungsvorrichtung
    10
    DMA-Bus (Datenbus)
    20
    DRAM (Speicher)
    30
    Bildverarbeitungsteil
    31
    Verbindungsumschaltteil (Bildverarbeitungsteil)
    32
    Eingabe-DMA-Module (Bildverarbeitungsteil)
    33, 33-1, 33-2, 33-3
    Bildverarbeitungsmodul (Bildverarbeitungsteil, Verarbeitungsmodul)
    331
    Eingabepuffer (Verarbeitungsmodul, Datenpuffer)
    332
    Auswahleinrichtung (Verarbeitungsmodul, Auswahleinrichtung)
    333
    Arithmetikteil (Verarbeitungsmodul)
    334
    Steuerteil (Verarbeitungsmodul, Steuerteil)
    3341
    Datenmengenmanagementteil (Verarbeitungsmodul, Steuerteil, Datenmengenmanagementteil)
    3342
    Puffer-Umgehen-Bestimmungsteil (Verarbeitungsmodul, Steuerteil, Puffer-Umgehen-Bestimmungsteil)
    3343
    Eingabepuffer-Schreibmanagementteil (Verarbeitungsmodul, Steuerteil, Puffer-Schreibmanagementteil)
    3344
    Eingabepuffer-Lesemanagementteil (Verarbeitungsmodul, Steuerteil, Puffer-Lesemanagementteil)
    34
    Ausgabe-DMA-Modul (Bildverarbeitungsteil)
    43, 43-1, 43-2, 43-3
    Bildverarbeitungsmodul (Bildverarbeitungsteil, Verarbeitungsmodul)
    431
    Ausgabepuffer (Verarbeitungsmodul, Datenpuffer)
    432
    Auswahleinrichtung (Verarbeitungsmodul, Auswahleinrichtung)
    433
    Arithmetikteil (Verarbeitungsmodul)
    434
    Steuerteil (Verarbeitungsmodul, Steuerteil)
    2
    Bildverarbeitungsvorrichtung
    50
    Bildverarbeitungsteil
    55
    Busverkehr-Überwachungsteil (Bildverarbeitungsteil, Busverkehr-Überwachungsteil)
    60
    Sensorschnittstellenteil (Bus-Master)
    70
    Videoschnittstellenteil (Bus-Master)
    80
    Speicherkartenschnittstellenteil (Bus-Master)
    90
    CPU (Bus-Master)

Claims (10)

  1. Bildverarbeitungsvorrichtung, die einen Speicher und einen Bildverarbeitungsteil umfasst, wobei der Speicher und der Bildverarbeitungsteil an einen Datenbus angeschlossen sind und der Bildverarbeitungsteil eine Pipeline umfasst, bei der mehrere Verarbeitungsmodule in Reihe geschaltet sind, wobei jedes Verarbeitungsmodul dafür eingerichtet ist, einen vorgegebenen Prozess an Eingabedaten auszuführen, und der Bildverarbeitungsteil eine Pipeline-Verarbeitung ausführt, indem die Verarbeitungsmodule den Prozess sequenziell ausführen, wobei jedes der Verarbeitungsmodule umfasst: einen Datenpuffer, der dafür eingerichtet ist, die Daten in Verarbeitungseinheiten zwischenzuspeichern; und einen Steuerteil, der dafür eingerichtet ist, anhand eines Zustandes des Datenflusses bei der Pipeline-Verarbeitung und eines Zustandes der im Datenpuffer gespeicherten Daten zu bestimmen, ob die Daten in den Datenpuffer zu speichern sind, und auf der Grundlage eines Ergebnisses der Bestimmung einen Pfad innerhalb des Verarbeitungsmoduls auszuwählen, über den die Daten übertragen werden, und einen Betrieb des Datenpuffers zu steuern.
  2. Bildverarbeitungsvorrichtung nach Anspruch 1, wobei der Steuerteil einen Pfad zum Auslesen und Übertragen der Daten, nachdem die Daten im Datenpuffer zwischengespeichert worden sind, auswählt und, wenn die Daten weiterhin im Datenpuffer gespeichert sein können, den Datenpuffer in einem Zustand betreibt, in dem die Daten in einer Speicherkapazität des Datenpuffers gespeichert sind, wobei der Steuerteil einen Pfad zum Auslesen und Übertragen der Daten, nachdem die Daten im Datenpuffer zwischengespeichert worden sind, auswählt und, wenn die Daten nicht weiterhin im Datenpuffer gespeichert sein können, den Datenpuffer derart betreibt, dass die gespeicherten Daten zurückgehalten werden, in einem Zustand, in dem der Datenfluss bei der Pipeline-Verarbeitung verzögert wird, und, wobei der Steuerteil einen Pfad auswählt, entlang dessen die Daten unter Umgehung des Datenpuffers übertragen werden, ohne im Datenpuffer gespeichert zu werden, und ein Stoppen des Betriebs des Datenpuffers veranlasst, wenn in der gesamten Speicherkapazität des Datenpuffers keine Daten gespeichert sind, in einem Zustand, in dem der Datenfluss bei der Pipeline-Verarbeitung nicht verzögert wird.
  3. Bildverarbeitungsvorrichtung nach Anspruch 2, wobei der Steuerteil ein Zustandsmeldesignal, das einen Betriebszustand eines Verarbeitungsmoduls anzeigt, das mit diesem Steuerteil selbst ausgerüstet ist, an das Verarbeitungsmodul einer in der Konfiguration der Pipeline vorhergehenden Stufe ausgibt, und wobei der Steuerteil einen Zustand des Datenflusses bei der Pipeline-Verarbeitung anhand des Zustandsmeldesignals, das vom Verarbeitungsmodul einer in der Konfiguration der Pipeline nachfolgenden Stufe eingegeben wird, bestimmt.
  4. Bildverarbeitungsvorrichtung nach Anspruch 3, wobei der Steuerteil den Zustand des Datenflusses bei der Pipeline-Verarbeitung anhand der Zustandsmeldesignale, die von mehreren Verarbeitungsmodulen der in der Konfiguration der Pipeline nachfolgenden Stufen eingegeben werden, bestimmt.
  5. Bildverarbeitungsvorrichtung nach Anspruch 3 oder Anspruch 4, wobei das Zustandsmeldesignal ein Signal ist, das anzeigt, ob es möglich ist, die Daten zu empfangen, an denen das Verarbeitungsmodul der vorhergehenden Stufe den Prozess ausgeführt hat, wobei das Zustandsmeldesignal ein Datenanforderungssignal zum Anfordern einer Ausgabe der Daten, an denen das Verarbeitungsmodul der vorhergehenden Stufe den Prozess ausgeführt hat, umfasst, und wobei der Steuerteil bestimmt, dass der Datenfluss bei der Pipeline-Verarbeitung nicht verzögert wird, wenn das Datenanforderungssignal zum Anfordern einer Ausgabe der Daten vom Verarbeitungsmodul der nachfolgenden Stufe eingegeben wird.
  6. Bildverarbeitungsvorrichtung nach Anspruch 5, wobei der Steuerteil das Datenanforderungssignal zum Anfordern der Ausgabe der Daten an das Verarbeitungsmodul der vorhergehenden Stufe ausgibt, wenn die Daten im Datenpuffer gespeichert werden können.
  7. Bildverarbeitungsvorrichtung nach Anspruch 5, wobei der Steuerteil eine Ausgabe des Datenanforderungssignals zum Anfordern der Ausgabe der Daten an das Verarbeitungsmodul der vorhergehenden Stufe so lange aufschiebt, bis ein Zustand erreicht ist, in dem in der gesamten Speicherkapazität des Datenpuffers keine Daten gespeichert sind, und wobei, nachdem der Zustand erreicht worden ist, in dem in der gesamten Speicherkapazität des Datenpuffers keine Daten gespeichert sind, der Steuerteil das Datenanforderungssignal an das Verarbeitungsmodul der vorhergehenden Stufe ausgibt, den Pfad auswählt, entlang dessen die Daten unter Umgehung des Datenpuffers übertragen werden, und ein Stoppen des Betriebs des Datenpuffers veranlasst.
  8. Bildverarbeitungsvorrichtung nach einem der Ansprüche 2 bis 7, wobei der Bildverarbeitungsteil ferner einen Busverkehr-Überwachungsteil umfasst, der dafür eingerichtet ist, durch Überwachen des Zugriffs durch mehrere Bus-Master, die an den Datenbus zum Speicher angeschlossen sind, den Busverkehr auf dem Datenbus zu überwachen, wobei der Busverkehr-Überwachungsteil ein Puffer-Umgehen-Anweisungssignal ausgibt, das eine Auswahl eines Pfades anzeigt, entlang dessen die Daten unter Umgehung des Datenpuffers zu jedem Verarbeitungsmodul übertragen werden, wenn auf der Grundlage des überwachten Busverkehrs bestimmt wird, dass die Menge der Daten, die über den Datenbus fließt, gering ist, und wobei der Steuerteil innerhalb jedes Verarbeitungsmoduls bestimmt, dass der Datenfluss bei der Pipeline-Verarbeitung nicht in einem verzögerten Zustand ist, wenn das Puffer-Umgehen-Anweisungssignal eingegeben wird.
  9. Bildverarbeitungsvorrichtung nach einem der Ansprüche 2 bis 8, wobei das Verarbeitungsmodul ferner eine Auswahleinrichtung umfasst, die dafür eingerichtet ist, einen von beiden, entweder den Pfad, entlang dessen die aus dem Datenpuffer ausgelesenen Daten übertragen werden, oder den Pfad, entlang dessen die Daten unter Umgehung des Datenpuffers übertragen werden, als den Pfad auszuwählen, entlang dessen die Daten übertragen werden, wobei der Steuerteil umfasst: einen Datenmengenmanagementteil, der dafür eingerichtet ist, eine Menge der im Datenpuffer gespeicherten Daten zu managen und Datenmengeninformationen auszugeben, die die überwachte Menge Daten anzeigen; einen Puffer-Umgehen-Bestimmungsteil, der dafür eingerichtet ist, auf der Grundlage der Datenmengeninformationen und des Zustandes des Datenflusses bei der Pipeline-Verarbeitung eine Operation zu bestimmen, die im Datenpuffer auszuführen ist, und auf der Grundlage des Ergebnisses der Bestimmung ein Anweisungssignal, das den Datenpuffer anweist, die Daten zu schreiben und die Daten aus dem Datenpuffer auszulesen, und ein Steuersignal zum Auswählen des Pfades, entlang dessen die Daten übertragen werden, auszugeben; einen Puffer-Schreibmanagementteil, der dafür eingerichtet ist, ein Pufferschreibsignal zu erzeugen, das ein Steuersignal zum Steuern des Schreibens der Daten in den Datenpuffer entsprechend dem Anweisungssignal zum Schreiben der Daten in den Datenpuffer ist; und einen Puffer-Lesemanagementteil, der dafür eingerichtet ist, ein Pufferlesesignal zu erzeugen, das ein Steuersignal zum Steuern des Auslesens der Daten aus dem Datenpuffer entsprechend dem Anweisungssignal zum Auslesen der Daten aus dem Datenpuffer ist, wobei der Datenmengenmanagementteil die Menge der Daten auf der Grundlage der Anzahl der eingegebenen Daten und des Pufferlesesignals managt, wobei der Puffer-Umgehen-Bestimmungsteil das Anweisungssignal zum Erteilen einer Anweisung zum Ausführen des Schreibens der Daten in den Datenpuffer und des Auslesens der Daten aus dem Datenpuffer und das Steuersignal zum Auswählen eines Pfades zum Auslesen und Übertragen der Daten, nachdem die Daten im Datenpuffer zwischengespeichert worden sind, ausgibt, wenn die Datenmengeninformationen anzeigen, dass die Menge von Daten ein Wert größer als 0 ist, wobei der Puffer-Umgehen-Bestimmungsteil das Anweisungssignal zum Erteilen einer Anweisung zum Stoppen des Schreibens der Daten in den Datenpuffer und des Auslesens der Daten aus dem Datenpuffer und das Steuersignal zum Auswählen eines Pfades, entlang dessen die Daten unter Umgehung des Datenpuffers übertragen werden, ausgibt, wenn die Datenmengeninformationen anzeigen, dass die Menge von Daten 0 ist, und wobei die Auswahleinrichtung entsprechend dem Steuersignal einen Pfad als den Pfad auswählt, entlang dessen die Daten übertragen werden.
  10. Bildverarbeitungsverfahren in einer Bildverarbeitungsvorrichtung, die einen Speicher und einen Bildverarbeitungsteil umfasst, wobei der Speicher und der Bildverarbeitungsteil an einen Datenbus angeschlossen sind und der Bildverarbeitungsteil eine Pipeline umfasst, bei der mehrere Verarbeitungsmodule in Reihe geschaltet sind, wobei jedes Verarbeitungsmodul dafür eingerichtet ist, einen vorgegebenen Prozess an Eingabedaten auszuführen, und der Bildverarbeitungsteil eine Pipeline-Verarbeitung ausführt, indem die Verarbeitungsmodule den Prozess sequenziell ausführen, wobei das Bildverarbeitungsverfahren umfasst: einen Steuerschritt von jedem der Verarbeitungsmodule, um anhand eines Zustandes eines Datenflusses bei der Pipeline-Verarbeitung und eines Zustandes der Daten, die in dem Datenpuffer gespeichert sind, der die Daten in Verarbeitungseinheiten zwischenspeichert, zu bestimmen, ob die Daten in den Datenpuffer zu speichern sind, und auf der Grundlage eines Ergebnisses der Bestimmung einen Pfad innerhalb des Verarbeitungsmoduls auszuwählen, über den die Daten übertragen werden, und einen Betrieb des Datenpuffers zu steuern.
DE112016002160.7T 2015-06-12 2016-03-28 Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren Withdrawn DE112016002160T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015119684A JP6580380B2 (ja) 2015-06-12 2015-06-12 画像処理装置および画像処理方法
JP2015-119684 2015-06-12
PCT/JP2016/059952 WO2016199477A1 (ja) 2015-06-12 2016-03-28 画像処理装置および画像処理方法

Publications (1)

Publication Number Publication Date
DE112016002160T5 true DE112016002160T5 (de) 2018-02-01

Family

ID=57503556

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016002160.7T Withdrawn DE112016002160T5 (de) 2015-06-12 2016-03-28 Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren

Country Status (5)

Country Link
US (1) US10241721B2 (de)
JP (1) JP6580380B2 (de)
CN (1) CN107636631B (de)
DE (1) DE112016002160T5 (de)
WO (1) WO2016199477A1 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017169186A (ja) * 2016-03-14 2017-09-21 株式会社リコー 画像処理装置、情報処理装置、画像処理システム及び画像処理方法
JP6722278B2 (ja) * 2016-04-11 2020-07-15 オリンパス株式会社 画像処理装置
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
WO2019021344A1 (ja) 2017-07-24 2019-01-31 オリンパス株式会社 画像処理装置および撮像装置
US10860618B2 (en) 2017-09-25 2020-12-08 Splunk Inc. Low-latency streaming analytics
US10997180B2 (en) 2018-01-31 2021-05-04 Splunk Inc. Dynamic query processor for streaming and batch queries
US11003456B2 (en) * 2018-03-30 2021-05-11 Iunu, Inc. Pipelined processing of plant images for monitoring horticultural grow operations
US10523864B2 (en) * 2018-04-10 2019-12-31 Facebook, Inc. Automated cinematic decisions based on descriptive models
CN112005220A (zh) * 2018-04-27 2020-11-27 三菱电机株式会社 数据处理装置、监视方法及程序
WO2020012574A1 (ja) * 2018-07-11 2020-01-16 オリンパス株式会社 画像処理装置
US10761813B1 (en) 2018-10-01 2020-09-01 Splunk Inc. Assisted visual programming for iterative publish-subscribe message processing system
US10775976B1 (en) * 2018-10-01 2020-09-15 Splunk Inc. Visual previews for programming an iterative publish-subscribe message processing system
US10936585B1 (en) 2018-10-31 2021-03-02 Splunk Inc. Unified data processing across streaming and indexed data sets
US11238048B1 (en) 2019-07-16 2022-02-01 Splunk Inc. Guided creation interface for streaming data processing pipelines
US11614923B2 (en) 2020-04-30 2023-03-28 Splunk Inc. Dual textual/graphical programming interfaces for streaming data processing pipelines
US20220245156A1 (en) 2021-01-29 2022-08-04 Splunk Inc. Routing data between processing pipelines via a user defined data stream
US11687487B1 (en) 2021-03-11 2023-06-27 Splunk Inc. Text files updates to an active processing pipeline
US11663219B1 (en) 2021-04-23 2023-05-30 Splunk Inc. Determining a set of parameter values for a processing pipeline
US11989592B1 (en) 2021-07-30 2024-05-21 Splunk Inc. Workload coordinator for providing state credentials to processing tasks of a data processing pipeline
CN115063283A (zh) * 2022-06-13 2022-09-16 脉冲视觉(北京)科技有限公司 一种用于图像重构的逻辑器件

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3083582B2 (ja) * 1991-04-30 2000-09-04 株式会社日立製作所 並列処理装置
JPH07302201A (ja) * 1994-05-10 1995-11-14 Hitachi Ltd パイプライン演算データ診断装置
JPH10334225A (ja) * 1997-06-02 1998-12-18 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
JPH10340243A (ja) * 1997-06-06 1998-12-22 Hitachi Ltd 入出力データ転送システム
US20030007703A1 (en) * 2001-07-03 2003-01-09 Roylance Eugene A. Configurable image processing logic for use in image processing devices
WO2004068489A1 (ja) * 2003-01-31 2004-08-12 Matsushita Electric Industrial Co., Ltd. 情報記録装置及び情報記録方法並びに記録媒体の領域管理方法
KR100546640B1 (ko) * 2003-03-11 2006-01-26 엘지전자 주식회사 디지털 비디오 기록 재생 시스템 및 트릭 재생 방법
US7787026B1 (en) * 2004-04-28 2010-08-31 Media Tek Singapore Pte Ltd. Continuous burst mode digital camera
US20050248584A1 (en) * 2004-05-10 2005-11-10 Koji Takeo Imaging system and image processing apparatus
US7542435B2 (en) * 2004-05-12 2009-06-02 Nokia Corporation Buffer level signaling for rate adaptation in multimedia streaming
US7743183B2 (en) * 2005-05-23 2010-06-22 Microsoft Corporation Flow control for media streaming
TWI322354B (en) * 2005-10-18 2010-03-21 Via Tech Inc Method and system for deferred command issuing in a computer system
CN100518249C (zh) * 2006-07-28 2009-07-22 奥林巴斯映像株式会社 具有连拍功能的数字照相机
CN101296158A (zh) * 2007-04-26 2008-10-29 深圳市同洲电子股份有限公司 一种流媒体数据传输方法及其数据传输装置
CN100591134C (zh) * 2007-08-01 2010-02-17 神州亿品科技有限公司 防止黑屏和花屏的播放方法
US9013750B2 (en) * 2009-06-25 2015-04-21 Canon Kabushiki Kaisha Image processing for processing image data in correspondence with each pixel of an image
CN101727651B (zh) * 2009-11-16 2012-04-18 东莞光阵显示器制品有限公司 一种一次性使用医疗产品的实现方法及控制系统
US20110296095A1 (en) * 2010-05-25 2011-12-01 Mediatek Inc. Data movement engine and memory control methods thereof
JP5784299B2 (ja) 2010-11-01 2015-09-24 オリンパス株式会社 データ処理装置および画像処理装置
US9462032B2 (en) * 2013-07-24 2016-10-04 Google Inc. Streaming media content

Also Published As

Publication number Publication date
WO2016199477A1 (ja) 2016-12-15
US20180074752A1 (en) 2018-03-15
US10241721B2 (en) 2019-03-26
JP2017004386A (ja) 2017-01-05
CN107636631A (zh) 2018-01-26
JP6580380B2 (ja) 2019-09-25
CN107636631B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
DE112016002160T5 (de) Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE69728247T2 (de) Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem
DE69933496T2 (de) Bildverarbeitungsvorrichtung und -verfahren
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE102004063847B4 (de) Schaltungsanordnung zur DMA-Bilddatenverarbeitung und Kameraschnittstelle
DE2853239A1 (de) Datenpufferspeicher vom typ first-in, first-out mit variablem eingang und festem ausgang
DE102008021348A1 (de) Halbleiterspeicher, Speicherzugriffs-Steuersystem und Datenlese-Verfahren
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE102019111133A1 (de) Speichereinrichtung, die eine Menge von kommunizierten Daten abhängig von einer Aussetzhäufigkeit einer Operation drosselt
DE102019119746A1 (de) Bildsignalprozessor, Verfahren zum Betreiben des Bildsignalprozessors und Anwendungsprozessor mit dem Bildsignalprozessor
DE2912073A1 (de) Stapelspeicheranordnung zur kurzzeitigen speicherung von informationen bei nichtabsetzbarkeit dieser informationen in einem datenverarbeitungssystem
DE102007053978A1 (de) Abstimmen von Signaltransferkanälen zwischen einer Speichersteuerung und einer Speichervorrichtung
DE102009001898A1 (de) Schaltungsanordnungen und Verfahren zur Steuerung eines Datenaustauschs in einer Schaltungsanordnung
DE102017119065A1 (de) Aktualisieren eines Speichers
DE102005053916B4 (de) Synchronisationsschaltung für einen Schreibvorgang auf einen Halbleiterspeicher
DE112019000852T5 (de) Reihenübergreifendes Zeitverzögerungs-Integrationsverfahren, -vorrichtung und -kamera
DE112016002105T5 (de) Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren
DE4103880C2 (de) Bildverarbeitungsgerät und -verfahren
DE102013114508A1 (de) Blockbasierte Signalverarbeitung
DE112022001059T5 (de) Verringerte bandbreiten-inanspruchnahme über generative adversarial networks
DE10361059A1 (de) Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
DE102021105247A1 (de) Techniken zum effizienten organisieren und zugreifen auf komprimierbare daten
DE102021100205A1 (de) Systeme und verfahren zum verringern von speicheranforderungen in neuronalen netzen
DE102019212659A1 (de) Relaisvorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee