-
Die
Erfindung betrifft ein Softwaresystem, bezeichnet als Bildtransportmaschine,
für die
Verarbeitung einer Bildsequenz zum Verteilen von Bildverarbeitungsfunktionen
auf einem Multiprozessorsystem mit der Bezeichnung Plattform, wobei
die besagte Plattform Eingabebilddaten generiert, um verarbeitete
Ausgabebilddaten bereitzustellen. Die Verteilung ist bekannt als
Kartierungsoperation von Softwarebauteilen auf Hardwarebauteilen.
-
Die
Erfindung findet eine bestimmte Anwendung im Bereich von Softwaresystemen,
entwickelt für
die Verarbeitung von Sequenzen medizinischer Röntgenbilder.
-
Ein
Softwarepaket, welches die Fähigkeit bietet,
mehrere Verarbeitungen auszuführen,
die an denselben Bildverarbeitungsaufgaben mitwirken, unter Verwendung
von multiprozessorbasierten Signalverarbeitungsystemen zur Bildung
einer verteilten programmierbaren Plattform, ist bereits aus der
Veröffentlichung
mit dem Titel „A
new development Framework Based on Efficient Middleware for Real-Time Embedded
Heterogeneous Multi-computers" von Randal
JANKA bekannt aus: „Proceedings
of IEEE Conference and Workshop on Engineering of Computer-Based
Systems", Nashville,
TN, USA, 7.–12. März 1999,
S. 261–268.
Gemäß der oben
genannten Veröffentlichung
werden Signalverarbeitungsanwendungen zunehmend komplex und erfordern
nunmehr „skalierbare
heterogene Multirechner" für das Erlangen
zufriedenstellender Leistung. Spezifische Multiprozessor-Hardwareziele
haben deshalb mehr und mehr Berechnungsduchsatz und Interprozessor-Kommunikationsbandbreite,
um diese Anforderungen zufrieden zu stellen. Eine Software, welche die
Schwierigkeit dieser Entwicklung erleichtert, ist bekannt als „Middleware", und ist in einer
Schicht über
einem Standard-Betriebssystem und unter der Anwendungssoftware befindlich,
d. h. die Middleware ist eine Mehrzwecksoftware, die zwischen einer Plattform
und der Anwendung liegt. Die Plattform besteht aus Verarbeitungselementen,
deren Struktur von den Prozessorarchitekturen und Schnittstellen für die Programmierung
der Betriebssystemanwendung definiert werden. Die Middleware wird
von den Schnittstellen für
die Programmierung der Anwendung und den Protokollen, die sie unterstützt, definiert.
Sie kann zahlreiche Einsatzmöglichkeiten
haben, die konform mit den Spezifikationen ihrer Schnittstelle und
ihres Protokolls sind, abhängig
von der Anzahl und dem Typ der Hardwareziele, denen sie dient. Ein „Framework" ist eine Softwareumgebung,
die entwickelt wird, um die Anwendungsentwicklung und das Systemmanagement
für einen
spezialisierten Anwendungsbereich zu vereinfachen, wie die Signalverarbeitung
in Echtzeit, das von der Schnittstelle einer Anwendungsprogrammierung,
einer Anwenderschnittstelle und Middlewares definiert wird. Eine
Middleware mit der Bezeichnung TALARIS Middleware von „MERCURY
Computer Systems" wird
in der aufgeführten
Veröffentlichung
berücksichtigt.
Ein Framework mit der Bezeichnung „PeakWare für RACE" bezeichnet als PW4R" wird oben auf die TALARIS
Middleware geschichtet, die entwickelt ist, um die Integration von
graphischen Entwicklungswerkzeugen in skalierbaren heterogenen Systemen zu
unterstützen.
Die PW4R erlaubt es dem Entwickler, die Software und Hardware der
Anwendung graphisch zu spezifizieren und dann die Software auf die Hardware
zu kartieren. Womit die PW4R ein hochwertiges Mittel ist, welche
es dem MERCURY Computer System erlaubt, verbesserte Flexibilität zu zeigen,
d. h. leicht erweitert werden zu können, was bei vorhergehenden
Systemen nicht der Fall war, die geringwertige Mittel verwenden.
In Bezug auf ein derartiges Rechnersystem können viele verschiedene algorithmische
Konfigurationen benötigt
werden. Auch Algorithmen, die komplex sind, können mit anderen neu auf die
Plattform eingebrachten Algorithmen kombiniert oder verbunden werden.
Außerdem
kann die Plattform neue Rechnermittel erhalten oder gewisse Rechnermittel
können
ausgetauscht oder entfernt werden. Die PW4R ist eine Lösung für dieses Flexibilitätsproblem.
-
Das
Patent
US 5461679 enthüllt einen
Echtzeit-MPEG-Kodierer/Dekodierer für Videodaten. Aufgebaut als
Multiprozessor-Umgebung partitioniert der Kodierer/Dekodierer die
Daten in horizontale – möglicherweise überlappende – Streifen,
die verschiedenen Prozessoren zugeteilt werden.
-
Es
wird eine Synchronisation unter Verwendung eines Jobstapels für Nebenprozessoren
ausgeführt,
in die der Stapel von einem Hauptprozessor gespeist wird. Die Rollen
des Haupt- und eines der Nebenprozessoren werden nach der Verarbeitung
jedes einzelnen Bilds getauscht.
-
Bei
der digitalen Bildverarbeitung, und insbesondere bei der Verarbeitung
einer medizinischen digitalen Röntgenbildsequenz,
werden Prozessoren verwendet, um algorithmische Bildverarbeitungen
zu bewerkstelligen, die während
dem Echtzeitbetrieb erforderlich sind. Aufgrund der Rechenleistung,
die dies mit sich bringt, müssen
mehrere auf einer Plattform verteilte Prozessoren an derselben Aufgabe mitwirken.
Das bekannte Framework PW4R ist aus weiter unten dargelegten Gründen keine
Lösung
für die
Probleme der Verarbeitung von medizinischen digitalen Röntgenbildsequenzen.
-
Ein
erstes Hauptproblem hinsichtlich einem derartigen Bildverarbeitungssystem
bezieht sich auf die Latenz, die als die notwendige Zeit definiert
wird, um ein verarbeitetes Bildelement in Bezug auf den Zeitpunkt
wiederzugeben, in dem das System die Verarbeitung dieses Bildelements
beginnt. Beispielsweise kann ein medizinisches System verwendet werden,
um eine Bildsequenz aufzunehmen und verarbeitete Bilder der besagten
Sequenz während
einer Herzoperation wiederzugeben, welche die Einführung eines
Katheters von einem Arzt in die Arterie eines Patienten und die
Verfolgung der Katheterprogression in der besagten Arterie auf einem
Bildschirm beinhaltet. In diesem Fall ist es besonders wichtig, dass
das medizinische System dem Arzt über das Bild eine getreue Rückmeldung
liefert. Wenn der Arzt den Katheter handhabt, muss das Ergebnis
seiner Handlung nach einer sehr kurzen Verzögerung auf dem Bildschirm wahrnehmbar
sein. Eine zulässige Verzögerung beträgt beispielsweise
80 ms., was 2 Bildrahmen in einer Sequenz entspricht, die mit einer Rate
von 25 Bildern pro Sekunde aufgenommen wurde. Für diesen Zweck muss die gesamte
Rechenlatenz des Bildverarbeitungssystems vermindert werden.
-
Ein
zweites Hauptproblem hinsichtlich einer derartigen Bildverarbeitung
bezieht sich auf die Summe der innerhalb der zulässigen Verzögerung zu übertragenden Pixel. Aufgrund
des Echtzeitbetriebs hat diese Summe pro Sekunde die Größenordnung von
zu verarbeitenden Megapixeln.
-
Die
dem Rechnersystem angegliederte PW4R, enthüllt in der oben genannte Veröffentlichung,
schlägt
für diese
zwei Hauptprobleme keine Lösungen
vor. Die Entwicklung eines Systems, dass diese Probleme löst, erfordert
die präzise
Spezifikation eines Berechnungsmodells, das sich für den Anwendungsbereich
der Bildverarbeitung eignet. Dieses Berechnungsmodell beinhaltet
die Entwicklung eines effizienten Mechanismus für das Erlangen der notwendigen,
oben beschriebenen Leistungen.
-
Ein
weiteres Problem liegt in der Verwendung von Speichermitteln zwischen
den verschiedenen auf der Plattform verteilten Prozessoren. Wenn von
allen Prozessoren nur ein Speicher geteilt wird, würde dies
zu Konflikten führen.
Es wären
arbiträre Mittel
für die
Bewältigung
dieser Konflikte notwendig, was zu Latenz führen würde. Ein weiteres Problem, spezifisch
für die
Bildverarbeitung, liegt der Tatsache zugrunde, dass das Bild entweder
pixelweise verarbeitet wird, was nicht effizient ist, oder bildweise,
was hinsichtlich der Übertragung
effizient, aber hinsichtlich der Latenz nicht effizient ist. Ein
anderes Problem liegt der Tatsache zugrunde, dass man gegebenenfalls
viele verschiedene algorithmische Konfigurationen benötigen würde. Somit
wird ein Verfahren für die
Automatisierung der Funktionsweise der verschiedenen möglichen
Konfigurationen benötigt.
-
Ein
Ziel der Erfindung ist es, ein Softwaresystem bereitzustellen, bezeichnet
als Bildtransportmaschine für
die Verarbeitung einer Bildsequenz zum Verteilen von Bildverarbeitungsfunktionen
auf einem Multiprozessorsystem mit der Bezeichnung Plattform, wobei
die besagte Plattform Eingabebilddaten generiert, um verarbeitete
Ausgabebilddaten bereitzustellen.
-
Diese
Problem wird mit einer Bildtransportmaschine nach Anspruch 1 und
gemäß den abhängigen Ansprüchen gelöst. Diese
Bildtransportmaschine beinhaltet ein Modell zur Partitionierung
von Softwaredaten, bezeichnet als Kommunikationsmuster, das die
Bilder der Sequenz unter Verwendung von zeitmarkierten Datenpaketen
partitioniert, deren Übertragung
die Ausführung
der besagten Bildverarbeitungsfunktionen überlappen kann.
-
Die
Bildtransportmaschine gemäß der Erfindung
weist mehrere Vorteile auf: Sie ist dazu in der Lage, die Verteilung
der besagten Bildverarbeitungsfunktionen auf der Plattform auf eine
Art und Weise auszuführen,
die automatisch und flexibel ist. Sie ermöglicht es, die Latenz so klein
wie möglich
zu halten. Insbesondere ist sie sowohl hinsichtlich der Übertragung
als auch der Latenz effizient. Sie ermöglicht die Verteilung mehrerer
Algorithmen, die verschiedene Bildverarbeitungsfunktionen ausführen. Sie
ist besonders geeignete für
die Verwendung in Programmen für
die Verarbeitung medizinischer Röntgenbildsequenzen.
In einer Ausführungsform schlägt die Erfindung
Mittel vor, welche das Konfliktproblem lösen.
-
Die
Erfindung wird hiernach hinsichtlich der diagrammatischen Figuren
in Details beschrieben, von denen:
-
1A ein
Blockdiagramm einer Fließbandstruktur
des Kommunikationsmusters ist;
-
1B ein
Blockdiagramm einer Zerstreuungs/Sammlungs-Struktur des Kommunikationsmusters
ist;
-
1C ein
Blockdiagramm einer Zweigstruktur des Kommunikationsmusters ist;
-
1D ein
Blockdiagramm einer Breitbandstruktur des Kommunikationsmusters
ist;
-
2 die
Fließbandübertragung
ohne Überlappung
veranschaulicht;
-
3A die
Fließbandübertragung
mit Überlappung
veranschaulicht;
-
3B die
Zerstreuungsübertragung
mit Überlappung
veranschaulicht;
-
3C die
Sammlungsübertragung
mit Überlappung
veranschaulicht;
-
3D die
Zweiganschluss-Übertragung
mit Überlappung
veranschaulicht;
-
4 ein
Blockdiagramm einer medizinischen Vorrichtung mit Verarbeitungsmitteln
für die Verwendung
der Bildtransportmaschine ist.
-
Die
Erfindung betrifft ein Softwaresystem, bezeichnet als Bildtransportmaschine,
auf der Grundlage eines Softwarebauteils mit der Bezeichnung Kommunikationsmuster,
das am oberen Ende einer programmierbaren Hardwarearchitektur mit
der Bezeichnung Plattform liegt. Die Bildtransportmaschine führt die
Verteilung von einer oder mehreren algorithmischen Verarbeitungsfunktionsketten
auf der besagten Plattform aus. Die Plattform enthält einen
Satz verteilter Prozessorumgebungen, bezeichnet CE, mit Pfadverbindungen.
In einem Ausführungsbeispiel
wird die besagte Bildtransportmaschine hiernach für den automatischen
Einsatz von digitalen Röntgenbild-Verarbeitungsfunktionen,
bezeichnet IP, auf der Plattform beschrieben. Effizienz, Erweiterbarkeit,
Flexibilität,
niedrige Latenz und Anwenderfreundlichkeit sind einige der Kennzeichen dieser
Bildtransportmaschine.
-
Diese
Bildtransportmaschine ist aufgrund des Anwendungsbereichs Bedingungen
unterworfen, welcher die Bildnachverarbeitung für Röntgensysteme ist.
-
Beispielsweise
bei der Eingabe von Daten: Kann die Bildgröße eine Größenordnung von 1K × 1K × 16 Bits
Pixel haben? Die Bildrate die Größenordnung
von 25 oder 30 Bildern pro Sekunde betragen? Das Scanning des Bilds
verläuft
progressiv, die Daten kommen in horizontalen Zeilen. Die Bildtransportmaschine
lässt nur
eine Liveeingabe zu. Die Bildgröße und die
Bildrate können
geändert
werden, aber nicht während
einer Bildsequenz. Für
die Ausgabe von Daten kann die Bildgröße 1K × 1K × 16 Bits Pixel zur Anzeige
oder Ablage betragen. Die Anzeige kann ein medizinischer Monitor
sein. Die Bildspeicherung auf einer Platte kann auf verschiedenen
Ebenen der Verarbeitungskette erforderlich sein. In der Verarbeitungskette
können
mehrere Algorithmen miteinander kombiniert werden. Es ist ein Ziel
der vorgeschlagenen Bildtransportmaschine, dass die Latenz kürzer als
ein Bildzeitintervall ist. Es kann mehr Latenz zugelassen werden,
wenn die Algorithmen mehr erfordern. Die Bilder werden in Serien
geformt, und alle Bilder einer bestimmten Sequenz müssen verarbeitet werden,
um einen Bildverlust zu vermeiden. Diese Bildtransportmaschine hat
auch die Fähigkeit,
verschiedene Algorithmen zu vergleichen. Die Parameter können zwischen
Bildern geändert
werden. Die Algorithmen, die auf der Plattform zu verteilen sind, können enthalten:
Eine Rauschreduzierungsverarbeitung mit temporalen, spatialen oder
spatio-temporalen Verarbeitungsfunktionen, Kontrastanhebung oder
Randanhebung bei Multiauflösung,
Bildsubtraktion, Zoom mit Interpolation, Bildrotation, Bewegungsbestimmung;
Strukturdetektion, Strukturextraktion, wie dem Fachmann bekannt.
Diese als Beispiel gegebene Liste ist nicht erschöpfend. Die
Algorithmen können
nicht linear sein, verschiedene spatiale Breiten haben, d. h. Nachbarbereiche
können kausal
oder antikausal sein. Die algorithmische Komplexität kann bis
zu 100 Operationen pro Pixel erreichen.
-
Diese
Liste veranschaulicht, dass der Einsatz einer Multiprozessoranwendung
für die
Röntgenbildverarbeitung
sehr vielen Bedingungen unterworfen ist. Datenrate, Latenz, spatiale
Filterbreite und algorithmische Diversität machen die Entwicklung eines
effizienten Einsatzes sehr delikat. Flexibilität und Erweiterbarkeit sind
bedingende Faktoren, denn am oberen Ende der Leistungsausgabe erfordern
sie zusätzlich
eine beträchtliche
Vereinfachung: Das Einfügen,
Entfernen oder Tauschen eines Algorithmus muss mit einfachen Eingriffen
erreicht werden. Auch die Bildtransportmaschine sollte für Nichtspezialisten
handhabbar sein. Sie sollte nicht die Anwendungsintegrität gefährden. Die
Bildgröße oder
Bildrate muss einfach geändert
werden können. Ein
neuer Prozessor mit möglicherweise
mehr Leistung muss der Plattform Hinzugefügt werden können. Es müssen beliebige Modifikationen
an der Anwendungsinfrastruktur mit leichten Eingriffen handhabbar sein.
-
I) Spezifikation des Kommunikationsmusters
-
Die
Bildtransportmaschine wurde entwickelt, um alle den oben genannten
Anforderungen zu entsprechen. Der Aufbau einer effizienten Kommunikationsinfrastruktur
für eine
verteilte Verarbeitungsanwendung führt zur Spezifikation eines Kommunikationsmusters.
Die Gesamtfunktionsweise der besagten Bildtransportmaschine wird
allein über
die Spezifikation des Kommunikationsmusters automatisiert, womit
alle Kommunikationsdaten und Verarbeitungssteuerungen automatisch
bewerkstelligt werden. Das hiernach definierte Kommunikationsmuster
ist dazu fähig,
verteilte Röntgenanwendungen
zu handhaben und einem Anwender Mittel für die Division einer spezifischen
Kommunikationsinfrastruktur bereitzustellen, die einer bestimmten
Anwendung angepasst sind.
-
Die
Definition dieses Kommunikationsmusters beinhaltet Phasen der Definition
der Zielhardware mit einer Reihe von Prozessoren, ihrer Rechenleistung
und Anschlussmöglichkeit.
Die angezielte Hardwareplattform kann einem kommerziellen Betriebssystem
und einem kommerziellen Hostprozessor angegliedert sein, ausgerüstet mit
extra verteilten programmierbaren Umgebungen, bezeichnet als Rechenumgebungen,
benannt CE, die untereinander Daten austauschen können. Die
Rechenumgebungen sind mit physisch programmierbaren Datenpfaden
mit der Bezeichnung BUS miteinander verbunden. Beide CEs enthalten
einen Prozessor, seinen lokalen Speicher und dazu fähige Schnittstellenmittel, Übertragungen über den
BUS zu überwachen.
Jeder CE ist an ein kommerzielles Echtzeit-Betriebssystem angegliedert,
das Basiseinrichtungen enthält,
um die Datenübertragung
und Synchronisierung zwischen CEs zu bewerkstelligen. Dieses kommerzielle
Echtzeit-Betriebssystem entspricht nicht den vorher definierten
Bedürfnissen
an Flexibilität
und Erweiterbarkeit.
-
Aus
diesem Grund wird gemäß der Erfindung das
Softwarebauteil mit der Bezeichnung Bildtransportmaschine analysiert,
um die Entwicklung und Codierung einer parallelen Anwendung bis
zu dem Punkt zu erleichtern, an dem nur Bildverarbeitungsfunktionen
codiert werden müssen
und wo die gesamte Anwendungsinfrastruktur anhand einer textuellen
oder diagrammatischen Beschreibung spezifiziert und generiert werden
kann. Diese Bildtransportmaschine hat die Vorgabe, Anwendungen sowohl hinsichtlich
der Latenz als auch des Ablaufs effizient abzuwickeln. Für diesen
Zweck basiert die Bildtransportmaschine auf einem Kommunikationsmuster,
das für
die Übertragung
von Bilddatenpaketen entwickelt wurde. Die Latenz bezieht sich auf
die durchschnittliche Übertragungszeit
eines Datenelements durch das System von der Eingabe zur Ausgabe.
Der Ablauf bezieht sich auf die Effizienz der Übertragung, Synchronisierung
und Instruierung von Daten. Die Synchronisierung eines Bilddatenpakets
ist effizient, wenn sie im Vergleich zur Übertragungszeit des Bilddatenpakets
sehr kurz ist.
-
Die Übertragung
eines Bilddatenpaket ist effizient, wenn sie die Bandbreite des
BUSSES voll nutzt, über
den diese Übertragung
stattfindet. Und die Instruierung der Übertragung eines Bilddatenpaket
ist effizient, wenn sie in Bezug auf die lokale Verarbeitung, also
die temporale Überlappung
der Verarbeitung und Kommunikation der Daten, geschmeidig ist.
-
In
Bezug auf 1A bis 1D ist
das Kommunikationsmuster ein Modell zur Ermöglichung der Definition der
Bildverarbeitungsanwendung. Das besagte Kommunikationsmuster ist
ein dafür
ausgerichtetes Softwaremodell, die Automatisierung und die Optimierung
der Kommunikation und Berechnung von Daten über eine Reihe von Bildverarbeitungsfunktionen
IP zu bewerkstelligen, die in die besagte Bildverarbeitungsanwendung
eingebunden sind. Das besagte Kommunikationsmuster handhabt elementare
Bilddatenpakete, die regulär
von Modul zu Modul weitergeleitet von Softwaremodulen verarbeitet
werden. Die gesamte Verarbeitung kann als Ablauf aufeinanderfolgender
Bilddatenpakete betrachtet werden, die sich gegenseitig in das Modell
schieben, wo sie auf die Berechnungseinheiten mit der Bezeichnung
Module treffen, die sie wiederholt nach und nach verarbeiten. Allerdings
muss das System vor dem Erlangen eines flüssigen Datenflusses aus einem
Sperrzustand starten, in dem jedes Modul in einem Initialisierungszustand
blockiert ist, und unter Vermeidung von Stockungen und inkorrekter
Synchronisierung Geschwindigkeit aufnehmen. Das Kommunikationsmuster
wird aus mehreren Softwarebauteilen geformt, angeordnet gemäß einer
Datenkommunikationsentwicklung mit Knoten, Schnittstellen und Kanten.
-
Die
Knoten sind Softwaremodule, zur Vereinfachung als Module bezeichnet,
in Rahmen gezeigt. Die Module sind Ausführungseinheiten. Die Aufgabe eines
Moduls besteht in der Aktivierung der Bildverarbeitungsfunktion,
bezeichnet IP, die ihm angegliedert ist, und der Bewerkstelligung
der entsprechenden Übertragungen
und Synchronisierung der Daten. Einem bestimmten Modul ist nur eine
Bildverarbeitungsfunktion IP angegliedert. Diese Funktion IP kann
ihrerseits mehrere andere Funktionen aufrufen. Die Bildverarbeitungsfunktionen
IP werden innerhalb der Grenze der Verarbeitung und generell auf
einer Bilddatenpaketebene definiert, um eine niedrige Latenz zu
versichern. Somit wird eine Bildverarbeitungsanwendung als ein Satz
von Daten, Parameter oder Synchronisierungsinformation austauschenden Modulen
definiert. Das Kommunikationsmuster schließt weder Multiverarbeitung,
d. h. mehrere Module, die zur selben Bildverarbeitungsanwendung
unter selbem Prozessorbetrieb gehören, noch konkurrierende Bildverarbeitungsanwendungen,
d. h. mehrere gesonderte Bildverarbeitungsanwendungen, die dieselben
Prozessoren teilen, nicht aus.
-
Die
Kanten sind Verbindungen, die mit Pfeilen dargestellt und die mit
Anschlüsse
bezeichnet werden. Das Kommunikationsmuster definiert die logische
Anschlussmöglichkeit
in Verbindung mit dem Modul einer bestimmten Anwendung. Womit das Kommunikationsmuster
so ausgerichtet ist, dass die Daten über eine Verbindung nur in
eine Richtung und auf zyklische Art und Weise fließen: Schleifen
sind nicht gestattet, und es gibt keine vorgeschaltete Datenverbindung.
Die die Anschlüsse
darstellenden Pfeile sind dementsprechend ausgerichtet.
-
Die
Schnittstellen zwischen den Modulen und Anschlüssen sind Ports. Die Module
haben eine spezifische interne Struktur, welche ihnen den Austausch
von Information ermöglicht.
Der einzige Weg für
den Austausch von Information mit einem Modul verläuft über die
Ports. Die mit den Pfeilen angegebenen Anschlussrichtungen definieren
Eingabeports und Ausgabeports. Wenn diese Module mit zum Kommunikationsmuster
externen Einheiten kommunizieren müssen, werden diese Einheiten
als Terminalports bezeichnet. Die Anschlüsse definieren den für den Informationsaustausch
zwischen Modulports zuständigen
Mechanismus. Logische Anschlüsse können nur
erfolgreich sein, wenn sie physischen Pfaden, d. h. physischen Anschlüssen angegliedert sind.
-
Es
werden drei Typen von Anschlussklassen definiert: Der erste Typ
ist die Datenanschlussklasse, worin die Anschlüsse Bilddaten handhaben. Die
Datenanschlüsse
sind spezialisiert für
die Übertragung von
Bilddatenpaketen und sind unidirektional. Der zweite Typ ist die
Terminalanschlussklasse, der Halbanschlüsse zur Verbindung von Modulports
mit Terminalports enthält
und unidirektional ist. Der dritte Typ ist die Parameteranschlussklasse,
die Algorithmusparameter handhabt und bidirektional ist.
-
Jeder
Datenanschluss bezieht sich auf einen Parameter für die Angabe
des Typs der zu übertragenden
Daten, der statisch definiert ist. Tatsächlich reicht die Anzahl der
Bytes pro Pixel aus, solange eine Datenübertragung betroffen ist. Das
Kommunikationsmuster erlaubt keine Konvertierung des Typs während der
Datenübertragungszeit.
Wenn derartige Konvertierungen notwendig sind, müssen sie innerhalb der Bildverarbeitungsfunktionen
IP implementiert werden. Somit handhaben alle Eingabe- und Ausgabeports,
die einem bestimmten Anschluss entsprechen, mit demselben Datentyp,
womit ein einziger Parameter pro Anschluss gerechtfertigt wird.
Solange eine Datenübertragung
betroffen ist, ist jede beliebige Anzahl von Bytes pro Pixel annehmbar.
Allerdings, da der Datentyp auch auf der Ebene der Bildverarbeitungsfunktion
IP von Bedeutung ist, werden mögliche
Werte von 1, 2, 4 oder 8 Bytes pro Pixel spezifiziert.
-
Die
Module enthalten mehrere Typen, worunter: Ein Sourcemodul, bezeichnet
SOURCE, das keinerlei Eingabedatenanschluss aufweist und das zusammen
mit Synchronisierungsinformation für die Generierung der zu verarbeitenden
Daten zuständig ist;
ein Sinkmodul, bezeichnet SINK, das keinerlei Ausgabedatenanschluss
aufweist und als Empfänger verarbeiteter
Daten verwendet wird; und gewöhnliche
Module, bezeichnet MOD, die weder Source- noch Sinkmodule sind.
Die Source- und Sinkmodule sind naturgemäß oft mit Eingabe- und Ausgabe-Terminalanschlüssen ausgerüstet. Es
gibt nur ein Sourcemodul pro Kommunikationsmuster. Dagegen kann es
mehrere Sinkmodule geben. Es ist darauf hinzuweisen, dass Terminalausgabeanschlüsse nicht
notwendigerweise von einem Sinkmodul hervorgehen. Terminalanschlüsse können an
verschiedenen Stellen des Kommunikationsmusters verwendet werden, um
beispielsweise Daten auf einem bestimmten Medium zu speichern.
-
Das
Sourcemodul kann mehrere Ausgabedatenanschlüsse aufweisen, unter der Voraussetzung,
dass sie synchrone Datenströme
ausgeben. Das Sourcemodul ist auch zuständig für die Erzeugung einer Zeitreferenz-Datenstruktur,
bezeichnet Time-Ref welche jedes Bilddatenpaket einer bestimmten
Bildsequenz lokalisiert. Tatsächlich
enthält
diese Referenz ein Feld, das einen Bildindex innerhalb der Bildsequenz
identifiziert, und ein Feld, welches sich auf den Paketindex innerhalb
des laufenden Bilds bezieht. Die Time-Ref wird zusammen mit dem
entsprechenden Paket von Modul zu Modul weitergeleitet. Sie ermöglicht die
Ausführung
mehrerer wichtiger Aufgaben, die aus der Datenlokalisierung, dem
Management der Bildverarbeitungsfunktion IP und dem Verzögerungsmanagement
bestehen. Die Time-Ref ist per Definition eine Zeitreferenzstruktur,
die Datenpakete in Bezug auf den Bildindex in der Sequenz und in
Bezug auf die Datenpaketposition innerhalb des laufenden Bilds lokalisiert.
Sie ist somit nicht eine Datenpaketreferenz, in der mehrere gesonderte
Datenpakete zusammen mit Time-Ref-Strukturen mit derselben Information übertragen
werden können. Dies
ist insbesondere der Fall, wenn ein bestimmtes Eingabedatenpaket
mehrere Ausgabedatenpakete hervorbringt.
-
Mit
den soweit eingebrachten Elemente ist es bereits möglich, sehr
komplexe valide Kommunikationsmodelle zu erstellen. Es werden hiernach
die Anschlussregeln präsentiert:
Jedes Modul ist mit einem einzigen Parameteranschluss ausgerüstet; jedes
Kommunikationsmuster muss mindestens ein Source- und ein Sinkmodul
enthalten; das Sourcemodul ist einzig; es können mehrere Sinkmodule gleichzeitig
bestehen; das Source kann mehrere Datenausgabeports entsprechend
synchronen Strömen aufweisen;
das Sink kann mehrere Dateneingabeports aufweisen; ein gewöhnliches
Modul kann mehr als einen Eingabe- und/oder Ausgabeport aufweisen; ein
Datenausgabeport kann von mehreren einfache Datenanschlüssen gelesen
werden; ein Dateneingabeport kann nicht von mehreren einfachen Datenanschlüssen beschrieben
werden; Datenanschlüsse können Fließbandebenen
umgehen; Datenanschlussschleifen („No-loop"-Regel) sind nicht gestattet; mehrere
Anschlüsse
können
nur vereint werden, wenn sie aus gemeinsamer Zerstreuung kommen und
wenn sie dieselbe Streifenübertragungsfrequenz aufweisen;
eine Teilsammlung ist möglich,
wenn sie die letzten zwei Regeln beachtet. Die meisten oben aufgeführten Regeln
sind natürlich
oder permissiv. Allerdings scheint die „No-loop"-Regel die Möglichkeit der temporalen Implementierung
rekursiver Algorithmen definitiv auszuschließen. Dies ist auch tatsächlich eine
inkorrekte Assertion. Temporale rekursive Filter erfordern vorhergehende
ausgehende Daten als Eingabe. Aber es besteht keine Erfordernis
für die
Wiedergewinnung vorhergehender Ausgabedaten von einem externen Pfad,
wenn diese Daten intern erzeugt wurden. Es reicht aus, dem Entwickler eine
Art der Datenspeicherung zwischen konsekutiven Bildern bereitzustellen,
um diese Schwierigkeit zu bewältigen.
Somit verhindert die Entfernung von Datenanschlussschleifen aus
Kommunikationsmuster-Spezifikationen eine katastrophale Implementierung
und theoretische Probleme. Ebenso darf nicht gefolgert werden, dass
eventuelle Feedbacks auf intermodularer Ebene unmöglich sind.
Die „No-loop"-Bedingung findet
nur auf Datenanschlüsse Anwendung,
aber Parameteranschlüsse
können
einwandfrei verwendet werden, um begrenzte Feedbacks einzubringen,
beispielsweise unter Einbezug von Steuerinformation.
-
II) Kartierung des Kommunikationsmusters
auf der Plattform.
-
Das
Kommunikationsmuster ist auf der Plattform kartiert. Die Kartierungsoperation
definiert die Verbindung zwischen Modulen und Rechenumgebungen und
gewährt
eine Implementierung der Art, wie die Bildverarbeitungsfunktionen
IP mit den Daten interagiert, die das Prozessornetzwerk durchlaufen. Diese
Operation beinhaltet Phasen der Partitionierung der Eingabedaten
in Datenpakete und die Übertragung
der besagten Bilddatenpakete.
-
Gemäß der Erfindung
werden die Eingabedaten vom Sourcemodul in Datenpakete partitioniert, die
Datenscheiben mit der Bezeichnung Bildstreifen sind. Ein Bildstreifen
ist ein Paket konsekutiver Bildzeilen, möglicherweise andere Bildstreifen überlappend.
Im folgenden Beispiel einer röntgenmedizinischen
Bildverarbeitung wird ein Bild einer Sequenz horizontal gescannt
und die Daten kommen in horizontalen Zeilen an, geformt aus Pixeln,
die verarbeitet werden müssen.
Das Bild wird nicht pixelweise verarbeitete, was nicht effizient
ist, und die Sequenz wird nicht bildweise verarbeitete, was hinsichtlich
der Übertragung
effizient, aber hinsichtlich der Latent nicht effizient ist. Dagegen
wird das Bild in Bildstreifen mit mehreren Zeilen entsprechend der
oben beschriebenen Bilddatenpakete unterteilt. Die Bildstreifen
sind parallel zu den Bildzeilen. Die Bildstreifen werden für eine Bildverarbeitung übertragen.
Tatsächlich
bewirkt jedes Modul eine Latenz, die proportional zur der Summe
der zu verarbeitenden Daten ist. Der Erfindung gemäß wurde
herausgefunden, dass die Verwendung von Bildstreifen sowohl bei
der hohen Übertragung
als auch bei schwacher Latenz effizient ist. Die Wahl der Anzahl
an Zeilen zur Bildung eines Bildstreifens legt einen Kompromiss
zwischen der Übertragungseffizienz
und der Latenz fest. Die Bildstreifen halten die Latenz kleinstmöglich. Somit
muss alles, was vorher hinsichtlich von Datenpaketen beschrieben
wurde, für
eine Anwendung auf Bildstreifen in Betracht gezogen werden. In einem Ausführungsbeispiel
enthält
ein Bild mit 1024 Zeilen 32 Bildstreifen mit 32 Zeilen.
-
Da
die meisten Röntgenbildalgorithmen 2-D-Nachbarbereiche
einführen,
muss eine spatiale Überlappung
berücksichtigt
werden. Überlappungsbereiche
werden auf der Ebene des Eingabeports benötigt. Die IP-Funktion wird
mit Regionen bereitgestellt, die sowohl den aktiven Bereich enthalten,
geformt aus den zu verarbeitenden Pixeln, als auch den Überlappungsbereich,
geformt aus zusätzlichen
Pixeln, benötigt
zur Fertigstellung der Verarbeitung im aktiven Bereich. Da die von
der PP-Funktion betrachteten Eingaberegionen natürlich zusammentreffen sollten,
werden auf der Modulebene Überlappungsparameter
erklärt.
Dies bedeutet, dass Algorithmen, die mehrere Eingaben kombinieren,
die verschiedene spatiale Breiten erfordern, tatsächlich mit
Regionen bereitgestellt werden, die eine einzige Überlappung
aufweisen. Auch eine symmetrische Überlappungsgeometrie wird in
Betracht gezogen. Da nur horizontale Bildstreifen betrachtet werden
kann der Überlappungseffekt
von einem einzigen Modulebenenparameter hinsichtlich der Anzahl
an Überlappungszeilen
an beiden Seiten der Bildstreifen berücksichtigt werden. Es ist zu
beachten, dass eine spatiale Überlappung bei
jeder Modulkreuzung zusätzliche
Streifenverzögerungen
bewirkt. Es ist darauf hinzuweisen, dass die spatiale Überlappung
nicht mit temporaler Überlappung
verwechselt werden darf, die sich auf die Fähigkeit bezieht, dass eine
Datenübertragung
eine Datenverarbeitung überlappt.
-
Für den Start
einer anwenderdefinierten Bildverarbeitungsfunktion IP am laufenden
Bildstreifen wird eine Optimierung erreicht, indem eine temporale Inter/Infra-Modul-Eingabe/Ausgabe-Berechnungsüberlappung über mehrere
vordefinierte Typen von Anschlussmitteln bewerkstelligt wird. Typen
von Anschlussmitteln werden hiernach Fließband bezeichnet, Zerstreuung/Sammlung
und Zweiganschlüsse wurden
definiert. Unter den oben genannten Anschlüssen bilden die Datenanschlüsse die
wichtigste Klasse. Alle Anschlüsse,
die zur Klasse der Datenanschlüsse
gehören,
versichern wiederholte Übertragungen
von aufeinanderfolgenden Bildstreifen zusammen mit der notwendigen
Synchronisierungsinformation, einschließlich Time-Ref. Sie sind alle
monodirektional. In Bezug auf 1A bis 1D enthalten
die Datenanschlüsse
einen:
Einfachen Anschluss, bezeichnet PP, als Point-to-Point-Anschluss,
der konsekutive Bildstreifen übertragen
kann (1A).
-
[1/n]-Zerstreuungsanschluss,
bezeichnet SC, der ein Point-to-Point-Anschluss ist, gehörend zur Gruppe von n Anschlüssen, die
alle aus dem gemeinsamen Ausgabeport hervorgehen, der Bildstreifen
nacheinander mit einer Rate von einem Bildstreifen alle n Bildstreifen übertragen
kann. Der entsprechende Sendeport hat die Bezeichnung Datenzerstreuungsport
(1B).
-
[1/n]-Sammlungsanschluss,
bezeichnet GA, der auch ein Point-to-Point-Anschluss ist, gehörend zur Gruppe von n Anschlüssen, die
alle einen gemeinsamen Eingabeport anlaufen, der Bildstreifen nacheinander
mit einer Rate von einem Bildstreifen alle n Bildstreifen übertragen
und alle Bildstreifen sammeln kann, die diesen Ausgabeport anlaufen. Der
entsprechende Empfangsport hat die Bezeichnung Datensammlungsport
(1B).
-
Zweiganschluss
(1C); bezeichnet BR, der auch ein Point-to-Point-Anschluss ist, ähnlich wie ein
einfacher Anschluss, aber zur Verbindung zweier Module, die zum
selben Zweig einer Zerstreuungs-Sammlungs-Struktur gehören.
-
Es
werden hiernach Beispiele von Kommunikationsmustern beschrieben,
welche die besagten Bildstreifen mit kleinstmöglicher Latenz verwenden. Sie
bauen auf Methoden der Aufgabenpartitionierung und Methoden der
Datenpartitionierung.
-
In
Bezug auf 1A beinhaltet eine Fließbandstruktur
ein Sourcemodul SOURCE, ein oder mehrere gewöhnliche Module, beispielsweise MOD1,
MOD2, und ein Sinkmodul SINK. Die einfachen Anschlüsse PP sind
angepasst für
die Implementierung der besagten Fließbandstruktur, die eine algorithmische
Serienkombination ausführen
kann. Die Bildverarbeitungsfunktionen werden nacheinander entlang
dem physischen Datenpfad zur Verbindung der einbezogenen Module
zur Formung der besagten Aufgabenpanitionierungsstruktur angewendet.
Jedes Modul aktiviert für
alle Bildstreifen eine bestimmte Aufgabe, und mehrere unbestimmte
Ergebnisse können
als parallele Datenströme
zum nächsten
Modul weitergeleitet werden. 1A stellt
eine reine Aufgabenpanitionierungsstruktur dar. Eine Abkürzung zwischen
der Source- und dem Sinkmodul oder zwischen dem Source- und einem
gewöhnlichen
Modul ist gestattet, wie mit dem Anschluss, der mit der gepunkteten
Linie veranschaulichten wird. Die mit der Fließbandaufgabenpanitionierung
eingebrachte Latenz nimmt mit der Anzahl an Fließbandebenen zu. Tatsächlich gehen
bei jedem Durchlaufen einer Fließbandstufe mehrere Bildstreifenzeitperioden
verloren, aber in der Praxis ist die Fließbandaufgabenpanitionierung
sehr effizient.
-
In
Bezug auf 1B enthält eine Zerstreuungs/Sammlungs-Struktur
ein Sourcemodul SOURCE, mindestens zwei gewöhnliche Module, parallel in Zweigen
angeordnet wie MOD1, MOD2, ..., MODn, und ein Sinkmodul SINK. Die
Zerstreuungsanschlüsse
SC und die Sammlungsanschlüsse
GA sind ein spezialisiener Zerstreuungs/Sammlungs-Typ der Aufgabenpanitionierung.
Das vom Port des Sourcemoduls ausgegebene Bild beispielsweise wird
in Bildstreifen geteilt, die gemäß einem
Index nummeriert sind. Ein [1/n]-Zerstreuungsanschluss verteilt
die Bildstreifen gleichmäßig über die
Module MOD1 bis MODn gemäß ihrem
Streifenindex. Nach der Verarbeitung werden die zerstreuten Bildstreifen
dank einem [1/n]-Sammlungsanschluss automatisch wieder zusammengefügt. Anstatt
der n Zweige könnten
nur zwei Zweige für
die Formung einer Zerstreuungs/Sammlungs-Struktur verwendet werden.
In diesem Fall werden die Bildstreifen mit dem ungeraden Index in
einem Zweig verarbeitet, und die Bildstreifen mit dem geraden Index
werden in dem anderen Zweig verarbeitet. 1B stellt
eine reine Datenpanitionierungsmethode dar. Eine Abkürzung zwischen dem
Source- und dem
Sinkmodule ist gestattet. Die Zerstreuungs/Sammlungs-Operation ermöglicht den Erhalt
der Vorteile der Datenpartitionierung unter Erhalt einer niedrigen
Latenz. Allerdings könnte
dies kritische Schwierigkeiten bewirken, wenn auf Algorithmen angewendet,
die eine weite spatiale Breite aufweisen, da naturgemäß jeder
Zweig der Zerstreuungsstruktur nicht aneinander angrenzender Bildstreifen
verarbeitet. Am vorteilhaftesten ist es, wenn die erforderlichen
spatialen Überlappungen
begrenzt sind.
-
In
Bezug auf 1C enthält eine Zweigmodusstruktur
eine Zerstreuungs/Sammlungs-Struktur mit Fließbandstrukturen in den Zweigen.
Die Zerstreuungs/Sammlungs-Struktur enthält ein Sourcemodul SOURCE,
mindestens zwei parallele Zweige mit Fließbandstrukturen von gewöhnlichen
Modulen und ein Sinkmodul SINK. Das vom Port des Sourcemoduls ausgegebene
Bild beispielsweise wird in n = 2 Bildstreifen geteilt. Die Bildstreifen
sind gemäß einem
Index nummeriert, in diesem Beispiel können es die Indizes 1, 2 sein.
Ein [1/2]-Zerstreuungsanschluss SC verteilt die Bildstreifen auf
MODI, MOD2 des ersten Zweigs BR gemäß der Parität ihres Streifenindexes. Die
Bildstreifen werden abwechselnd von den Modulen MOD3, MOD4 des zweiten
Zweigs BR verarbeitet. Nach der Verarbeitung werden die zerstreuten
Bildstreifen dank einem [1/2]-Sammlungsanschluss GA automatisch
wieder zusammengefügt.
Eine Abkürzung
wie vorher beschrieben ist gestattet.
-
In
Bezug auf 1D können weitere Strukturen mit
der Bezeichnung Breitband-Datenpartitionierungsstrukturen als Zusammensetzung
der vorhergehenden Strukturen unter Verwendung einfacher Anschlüsse PP entwickelt
werden. Die Breitband-Datenpartitionierungsstrukturen
verwenden eine Charakteristik des Sourcemoduls, d. h. seine Fähigkeit, zwei
synchrone Ausgabeströme
zu befördern.
Wenn innerhalb des Moduls SOURCE eine Verzögerung eines halben Bildes
plus eine mögliche
Vorkehrung für einen
spatial überlappenden
Bildstreifen eingebracht wird, dann wird es machbar, zwei synchrone
Ströme zu
erzeugen, als würden
sie von zwei gesonderten halbgroßen Bildern ausgehen. Die nachgeschalteten Module
verarbeiten diese Ströme
unabhängig
abwärts
zum Modul SINK, das dann zwei gesonderte Eingabeports aufweist,
einen für
den oberen Teil und einen für
den unteren Teil des Bilds. Jetzt verbleibt noch die Sammlung der
zwei halben Bilder innerhalb der Sink-Bildverarbeitungsfunktion
und die Verschiebung des Endergebnisses zum angestrebten Terminalpunkt.
Mehr allgemein gesagt kann diese Anordnung auf n konsekutive, möglicherweise überlappende
Bildbreitbänder
angewendet werden, die aus mehreren konsekutiven Bildstreifen hergestellt
werden. Die oben beschriebene Fließbandaufgabenpartitionierung
kann nahtlos mit einer Breitband-Datenpartitionierung
kombiniert werden, wie in 1D veranschaulicht.
-
Die
Breitband-Datenpartitionierung ist der Fließbandaufgabenpartitionierung
vorzuziehen, da sie die erforderliche Anzahl der Bandreiten vermindert
und eine hohe Modularität
erlaubt, womit Aufgaben keiner unnatürlichen Aufteilung unterliegen
müssen,
um fließbandbedingte
Echtzeitbedingungen zu erreichen. Allerdings bedingt eine Breitband-Datenpartitionierung
höhere
Latenzen. Die Fließbandaufgabenpartitionierung
ist effizienter als die Breitband-Datenpartitionierung.
-
III) Definition der Übertragung
der Bildstreifen
-
Time-Ref
lokalisiert Bildstreifen in Bezug auf den laufenden Bildindex in
der Sequenz und in Bezug auf die Bildstreifenposition innerhalb
des laufenden Bilds. Wie oben beschrieben können mehrere gesonderte Bildstreifen
zusammen mit Time-Ref-Strukturen übertragen
werden, die dieselbe Information enthalten, wie wenn ein bestimmter
Eingabebildstreifen mehrere Ausgabebildstreifen hervorbringt. Die
besagten Bildstreifen werden nacheinander über die Anschlüsse übertragen.
Somit findet die gesamte Datenkommunikation und -berechnung auf
Streifenebene statt, was es erlaubt, die Latenz sehr klein zu halten.
Jedes Modul erhält
wiederholt die Verarbeitungen und überträgt die Bildstreifen. Zeitmarkierte Bildstreifen
werden auf derartige Art und Weise verwendet, dass zwischen der
Bildstreifenübertragung eine
intermodulare und intramodulare temporale Überlappung ausgeführt wird,
und diese Berechnung wird konstant durchgeführt: Somit wird die Gesamtfunktionsweise
absolut optimiert. Für
jeden Typ der Anschlussmittel wird die präzise Art, wie diese Überlappungseigenschaften
erreicht werden, in Details erklärt.
Dies beruht auf einem eigenen Eingabe/Ausgabe-Bildstreifenverzögerungsverfahren.
-
2 veranschaulicht
die Übertragung
der Bildstreifen in der Fließbandstruktur
der 1A gemäß einer
Technik mit der Bezeichnung Fließband ohne Überlappen. Die SOURCE ist definiert
für die Erzeugung
einer vorbestimmten Anzahl von angrenzenden Bildstreifen (mit aktiven
Bereichen, ohne Überlappungsbereiche).
Die Bildstreifen haben eine bestimmte Anzahl an Zeilen mit der Bezeichnung Breite
w. Diese Bildstreifen, von der SOURCE erzeugt, werden nacheinander
an MOD1 und von MOD1 an MOD2 übertragen.
MOD1 beispielsweise wendet an jedem Bildstreifen eine erste Bildverarbeitungsfunktion
IP1 an, und MOD2 wendet außerdem an
dem übertragenen
Bildstreifen eine zweite Bildverarbeitungsfunktion IP2 an. Die Referenzen
t-4, t-3, t-2, t-1, t sind die Zeitpunkte, in denen die aufeinanderfolgenden
Bildstreifen von MOD1 verarbeitet werden. Während die erste Bildverarbeitungsfunktion IP1
im Zeitpunkt t einen Bildstreifen, bezeichnet [t]-Bildstreifen,
erzeugt, ist der im vorhergehenden Zeitpunkt t-1 erzeugte Bildstreifen,
bezeichnet [t-1]-Bildstreifen, bereits für die Übertragung an MOD2 verfügbar. Und
der vorhergehende Bildstreifen, der im Zeitpunkt t-2, bezeichnet
[t-2]-Bildstreifen, erzeugt
wurde, ist bereits in MOD2 verfügbar,
um von der IP2-Bildverarbeitungsfunktion
verarbeitet zu werden. Somit überträgt in einer
Fließbandstruktur
während
der Erzeugung eines bestimmten [t]-Bildstreifens von einem ersten
Modul im Zeitpunkt t der erste Modulausgabeport den letzten zeitgerechten [t-1]-Bildstreifen. Und
während
der Verarbeitung eines bestimmten [t-2]-Bildstreifens von dem zweiten Modul
erhält
der besagte zweite Moduleingabeport den nächsten zeitgerechten [t-1]-Bildstreifen.
Somit arbeitet jedes Modul konstant.
-
3A veranschaulicht
die Übertragung
der Bildstreifen in der Fließbandstruktur
der 1A gemäß einer
Technik mit der Bezeichnung Fließband ohne Überlappen: Die SOURCE ist definiert
für die Erzeugung
einer vorbestimmten Anzahl von angrenzenden Bildstreifen (mit aktiven
Bereichen, ohne Überlappungsbereiche).
Die Bildstreifen haben eine bestimmte Anzahl an Zeilen mit der Bezeichnung Breite
w. In einem Beispiel werden diese Bildstreifen, erzeugt von einer
SOURCE, nacheinander an das erste Modul MODI übertragen, um von einer ersten Verarbeitungsfunktion
IP1 verarbeitet zu werden. Dann werden sie in derselben Reihenfolge
an das zweite Modul MOD2 übertragen,
um von einer zweiten Verarbeitungsfunktion IP2 verarbeitete zu werden,
die eine Nachbarschaft der Pixel benötigt, um sie zu verarbeiten.
Somit werden zwei Überlappungsbereiche
einer vorbestimmten Breite a, befindlich beiderseits des aktiven
Bereichs, in MOD2 benötigt,
um die besagte zweite Bildverarbeitungsfunktion IP2 auszuführen. Die
Referenzen t-4, t-3, t-2, t-1, t sind die aufeinanderfolgenden Zeitpunkte,
in denen die angrenzenden Bildstreifen einer Breite w vom ersten
Modul MOD1 erzeugt werden.
-
Während die
Bildverarbeitungsfunktion IP1 einen [t]-Bildstreifen im Zeitpunkt
t in MOD1 hervorbringt, hat sie bereits den [t-1]-Bildstreifen erzeugt. Das
nächste
Modul MOD2 benötigt
einen aktiven Bereich plus zwei Überlappungsbereiche.
Somit kann der [t-1]-Bildstreifen nicht übertragen werden, da der im
[t]-Bildstreifen befindliche Überlappungsbereich nicht
fertig ist. Allerdings ist der bei t-2 erzeugte [t-2]-Bildstreifen bereits
verfügbar.
Somit sendet der Ausgabeport von MODI im Zeitpunkt t den [t-2]-Bildstreifen
plus den Überlappungsbereich,
der im [t-1]-Bildstreifen befindlich ist. Allerdings muss er weder
den Überlappungsbereich
senden, der im [t-3]-Bildstreifen befindlich ist, noch einen Bereich
der Breite a, im [t-2]-Bildstreifen befindlich, angrenzend an den
[t-3]-Bildstreifen, denn diese Bereiche sind im zweiten Modul MOD2
bereits verfügbar.
Während
der Erzeugung des [t]-Bildstreifens hat der Bildstreifen, der zum
zweiten Modul MOD2 übertragen
wird, die Besonderheit, eine Breite w aufzuweisen und von der Breite
a in Bezug auf den [t-2]-Bildstreifen zum [t-1]-Bildstreifen verschoben
zu werden. Während dieser Übertragungsoperation
verarbeitet das Modul MOD2 den [t-3]-Bildstreifen mit seinen zwei Überlappungsbereichen
(ein Überlappungsbereich
an jeder Seite), die in MOD2 bereits verfügbar sind. Somit wird in dem
Mechanismus der Fließbandaufgabenpartitionierung
mit Überlappung
eine zwischen der Erzeugung eines bestimmten Bildstreifen und der Übertragung
eines vorher erzeugten Bildstreifens zusätzliche Verzögerung benötigt. Diese
zusätzliche Verzögerung bezieht
sich auf die Erzeugung des notwendigen Überlappungsbereichs, der im
letzten zeitgerechten Bildstreifen befindlich ist. Die Verwendung dieser
zusätzlichen
Verzögerung
und die spatiale Verschiebung gewährt ein optimales Schema der Bildstreifenübertragung.
-
3B veranschaulicht
die Übertragung
der Bildstreifen in der Zerstreuungstruktur der 1B gemäß einer
Technik mit der Bezeichnung Zerstreuung mit Überlappen. Die SOURCE wird
definiert für die
Erzeugung einer vorbestimmten Anzahl an angrenzenden Bildstreifen
mit einer bestimmten Anzahl an Zeilen mit der Bezeichnung Breite
w. In dem in 3B veranschaulichten Beispiel
wird ein Bildstreifen von zweien zum ersten Modul MOD1 übertragen. Die
besagten Bildstreifen werden nacheinander übertragen, um von einer ersten
Verarbeitungsfunktion IP1 verarbeitet zu werden. Die Bildstreifen,
die nicht an das erste Modul MODI übertragen werden, werden an
das zweite Modul MOD2, parallel angeordnet, übertragen, um von einer zweiten
Verarbeitungsfunktion IP2 verarbeitet zu werden. Somit verarbeiten
die Module MOD1 und MOD2 abwechselnd Bildstreifen. Dies kann der
Fall sein, wenn die Anzahl der Module von 1B n =
2 ist. Zwischen den von MODI verarbeiteten Bildstreifen gibt es
fehlende Zeilen, und zwischen den von MOD2 verarbeiteten Bildstreifen
gibt es fehlende Zeilen. MODI verarbeitet beispielsweise die mit
weißen
Bändern
dargestellten Bildstreifen, und MOD2 verarbeitet die mit schraffierten
Bändern
dargestellten Bildstreifen. MODI verarbeitet beispielsweise die
Bildstreifen mit ungeraden Indizes, und MOD2 verarbeitet die Bildstreifen
mit geraden Indizes. Die Bildverarbeitungsfunktionen von MOD1 und
MOD2 werden für
die Benötigung
einer Nachbarschaft an Pixeln für
deren Verarbeitung vorausgesetzt. Somit werden zwei Überlappungsbereiche
mit vorbestimmter Breite a an jeder Seite des aktiven Bereichs benötigt, um
die besagten Bildverarbeitungsfunktionen IP1, IP2 auszuführen.
-
Die
Referenzen t-4, t-3, t-2, t-1, t sind die aufeinanderfolgenden Zeitpunkte,
in denen die Bildstreifen mit einer Breite w von der SOURCE erzeugt
werden. Während
die SOURCE einen [t]-Bildstreifen mit einem geraden Index im Zeitpunkt
t erzeugt, hat sie bereits die vorhergehenden Bildstreifen bei t-4,
t-3, t-2, t-1, ... erzeugt. Das nächste Modul MOD2 benötigt einen
aktiven Bereich mit einem geraden Index plus zwei Überlappungsbereiche,
die an jeder Seite im Bildstreifen mit ungeraden Indizes gelegen
sind. Somit wird der [t-2]-Bildstreifen,
bei t-2 in der SOURCE erzeugt, mit einem geraden Index und bereits
verfügbar,
an MOD2 übertragen,
zusammen mit zwei Überlappungsbereichen
der Breite a, in den bereits erzeugten [t-3]- und [t-1]-Bildstreifen
ungeraden Indexes befindlich. Somit sendet im Zeitpunkt t der Ausgabeport
der SOURCE den [t-2]-Bildstreifen plus die besagten Überlappungsbereiche,
an seinen Seiten befindlich. Während
dieser Übertragungsoperation
verarbeitet das Modul MOD2 den [t-4]-Bildstreifen, der einen geraden
Index hat, und seine zwei Überlappungsbereiche,
die respektive von dem [t-5]-Bildstreifen
ungeraden Indexes und dem [t-3]-Bildstreifen ungeraden Indexes kommen
(ein Überlappungsbereich
an jeder Seite), sind in MOD2 bereits verfügbar. Während der Übertragung des [t-2]-Bildstreifens
geraden Indexes kann der SOURCE-Ausgabeport nicht den [t-1]-Bildstreifen
ungeraden Indexes an MOD1 übertragen,
da der im [t]-Bildstreifen befindliche Überlappungsbereich noch nicht fertig
ist. So verarbeitet MOD1 den [t-3]-Bildstreifen ungeraden Indexes, der
vor der Übertragung
des [t-2]-Bildstreifens geraden Indexes übertragen wurde. Es ist zu
beachten, dass die Überlappungsbereiche
zusammen mit den aktiven Bereichen übertragen werden müssen, da
sie in Bildstreifen von Indizes befindlich sind, die ansonsten nicht
von den Modulen MOD1 oder MOD2 verarbeitet werden. MOD2 hat beispielsweise
keine Zeilen von Bildstreifen ungeraden Indizes außer den
Zeilen der Überlappungsbereiche.
MODI hat keine Zeilen von Bildstreifen geraden Indizes außer den
Zeilen der Überlappungsbereiche.
Wie oben erklärt
gibt es Lücken
zwischen den Bildstreifen in MOD1, MOD2.
-
3C veranschaulicht
die Übertragung
von Bildstreifen in der Sammlungsstruktur von Fig. gemäß einer
Technik mit der Bezeichnung Sammlung mit Überlappen. Das SINK ist definiert
für den
Aufbau eines Endbilds anhand der Sammlung einer vorbestimmten Anzahl
von angrenzenden Bildstreifen, beispielsweise den gemäß der Zerstreuung
mit Überlappen
verarbeiteten Bildstreifen wie vorher beschrieben. Die Bildstreifen
haben eine bestimmte Anzahl an Zeilen mit der Bezeichnung Breite
w. In dem in 3C veranschaulichten Beispiel
werden diese Bildstreifen vom Eingabeport des SINK gesammelt. Das
SINK erfordert nicht die von IP 1 und IP2 verarbeiteten Überlappungsbereiche.
Das SINK benötigt nur
die angrenzenden aktiven Bereiche für den Aufbau des Endbilds.
So werden die Bildstreifen ohne ihre Überlappungsbereiche abwechselnd
von MOD1 und MOD2 in der Reihenfolge der aufeinanderfolgenden Zeitpunkte
t-4, t-3, t-2, t-1, t gesendet. Somit sendet MODI die [t-5]-Bildstreifen
ungeraden Indexes, dann sendet MOD2 die [t-4]-Bildstreifen geraden
Indexes, dann sendet MOD1 die [t-3]-Bildstreifen ungeraden Indexes,
dann sendet MOD2 die [t-2]-Bildstreifen geraden Indexes, dann sendet
MODI die [t-1]-Bildstreifen ungeraden Indexes, dann sendet MOD2
die [t]-Bildstreifen geraden Indexes. Und SINK baut das Endbild
nur mit den aktiven Bereichen auf, da, wenn SINK die Zeilen der
[t]-Bildstreifen erhält,
es beispielsweise bereits über
die Zeilen der angrenzendden [t-1]-Bildstreifen verfügt etc.
-
3D veranschaulicht
die Übertragung
von Bildstreifen in der Zweigstruktur der 1C gemäß einer
Technik mit der Bezeichnung Zweiganschluss mit Überlappen. Hinsichtlich des
Zweigs, geformt aus den Modulen MOD1 und MOD, während die SOURCE einen [t]-Bildstreifen
mit einem geraden Index im Zeitpunkt t erzeugt, hat dieser bereits
die vorhergehenden Bildstreifen bei t-4, t-3, t-2, t-1, ... erzeugt.
Es wird vorausgesetzt, dass das nächste Modul MOD1 einen aktiven
Bereich mit einem geraden Index plus zwei Überlappungsbereiche benötigt, die
an jeder Seite im Bildstreifen mit ungeraden Indizes gelegen sind.
Somit wird der [t-2]-Bildstreifen, bei t-2 in der SOURCE erzeugt,
mit einem geraden Index und bereits verfügbar, an MOD1 übertragen,
zusammen mit zwei Überlappungsbereichen
der Breite a, in den bereits erzeugten [t-3]- und [t-1]-Bildstreifen
ungeraden Indexes befindlich. Somit sendet im Zeitpunkt t der Ausgabeport
der SOURCE den [t-2]-Bildstreifen plus die besagten Überlappungsbereiche,
an seinen Seiten befindlich. Während
der Übertragungsoperation verarbeitet
das Modul MOD1 den [t-4]-Bildstreifen, der einen geraden Index hat,
und seine zwei Überlappungsbereiche,
die respektive von dem [t-5]-Bildstreifen ungeraden Indexes und
dem [t-3]-Bildstreifen ungeraden Indexes kommen (ein Überlappungsbereich
an jeder Seite), sind in MOD2 bereits verfügbar. Während der Übertragung des [t-2]-Bildstreifens
geraden Indexes kann der SOURCE-Ausgabeport den [t-1]-Bildstreifen
ungeraden Indexes nicht an MOD1 übertragen,
da der im [t]-Bildstreifen befindliche Überlappungsbereich noch nicht
fertig ist. Somit verarbeitet MODI den [t-3]-Bildstreifen ungeraden
Indexes, der vor der Übertragung
des [t-2]-Bildstreifens geraden Indexes übertragen wurde. Es ist zu
beachten, dass die Überlappungsbereiche
zusammen mit den aktiven Bereichen übertragen werden müssen, da
sie in Bildstreifen von Indizes befindlich sind, die ansonsten nicht
von den Modulen MOD1 oder MOD2 verarbeitete werden. Jetzt müssen unter
der Annahme, dass das nächste
Modul MOD des Zweigs auch Überlappungsbereiche
benötigt,
die Überlappungsbereiche
entlang dem Zweig kumuliert werden, um in der Modulkette innerhalb
des Zweigs verwendet zu werden.
-
In
der Breitbandstruktur der 1D werden die
Bildstreifen gemäß einer
Technik mit der Bezeichnung Breitband mit Überlappen übertragen. Die SOURCE ist definiert,
um zwei Bildhälften
zu erzeugen, wobei beide Bildhälften
aus Bildstreifen geformt werden. Die erste Bildhälfte wird an den ersten Zweig mit
den Modulen MOD1 und MOD3 übertragen.
Die zweite Bildhälfte
wird an den zweiten Zweig mit den Modulen MOD2 und MOD4, parallel
angeordnet, übertragen.
In jedem Zweig werden die Bildstreifen wie in Fließbandstrukturen
verarbeitet. Die Übertragung
wird entweder gemäß der Fließbandtechnik, veranschaulicht
in 2, oder, wenn Nachbarbereiche benötigt werden,
gemäß der Fließbandtechnik mit Überlappung,
veranschaulicht in 3A, ausgeführt.
-
In
allen Übertragungstechniken
mit Überlappungen
sind die Verzögerung
für die
Erzeugung der Bildstreifen, die Verzögerungen für das Senden der Bildstreifen
und die Verzögerungen
für die
Verarbeitung der empfangenen Bildstreifen verschieden. Sommit enthalten
die Techniken Schritte zur Anpassung der Differenz zwischen dem
Zeitpunkt der Erzeugung der Bildstreifen in einem Modul und dem Zeitpunkt
des Sendens der Bildstreifen von dem besagten Modul. Diese Techniken
enthalten auch Schritte zur Anpassung der Differenz zwischen dem Zeitpunkt
des Empfangs der Bildstreifen durch ein Modul und dem Zeitpunkt
der Verarbeitung der Bildstreifen durch das besagte Modul. Diese
Technik beinhaltet außerdem
Schritte zur Feinanpassung hinsichtlich der Überlappungsbereiche.
-
IV) Betrieb der Bildtransportmaschine
-
Diese
Bildtransportmaschine bedingt das exakte Verhalten des Systems bei
Laufzeit. Die Bildtransportmaschine bewerkstelligt die eingehenden und
ausehenden Datenübertragungen
zur Verbindung der Softwaremodule mit der externen Welt, sie bewerkstelligt
die Parameter Lesen, IP-Funktionsaufruf und Datenlokalisierung.
Diese letzte Funktion entspricht der Notwendigkeit, Bildstreifen
in Bezug auf den Raum und die Zeit zu lokalisieren, um beispielsweise
die notwendige Information für
die Registrierung der Verzögerung
von Datenströmen
bereitzustellen. Die Bildtransportmaschine bedingt auch die möglich temporale
und/oder spatiale Bildstreifenüberlappung,
die mögliche
Datenzerstreuung oder Sammlungsoperationen.
-
V) Vorrichtung mit Rechenmitteln
für die
Verwendung des Softwaresystems und Programmprodukts zur Bildung
des Softwaresystems
-
In
Bezug auf 4 enthält eine medizinische Untersuchungsvorrichtung 150 Mittel
für die
Aufnahme von digitalen Bilddaten einer Bildsequenz und ein digitales
Verarbeitungssystem 120 für die Verarbeitung dieser Daten
unter Verwendung des oben beschriebenen Softwaresystems. Die medizinische
Untersuchungsvorrichtung enthält
Mittel für
die Versorgung des Verarbeitungssystems 120 mit Bilddaten, das
mindestens einen Ausgang 106 hat, um Bilddaten Anzeige-
und/oder Speichermitteln 130, 140 bereitzustellen.
Die Anzeige- und Speichermittel können respektive der Bildschirm 140 und
der Speicher einer Workstation 110 sein. Die besagten Speichermittel
können
allerdings auch externe Speichermittel sein. Dieses Bildverarbeitungssystem 120 kann
ein geeignet programmierter Computer der Workstation 130 oder
ein speziell ausgerichteter Prozessor sein. Die Workstation 130 kann
auch eine Tastatur 131 und eine Maus 132 enthalten.
-
- SOURCE
- Source
- PP
- Point-to-Point-Anschluss
- SINK
- Sink
- MOD1,
2, 3, n
- Module
- SC
- Zerstreuungsanschluss
- GA
- Sammlungsanschluss
- BR
- Zweig
- IP1,
2
- Bildverarbeitungsfunktionen
- t-1,
2, 3
- Zeitpunkte
- w
- Breite
- a
- Breite