-
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.
-
US 4,816,909 A offenbart ein Videoendoskopsystem. An einem Endoskop können verschiedene bildgebende Vorrichtungen angeschlossen werden, wobei ein Signalprozessor die Signale des Endoskops verarbeitet. Die bildgebende Einrichtung umfasst einen Speicher, der Informationsdaten über die Art der bildgebenden Einheit speichert, die von dem Signalprozessor zur Bildsignalverarbeitung ausgelesen werden.
-
EP 1 324 596 A2 offenbart eine Austauschhardwarekomponente einer Kamerasteuerungseinheit für Videosysteme. Der Kamerakopf umfasst eine Speichereinrichtung, welche Informationen über die Art der Bilddaten, die von der Steuereinheit bearbeitet werden, enthält und die von der Steuereinheit ausgelesen werden.
-
US 6,184,922 B1 offenbart ein bildgebendes System in einem Endoskop. Eine Kamerasteuereinheit umfasst eine Vorverarbeitungsschaltung, um das Ausgangssignal einer bildgebenden Einheit zu verarbeiten. Ferner ist eine Schaltung für einen Weißabgleich/Schwarzabgleich der Bilddaten vorgesehen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Aufgabe der vorliegenden Erfindung ist es, eine Kamerasteuereinheit zur Verfügung zu stellen, welche eine Pixelkorrektur für Daten von Sensorköpfen mehrerer verschiedener Sensortypen, die an einer Schnittstelle anschließbar sind, ermöglicht. Die Aufgabe wird gelöst durch eine Kamerasteuereinheit nach Anspruch 1 oder 7.
-
Die vorliegende Erfindung beschäftigt sich mit den Mängeln aus dem Stand der Technik, indem sie ein Remote-Head-Bildgebungssystem mit einer Kamerasteuereinheit nach Anspruch 1 oder Anspruch 7 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 denn 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 Systemsteuerung 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 verwendet 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 Konfigurationsinformationen 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 fahrt 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 Erzeugung 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 Kalibrierungsprozeß 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 Eingangsspeicher 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 Konfigurationsinformationen 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.