-
QUERVERWEIS
AUF VERWANDTE ANMELDUNGEN
-
Diese
Anmeldung beansprucht die Priorität und die Vergünstigung
der US Patentanmeldung Nummer 10/942,210, eingereicht am 15. September 2004
von Doron Adler, u. a., die hierin zum Zwecke der Bezugnahme zitiert
wird, als wäre
sie in ihrer Gesamtheit angeführt.
-
HINTERGRUND
UND KURZDARSTELLUNG Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft im allgemeinen die Remote-Head-Bildgebung,
und insbesondere ein Endoskopiegerät mit einer Mehrzweckkamera-Steuereinheit,
die mehrere Eingabevorrichtungen unterstützt.
-
Beschreibung
des Standes der Technik
-
Remote-Head-Bildgebungsvorrichtungen, und
insbesondere Endoskope und Video-Endoskope,
werden in medizinischen und industriellen Anwendungen verwendet,
um in Hohlräume,
Körperkanäle, hohle
Organe und in andere fernliegende Stellen zu schauen. Für gewöhnlich bestehen
Video-Endoskope aus einer Eingabevorrichtung, wie einer Kamera am
distalen Ende (dem Ende, das dem Patienten am nächsten ist) an einem starren
oder flexiblen Endoskop, das an einer Kamerasteuereinheit befestigt
ist. Die Kamerasteuereinheit leitet für gewöhnlich Energie zu der Kamera,
steuert den Betrieb der Kamera, empfängt Video- und Nichtvideo-Rohdaten
von der Kamera und gibt verarbeitete Videodaten an eine Videoanzeige
aus.
-
Herkömmliche
Kamerasteuereinheiten für Video-Endoskope
und Remote-Head-Bildgebungssysteme
sind jedoch in der Verwendung begrenzt, da sie nur eine Art von
Eingabevorrichtung unterstützen. Zum
Beispiel wäre
eine herkömmliche
Kamerasteuereinheit für ein
flexibles Endoskop mit einer Kamera am distalen Ende nicht imstande,
einen stereoskopischen Bildgebungskopf zu steuern. Wenn in herkömmlichen
Systemen eine andere Eingabevorrichtung für eine bestimmte Anwendung
erforderlich ist, muß auch
eine andere Kamerasteuereinheit verwendet werden, die zur Verwendung
mit der spezifischen Eingabevorrichtung angepaßt ist.
-
KURZDARSTELLUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung beschäftigt
sich mit diesen Mängeln,
indem sie ein Remote-Head-Bildgebungssystem mit einer Kamerasteuereinheit
bereitstellt, die sich selbst und/oder ihre interne Funktionalität rekonfiguriert,
so daß sie
mehrere verschiedene Eingabevorrichtungen unterstützen kann.
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird eine Kamerasteuereinheit
zum Steuern des Betriebs eines Sensorkopfes und zum Verarbeiten
von Kameradaten, die von dem Sensorkopf empfangen werden, zur Verfügung gestellt.
Die Kamerasteuereinheit enthält
eine elektrische Schnittstelle, die lösbar an Sensorköpfe mehrerer
verschiedener Sensorarten angeschlossen werden kann, und eine rekonfigurierbare
Steuerung zum Zeitsteuern und Steuern der elektrischen Schnittstelle.
Die Kamerasteuereinheit enthält
auch eine Systemsteuerung, die Identifizierungsinformationen von
dem Sensorkopf empfängt
und die rekonfigurierbare Steuerung zum Zeitsteuern und Steuern
der elektrischen Schnittstelle auf der Basis der Identifizierungsinformationen
rekonfiguriert, die von dem Sensorkopf empfangen werden.
-
In
bevorzugten Aspekten der Erfindung ist die rekonfigurierbare Steuerung
ein feldprogrammierbares Gate-Array ("FPGA").
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung enthält die Kamerasteuereinheit eine
rekonfigurierbare Steuerung zum Zeitsteuern und Steuern des Sensorkopfes,
zum Empfangen von Kameradaten von dem Sensorkopf, und zum Leiten der
Kameradaten entlang einem Datenpfad. Ein Digitalsignalprozessor
führt eine
Bildverarbeitungsoperation auf Kameradaten auf dem Datenpfad aus.
Die rekonfigurierbare Steuerung kann aus einer Hardware-Vorrichtung mit programmierbarer
Funktionalität,
wie einem FPGA, konstruiert sein. Die Kamerasteuereinheit enthält auch
einen persistenten wiederbeschreibbaren Speicher zum Speichern von
Programmanweisungen oder eines Kodes, der von dem Digitalsignalprozessor ausführbar ist,
um die Bildverarbeitungsoperation durchzuführen, und Konfigurationsinformationen
zum Konfigurieren der rekonfigurierbaren Steuerung zum Durchführen der
Zeitsteuerung und Steuerung, und ansonsten zum Ändern der Funktionalität der Kamerasteuereinheit.
Die Kamerasteuereinheit enthält
ferner eine Systemsteuerung zum Laden der Programmanweisungen in
den Digitalsignalprozessor und zum Konfigurieren der rekonfigurierbaren
Steuerung entsprechend den Konfigurationsinformationen. Durch Verwendung
eines persistenten wiederbeschreibbaren Speichers zum Speichern
von Programmanweisungen für
den Digitalsignalprozessor und von Konfigurationsinformationen für die rekonfigurierbare
Steuerung ermöglicht die
vorliegende Erfindung das Aktualisieren der Funktionalität der Kamerasteuereinheit
vor Ort.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung enthält die Kamerasteuereinheit eine
rekonfigurierbare Steuerung zum Zeitsteuern und Steuern des Sensorkopfes,
zum Empfangen von Kameradaten von dem Sensorkopf, und zum Durchführen einer
Pixel-Vorverarbeitungsoperation
auf den empfangenen Kameradaten. Die Kamerasteuereinheit enthält des Weiteren
einen Digitalsignalprozessor zum Durchführen einer Bildverarbeitungsoperation
auf den empfangenen Kameradaten. Zusätzlich enthält die Kamerasteuereinheit
einen persistenten wiederbeschreibbaren Speicher zum Speichern mehrerer
Sätze von
Programmanweisungen, die von dem Digitalsignalprozessor ausführbar sind,
um eine Bildverarbeitungsoperation auszuführen, und zum Speichern mehrerer
Sätze von
Konfigurationsinformationen zum Konfigurieren der rekonfigurierbaren Steuerung
zum Durchführen
der Zeitsteuerung und Steuerung und der Pixel-Vorverarbeitungsoperation. Eine
Eingabevorrichtung ermöglicht
die Wahl eines Satzes von Programmanweisungen zur Verwendung durch
den Digitalsignalprozessor und die Wahl der Konfigurationsinformationen
für die
rekonfigurierbare Steuerung. Die Kamerasteuereinheit enthält auch eine
Systemsteuerung zum Laden des gewählten Satzes an Programmanweisungen
in den Digitalsignalprozessor und zum Rekonfigurieren der rekonfigurierbaren
Steuerung gemäß den gewählten Konfigurationsinformationen.
Auf diese Weise kann ein Benutzer spezifische Verarbeitungsoperationen
und Hardware-Konfigurationen
wählen,
die von der Kamerasteuereinheit durchzuführen sind.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung enthält die Kamerasteuereinheit eine
rekonfigurierbare Anzeigeformatiervorrichtung zum Formatieren einer
Anzeige der verarbeiteten Kameradaten und zum Erzeugen eines Ausgabezeitsteuerungssignals,
eine Videoformatwähleinheit
zum Wählen
eines der mehreren Videoformate, und eine Sy stemsteuerung zum Rekonfigurieren
der rekonfigurierbaren Anzeigeformatiervorrichtung zum Formatieren
und zum Erzeugen des Ausgabezeitsteuerungssignals als Reaktion auf
die Wahl eines Videoformats innerhalb der Videoformatwähleinheit.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung enthält die Kamerasteuereinheit einen
Hardware-Taktgeber zum Erzeugen eines Taktsignals, einen Digitalsignalprozessor
(DSP) zum Empfangen des Hardware-Taktsignals und zum Erzeugen eines
DSP-Taktsignals
aus dem Hardware-Taktsignal, und eine rekonfigurierbare Steuerung,
die Sensordaten auf der Basis eines ersten Taktsignals empfängt und
verarbeitete Videodaten auf der Basis eines zweiten Taktsignals
ausgibt. Die rekonfigurierbare Steuerung enthält ein rekonfigurierbares Logik-Array,
die das DSP-Taktsignal empfängt und
das erste und zweite Taktsignal erzeugt. Zusätzlich ist eine Systemsteuerung
bereitgestellt, die die Logikschaltung rekonfiguriert, um wählbar verschiedene
erste und zweite Taktsignale zu erzeugen. Auf diese Weise können Eingangs-
und Ausgangstaktsignale unabhängig
erzeugt und von demselben Hardware-Taktsignal eingestellt werden.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung enthält die Kamerasteuereinheit eine
rekonfigurierbare Steuerung, einen Digitalsignalprozessor, der einen
Eingangsspeicher und einen Ausgangsspeicher enthält, zur Bildverarbeitung von Kameradaten
in dem Eingangsspeicher und Ausgeben der verarbeiteten Kameradaten
zu dem Ausgangsspeicher, und eine Video-Kodiervorrichtung. Die rekonfigurierbare
Steuerung empfängt
Kameradaten von dem Sensorkopf und leitet die Kameradaten zu dem
Eingangsspeicher des Digitalsignalprozessors. Zusätzlich greift
die rekonfigurierbare Steuerung auf die verarbeiteten Kameradaten
von dem Ausgangsspeicher des Digitalsignalprozessors zu und leitet
die verarbeiteten Kameradaten zu der Video-Kodiervorrichtung. Auf
diese Weise kann der Digitalsignalprozessor der Bildverarbeitung
der Kameradaten gewidmet werden, da es die rekonfigurierbare Steuerung
ist, die Daten zur Verarbeitung im Eingangsspeicher deponiert und
verarbeitete Daten vom Ausgangsspeicher abruft.
-
In
einem weiteren Aspekt der Erfindung wird eine Kamerasteuereinheit
zum Steuern des Betriebs einer Remote-Head-Eingabevorrichtung, zum
Empfangen und Verarbeiten von Digitalkameradaten von der Remote-Head-Eingabevorrichtung,
und zum Ausgeben der verarbeiteten Daten zu einem Monitor zur Verfügung gestellt.
Für gewöhnlich ist
die Remote-Head-Eingabevorrichtung,
die mit der Kamerasteuereinheit der vorliegenden Erfindung ver wendet wird,
ein elektronisches Video-Endoskop oder ein aufschnappbarer Kamerakopf,
der zur lösbaren
Montage an einem Okular eines herkömmlichen Endoskops konfiguriert
ist.
-
Ein
Merkmal der Kamerasteuereinheit ist, daß die Kamerasteuereinheit sich
an mehrere verschiedene Arten von Kameraköpfen anpaßt. Zum Beispiel können die
Kameraköpfe
Sensoren enthalten, die von unterschiedlicher Größe, Geschwindigkeit oder Auflösung sind.
Zur Anpassung an diese verschiedenen Kameraköpfe rekonfiguriert die Kamerasteuereinheit
ihre interne Funktionalität,
indem sie spezifische Sätze
von Software (Programmanweisungen) und Firmware (wie durch Konfigurationsinformationen
definiert) als Reaktion auf das Erfassen und Erkennen eines befestigten
Kamerakopfes lädt.
-
Ein
weiteres Merkmal der Erfindung ist, daß die Kamerasteuereinheit einen
Steuerschaltkreis unter Verwendung spezifischer Konfigurationsinformationen
so rekonfiguriert, daß ein
Video in mehreren verschiedenen Formaten ausgegeben werden kann. Auf
diese Weise können
zum Beispiel sowohl NTSC- als auch PAL-Fernsehstandards unterstützt werden.
-
Andere
Merkmale der vorliegenden Erfindung enthalten Hardware-Beschleunigung,
Takteinstellbarkeit, benutzerwählbare
Konfiguration und feldprogrammierbare Software und Firmware.
-
Diese
Kurzdarstellung wurde für
ein rasches Verständnis
der Natur der Erfindung gegeben. Ein umfassenderes Verständnis der
Erfindung kann unter Bezugnahme auf die folgende ausführliche
Beschreibung, die angehängten
Ansprüche
und beiliegenden Zeichnungen erlangt werden.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Überblicksdiagramm
eines Video-Endoskopsystems gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung;
-
2 ist
ein Eingangs-/Ausgangs-Blockdiagramm für eine Kamerasteuereinheit
gemäß einer beispielhaften
Ausführungsform
der vorliegenden Erfindung;
-
3 ist
ein Block- und Datenflußdiagramm für eine Kamerasteuereinheit
gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung;
-
4 ist
ein Prozeßdiagramm
eines Kopfinitialisierungsprozesses gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung;
-
5 ist
ein Blockdiagramm, das eine Pixel-Vorverarbeitung gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung zeigt;
-
6A ist
ein Blockdiagramm, das eine externe Eingangsspeichersteuerung gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung zeigt;
-
6B ist
ein Blockdiagramm, das eine externe Ausgangsspeichersteuerung gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung zeigt;
-
7 ist
ein Blockdiagramm für
eine Host-Prozessor-Schnittstelleneinheit (HPI-Einheit) gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung;
-
8 ist
ein Blockdiagramm für
eine Anzeigeformatiervorrichtung gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung; und
-
9 ist
ein Blockdiagramm, das eine Videokodiervorrichtung gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung zeigt.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Bezug
nehmend auf die Zeichnungen zeigt 1 eine mögliche Konfiguration
der vorliegenden Erfindung. Die Kamerasteuereinheit 6 ist
an flexibles Video-Endoskop 8 wie auch einen Monitor 9,
eine Tastatur 10, einen PC 12 und eine schnell
austauschbare (Quick-Swap-)Speichervorrichtung 13 angeschlossen.
Im allgemeinen werden Bilddaten von einem Bildsensor, der sich in
der distalen Spitze 1 des Endoskops 8 befindet,
erfaßt
und zu der Kamerasteuereinheit 6 durch einen Nabel (Umbilicus) 4 geleitet.
Die Kamerasteuereinheit 6 verarbeitet die Bilddaten und
formatiert die verarbeiteten Daten, die an den Monitor 9 ausgegeben
werden. Benutzereingaben an die Kamerasteuereinheit 6 erfolgen über die
Tastatur 10, die Benutzeroberfläche 11 oder den PC 12.
Die Benutzeroberfläche 11 könnte, ohne
darauf beschränkt
zu sein, Status-LEDs, Schalter, Berührungstasten und LCD-Schirme
enthalten.
-
Ein
flexibles Video-Endoskop 8 wird an die Kamerasteuereinheit 6 durch
Befestigen eines elektrischen Verbinders 7A des Umbilicus 4 an
einen komplementären
Verbinder 7B der Kamerasteuereinheit 6 angeschlossen,
der eine Direktsteckaufnahme sein kann. Das flexible Video-Endoskop 8 enthält eine
distale Spitze 1, eine Endoskopschaft-Anordnung 2,
eine Endoskopkörper-Anordnung 3 und
versiegelte Endoskop-Schalter 5.
-
Die
distale Spitze 1 enthält
einen Kamerakopf und einen mechanischen Objektivkopf, der den Kamerakopf
umschließt
und abdichtet. In dem Kamerakopf befindet sich ein optisches System,
das einen Bildsensor, Sensorunterstützungselektronik, einen Beleuchtungsendpunkt
und einen Zangenschlauch enthält.
Vorzugsweise ist der Bildsensor ein CMOS-Sensor, aber es können auch
andere Sensoren, die Bilddaten erfassen und eine digitale Ausgabe erzeugen,
verwendet werden. Der Beleuchtungsendpunkt kann als LED oder als
Ende eines optischen Faserbündels
ausgeführt
sein.
-
Die
Endoskopschaft-Anordnung 2 nimmt einen elektrischen Verdrahtungsabschnitt
des Kamerakopfes, den Zangenschlauch und Lenkzugdrähte auf. Zusätzlich kann
der Endoskopschaft-Anordnung auch ein faseroptisches Beleuchtungsbündel enthalten,
falls dieses verwendet wird.
-
Die
Endoskopkörper-Anordnung 3 enthält mechanische
Mechanismen, die zum Aktivieren des Ablenksystems verwendet werden,
wie auch Unterstützungselektronik
für den
Kamerakopf. Für
gewöhnlich
enthält
die Unterstützungselektronik
in einem Endoskopkörper-Anordnung 3 eine
permanente Speichervorrichtung, wie einen EPROM, die Kameraparameter
speichert, die die Art des Kamerakopfes spezifizieren.
-
Die
versiegelten Endoskopschalter 5, die Tastatur 10,
die Benutzeroberfläche 11 ermöglichen dem
Benutzer, bestimmte elektrische und/oder Software-Merkmale des Kamerakopfes
zu steuern. Zusätzlich
können
die Schalter an dem Endoskop zum Auswählen der Bearbeitung verwendet
werden, die von der Kamerasteuereinheit ausgeführt werden soll. Der PC 12 und
die Quick-Swap-Speichervorrichtung 13 ermöglichen
dem Benutzer, die Software und Firmware innerhalb der Kamerasteuereinheit 6 zu
aktualisieren und zu warten.
-
2 zeigt
andere mögliche
Eingaben und Ausgaben der Kamerasteuereinheit der vorliegenden Erfindung.
Obwohl die Kamerasteuereinheit 6 für gewöhnlich in Verbindung mit Video-Endoskopen 201 verwendet
wird, kann sie auch Eingaben von aufschnappbaren Kameras 202 steuern
und verarbeiten, die in Verbindung mit optischen Endoskopen (ohne
eingebetteten Bildsensor), 3-D-Kameras 203 und anderen
digitalen Meßvorrichtungen 204 verwendet werden.
Zusätzlich
nimmt die Kamerasteuereinheit Programmaktualisierungen für die Software
und Firmware des Systems über
die Quick-Swap-Flash-Speichervorrichtung 13 oder über einen
Download vom PC 12 auf. Ausgaben der Kamerasteuereinheit
enthalten analoge Ausgabeformate, wie NTSC 207, PAL 208,
RGB 209 und Vollbildverfahren (Progressive Scan) 210.
Zusätzlich
unterstützt
die Kamerasteuereinheit digitale Ausgaben für Digital Video Interface (DVA) 211 Monitore
wie auch digitale Ausgaben für
eine Datenaufzeichnung an ein Aufzeichnungssystem 212,
wie ein Festplattenlaufwerk.
-
3 ist
ein Blockdiagramm, das Hauptkomponenten der Kamerasteuereinheit 6 (siehe 1)
wie auch den Datenpfad für
die Kameradaten zeigt, die von dem Sensor eines angebrachten Kamerakopfes,
wie eines Video-Endoskops, erfaßt
werden. Hauptkomponenten der Kamerasteuereinheit enthalten eine
rekonfigurierbare Steuerung 302, einen Digitalsignalprozessor
("DSP") 303, eine
Systemsteuerung 304 und eine Video-Kodiervorrichtung 313.
In einer bevorzugten Ausführungsform
ist die rekonfigurierbare Steuerung 302 ein FPGA, wie Spartan
2-XILINX XC2S300E, hergestellt von Xilinx, San Jose, Kalifornien.
Während
FPGAs bevorzugt sind, können
andere Arten einer programmierbaren Logikschaltung verwendet werden,
wie komplexe programmierbare Logikschaltungen (CPLD).
-
Der
Kameradatenpfad beginnt bei Sensor 301, der sich im Kamerakopf 300 befindet.
In einer bevorzugten Ausführungsform
ist der Sensor 301 ein CMOS-Sensor, der sich an der distalen
Spitze eines Video-Endoskops befindet. Ebenso ist in dem Kamerakopf 300 ein
Beleuchtungssystem 340 enthalten. Energie, Beleuchtung
und Kamerasteuerung, wie automatische Verstärkungssteuerung und Belichtungszeit,
werden von der Systemsteuerung 304 dem Sensor 301 über einen
inter-integrierten Schaltungsbus ("I2C"-Bus) 330 geliefert.
Der Takt bei dem der Sensor arbeitet, sen_clk 291, wird
von der rekonfigurierbaren Steuerung 302 geliefert.
-
Jedes
Pixel von Rohkameradaten, die von dem Sensor 301 erzeugt
werden, wird zu der rekonfigurierbaren Steuerung 402 mit
einer Grauskala- oder Farbauflösung
von 8 oder 10 Bits übertragen, entsprechend 250 beziehungsweise
1024 Grauskalen- oder Farbwerten. Abhängig von der Art des Kamerakopfes
können
diese Rohkameradaten entweder parallel, seriell oder in einer parallelen/seriellen Kombination übertragen
werden. Zusätzlich
zu Rohkameradaten und basierend auf dem sen_clk-Signal 391 von
der rekonfigurierbaren Steuerung 302, leitet der Sensor 301 einen
Pixeltakt (sen_pix_clk 392) wie auch vertikale und horizontale
Synchronisierungssignale (sen_v_sync 394, sen_h_sync 395)
zu der rekonfigurierbaren Steuerung 302. Der Pixeltakt
bestimmt die Geschwindigkeit, bei der Kameradatenpixel in die rekonfigurierbare
Steuerung 302 getaktet werden. Die vertikalen und horizontalen
Synchronisierungssignale zeigen den Beginn jedes Frames beziehungsweise
jeder Zeile an.
-
Die
Rohkameradaten, die von dem Sensor 301 erzeugt werden,
werden von der Datenformatiervorrichtung 306 in der rekonfigurierbaren
Steuerung 302 empfangen. Der Sensortaktgenerator 305 leitet ein
sen_clk-Signal 391 zu dem Sensor 301, während ein
Sensorzeitsteuerungsblock 312 den Pixeltakt und die Synchronisierungssignale
von dem Sensor 301 empfängt.
Zusätzlich
erzeugt der Sensorzeitsteuerungsblock 312 Bildgrößensteuerungssignale,
wie Zeilen-Anfang/Ende-Signale und Pixel-Anfang/Ende-Signale, basierend
auf den Signalen von dem Sensorkopf 301. Diese Signale
können
zum Spezifizieren eines Teilsatzes des Sensorbereichs verwendet
werden, für
den die Daten gewünscht
sind. Wegen der Konfiguration des spezifischen Kamerakopfes können die
Sensordaten zum Beispiel so auf ein Fenster abgebildet werden, daß nicht
alle der Kamerasensordaten verwendet werden.
-
Gemeinsam
stellen die Signale, die von dem Sensortaktgenerator 305,
der Datenformatiervorrichtung 306 und dem Sensorzeitsteuerungsblock 312 erzeugt
und empfangen werden, eine elektrische Schnittstelle zwischen einem
befestigten Kamerakopfsensor und der Kamerasteuereinheit 6 bereit.
-
Die
Datenformatiervorrichtung 306 empfängt die Rohkameradaten vom
Sensor 301 mit der Rate des Pixeltakts und formatiert die
empfangenen Pixel in ein paralleles 10-Bit-Format. Die Daten werden dann zu dem
Pixel-Vorverarbeitungsblock 307 geleitet. An diesem Punkt
kann die Pixel-Vorverarbeitung durchgeführt werden, so daß die Sensorkalibrierung und
lokalisierte Anomalien kompensiert werden. Eine repräsentative
Vorverarbeitung ist in 5 dargestellt.
-
Wie
in 5 dargestellt ist, kann die Pixel-Vorverarbeitung
Vorverarbeitungsfunktionen, wie eine Korrektur fehlerhafter Pixel 503,
Schwarz-Bias 502, und Intensitätskorrektur 503, ausführen. Die Notwendigkeit
von Pixel-Vorverarbeitungsfunktionen, die implementiert werden,
und ihre Arten können
von der Art des verwendeten Sensorkopfes und der beabsichtigten
Anwendung abhängig
sein.
-
Wie
in 5 erkennbar ist, wird die Taktrate, bei der die
Pixel-Vorverarbeitungsblöcke
arbeiten, von einem Sensorzeitsteuerungsblock 312 (3) zugeleitet.
Im allgemeinen hängt
diese Rate von dem sen_pix_clk-Signal 392 ab, das von dem
Sensor 301 (3) zugeleitet wird. Zusätzlich leitet
der Sensorzeitsteuerungsblock 312 einen Pixelzählwert und
einen Zeilenzählwert
auf der Basis der Dimensionen des Sensors 301 zu dem Korrekturblock
für fehlerhafte
Pixel 501. Die Pixel- und Zeilenzählwerte ermöglichen dem Pixelkorrekturblock 501,
möglicherweise fehlerhafte
Pixel innerhalb des Frames zu identifizieren, der von dem angebrachten
Sensor erzeugt wird, und diese durch die Verwendung einer Medianwertsubstitution
zu korrigieren.
-
Unter
erneuter Bezugnahme auf 3 werden nach der Pixel-Vorverarbeitung
die Kameradaten (noch im 10-Bit-Format) zu dem Speicher 308 geleitet.
Für gewöhnlich ist
der Speicher 308 als asynchrones 16-Bit First-in-First-Out-
("FIFO") Register implementiert.
Die Kameradaten werden dann von dem Speicher 308 zu der
Host-Prozessor-Schnittstellen-("HPI") Einheit 310 geleitet.
Die HPI-Einheit 310 verpackt die Kameradaten in ein 32-Bit-Format und überträgt sie zu
dem internen Eingangsspeicher 381 im DSP 303.
Die Datenübertragung
wird unter Verwendung eines Direktspeicherzugriffs-(DMA) Protokolls
ausgeführt.
In einer bevorzugten Ausführungsform
ist der DSP 303 als TI TMS320C6414 implementiert, hergestellt
von Texas Instruments, Dallas, Texas.
-
Der
DSP 303 führt
dann eine Bildverarbeitungsoperation an den empfangenen Kameradaten durch,
die durch Programmanweisungen definiert ist, die im Programmspeicher 385 gespeichert
sind. Die Programmanweisungen werden von der Systemsteuerung 304 in
den Programmspeicher 385 über eine serielle Schnittstelle
(Serial Port Interface – "SPI") 380 geladen.
Die verarbeiteten Kameradaten werden in einem internen Ausgangsspeicher 384 gespeichert.
-
Nachdem
der DSP 303 die Kameradaten verarbeitet hat, verwendet
die HPI-Einheit 310 wieder das DMA-Protokoll für den Zugriff
auf die verarbeiteten Daten vom Ausgangsspeicher 384. Diese 32-Bit-Daten
werden zu 16 Bits dekodiert und im Speicher 309 gespeichert.
Wie der Speicher 308 ist der Speicher 309 für gewöhnlich als
asynchrones 16-Bit FIFO-Register implementiert. Die verarbeiteten
Kameradaten werden dann zu der Anzeigeformatiervorrichtung 311 geleitet,
die die Ausgabezeitsteuerung und Steuerungssignale für ein gewähltes Ausgabeformat
einstellt. Das Ausgabeformat kann mit einem Schalter auf der Benutzeroberfläche 11 oder durch
eine Wahl auf der Tastatur 10 gewählt werden. Zusätzlich fügt die Anzeigeformatiervorrichtung 311 den
verarbeiteten Kameradaten einen Überlagerungstext
hinzu.
-
Die
verarbeiteten Kameradaten werden dann zu der Video-Kodiervorrichtung 313 gemeinsam
mit einem Kodierertaktsignal (enc_clk 396) übertragen,
das von der Anzeigeformatiervorrichtung 311 gemäß dem gewählten Ausgabeformat
erzeugt wurde. Nach dem Kodieren werden die Videodaten zu dem Monitor 9 gesendet.
-
Die
Systemsteuerung 304 überwacht
und steuert den Datenfluß entlang
dem zuvor beschriebenen Datenpfad. Die Systemsteuerung 304 steuert den
Betrieb des Sensors 310 und ist für das Laden der Software verantwortlich,
die vom DSP 303 betrieben wird, und zum Rekonfigurieren
der rekonfigurierbaren Steuerung 302. In einer bevorzugten
Ausführungsform
ist die Systemsteuerung 304 als Motorola 9HCS12 Steuerung,
hergestellt von Motorola, Schaumburg, Illinois, implementiert.
-
Die
folgenden Abschnitte besprechen, wie die Systemsteuerung 304 mit
den anderen Komponenten der Kamerasteuereinheit 6 zusammenarbeitet,
um die Merkmale einer Anpassungsfähigkeit an mehrere Köpfe, Mehrfach-Ausgabefähigkeit,
Hardware-Beschleunigung, Takteinstellbarkeit, benutzerwählbaren
Konfiguration und feldprogrammierbaren Software und Firmware zu
erreichen.
-
[Anpassungsfähigkeit
an mehrere Köpfe]
-
Wie
zuvor erwähnt,
liegt ein Merkmal der vorliegenden Erfindung in der Fähigkeit
der Kamerasteuereinheit, ihre Funktionalität so zu rekonfigurieren, daß sie sich
an verschiedene Arten von Sensoren und Kameraköpfen anpassen kann. Auf diese
Weise kann eine Kamerasteuereinheit für mehrere verschiedene Köpfe verwendet
werden.
-
4 zeigt
den Kopfinitialisierungsprozeß für die Kamerasteuereinheit,
der von der Systemsteuerung 304 ausgeführt wird, wenn ein neuer Kamerakopf
befestigt wird. In Schritt S401 ruft die Systemsteuerung 304 ein
Kopferfassungssignal ab, das über
den I2C-Bus 330 zugeleitet werden
könnte. Wenn
in Schritt S402 kein Signal erfaßt wird, zeigt Schritt S408
eine Nachricht auf dem Monitor 9 an, die besagt, daß kein Kopf
befestigt ist. Als Alternative könnte
eine Nachricht auf einem LCD-Schirm angezeigt werden, der sich auf
der Benutzeroberfläche 11 befindet.
-
Wenn
eine Remote-Head-Eingabevorrichtung, wie ein flexibles Video-Endoskop 8,
an der Kamerasteuereinheit 6 befestigt ist, empfängt die
Systemsteuerung 304 ein Kopferfassungssignal über den
I2C-Bus 330. Schritt S402 fährt mit
Schritt S403 fort, wo Kameraparameter, die in einer lesbaren Kameraparameterspeichervorrichtung,
wie einem EPROM 350, gespeichert sind, die sich in dem
Kamerakopf 300 befindet, von der Systemsteuerung 304 über den
I2C-Bus 330 gelesen werden. Die
Kameraparameter können
Datenfelder wie Art, Version, Seriennummer der Kamera, Bildgrößenart,
Bildformatart, Weißabgleich-Referenzmatrix, Farbkorrekturmatrix,
Intensitätskorrekturverweistabellen
und Indexliste fehlerhafter Pixel enthalten.
-
In
Schritt S404 sieht die Systemsteuerung 304 basierend auf
den Kameraparametern, die in Schritt S403 erhalten wurden, in der
internen Verweistabelle 371 nach, um zu bestimmen, welche
Funktionalitäten
für die
Art des befestigten Kamerakopfes verfügbar sind. Ein Kameraparameter,
wie Typ oder Seriennummer der Kamera, ist in der Verweistabelle 371 einem
oder mehreren Sätzen
von Konfigurationsinformationen und Programmanweisungen zugeordnet,
die in einem persistenten wiederbeschreibbaren Speicher, wie einer
Flash-Speichervorrichtung oder
EEPROM, gespeichert sind. In 3 ist der
persistente wiederbeschreibbare Speicher als Flash-Speicher 317 dargestellt.
Die Konfigurationsinformationen und Programmanweisungen definieren die
Funktionalität
der Kamerasteuereinheit.
-
Wenn
nur ein Satz von Konfigurationsinformationen und Programmanweisungen
zur Verwendung mit dem angebrachten Kamerakopf verfügbar ist,
wird dieser Satz ausgewählt
und der Kopfinitialisierungsprozeß fährt mit Schritt S405 fort.
Wenn mehrere Sätze
von Kon figurationsinformationen und Programmanweisungen für den angebrachten
Kamerakopf verfügbar
sind, fordert Schritt S404 den Benutzer auf, eine Wahl der gewünschten
Funktionalität einzugeben.
Die Aufforderung an den Benutzer kann auf dem Monitor 9 oder
einer LCD auf der Benutzeroberfläche 11 erscheinen.
Die Wahl des Benutzers kann durch die Verwendung der Berührungstasten auf
der Benutzeroberfläche 11,
Tastatur 10 oder Endoskop-Schalter 5 vorgenommen
werden.
-
In
Schritt S405 erhält
die Systemsteuerung 304, basierend auf der Wahl der Funktionalität in Schritt
S404, den gewählten
Satz von Konfigurationsinformationen 360 vom Flash-Speicher 317 und konfiguriert
die rekonfigurierbare Steuerung 302 entsprechend. In einer
bevorzugten Ausführungsform sind
die Konfigurationsinformationen 360 ein kompiliertes VHDL-Programm
(wobei sich "VHDL" auf eine VHSIC (Very
High Speed Integrated Circuit) Hardware-Beschreibung bezieht). VHDL
ist eine Programmiersprache, die zum Konfigurieren programmierbarer
Logikschaltungen, wie FPGAs und CPLDs, verwendet wird. Zusätzlich können auch
andere Programmiersprachen, wie Verilog als Konfigurationsinformationen 360 verwendet
werden, obwohl bevorzugt ist, daß die Programmiersprache im
Flash-Speicher 317 in kompilierter Form gespeichert wird.
In einer bevorzugten Ausführungsform
werden die gewählten
Konfigurationsinformationen zum Konfigurieren der rekonfigurierbaren
Steuerung 302 unter Verwendung der FPGA-Programmier-Pins
verwendet. Zum Beispiel sind die FPGA-Programmier-Pins für den Spartan
2-XILINX XC2S300E die Konfigurationsdateneingabe-Pins D0-D7. In 3 sind
die Programmier-Pins allgemein durch den Steuerbus 335 dargestellt.
-
In
Schritt S406 erhält
die Systemsteuerung 304, basierend auf der Wahl der Funktionalität in Schritt
S404, die gewählten
Programmanweisungen 370 vom Flash-Speicher 317 und
lädt die
Programmanweisungen in den Programmspeicher 385 des DSP 303.
Die Programmanweisungen sind Programmkodes, die vom DSP 303 ausführbar sind,
und werden durch die Systemsteuerung 304 über einen seriellen
Schnittstellenbus (SPI-Bus) 380 vom Flash-Speicher 317 in
den DSP 303 geladen.
-
Schließlich fährt die
Kamerasteuereinheit 6 in Schritt S407 mit dem normalen
Betrieb fort, indem sie die operativen Programmanweisungen (d.h.,
die Software) im DSP 303 und die Konfiguration (d.h., die Firmware),
die in die konfigurierbare Steuerung 302 geladen wurde,
wie zuvor unter Bezugnahme auf 3 beschrieben,
laufen läßt.
-
Unter
erneuter Bezugnahme auf Schritt S405 und die Konfiguration der rekonfigurierbaren Steuerung 302 ist
ein Teil der rekonfigurierbaren Steuerung 302, der als
Reaktion auf einen neuen Kamerakopf rekonfiguriert werden kann,
der Steuerschaltkreis für
die elektrische Schnittstelle. Wie zuvor besprochen, bilden die
Signale, die von dem Sensortaktgenerator 505, der Datenformatiervorrichtung 306 und
dem Sensorzeitsteuerungsblock 312 erzeugt und empfangen
werden, die elektrische Schnittstelle zwischen einem angebrachten
Kamerakopf und der Kamerasteuereinheit 6. Eine Änderung in
der Art, wie die Signale der elektrischen Schnittstelle erzeugt
und manipuliert werden, ist ein Aspekt der Rekonfigurierung der
rekonfigurierbaren Steuerung 302 zur Anpassung an einen
anderen Kopf.
-
Unter
erneuter Bezugnahme auf 3 ist ein Signal, das auf der
Basis eines anderen angebrachten Kamerakopfes eingestellt wird,
das Sensortaktsignal, das von dem Sensortaktgenerator 305 erzeugt wird.
Der Sensortaktgenerator 305 empfängt ein Eingangs-DSP-Taktsignal (DSP_CLK 325)
von dem DSP 303. Der Sensortaktgenerator 305 kann
als Teiler oder steuerbare Phasenregelkreisschaltung angeordnet
sein, den/die die Systemsteuerung 304 unter Verwendung
des Steuerbusses 335 konfigurieren kann. In einer bevorzugten
Ausführungsform
ist das eingegebene DSP-Taktsignal 96 MHz, was von dem Sensortaktgenerator 305 zum
Erzeugen von Taktsignalen von 48, 24, 16, 12, 8 oder 3 MHz verwendet werden
kann. Zum Beispiel kann ein Kamerakopf mit einer Sensorgröße von 352 × 288 nur
einen Sensortakt von 12 MHz erfordern, während ein größerer 1024 × 790 Sensor
einen Sensortakt von 48 MHz erfordern kann. Zusätzlich zur Verwendung des Sensortaktgenerators 305 zum
Erzeugen des Sensortaktsignals von einem DSP-Taktsignal kann der
DSP 303 auch zum direkten Erzeugen des Sensortaktsignals
verwendet werden, oder die Erzeugung des Sensortaktsignals kann
zwischen dem DSP 303 und dem Sensortaktgenerator 305 aufgeteilt
sein.
-
Der
Sensorzeitsteuerungsblock 312 wird entsprechend dem Typ
des Kamerakopfes rekonfiguriert, so daß Signale, die auf den angeschlossenen Kamerakopf
abgestimmt sind, aus den Takt- und Synchronisierungssignalen erzeugt
werden, die von dem Kamerakopf empfangen werden. Im allgemeinen
leitet der Sensorzeitsteuerungsblock 312 die Pixeltakt-
und Synchronisierungssignale, die von dem Sensor erzeugt werden,
zu einer Datenformatiervorrichtung 306, einem Pixel-Vorverarbeitungsblock 307 und
einem Speicher 308. Zusätzlich
erzeugt der Sensorzeitsteuerungsblock 321 Zeilenzählwerte
und Pixelzählwerte
für eine
Korrektur fehlerhafter Pixel 501 (von 5)
in dem Pixel-Vorverarbeitungsblock 307, und die Er zeugung
dieser Signale hängt
von der Art des Kamerakopfes ab. Diese Zeilen- und Pixelzählwerte
können
von der Sensorgröße des Kamerakopfes
abhängig
sein und können
somit durch die Steuerung 304 über den Steuerbus 335 in
einen Sensorzeitsteuerungsblock 312 konfiguriert werden.
-
Zusätzlich kann
der Sensorzeitsteuerungsblock 312 zum Erzeugen von Bildgrößensteuerungssignalen
rekonfiguriert werden, wie Zeilen-Anfang/Ende-Signalen und Pixel-Anfang/Ende-Signalen.
Diese Signale markieren den Anfang und das Ende eines gültigen Datenbereichs
oder Fensters des Bildsensors. Tatsächlich ermöglichen diese Signale der Kamerasteuereinheit,
Kameradaten von definierten Bereichen des Bildsensors zu verwerfen
und nur Kameradaten von einem gewünschten Bereich zu verarbeiten.
Zum Beispiel kann ein Bildsensor für eine aufschnappbare Kamera
eine rechteckige Form aufweisen. Da jedoch der Sensor der Kamera
durch das kreisförmige
Okular eines optischen Endoskops "hindurchblickt", können
Daten um die Ränder
unnötig
sein, wenn der Sensorbetrachtungsbereich größer als der Okularbetrachtungsbereich
ist. Durch die Verwendung der Zeilen-Anfang/Ende-Signale und Pixel-Anfang/Ende-Signale
können
Kameradaten von den Rändern
verworfen werden, wodurch die Verarbeitungsgeschwindigkeit erhöht wird.
Ebenso können
die Zeilen-Anfang/Ende-Signale und Pixel-Anfang/Ende-Signale zum
Definieren eines Bereichs für einen
digitalen Zoom verwendet werden.
-
Ein
weiterer Aspekt der elektrischen Schnittstelle, die rekonfiguriert
werden kann, ist jener einer Datenformatiervorrichtung 306.
Wie zuvor erwähnt, empfängt die
Datenformatiervorrichtung 306 für gewöhnlich 8 oder 10 Bit Rohkameradaten
vom Sensor 301 und ordnet diese in einem parallelen 10-Bit-Format
an. Da jedoch der Logikschaltkreis der Datenformatiervorrichtung 306 von
der Systemsteuerung 304 unter Verwendung des Steuerbusses 335 rekonfiguriert
werden kann, können
andere Datenformate erzeugt werden. Zum Beispiel können größere Bitformate
für Sensoren
mit höherer
Auflösung
günstig sein.
Zusätzlich
könnte
es notwendig sein, die Datenformatiervorrichtung 306 zu
rekonfigurieren, um Datenströme
unterschiedlicher Formate anzunehmen, wie parallele und serielle
Daten.
-
Die
Rekonfiguration ist nicht auf die elektrische Schnittstelle beschränkt. Andere
Aspekte der rekonfigurierbaren Steuerung 302 können auch
rekonfiguriert werden. Zum Beispiel können in einem Pixel-Vorverarbeitungsblock 307 verschiedene
Verarbeitungsfunktionen für
verschiedene Kameraköpfe günstig sein.
Wie bei dem elektrischen Schnittstellen-Steuerschaltkreis kann die
Systemsteuerung 304 den Pixel-Vorverarbeitungsblock 307 als
Reaktion auf das Anbringen eines neuen Kamerakopfes rekonfigurieren.
Wie zuvor wird die Rekonfiguration durch den Steuerbus 335 erreicht.
Die Systemsteuerung 304 ordnet die empfangenen Kameraparameter den
Konfigurationsinformationen zu, die im Flash-Speicher 317 gespeichert sind,
und rekonfiguriert den Pixel-Vorverarbeitungsblock 307 mit
den Vorverarbeitungsfunktionen, die für den befestigten Kamerakopf
verwendet werden. Zusätzlich
können für gewisse
Vorverarbeitungsfunktionen, anstelle einer Speicherung der notwendigen
Matrizen und Verweistabellen im Flash-Speicher, spezifische Felder der
Kameraparameterdaten in den Pixel-Vorverarbeitungsblock 307 geladen
werden, wie eine Weißabgleich-Referenzmatrix,
Farbkorrekturmatrix, Intensitätskorrektur-Verweistabellen
und Indexliste für
fehlerhafte Pixel.
-
Ein
anderer Block in der rekonfigurierbaren Steuerung 302,
der für
einen neuen Kamerakopf rekonfiguriert werden kann, ist der Speicher 308.
Während
für die
meisten Sensorgrößen der
Speicher 308 als asynchroner 16-Bit-FIFO implementiert
ist, können
größere Speichermengen
für größere Sensoren notwendig
sein. Zusätzlich
könnten
für einige
Programme, die im Programmspeicher 385 des DSP 303 gespeichert
sind, die 16-Bit-FIFO-Register
keine ausreichende Kapazität
haben. In diesem Fall kann die Systemsteuerung 304 den
Speicher 308 so rekonfigurieren, daß er als Steuerung zum Schreiben
in einen zu der rekonfigurierbaren Steuerung externen Speicher,
wie einen SDRAM, dient, der allgemein mit 615 in 3 dargestellt
ist und in der Folge ausführlicher
besprochen wird.
-
6A zeigt
diese zusätzliche
Konfiguration. Wie in 6A dargestellt ist, empfängt ein
Eingangs-FIFO 610 ein 10-Bit-Datensignal von dem Pixel-Vorverarbeitungsblock 307.
Diese Daten werden auf der Basis des Sensorzeitsteuerungssignals
getaktet, das für
gewöhnlich
sen_pix_clk 392 ist, das vom Sensor 301 erzeugt
wird. Die Systemsteuerung 304 verwendet den Steuerbus 335 zum
Konfigurieren des Schreibadressengenerators 611, um Schreibadressen
zu erzeugen, die von der SDRAM-Steuerung 612 verwendet
werden. Die SDRAM-Steuerung nimmt die Daten vom Eingangs-FIFO wie
auch vom Schreibadressengenerator und schreibt die Kameradaten in
den externen SDRAM 615.
-
Zum
Abrufen der Daten vom SDRAM 615 konfiguriert die Systemsteuerung 304 einen
Leseadressengenerator 613 zum Erzeugen von Leseadressen,
die von der SDRAM-Steuerung 612 verwendet
werden. Unter Verwendung dieser Adresse ruft der SDRAM 612 die
adressierten Daten vom SDRAM 615 ab und leitet die Kameradaten
zu dem Ausgabe-FIFO 614.
Die Daten werden durch Auffüllen
auf 16 Bits umformatiert, bevor sie zu der HPI-Einheit 310 geleitet werden.
-
6B zeigt
eine ähnliche
Anordnung zum Weiterleiten bereits verarbeiteter Bilddaten von der HPI-Einheit 310 zu
der Anzeigeformatiervorrichtung 311. Insbesondere empfängt der
Eingangs-FIFO 620 ein 16-Bit-Datensignal von der HPI-Einheit 310.
Die Systemsteuerung 304 verwendet den Steuerbus 335 zum
Konfigurieren des Schreibadressengenerators 621, um Schreibadressen
zu erzeugen, die von der SDRAM-Steuerung 622 verwendet
werden. Die SDRAM-Steuerung nimmt die Daten vom Eingangs-FIFO 620 wie
auch vom Schreibadressengenerator 621 und schreibt die
Kameradaten in den externen SDRAM 625. Zum Abrufen der
Daten vom SDRAM 625 konfiguriert die Systemsteuerung 304 den
Leseadressengenerator 623 zum Erzeugen von Leseadresse,
die von der SDRAM-Steuerung 622 verwendet werden. Unter
Verwendung dieser Adresse ruft der SDRAM 622 die adressierten
Daten vom SDRAM 625 ab und leitet die Kameradaten zu dem Ausgangs-FIFO 624.
Die Daten werden dann zu der Anzeigeformatiervorrichtung 311 geleitet.
-
Unter
erneuter Bezugnahme auf 3 und wie zuvor erwähnt, kann
der DSP 303 durch Laden von Programmanweisungen 370 aus
dem Flash-Speicher 317 in den Programmspeicher 385 des
DSP 303 unter Verwendung des SPI-Busses 380 programmiert
werden. Diese Programmanweisungen werden mit verschiedenen Zielsetzungen
geladen, wie Programme, die eine bestimmte Bildverarbeitung auf
der Basis des Typs des Kamerakopfes ausführen, und/oder Programme, die
auf Präferenzen
ansprechen, die von einem Benutzer gewählt wurden. Letztgenannter
Fall wird in dem Abschnitt mit dem Titel "Benutzerwählbare Software" in der Folge besprochen.
Im erstgenannten Fall werden die Programmanweisungen, die geladen
werden, dem Kamerakopf zugeordnet, der von der Systemsteuerung 304 erfaßt wird.
Beispiele für
Programmanweisungen, die vom Kamerakopf abhängig sind, die von dem DPS 303 ausgeführt werden,
enthalten die Intensitätskorrektur,
Randverstärkung
und Color-Smoothing.
-
Während alle
obengenannten Rekonfigurationen als Reaktion auf das Erfassen einer
neuen Kamera und Lesen ihrer Kameraparameter ausgeführt werden,
kann die Kameraidentifizierung erhalten werden, ohne sie notwendigerweise
aus einer lesbaren Kameraparameter-Speichervorrichtung zu lesen. Zum Beispiel
kann ein neuer Kopf durch einen Kalibrierungs prozeß identifiziert
werden. Zusätzlich
können
Kameramerkmale, wie Sensorgröße, aus
Synchronisierungssignalen abgeleitet werden.
-
[Mehrfachausgabefähigkeit]
-
Die
Mehrfachausgabefähigkeit
der vorliegenden Erfindung ermöglicht
dem Benutzer, aus mehreren Videoformaten für die Anzeige verarbeiteter
Kameradaten zu wählen.
Zum Beispiel könnte
der Benutzer unter NTSC-, PAL- und RGB-Formaten, abhängig von
der verwendeten Art der Anzeige, wählen. Unter Bezugnahme auf 2 kann
der Benutzer das Videoausgabeformat unter Verwendung von Steuereinrichtungen
auf der Benutzeroberfläche 11 der
Kamerasteuereinheit 6 oder durch eine Wahl mit der Tastatur 10 wählen. Zusätzlich könnte ein
Wahl durch eine Wahl über
Software auf dem PC 12 vorgenommen werden, der an der Kamerasteuereinheit 6 befestigt
ist.
-
Unter
erneuter Bezugnahme auf 3 meldet die Systemsteuerung 304,
sobald der Benutzer eine Videoausgabewahl trifft, die Wahl an die
Video-Kodiervorrichtung 313 über eine Kodiervorrichtungssteuerungsleitung 345 und
konfiguriert die rekonfigurierbare Steuerung 302. Wenn
der Benutzer zum Beispiel die NTSC-Ausgabe wählt, sendet die Systemsteuerung 304 ein
Signal, das die Video-Kodiervorrichtung 313 auffordert,
das Sensordatensignal bei 525 Zeilen/Frame zu kodieren, und konfiguriert
den TV-Taktgenerator 316, ein 60 Hz Taktsignal zu erzeugen.
Wenn der Benutzer andererseits den PAL-Ausgang wählt, veranlassen Signale von
der Systemsteuerung 304 die Kodierung bei 625 Zeilen/Frame
und konfigurieren den TV-Taktgenerator 316 zum Erzeugen
eines 50 Hz Taktsignals.
-
In
Bezug auf die Konfiguration der rekonfigurierbaren Steuerung 302 sendet
die Systemsteuerung 304 ein Signal über den Steuerbus 335 zur
Anzeigeformatiervorrichtung 311. Unter Bezugnahme auf 8 rekonfiguriert
dieses Signal den Anzeigezeitsteuerungsblock 804 zum Erzeugen
von Pixel-Anfang/Ende-Signalen und Zeilen-Anfang/Ende-Signalen,
die gültige
Daten auf der Basis der gewünschten
Dimensionen identifizieren. Der Anzeigezeitsteuerungsblock 804 erzeugt
auch Framenummer-Daten zur Cursor-Aktivierung. Somit rekonfiguriert
die Systemsteuerung 304 die Ausgabezeitsteuerungssignale,
die durch den Anzeigezeitsteuerungsblock 804 erzeugt werden,
als Reaktion auf die Benutzerwahl des Videoformats. Enc_clk 396 wird
zu der Video-Kodiervorrichtung 313 gesendet und kann auch
zum Synchronisieren der Anzeige von Textdaten mit den verarbeiteten
Sensordaten, wie in der Folge beschrieben, verwendet werden.
-
Die
Anzeigeformatiervorrichtung 311 empfängt die verarbeiteten Sensordatensignale
von dem Speicher 309 und wandelt das Datenformat unter Verwendung
der Dekodiervorrichtung 802 von 16 Bits in 8 Bits um. Die
umgewandelten Daten werden dann zu einem Anzeige-Multiplexer 803 gesendet. Eine Überlagerungseinheit 801 empfängt ein
Signal, das Überlagerungstextdaten
enthält,
von der Systemsteuerung 304 über den Steuerbus 335 und
empfängt
ein Signal, das Zeitsteuerungsdaten enthält, von dem Anzeigezeitsteuerungsblock 804.
Die Überlagerungseinheit 801 erzeugt
eine Kontur für
die Überlagerungstextdaten
und den Cursor und sendet das korrekt zeitgesteuerte Textdatensignal
zu dem Anzeige-Multiplexer 803. Der Anzeige-Multiplexer 803 kombiniert
das verarbeitete Sensordatensignal und das Textdatensignal, und
sendet das kombinierte Signal zu der Video-Kodiervorrichtung 313.
-
In
einer anderen Anordnung müssen
die Textdaten nicht mit Sensordaten kombiniert werden. Zum Beispiel
kann Text auf einem eigenen Schirm angezeigt werden, getrennt von
den Sensordaten. Diese Anordnung macht die Verwendung der Überlagerungseinheit
und des Anzeige-Multiplexers hinfällig.
-
Unter
erneuter Bezugnahme auf 3 empfängt die Video-Kodiervorrichtung 313 Sensordaten und
enc_clk 396 von der Anzeigeformatiervorrichtung 311 und
ein Kodierungssteuerungssignal 345 von der Systemsteuerung 304.
Die Konfiguration der Video-Kodiervorrichtung 313 ist
in 9 dargestellt. Unter Bezugnahme auf 9 kodiert
eine analoge TV-Kodiervorrichtung 911 die verarbeiteten
Sensordaten zu dem Videoformat, das von dem Kodiervorrichtungssteuerungssignal 345 veranlaßt wird,
das von der Systemsteuerung 304 empfangen wird. Somit rekonfiguriert
die analoge TV-Kodiervorrichtung 911 das Anzeigeformat
als Reaktion auf die Benutzerwahl des Videoformats, wie PAL oder
NTSC, FBAS (composite) oder RGB. Zusätzlich kann der Digital/Analog-(D/A-)
Wandler 912 auch zum Umwandeln der Sensordaten in einen
VGA-Ausgang verwendet werden. Die Video-Kodiervorrichtung 313 kann
auch einen Durchgang für
die Sensordaten enthalten, der die Ausgabe digitaler Sensordaten
für die Anzeige
auf einem DVI-Monitor oder für
die Aufzeichnung auf einem Festplattenlaufwerk ermöglicht.
Daher kann die Video-Kodiervorrichtung 313 mehrere Ausgaben
haben, einschließlich
des vom Benutzer gewählten
Videoformats.
-
[Hardware-Beschleunigung]
-
Unter
erneuter Bezugnahme auf 3 ist das FPGA der rekonfigurierbaren
Steuerung 302 so programmiert, daß sie die Eingangs- und Ausgangsverarbeitung
für die
DSP 303 handhabt. Da das FPGA für die Eingangs- und Ausgangsverarbeitung verantwortlich
ist, ist die DSP 303 von diesen Aufgaben befreit und kann
ihre Verarbeitungsleistung der Aufgabe der Bildverarbeitung widmen.
Wie zuvor unter Bezugnahme auf das Merkmal der Anpassungsfähigkeit
an mehrere Köpfe
besprochen wurde, ist die rekonfigurierbare Steuerung 302 konfigurierbar,
um Sensoren mit sehr unterschiedlicher Zeitbasis, Eingabeformatdaten
und Pixel-Vorverarbeitungsanforderungen aufzunehmen. Zusätzlich kann
der Sensorzeitsteuerungsblock 312 die Eingangszeitsteuerung so
einstellen, daß eine
nicht optische, digitale Zoom-Funktion implementiert wird. Ferner
ist die rekonfigurierbare Steuerung 302 konfigurierbar,
um verschiedene Ausgabeformate und Zeitsteuerungen zu erzeugen.
Somit dient die rekonfigurierbare Steuerung als Schnittstelle zwischen
dem Sensor und dem DSP wie auch zwischen dem DSP und dem Ausgang.
Auf diese Weise kann die Kamerasteuereinheit einen verstärkten Durchsatz
und eine geringere Verzögerung
erreichen.
-
Genauer
besteht eine Möglichkeit
für die
rekonfigurierbare Steuerung 302, den Durchsatz zu erhöhen, darin,
als Schnittstelle zwischen dem Sensor 301 und dem DSP 303 zu
dienen. Wie zuvor beschrieben, leitet die rekonfigurierbare Steuerung 302 die
Zeitsteuerung zu dem Sensor, formatiert die eingehenden Daten, führt eine
etwaige Pixel-Vorverarbeitung an den Daten aus, und speichert die
eingehenden Daten in einem Speicher zur Verwendung durch den DSP.
Umgekehrt greift die rekonfigurierbare Steuerung 302 auf
Daten, die bereits von dem DSP verarbeitet wurden, in einem Speicher
zu, formatiert die Daten zur Anzeige und gibt sie an eine Video-Kodiervorrichtung
aus.
-
7 zeigt
die Schnittstelle mit dem DSP genauer. Kameradaten werden vom Speicher 308 (von 3)
zur HPI-Einheit 310 geleitet. Innerhalb der HPI-Einheit 310 packt
die Dekodiervorrichtung 711 die 16-Bit-Daten vom Speicher 308 in
ein 32-Bit-Datenformat. Dann taktet die HPI-Steuerung 712 die
32-Bit-Daten in den Eingangsspeicher 381 des DSP 303 (beide
in 3) bei der HPI-Taktrate (für gewöhnlich 40 MHz). Die HPI-Steuerung
verwendet ein Direktspeicherzugriffsprotokoll (DMA-Protokoll), um
die Daten zu dem Ein gangsspeicher 318 des DSP 303 zu
senden. Auf diese Weise werden DSP-Ressourcen nicht für Datentransfer
verschwendet.
-
Wenn
der DSP 303 die Verarbeitung einer bestimmten Anzahl von
Kameradatenzeilen beendet hat (vorzugsweise zwei Zeilen Kameradaten),
verwendet die HPI-Steuerung 712 ebenso das DMA zum Takten
der verarbeiteten Kameradaten vom Ausgangsspeicher 384 zurück in die
rekonfigurierbare Steuerung 302. Die Dekodiervorrichtung 713 wandelt
dann die 32-Bit-Daten in ein 16-Bit Format um und sendet die verarbeiteten
Daten zu dem Speicher 309 und dann auf die Anzeigeformatiervorrichtung 311 (von 3).
Auf diese Weise dient die rekonfigurierbare Steuerung 302 auch
als DSP-Ausgabeschnittstelle.
-
[Takteinstellbarkeit]
-
Ein
weiteres Merkmal der vorliegenden Erfindung liegt in der Verwendung
eines Hardware-Taktsignals, von dem andere Taktsignale bei Taktfrequenzen
erzeugt werden können,
die durch Software einstellbar sind. Unter erneuter Bezugnahme auf 3 liefert
der Hardware-Taktgeber 314 ein Taktsignal zu dem DSP 303.
Von diesem Taktsignal erzeugt der DSP 303 zwei DSP-Taktsignale,
DSP_CLKS 325. In einer bevorzugten Ausführungsform erzeugt der Hardware-Taktgeber 314 ein
48 MHz Signal, während
der DSP 303 Taktsignale von 144 MHz und 96 MHz erzeugt.
Diese zwei Taktsignale werden zu der rekonfigurierbaren Steuerung 302 geleitet.
Obwohl in dieser Ausführungsform
der DSP die DSP_CLKS 325 erzeugt, ist es möglich, daß diese
Takte von einer anderen Hardware in der Kamerasteuereinheit erzeugt
werden.
-
Die
rekonfigurierbare Steuerung 302 verwendet die DSP-Taktsignale
zum Erzeugen von Taktsignalen für
den Sensor, die Anzeigeformatiervorrichtung, die Video-Kodiervorrichtung
und die HPI-Einheit. Wie zuvor unter Bezugnahme auf den Sensortaktgenerator 305 besprochen
wurde, werden die Taktgeneratoren in der rekonfigurierbaren Steuerung 302 für gewöhnlich als
Teiler oder steuerbare Phasenregelkreisschaltungen implementiert.
Der Sensortaktgenerator 305, der HPI-Taktgenerator 31,
der TV-Taktgenerator 316 und der Kodiervorrichtungstaktgeber
sind jeweils durch die Systemsteuerung 304 konfigurierbar.
Durch Bereitstellung separater Taktgeneratoren für jede Phase des Datenflusses
ist die Kamerasteuereinheit imstande, die Eingabe- und Ausgabezeitsteuerung
unabhängig
voneinander zu ändern.
-
Eine Änderung
der Eingabe- und Ausgabezeitsteuerung ist nützlich, da es für gewöhnlich notwendig
ist, die Ausgabezeitsteuerung eines Videosystems an die Zeitsteuerungsanforderungen
der Ausgabevorrichtung (z.B. NTSC oder PAL) anzupassen. Die Anforderungen
für die
Eingabezeitsteuerung sind im allgemeinen viel variabler. Faktoren,
wie das Ausmaß der
Bewegung in dem Bild, die verfügbare Lichtstärke (Intensität des Lichts)
und die Art und Größe des verwendeten
Sensors, können
beeinflussen, welche Eingabezeitsteuerung optimal ist. Durch Bereitstellen
eines durch Software steuerbaren Takts für die Eingabezeitsteuerung
kann eine Feineinstellung vorgenommen werden. Zum Beispiel könnten Feineinstellungen
bei der Sensorbelichtungszeitsteuerung vorgenommen werden, anstatt
Operationsverstärker
(Gain Amplifier) zur Verbesserung des Signals zu verwenden. Dies
ist wünschenswert,
da Operationsverstärker
im allgemeinen ein Rauschen einführen.
Da ferner das Ausgabezeitsteuerungssignal von dem Eingabezeitsteuerungssignal
unabhängig ist,
erzeugen Feineinstellungen bei der Eingabezeitsteuerung keine Zeitsteuerungsanomalien
im Ausgangsvideosignal.
-
[Benutzerwählbare Konfiguration]
-
Gemäß einem
anderen Merkmal der vorliegenden Erfindung kann der Benutzer die
Programmanweisungen (d.h., die Software) und Konfigurationsinformationen
(d.h., die Firmware), die von der Kamerasteuereinheit verwendet
werden, zum Beispiel durch die Wahl aus einem Menü mit mehreren Optionen
wählen.
Unter Verwendung einer Eingabevorrichtung, wie einer Tastatur 10 oder
Benutzeroberfläche 11 (beide
in 1), kann ein Benutzer die Systemsteuerung 304 anweisen,
einen spezifischen Satz von Konfigurationsinformationen und Programmanweisungen
zu laden, die von der rekonfigurierbaren Steuerung 302 und
dem DSP 303 ausgeführt werden
sollen. Zusätzlich
kann die Wahl unter Verwendung von Endoskopschaltern 5 an
dem Kamerakopf selbst ausgeführt
werden.
-
Gemäß einer
bevorzugten Ausführungsform dieses
Aspekts der Erfindung kann, nachdem die Systemsteuerung 304 einen
neuen Kamerakopf erfaßt
hat, anstelle einer Rekonfiguration der rekonfigurierbaren Steuerung
und dem Laden der Programmanweisungen in den DSP mit einer vorbestimmten Firmware
und Software, der Benutzer aufgefordert werden, aus zwei oder mehr
Sätzen
von Konfigurationsinformationen und Programmanweisungen zu wählen, die
jeweils die Verwendung von verschiedenen medizinischen Anwendungen
oder Zuständen betreffen.
In einigen Fällen
kann ein angebrachter Kamerakopf nur einen Satz von Konfigura tionsinformationen
und Programmanweisungen aufweisen. Wenn mehrere Sätze vorhanden
sind, kann einem Benutzer die Möglichkeit
zu wählen
geboten werden, zum Beispiel ein Profil für Standardkonfigurationsinformationen
und Programmanweisungs-Einstellungen, oder ein Profil, das bei schwachen
Lichtbedingungen eine bessere Leistung bietet. Sobald der Benutzer
die durchzuführenden
Programmanweisungen wählt,
greift die Systemsteuerung 304 auf den Flash-Speicher 317 zu,
um die gewählten
Programmanweisungen zu erhalten, und lädt diese dann in den DSP 303 zur
Ausführung,
wie unter Bezugnahme auf das Merkmal der Anpassungsfähigkeit
an mehrere Köpfe
beschrieben wurde. Zusätzlich
rekonfiguriert die Systemsteuerung 304 die rekonfigurierbare
Steuerung 302 mit den gewählten Konfigurationsinformationen.
Wie bei den Änderungen,
die ausgeführt
werden, wenn ein neuer Kopf erfaßt wird, ist die Wahl verschiedener
Konfigurationsinformationen und Programmanweisungen nicht auf die Änderung einfacher
numerischer Datenpunkte beschränkt,
wie Verstärkungsfaktoren
und Filtereigenschaften. Statt dessen ermöglicht eine Benutzerwahl von
Konfigurationsinformationen signifikante Hardware-Änderungen,
die für
verschiedene Anwendungen verwendet werden, wie ein Verschieben der
Zeitbasis und digitalen Zoom.
-
[Feldprogrammierbare
Software und Firmware]
-
Ein
weiteres Merkmal der vorliegenden Erfindung ist die Möglichkeit,
sowohl die Software (Programmanweisungen) wie auch die Firmware
(konfiguriert durch die Konfigurationsinformationen), die für die Kamerasteuereinheit
vor Ort verfügbar
sind, zu aktualisieren. "Vor
Ort" bezieht sich
auf die Zeit, nachdem die Kamerasteuereinheit an einen Endbenutzer
geliefert wurde, wie ein Krankenhaus. Programmanweisungen 370 und
Konfigurationsinformationen 360, die von der Kamerasteuereinheit 6 verwendet
werden, sind im Flash-Speicher 317 gespeichert. Eine Möglichkeit,
den Flash-Speicher 317 zu aktualisieren, ist ein PC-Download. Unter erneuter Bezugnahme
auf 3 enthält
die Kamerasteuereinheit 6 eine serielle Schnittstelle 318,
die an einen PC 12 anschließbar ist. Die Systemsteuerung 304 steuert
die Übertragung
von Programmanweisungen und Konfigurationsinformationen von dem
PC durch die Schnittstelle zu dem Flash-Speicher 317. Zusätzlich kann
der Flash-Speicher 317 auch durch die Verwendung des Quick-Swap-Flash-Speichers 13 aktualisiert
werden. Wie bei einem PC-Download wird die Quick-Swap-Vorrichtung
an die serielle Schnittstelle der Kamerasteuereinheit angeschlossen,
und der Download wird durch die Systemsteuerung 304 mit Leistung
gespeist und gesteuert. Jede dieser Aktualisierungsmöglichkeiten
kann von einem entsprechend geschulten Personal durchgeführt werden, ohne
die Kamerasteuereinheit zum Hersteller oder zu dem technischen Dienst
zurückzusenden.
-
In
Kombination mit dem Merkmal einer rekonfigurierbaren Steuerung und
eines DSP ist die Kamerasteuereinheit der vorliegenden Erfindung
imstande, sich an neue Kameraköpfe,
Pixel-Vorverarbeitungsalgorithmen und Bildverarbeitungssoftware ohne Änderung
der Hardware anzupassen, indem sowohl die Software wie auch die
Firmware vor Ort aktualisiert werden können.
-
Das
Merkmal der vor Ort programmierbaren Software und Firmware zieht
auch die Neuverteilung einer Funktionalität zwischen der rekonfigurierbaren Steuerung 302 und
dem DSP 303 gegenüber
ihren aktuellen Zuordnungen in Betracht. Wie zuvor besprochen, wird
die Eingabe- und Ausgabeverarbeitung gemeinsam mit einer gewissen
Vorverarbeitung von der rekonfigurierbaren Steuerung 302 gehandhabt,
während
die Bildverarbeitung von dem DSP 303 gehandhabt wird. Eine
Aktualisierung der Software und Firmware vor Ort kann eine Verschiebung einiger
der Bildverarbeitungsoperationen, die typischerweise von dem DSP 303 gehandhabt
werden, zu der rekonfigurierbaren Steuerung 302 beinhalten. Ebenso
könnten
die Eingabe- und Ausgabeverarbeitungs- und/oder Vorverarbeitungsoperationen
so verschoben werden, daß sie
von dem DSP 303 gehandhabt werden.
-
Die
Erfindung wurde zuvor mit Bezug auf besondere veranschaulichende
Ausführungsformen beschrieben.
Es ist offensichtlich, daß die
Erfindung nicht auf die zuvor beschriebenen Ausführungsformen beschränkt ist,
und daß verschiedene Änderungen
und Modifizierungen von Fachleuten in der relevanten Technik vorgenommen
werden können,
ohne vom Wesen und Umfang der Erfindung Abstand zu nehmen. Somit
sollten die vorliegenden Ausführungsformen
der Erfindung in jeder Hinsicht als beispielhaft und nicht einschränkend angesehen
werden und der Umfang der Erfindung durch alle Ansprüche, die
durch diese Patentschrift, die beiliegenden Zeichnungen gestützt sind,
und die Äquivalente
der Ansprüche
und nicht die vorangehende Beschreibung bestimmt sein.
-
ZUSAMMENFASSUNG
-
Die
vorliegende Erfindung stellt ein Remote-Head-Bildgebungssystem mit
einer Kamerasteuereinheit bereit, die imstande ist, mehrere Eingabevorrichtungen
zu unterstützen.
Die Kamerasteuereinheit erfaßt
eine Eingabevorrichtung, an die sie angeschlossen ist, und ändert die
interne Funktionalität der
Kamerasteuereinheit entsprechend. Solcher Änderungen beinhalten das Ändern der
Taktzeitsteuerung, das Ändern
der Video-Ausgabeparameter und das Ändern der Bildverarbeitungssoftware.
Zusätzlich
ist ein Benutzer imstande, verschiedene Sätze von Software-Programmanweisungen
und Hardware-Konfigurationsinformationen auf der Basis des angebrachten
Kopfes zu wählen.
Das Remote-Head-Bildgebungssystem verwendet einen feldprogrammierbaren
Schaltkreis, wie feldprogrammierbare Gate-Arrays (FPGA), um die Änderung
in der Konfiguration zu erleichtern.