-
HINTERGRUND DER ERFINDUNG
-
1. Erfindungsgebiet
-
Die
vorliegende Erfindung betrifft allgemein Digitalkameras zum Erfassen
von Bilddaten, und insbesondere die intelligente Verbesserung der
Bildqualität.
-
2. Beschreibung des verwandten
Standes der Technik
-
Digitalkameras
werden zunehmend von Konsumenten benutzt, um sowohl Standbilder
als auch Videodaten zu erfassen. Webcams, also digitale Kameras,
die mit Hostsystemen verbunden sind, werden ebenfalls zunehmend üblich. Ferner überschwemmen
andere Einrichtungen, die digitale Bilderfassungsfähigkeiten
aufweisen, wie beispielsweise mit Kameras ausgestattete Mobiltelefone
oder PDAs (Personal Digital Assistants), den Markt.
-
Im
allgemeinen wünscht
der Nutzer solcher Digitalkameras, daß die Kamera die Bilddaten
(Standbild und/oder Video) jederzeit mit der bestmöglichen
Qualität
erfaßt.
Solch eine bestmögliche
Bildqualität
ist erwünscht,
unabhängig
von Umgebungsbedingungen (z.B. schwaches Licht, Gegenlicht etc.),
der Erscheinung des Nutzers (z.B. die Farbe der Haut des Benutzers,
seines Haares, seiner Kleidung etc.) und anderen verschiedenen Faktoren
(z.B. dem Abstand zwischen dem Nutzer und der Kamera, die Art der
Anwendung, die der Nutzer verwendet, wie beispielsweise Instant
Messaging etc.).
-
Manche
allgemein erhältliche
Digitalbild-Erfassungseinrichtungen versuchen, die Bildqualität zu verbessern.
Jedoch weisen die verwendeten Herangehensweisen mehrere Defizite
auf. Zunächst
gestatten verschiedene allgemein erhältliche Digitalbild-Erfassungseinrichtungen
es dem Nutzer, verschiedene Steuerungen bzw. Steuerungsmöglichkeiten
(z.B. Blitz, Fokussierung etc.) proaktiv zu ändern, um die Bildqualität zu verbessern.
Jedoch verfügen
in vielen solcher Fälle
die digitalen Erfassungseinrichtungen über keinerlei Intelligenz,
statt dessen implementieren sie lediglich die Entscheidungen des
Nutzers. Zweitens wird selbst in Situationen, in denen die Digitalbild-Erfassungseinrichtungen über etwas
Intelligenz verfügen
(z.B. dem Nutzer vorschlagen, daß ein Blitz benutzt werden
sollte), eine jede Funktion bzw. Steuerung isoliert verwendet. Die Gesamtbildqualität hängt jedoch
von der Kombination dieser verschiedenen Funktionen bzw. Steuerungen
ab, anstatt von einer jeden für
sich. Beispielsweise kann eine Berücksichtigung schwachen Umgebungslichts
in Isolation betrachtet, zu einem verstärkten Rauschen führen. Solche
Wechselwirkungen dieser Funktionen oder Fähigkeiten werden bei herkömmlichen
Digitalbild-Erfassungseinrichtungen nicht berücksichtigt. Statt dessen kann
die Behandlung spezifischer Probleme auf isolierte Weise manchmal
dazu führen,
daß die
Gesamtqualität
des Bildes verschlechtert statt verbessert wird.
-
Ferner
versuchen einige erhältliche
Digitalbild-Erfassungseinrichtungen, einige dieser Steuerungen als
Gruppe zu behandeln, aber sie verwenden dazu statische Algorithmen.
Beispielsweise betrachten solche statischen Algorithmen die Vorschau
des gegenwärtigen
Bildes und prüfen,
was, falls überhaupt,
getan werden kann, um es zu verbessern. Solche Techniken werden
vorwiegend für
das Erfassen stehender Bilder verwendet, und sie beschäftigen sich
daher nicht mit der Frage, warum die Bildqualität suboptimal ist und/oder wie nachfolgend
erfaßte
Bilder aussehen werden.
-
Andere
verfügbare
Algorithmen verbessern die Bildqualität nachdem die Bilddaten bereits
erfaßt
wurden, unter Verwendung von der Erfassung nachgeschalteten Verarbeitungstechniken
(z.B. Verbessern der Helligkeit, der Sättigung, des Kontrasts etc.
von zuvor erfaßten
Bilddaten). Jedoch sind solche Techniken inhärent dahingehend beschränkt, daß Information,
die zur Zeit der Erfassung des Bildes aufgrund von nicht optimalen
Faktoren verloren wurde, nicht nachträglich wiedergewonnen werden
kann. Statt dessen können
nur Verfeinerungstechniken verwendet werden (z.B. Pixel-Mittelwertbildung),
um die Daten, die erfaßt
wurden, auf die attraktivste Weise darzustellen.
-
Es
besteht somit ein Bedarf für
eine intelligente dynamische Bildqualitäts-Funktionseinheit für eine Kamera,
die einen Satz von Steuerungen bzw. Steuerungsmöglichkeiten als eine Gruppe
handhaben kann und die zu einer Erfassung der Bilddaten mit bestmöglicher
Qualität
in Realzeit führt.
Ferner besteht Bedarf nach einem intuitiven und praktischen Verfahren
und System, die es sowohl dem Nutzer gestatten, verschiedene Funktionen
zu steuern, als auch den Nutzer bezüglich verschiedener Entwicklungen
bezüglich
der Bildqualität in
Kenntnis zu setzen.
-
KURZE ZUSAMMENFASSUNG DER
ERFINDUNG
-
Gemäß einer
Ausführungsform
stellt die vorliegende Erfindung ein System und ein Verfahren zum
Verbessern der Bildqualität
für die
Realzeit-Erfassung von Bilddaten bereit, bei denen verschiedene
Parameter als Ganzes gesteuert werden, und die Algorithmen basierend
auf einer Beurteilung, weshalb die Bildqualität suboptimal ist, implementieren.
In einer Ausführungsform
umfassen ein solches System und Verfahren die Steuerung der Erfassungsparameter
und die Nachverarbeitung des Bildes, wobei potentiell die vorhergehenden
Bilder berücksichtigt
werden, wodurch eine Steuerung über
einen weiten Bereich von Bildqualitätsaspekten möglich wird.
In einer Ausführungsform
ist solch ein System und Verfahren zwischen der Einrichtung und dem
Hostsystem verteilt, wodurch ermöglicht
wird, sowohl die Einrichtungsfähigkeiten
als auch die Hostfähigkeiten,
die in der Regel den Einrichtungsfähigkeiten weit überlegen
sind, auszunutzen. Diese Aufteilung zwischen dem Host und der Einrichtung
ist einzigartig im Kontext digitaler Kameras, die zur Verwendung
in Verbindung mit einem Hostsystem konstruiert sind (z.B. Webkameras).
-
Die
Bildqualität
für eine
Digitalkamera ist eine Kombination von Faktoren, die gegeneinander
abgewogen werden können.
Obwohl es einfach ist, in einer bekannten Umgebung die Kamera zu
justieren, so daß die Bilder
besser aussehen, werden dieselben Einstellungen nicht für alle Bedingungen
funktionieren. Ein System gemäß einer
Ausführungsform
der vorliegenden Erfindung handhabt auf intelligente Weise verschiedene
unterschiedliche Parameter, die mit der Bildqualität zusammenhängen, um
das Erlebnis des Endnutzers zu verbessern, indem ein Bewußtsein für die Umgebung,
das System und dergleichen ausgenutzt wird. Die Bildqualität-Funktionseinheit
aktualisiert eine Reihe von Parameter, darunter solche, die mit
dem Hostsystem zusammenhängen
(z.B. verschiedene Host-Nachbearbeitungs-Algorithmen), solche, die
mit der Kamera zusammenhängen
(z.B. Verstärkungsgrad,
Bildrate), basierend nicht nur auf Kenntnis des gegenwärtigen Zustands
des Systems, sondern auch auf Kenntnis darüber, wie das System in den
gegenwärtigen
Zustand gekommen ist. Hier kann der Zustand des Systems Information
umfassen, die von der Einrichtung kommt, Information, die von der
Analyse der Bilder kommt und Information von dem Host selbst (z.B.
bezüglich
der CPU-Geschwindigkeit,
der verwendeten Anwendung etc.).
-
In
einer Ausführungsform
umfaßt
ein System gemäß der vorliegenden
Erfindung einen Satz von Bild-Verarbeitungsfähigkeiten oder -Funktionen,
eine Verfahrensvorschrift, diese basierend auf Systemlevel-Parametern
zu steuern, und einen Satz von Arten, mit dem Nutzer zu interagieren,
was ebenfalls durch die Verfahrensvorschrift gesteuert wird. Diese
Architektur ist flexibel genug, daß sie sich mit der Zeit entwickeln kann,
wenn beispielsweise neue Funktionen zugefügt werden oder das Verhalten
aktualisiert wird. In einer Ausführungsform
ist die intelligente Bildqualitäts-Funktionseinheit
als eine Zustandsmaschine ("State
Machine") implementiert.
Die Zustände
in der Zustandsmaschine enthalten Information darüber, warm
ein jeder Zustand eingenommen wird, wann er verlassen wird, und
welche Parameter für
diese Algorithmen verwendet werden.
-
In
einer Ausführungsform
ist ein intelligenter Belichtungsautomatik-Algorithmus implementiert,
der die Bildqualität
bei Gegenlichtbedingungen verbessert, indem er die Belichtungsautomatik
in einer interessierenden Zone (z.B. des Gesichts des Nutzers) hervorhebt.
Der intelligente Belichtungsautomatik-Algorithmus verbessert das
Erlebnis des Benutzers insgesamt, indem er die Bildqualität in Bereichen
des Bildes verbessert, die dem Nutzer wichtig sind (Gesicht und/oder
sich bewegende Objekte), obwohl die Belichtung des Restes des Bildes
möglicherweise
verschlechtert werden kann.
-
In
einer Ausführungsform
wird ein Bildraten-Steuerungsalgorithmus implementiert, der die
Bildqualität bei
Schwachlichtbedingungen verbessert. Andere Beispiele für Bildverarbei tungsalgorithmen,
die verwendet werden, sind die Steuerung von Sättigungspegeln, Helligkeitspegeln,
Kontrast etc. In einer Ausführungsform wird
außerdem
eine der Erfassung nachgeschaltete Bearbeitung wie beispielsweise
eine zeitliche Filterung durchgeführt.
-
In
einer Ausführungsform
der vorliegenden Erfindung wird der Nutzer um Erlaubnis gefragt,
bevor spezifische Algorithmen implementiert werden. Darüber hinaus
kann der Nutzer in einer Ausführungsform
manuell Werte für
bestimmte Parameter auswählen
und/oder bestimmte Algorithmen zur Implementierung auswählen.
-
In
einer Ausführungsform
der vorliegenden Erfindung kommunizieren eine oder mehrere LEDs
Information bezüglich
der intelligenten Bildqualität-Funktionseinheit
zu dem Nutzer, beispielsweise wenn spezifische Algorithmen implementiert
werden können,
um trotz anderer Nachteile bzw. Zielkonflikte das Nutzererlebnis
bzw. das Ergebnis potentiell insgesamt zu verbessern.
-
Die
in dieser Zusammenfassung beschriebenen Merkmale und Vorteile und
die folgende detaillierte Beschreibung sind nicht allumfassend,
und insbesondere werden dem Fachmann viele zusätzliche Merkmale und Vorteile
in Anbetracht der Figuren, der Beschreibung und der Ansprüche in den
Sinn kommen. Darüber hinaus
möge man
beachten, daß die
in der Beschreibung verwendete Sprache in erster Linie im Hinblick
auf Lesbarkeit und für
Erläuterungszwecke
gewählt
wurde, und daß sie
nicht in allen Fällen
gewählt
wurde, um den Gegenstand der Erfindung abzugrenzen oder zu umschreiben,
statt dessen sind zum Ermitteln des Erfindungsgegenstands die Ansprüche heranzuziehen.
-
KURZE BESCHREIBUNG DER FIGUREN
-
Die
Erfindung hat weitere Vorteile und Merkmale, die aus der vorliegenden
detaillierten Beschreibung der Erfindung und den anhängenden
Ansprüchen
leichter erkennbar sind, wenn sie in Verbindung mit den beigefügten Zeichnungen
betrachtet werden. Darin zeigen:
-
1 ein
Blockdiagramm, welches ein System gemäß einer Ausführungsform
der vorliegenden Erfindung zeigt.
-
2 ist
ein Flußdiagramm,
das die Funktionsweise eines Systems gemäß einer Ausführungsform der
vorliegenden Erfindung zeigt.
-
3A ist
eine Blockdiagramm-Darstellung einer Zustandsmaschine.
-
3B zeigt
ein Beispiel einer Zustandsmaschine, die gemäß einer Ausführungsform
der vorliegenden Erfindung verwendet wird.
-
4A ist
ein Flußdiagramm,
das verschiedene Operationen zeigt, die von der Zustandsmaschine
initiiert werden, wenn der intelligente Belichtungsautomatik-Algorithmus gemäß einer
Ausführungsform
der vorliegenden Erfindung implementiert ist.
-
4B zeigt
ein Beispiel einer interessierenden Zone.
-
5 ist
ein Graph, der veranschaulicht, wie der Bildraten-, der Verstärkungsgrad-
und der Entsättigungs-Algorithmus
gemäß einer
Ausführungsform
der vorliegenden Erfindung Wechselwirken.
-
6 ist
ein Graph, der die Sättigungssteuerung
gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt.
-
7A ist
ein Bildschirm-Schnappschuß einer
Nutzerschnittstelle gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
7B ist
ein weiterer Bildschirm-Schnappschuß einer Nutzerschnittstelle
gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
7C ist
ein Flußdiagramm,
das zeigt, was geschieht, wenn der Nutzer verschiedene Auswahlen
in der Nutzerschnittstelle trifft.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Die
Figuren (oder Zeichnungen) zeigen eine bevorzugte Ausführungsform
der vorliegenden Erfindung lediglich zum Zwecke der Illustration.
Man beachte, daß ähnliche
oder gleiche Bezugszeichen in den Figuren eine ähnliche oder gleiche Funktionalität zum Ausdruck
bringen können.
Der Fachmann wird anhand der folgenden Diskussion leicht erkennen,
daß alternative
Ausführungsformen
und Strukturen und Verfahren als die hier offenbarten verwendet
werden können,
ohne von den Prinzipien der Erfindung abzuweichen. Man beachte,
daß sich
die folgenden Beispiele auf Webcams konzentrieren, aber daß Ausführungsformen
der vorliegenden Erfindung auch auf andere Bilderfassungseinrichtungen
angewendet werden können.
-
1 ist
ein Blockdiagramm, welches ein mögliches
Benutzungsszenario illustriert, mit einer Erfassungsvorrichtung 100,
einem Hostsystem 110 und einem Nutzer 120.
-
In
einer Ausführungsform
sind die Daten, die durch die Bilderfassungseinrichtung 100 erfaßt werden, Daten
eines stehenden Bildes (Standbilddaten). In einer anderen Ausführungsform
sind die von der Bilderfassungseinrichtung 100 erfaßten Daten
Videodaten (in manchen Fällen
von Audiodaten begleitet). In noch einer anderen Ausführungsform
erfaßt
die Bilderfassungseinrichtung 100 entweder Standbilddaten
oder Videodaten, in Abhängigkeit
von einer Auswahl, die durch den Nutzer 120 getroffen wird.
Die Bilderfassungseinrichtung 100 enthält einen Sensor zum Erfassen
von Bilddaten. In einer Ausführungsform
ist die Bilderfassungseinrichtung 100 eine Webcam. Solch
eine Einrichtung kann beispielsweise ein QuickCam® von
Logitech, Inc. (Freemont, CA) sein. Es versteht sich, daß die Bilderfassungseinrichtung 100 irgendeine
Einrichtung ist, die Bilder erfassen kann, darunter Digitalkameras,
digitale Camcorder, PDAs (Personal Digital Assistants), Mobiltelefone,
welche mit Kameras ausge stattet sind etc. Bei manchen dieser Ausführungsformen
muß das
Hostsystem 110 nicht benötigt sein. Beispielsweise könnte ein
Mobiltelefon direkt mit einer entfernten Stelle über ein Netzwerk kommunizieren.
Als ein weiteres Beispiel könnte
eine Digitalkamera selbst die Bilddaten speichern.
-
Unter
Bezugnahme wiederum auf die spezifische in 1 gezeigte
Ausführungsform
ist das Hostsystem 110 ein herkömmliches Computersystem, welches
einen Computer, eine Speichereinrichtung, eine Netzwerkdienstverbindung
und herkömmliche
Eingabe-/Ausgabe-Vorrichtungen
umfassen kann, wie beispielsweise eine Anzeige, eine Maus, einen
Drucker und/oder eine Tastatur, die mit dem Computersystem gekoppelt sein
können.
Der Computer umfaßt
außerdem
ein herkömmliches
Betriebssystem, eine Eingabe-/Ausgabe-Einrichtung und eine Netzwerkdienst-Software.
Darüber
hinaus enthält
der Computer in manchen Ausführungsformen
eine Software zur sofortigen Mitteilungsübermittlung, eine sogenannte
Instant Messaging (IM)-Software zur Kommunikation mit einem IM-Dienst.
Die Netzwerkdienstverbindung umfaßt solche Hardware- und Softwarekomponenten,
die eine Verbindung mit einem herkömmlichen Netzwerkdienst gestatten. Beispielsweise
kann die Netzwerkdienstverbindung eine Verbindung zu einer Telekommunikationsleitung
sein (z.B. eine Einwahlleitung, eine sogenannte Digital Subscriber
Line ("DSL"), eine T1- oder
eine T3-Kommunikationsleitung). Der Hostcomputer, die Speichereinrichtung
und die Netzwerkdienstverbindung können beispielsweise von der
IBM Corporation (Armonk, NY), von Sun Microsystems, Inc. (Palo Alto,
CA) oder Hewlett-Packard, Inc. (Palo Alto, CA) erhältlich sein.
Man beachte, daß das
Hostsystem 110 irgendeine andere Art von Hostsystem sein
kann, wie beispielsweise ein PDA, ein Mobiltelefon, eine Spielkonsole
oder irgendeine andere Einrichtung mit geeigneter Datenverarbeitungsleistung.
-
In
einer Ausführungsform
kann die Einrichtung 100 über eine drahtlose Verbindung
unter Verwendung irgendeiner drahtlosen Technologie (z.B. HF-Kommunikation,
Bluetooth etc.) mit dem Host 110 verbunden sein. In einer
Ausführungsform
ist die Einrichtung 100 über ein Kabel (z.B. USB, USB
2.0, FireWire etc.) mit dem Host 110 verbunden. Man beachte,
daß die
Bilderfassungseinrichtung 100 in einer Ausführungsform
in den Host 110 integriert ist. Ein Beispiel für solch
eine Ausführungsform
ist eine Webcam, die in einen Laptop-Computer integriert ist.
-
Die
Bilderfassungseinrichtung 100 erfaßt das Bild eines Nutzers 120 zusammen
mit einem Teil der Umgebung, welche den Benutzer 120 umgibt.
In einer Ausführungsform
werden die erfaßten
Daten zum Hostsystem 110 gesandt, zur weiteren Verarbeitung,
Speicherung und/oder Weitersendung zu anderen Nutzern über ein
Netzwerk.
-
Die
intelligente Bildqualitäts-Funktionseinheit 140 befindet
sich in der in 1 gezeigten Ausführungsform
in dem Hostsystem 110. In einer anderen Ausführungsform
kann die intelligente Bildqualitäts-Funktionseinheit 140 in
oder an der Bilderfassungseinrichtung 100 vorgesehen sein.
In noch einer anderen Ausführungsform
befindet sich die intelligente Bildqualitäts-Funktionseinheit 140 teilweise
am oder im Hostsystem 110 und teilweise an oder in der
Bilderfassungseinrichtung 100.
-
Die
intelligente Bildqualitäts-Funktionseinheit 140 umfaßt einen
Satz von Bildverarbeitungsfähigkeiten oder
-Features, eine Verfahrensvorschrift zum Steuern derselben basierend
auf System-Level-Parametern und einen Satz von Arten, mit dem Nutzer
zu interagieren, die ebenfalls durch die Verfahrensvorschrift gesteuert
werden. Mehrere Bildverarbeitungsfähigkeiten bzw. -funktionen
werden unten im Detail beschrieben. Diese Bildverarbeitungsfähigkeiten
verbessern manche Aspekte der Bildqualität, in Abhängigkeit von verschiedenen Faktoren,
wie beispielsweise der Beleuchtungsumgebung, der Bewegung der Bilder,
und dergleichen. Jedoch ist "Bildqualität" keine eindimensionale
Eigenschaft, und es gibt eine Menge von Zielkonflikten. Insbesondere haben
einige dieser Eigenschaften, obwohl sie etwas Verbesserung mit sich
bringen, auch Nachteile, und der Zweck der intelligenten Bildqualitäts-Funktionseinheit 140 besteht
darin, diese Eigenschaften oder Features auf geeignete Weise zu verwenden,
in Abhängigkeit
von verschiedenen Bedingungen, darunter den Einstellungen der Erfassungseinrichtungen,
Systembedingungen, Analyse der Bildqualität (die durch Umgebungsbedingungen
und dergleichen beeinflußt
sein kann) und dergleichen. In einem System gemäß einer Ausführungsform
der vorliegenden Erfindung werden die Bilddaten beurteilt, und dann
werden die Gründe
für eine schlechte
Bildqualität
ermittelt. Dann werden verschiedene Parameter geändert, um die Bildqualität bei dieser gegebenen
Beurteilung zu optimieren, so daß nachfolgende Bilder mit optimierten
Parameter erfaßt
bzw. aufgenommen werden.
-
Um
informierte und intelligente Entscheidungen zu fällen, muß die intelligente Bildqualitäts-Funktionseinheit 140 verschiedener
Informationen gewahr sein, die sie von dem erfaßten Bild, der Webcam 100 selbst und
von dem Host 110 erhält.
Dies wird mehr im Detail unten unter Bezugnahme auf 2 diskutiert.
-
Die
intelligente Bildqualitäts-Funktionseinheit 140 ist
in einer Ausführungsform
als Zustandsmaschine oder sogenannte "State Machine" implementiert. Die Zustandsmaschine
enthält
Information darüber,
welche globalen Parameter in Antwort auf eine Analyse der Information,
welche sie von den verschiedenen Quellen erhält, und auf der Grundlage von
verschiedenen vordefinierten Schwellenwerten, geändert werden sollten. Die Zustandsmaschine
wird unten mehr im Detail unter Bezugnahme auf 3 diskutiert.
-
2 ist
ein Flußdiagramm,
welches die Funktionsweise eines Systems gemäß einer Ausführungsform
der vorliegenden Erfindung illustriert. Es illustriert das Empfangen
eines Einzelbildes (Image Frame) (Schritt 210), das Erhalten
relevanter Information (Schritte 220, 230 und 240),
das Aufrufen der intelligenten Bildqualitäts-Funktionseinheit (Schritt 250),
das Aktualisieren verschiedener Parameter (Schritt 260),
die Kommunikation dieser aktualisierten Parameter (Schritt 265),
das Nachverarbeiten des Bildes (Schritt 270) und das Bereitstellen
des Bildes für
die Anwendung (Schritt 280).
-
Wie
oben erwähnt
wurde, verwendet ein System gemäß einer
Ausführungsform
der vorliegenden Erfindung Information, die aus verschiedenen Quellen
gesammelt wurde. Ein Einzelbild wird empfangen (Schritt 210).
Dieses Bild wird unter Verwendung gewisser bereits existierender
Parameter des Systems (z.B. Verstärkungsgrad der Einrichtung,
Bildrate, Belichtungszeit, Helligkeit, Kontrast, Sättigung,
Weißabgleich,
Fokussierung) erfaßt.
-
Es
wird Information vom Host 110 erhalten (Schritt 220).
Beispiele von Information, die der intelligenten Bildqualitäts-Funktionseinheit 140 von
dem Host 110 bereitgestellt wird, umfassen den Prozessortyp
und die Geschwindigkeit des Hostsystems 110, das Format,
welches von der Anwendung erfordert wird, für die die Bilddaten bereitgestellt
werden (darunter die Auflösung
und die Bildrate), die anderen Anwendungen, die gleichzeitig auf
dem Hostsystem 110 verwendet werden (was die Verfügbarkeit
der Verarbeitungsleistung des Hostsystems 110 für die Bildqualitäts-Funktionseinheit 140 anzeigt
und außerdem
Information darüber
bereitstellt, welche beabsichtigte Verwendung für das Bild vorgesehen sein
könnte),
das Land, in dem das Hostsystem 110 sich befindet, gegenwärtige Benutzereinstellungen,
die die Bildqualitäts-Funktionseinheit 140 beeinflussen
etc. Außerdem
wird Information von der Einrichtung 100 erhalten (Schritt 230).
Beispiele von Information, die durch die Einrichtung 100 bereitgestellt
wird, umfassen den Verstärkungsgrad,
die Bildrate, die Belichtungs- und Gegenlicht-Auswertung (eine Metrik zum Auswerten
der Gegenlichtbedingungen). Beispiele für Information, welche aus dem
Einzelbild extrahiert wird (Schritt 240) umfassen die interessierende
Zone, Belichtungsautomatik-Information (dies kann auch in Abhängigkeit
von der Implementierung von der Einrichtung durch Hardware oder
Firmware bewerkstelligt werden), Gegenlichtinformation (dies kann
wiederum ebenfalls in der Einrichtung bewerkstelligt werden, wie
oben erwähnt
wurde) etc. Darüber
hinaus kann weitere verwendete Information die Fokussierung, Information
bezüglich
Farbgehalt, eine aufwendigere Belichtungsautomatik-Analyse zum Behandeln
von Bildern mit nicht-gleichförmiger
Helligkeitsverteilung und dergleichen umfassen. Man beachte, daß manche
der Information, die von der intelligenten Bildqualitäts- Funktionseinheit
benötigt
wird, von einer anderen Quelle stammen kann, als oben gesagt wurde,
und/oder von mehr als einer Quelle stammen kann.
-
Dann
wird die intelligente Bildqualitäts-Funktionseinheit 140 aufgerufen
(Schritt 250). Aufgrund der empfangenen Information analysiert
in einer Ausführungsform
die intelligente Bildqualitäts-Funktionseinheit 140 nicht
nur, ob die Qualität
des empfangenen Einzelbildes schlecht ist, sondern auch, warum dieser
der Fall sein könnte.
Beispielsweise kann die intelligente Bildqualitäts-Funktionseinheit ermitteln,
daß das
Vorliegen von Gegenlicht bzw. Beleuchtung von hinten die Ursache
dafür ist,
daß die
Belichtung des Bildes nicht optimal ist. Mit anderen Worten weiß die intelligente
Bildqualitäts-Funktionseinheit 140 nicht
nur, wo sich das System befindet (d.h. wo im Rahmen der verschiedenen
Parameter etc.), sondern kennt auch die Trajektorie, auf der es
dorthin gelangte (z.B. daß zunächst der
Verstärkungsgrad
erhöht
wurde, dann die Bildrate abgesenkt wurde usw.). Dies ist wichtig,
denn selbst wenn das Resultat das gleiche ist (z.B. eine schlechte
Bildqualität),
können in
Abhängigkeit
von der beurteilten Ursache für
dieses Resultat (z.B. Gegenlicht, schwache Beleuchtung etc.) unterschiedliche
Parameter geändert
werden, um die Bildqualität
zu verbessern. Dies wird mehr im Detail unter Bezugnahme auf 3 diskutiert.
-
Die
Parameter werden dann aktualisiert (Schritt 260), wie dies
durch die intelligente Bildqualitäts-Funktionseinheit 140 ermittelt
wurde. Manche Parametersätze
werden kontinuierlich justiert, um die Bildqualität in Antwort
auf sich ändernde
Umstände
zu verbessern. In einer Ausführungsform
entspricht solch eine kontinuierliche Justage eines Parametersatzes
einem spezifischen Bildverarbeitungs-Algorithmus, der in Antwort
auf spezifische Umstände
implementiert ist. Beispielsweise kann eine Umgebung mit schwacher
Beleuchtung den Bildraten-Steuerungsalgorithmus triggern, und eine
Gegenlicht-Umgebung kann den intelligenten Belichtungsautomatik-Algorithmus
triggern. Solche Algorithmen werden unten mehr im Detail beschrieben.
-
Tabelle
1 unten veranschaulicht ein Beispiel von Ausgangsparametern, die
durch eine intelligente Bildqualitäts-Funktionseinheit 140 gemäß einer
Ausführungsform
der vorliegenden Erfindung bereitgestellt sind.
-
-
Diese
aktualisierten Parameter werden dann zur zukünftigen Verwendung auf geeignete
Weise kommuniziert (Schritt 265) (beispielsweise zur Einrichtung 100 und
zum Holst 110). Beispiele solcher Parameter werden unten
in verschiedenen Tabellen angegeben. Dieses Aktualisieren von Parameter
führt zu
einer fortschreitenden Verbesserung der Qualität der empfangenen Bilder.
-
Man
beachte, daß in
einer Ausführungsform
der vorliegenden Erfindung die intelligente Bildqualitäts-Funktionseinheit 140 bei
jedem empfangenen Einzelbild aufgerufen wird (Schritt 230).
Dies ist wichtig, da die intelligente Bildqualitäts-Funktionseinheit 140 dafür verantwortlich
ist, die Parameter automatisch zu aktualisieren, und außerdem für das Übersetzen
der Benutzereinstellungen in Parameter, die von der Software und/oder
Hardware zu verwenden sind. Ferner hält die kontinuierliche Verwendung
der intelligenten Bildqualitäts-Funktionseinheit 140 diese
davon in Kenntnis, welche Parameter zu jeder gegebenen Zeit sich
unter ihrer Steuerung befinden, und welche zur manuellen Steuerung
bestimmt sind. Die intelligente Bildqualitäts-Maschine 140 kann
in Abhängigkeit
von ihrem Zustand entscheiden, was zu tun ist, den Kontext ermitteln
und andere Eingangsparameter ermitteln und kann geeignete Ausgangsparameter
und eine Liste von auszuführenden
Aktionen erzeugen.
-
Wie 2 zu
entnehmen ist, werden außerdem
gewisse Arten von der Erfassung nachgeschalteten Bearbeitungen an
dem empfangenen Einzelbild vorgenommen (Schritt 270). Ein
Beispiel solch einer Nachbearbeitung ist eine Zeitbearbeitung, die
unten mehr im Detail beschrieben wird. Man beachte, daß eine solche Nachbearbeitung
gemäß einer
Ausführungsform
der vorliegenden Erfindung optional ist. Das Einzelbild ("Image Frame") wird dann der Anwendung
bereitgestellt (Schritt 280), welche die Bilddaten verwendet.
-
Wie
oben erwähnt
wurde, ist die intelligente Bildqualitäts-Funktionseinheit 140 in
einer Ausführungsform
der vorliegenden Erfindung als Zustandsmaschine implementiert. 3A ist
eine Blockdiagramm-Darstellung einer Zustandsmaschine. Die Definition
einer Zustandsma schine ("State
Machine") ist dem
Fachmann wohlbekannt. Wie in 3A zu
sehen ist, enthält
eine State Maschine verschiedene Zustände (Zustände 1 ... m), von denen ein
jeder mit einer oder mehreren Aktionen assoziiert sein kann (Aktionen
A ... Z). Die Aktionen sind Beschreibungen von einer oder mehreren
durchzuführenden
Aktivitäten.
Ferner zeigt ein Übergang
eine Zustandsänderung
an und wird durch einen Zustand beschrieben, der erfüllt sein
müßte, damit
der Übergang ermöglicht ist. Übergangsregeln
(Bedingungen 1 ... m) bestimmen, warm der Übergang zu einem anderen Zustand
stattfindet, und zu welchem Zustand der Übergang hin stattfinden soll.
-
Wenn
bei einer Ausführungsform
der Zustandsmaschine die Zustandsmaschine aufgerufen wird, sieht sie
den gegenwärtigen
Zustand im zugehörigen
Kontext nach und benutzt dann eine vordefinierte Tabelle von Funktionszeigern
("Function Pointers"), um die korrekte
Funktion für
den Zustand aufzurufen. Die Zustandsmaschine implementiert alle
benötigten
Entscheidungen, erzeugt die geeignete Ausgabe unter Verwendung von
anderen Funktionen (falls nötig),
die mit anderen Zustandsfunktionen geteilt werden können, wenn
dies angezeigt ist, und wenn ein Übergang auftritt, aktualisiert
sie den gegenwärtigen
Zustand in dem Kontext, so daß wenn
die Zustandsmaschine das nächste
Mal aufgerufen wird, der neue Zustand angenommen wird. Bei diesem
Ansatz ist das Zufügen
eines Zustands so einfach wie das Zufügen einer zusätzlichen
Funktion, und das Ändern
eines Übergangs
entspricht dem lokalen Anpassen einer einzigen Funktion.
-
In
einer Ausführungsform
hängen
die verschiedenen Übergänge von
verschiedenen vordefinierten Schwellenwerten ab. Der Wert der spezifischen
Schwellen ist eine kritische Komponente bei dem Leistungsverhalten
des Systems. In einer Ausführungsform
sind diese Schwellenwerte spezifisch für eine Einrichtung 100,
während
die Zustandsmaschine an sich generisch für unterschiedliche Einrichtungen
ist. In einer Ausführungsform
werden die Schwellenwerte in der Einrichtung 100 gespeichert,
während
sich die Zustandsmaschine selbst in bzw. auf dem Host 110 befindet.
Auf diese Weise arbeitet dieselbe Zustandsmaschine für unterschiedliche Einrichtungen
unterschiedlich, weil die unterschiedlichen Schwellenwerte spezifiziert
sind. In einer anderen Ausführungsform
kann die Zustandsmaschine selbst bestimmte Zustände haben, die für spezifische Einrichtungen 100 nicht
eingenommen werden, und/oder andere Zustände haben, die nur für bestimmte
Einrichtungen 100 existieren.
-
In
einer Ausführungsform
ist die Zustandsmaschine über
eine Reihe von Schnittstellen vollständig von der Hardware abstrahiert.
Ferner ist die Zustandsmaschine in einer Ausführungsform unabhängig von
der Hardware-Plattform. In einer Ausführungsform ist die Zustandsmaschine
unabhängig
vom Betriebssystem. In einer Ausführungsform ist die Zustandsmaschine
im Hinblick auf eine Unterstützung
durch unterschiedliche Plattformen implementiert. In einer Ausführungsform
ist die Zustandsmaschine als statische oder dynamische Bibliothek
("Library") implementiert.
-
3B veranschaulicht
ein Beispiel einer Zustandsmaschine, die gemäß einer Ausführungsform
der vorliegenden Erfindung verwendet wird. Wie in 3 zu
sehen ist, sind die Zustände
in drei Kategorien unterteilt: der Normalzustand 310, die
Schwachlicht-Zustände 320 und
die Gegenlicht-Zustände 330.
Bei dieser Ausführungsform
entspricht ein jeder Zustand einem neuen Merkmal bzw. einer neuen
Fähigkeit,
die aktiviert ist, oder einem neuen Parameter. Eine jede Fähigkeit
ist für
ihren zugehörigen
Zustand aktiviert, und außerdem für alle Zustände mit
höherer
Nummer. Zwei Zustände
können
demselben Merkmal bzw. derselben Fähigkeit mit unterschiedlichen
Parameter entsprechen. In diesem Fall überstimmt die höchste Zustandsnummer
den vorhergehenden Merkmalsparameter. In einer Ausführungsform
ist für
einen jeden Zustand die folgende Information definiert:
- – die
Fähigkeit
bzw. Funktion ist aktiviert (z.B. Zeitfilter, intelligente Belichtungsautomatik
("Smart Auto-Exposure" (AE)), Bildratensteuerung)
- – die
Parameter für
die Fähigkeit
(z.B. maximale Bildzeit, Entsättigungswert)
- – der
Parameter, auf den der Zustands-Übergang
ausgelöst
wird (z.B. Verstärkungsgrad,
Integrationszeit, Gegenlichtmessung)
- – der
Schwellenwert für
den Übergang
zum nächsten
Zustand
- – der
Schwellenwert für
den Übergang
zum vorhergehenden Zustand.
-
Tabelle
2 stellt ein Beispiel dafür
bereit, wie Schwachlichtzustände
basierend auf der Prozessorgeschwindigkeit und dem Bildformat ausgedrückt in Pixel
pro Sekunde (Breite × Höhe × Bilder
pro Sekunde) in verschiedenen Modi der intelligenten Bildqualitäts-Funktionseinheit
140 (AUS/Normalmodus/Eingeschränkte-CPU-Modus)
ausgewählt
werden.
-
-
Beispiele
für SchwachlichtA
und SchwachlichtB sind in Tabellen 3 bzw. 4 angegeben.
-
-
-
Wie
oben erwähnt
wurde, werden verschiedene Gründe
für eine
schlechte Bildqualität
durch verschiedene Ausführungsformen
der vorliegenden Erfindung berücksichtigt.
Diese Gründe
umfassen Schwachlichtbedingungen, Gegenlichtbedingungen, Rauschen
etc. Darüber
hinaus können
auch mehrere Image-Pipe-Steuerungen (wie beispielsweise Kontrast,
Sättigung
etc.) gehandhabt werden. Diese werden nun im Detail diskutiert.
-
Intelligente Belichtungsautomatik (Auto-Exposure,
AE):
-
Wenn
festgestellt wird, daß die
Bildqualität
in Folge von Gegenlichtsituation schlecht ist, wird die intelligente
Belichtungsautomatik aufgerufen. Die intelligente Belichtungsautomatik
ist eine Fähigkeit
bzw. Funktion, die den Belichtungsautomatik-Algorithmus der Kamera
verbessert, wobei sie die automatische Belichtung in dem Bereich
des Bildes verbessert, die für
den Nutzer am wichtigsten ist (die interessierende Zone). In einer Ausführungsform
kann die intelligente Belichtungsautomatik in Firmware enthalten
sein. In einer Ausführungsform
kann sie in Software enthalten sein. In einer anderen Ausführungsform
kann sie sowohl in Firmware als auch in Software enthalten sein.
In einer Ausführungsform
beruht der intelligente Belichtungsautomatik-Algorithmus auf einer
statistischen Abschätzung
der durchschnittlichen Hel ligkeit der Szene, und er wird zu diesem Zweck
einen Mittelwert aus einer Statistik über eine Anzahl von Fenstern
oder Blöcken
bilden, deren Größe und Ursprung
potentiell durch den Benutzer einstellbar sind.
-
4A ist
ein Flußdiagramm,
das verschiedene Operationen zeigt, die durch die Zustandsmaschine initiiert
werden, wenn der intelligente Belichtungsautomatik-Algorithmus gemäß einer
Ausführungsform
der vorliegenden Erfindung implementiert ist. In einer Ausführungsform
ist die intelligente Belichtungsautomatik als Kombination von Algorithmen
für künstliches
Sehen ("Machine
Vision") und Bildverarbeitungsalgorithmen
implementiert, die zusammenarbeiten.
-
Die
Zone (oder der Bereich), an der bzw. dem Interesse besteht (im folgenden
als ZOI = „Zone
of Interest" bezeichnet)
wird zunächst
basierend auf dem empfangenen Bild berechnet (Schritt 410).
Diese interessierende Zone kann auf verschiedene Arten erhalten
werden. In einer Ausführungsform
werden Algorithmen zum künstlichen
Sehen verwendet, um die interessierende Zone zu ermitteln. In einer
Ausführungsform
wird ein menschliches Gesicht als der Bereich erkannt, der die interessierende
Zone bildet. In einer Ausführungsform
sind die Algorithmen, die zum Berechnen des interessierenden Bereichs
im Bild verwendet werden, Gesichts-Detektionsalgorithmen ("Face Detector"), Gesichts-Verfolgungsalgorithmen
("Face Tracker") oder Verfolgungsalgorithmen
für mehrere
Gesichter ("Multiple
Face Tracker").
Solche Algorithmen sind von verschiedenen Firmen erhältlich,
wie beispielsweise von Logitech, Inc. (Freemont, CA) und Neven Vision
(Los Angeles, CA). In einer Ausführungsform
wird ein Rechteck, welches das Gesicht des Nutzers einbeschreibt
mit einem Rechteck vorbestimmter Größe verglichen (der minimalen
Größe der ZOI).
Wenn das Rechteck, welches das Gesicht des Nutzers einbeschreibt,
nicht kleiner als die minimale Größe der ZOI ist, wird festgestellt,
daß dieses
Rechteck die ZOI bildet. Wenn es jedoch geringer als die minimale
Größe der ZOI
ist, wird das Rechteck, welches das Gesicht des Nutzers einbeschreibt,
vergrößert, bis
es die minimale Größe der ZOI
erreicht oder diese übersteigt.
Dieses modifizierte Rechteck wird dann zur ZOI ernannt. In einer
Ausführungsform
wird die ZOI außerdem
so korrigiert, daß sie
sich nicht schneller als mit einer vorbestimmten Geschwindigkeit
auf dem Bild bewegt, um Artefakte zu minimieren, die durch übermäßige Anwendung
oder Anpassung des Algorithmus hervorgerufen werden. In einer anderen
Ausführungsform
wird ein Merkmal-Verfolgungsalgorithmus,
wie beispielsweise derjenige von Neven Vision (Los Angeles, CA)
verwendet, um die interessierende Zone zu ermitteln.
-
In
noch einer weiteren Ausführungsform
wird, wenn keine interessierende Zone durch künstliches Sehen verfügbar ist,
ein Standardzone bzw. Default-Zone als interessierende Zone verwendet
(beispielsweise eine Zone, die der Mitte des Bildes entspricht und
50% dessen Größe ausmacht).
Man beachte, daß in
einer Ausführungsform
die interessierende Zone auch von der Anwendung abhängt, für die das
erfaßte
Video verwendet wird (z.B. kann für Video-Instant-Messaging entweder
der Ort der Bewegung in dem Bild oder der Ort des Gesichtes des
Benutzers in dem Bild von Interesse sein). In einer Ausführungsform
wird ein ZOI-Ortsmodul Koordinaten eines Unterfensters ausgeben,
in dem der Nutzer sich befindet. In einer Ausführungsform umfaßt dieses
Fenster das Gesicht des Nutzers, und es kann außerdem andere sich bewegende
Objekte umfassen. In einer Ausführungsform
wird das Fenster nach einer jeden vorbestimmten Anzahl von Millisekunden
aktualisiert. In einer Ausführungsform
kann sich eine jede Koordinate um nicht mehr als eine vorbestimmte
Anzahl von Pixeln pro Sekunde in Richtung auf die Mitte des Fensters
bewegen, oder um mehr als eine zweite vorbestimmte Anzahl von Pixeln
pro Sekunde in die andere Richtung. Darüber hinaus sind in einer Ausführungsform
die minimalen Fensterabmessungen nicht geringer als eine vorbestimmte
Anzahl von Pixeln sowohl in horizontaler als auch vertikaler Richtung
des Sensors.
-
Die
für das
Einzelbild berechnete interessierende Zone wird dann in den zugehörigen Bereich
auf dem Sensor der Bilderfassungseinrichtung 100 übersetzt
(Schritt 420). Wenn in einer Ausführungsform die ZOI im Host 110 berechnet
wird (Schritt 410), muß sie
zur Kamera 100 übertragen
werden. Die Schnittstelle, die zur Übertragung der ZOI verwendet
wird, ist für
eine jede Kamera definiert. In einer Ausführungsform berichtet der Belichtungsautomatik- Algorithmus seine
Kapazitäten
in einer Bitmaske für
einen Satz von unterschiedlichen ZOIs. Dann sendet der Treiber für die Kamera 100 die
ZOI-Koordinaten zur zugehörigen
Eigenschaft, ausgedrückt
in Sensorkoordinaten. Der Treiber kennt die Auflösung der Kamera und verwendet
dies, um Fensterkoordinaten in Sensorkoordinaten zu übersetzen
(Schritt 420).
-
Die
ZOI wird dann auf spezifische Hardware-Fähigkeiten abgebildet (Schritt 430),
in Abhängigkeit
von dem verwendeten Belichtungsautomatik-Algorithmus. Wenn beispielsweise
der Belichtungsautomatik-Algorithmus eine Anzahl von Mittelwertbildungszonen
auf dem Sensor verwendet, wird dafür gesorgt, daß die ZOI soweit
wie möglich
mit einer Zone übereinstimmt,
die aus diesen Mittelwertbildungszonen gemacht ist. Der Belichtungsautomatik-Algorithmus
wird dann die Zonen, die der ZOI entsprechen, mit einem höheren Mittelwertbildungs-Gewicht beim Ermitteln
der Belichtungsanforderungen berücksichtigen.
In einer Ausführungsform
hat eine jede Mittelwertbildungszone in der ZOI ein Gewicht, welches
um ein vorbestimmtes Ausmaß größer ist als
dasjenige der anderen Mittelwertbildungszonen (außerhalb
der ZOI) in dem gewichteten Gesamtmittelwert, der von dem Belichtungsautomatik-Algorithmus
verwendet wird. Dies ist in 4B gezeigt,
in der eine jede Mittelwertbildungszone außerhalb der ZOI ein Gewicht
von 1 hat, während
ein jedes Pixel in der ZOI ein Gewicht von X hat, wobei X größer als
1 ist.
-
Tabelle
5 zeigt einige mögliche
Werte von einigen der oben diskutierten Parameter für eine Ausführungsform
des intelligenten Belichtungsautomatik-Algorithmus.
-
-
In
einer Ausführungsform
sind einige der obigen Parameter für sämtliche Bilderfassungseinrichtungen festgelegt,
während
andere sich in Abhängigkeit
davon, welche Kamera verwendet wird, ändern. In einer Ausfürungsform
können
einige der Parameter durch den Nutzer festgelegt bzw. ausgewählt werden.
In einer Ausführungsform
sind manche der Parameter festgelegt. In einer Ausführungsform
sind einige der Parameter spezifisch für die Kamera und in der Kamera
selbst gespeichert.
-
In
einer Ausführungsform
teilt der intelligente Belichtungsautomatik-Algorithmus gewisse
Parameter der intelligenten Bildqualitäts-Funktionseinheit 140 mit,
beispielsweise den Strom-Verstärkungsgrad,
mit unterschiedlichen Einheiten, so daß aussagekräftige Schwellenwerte unter
Verwendung von ganzen Zahlen festgelegt werden können. Beispielsweise ist in
einer Ausführungsform,
um eine ausreichende Präzision
zu gestatten, der Verstärkungsgrad
als eine ganze Zahl von 8 Bit Länge
definiert, wobei 8 einem Verstärkungsgrad
von 1 entspricht und 255 einem Verstärkungsgrad von 32 entspricht.
-
In
einer Ausführungsform
teilt der intelligente Belichtungsautomatik-Algorithmus der intelligenten
Bildqualitäts-Funktionseinheit 140 eine
Einschätzung
mit, zu welchem Grad die intelligente Belichtungsautomatik benötigt wird
(Gegenlicht-Abschätzung),
indem der Durchschnitt der außen
gelegenen Fenster von dem Durchschnitt der Fenster in der Mitte
abgezogen werden. Zu diesem Zweck beträgt die Standardgröße des mittleren
Fensters ungefähr
die Hälfte
der Größe des gesamten
Bildes. Sobald die intelligente Belichtungsautomatik-Funktion aktiviert
ist, wird das mittlere Fenster zu der oben erwähnten ZOI. In einer Ausführungsform basiert
die Abschätzung,
zu welchem Grad die intelligente Belichtungsautomatik benötigt wird,
auf dem Verhältnis
(statt auf der Differenz) zwischen dem Durchschnitt in der Mitte
und dem Durchschnitt außen,
je nach Implementierung. In einer Ausführungsform wird ein gleichförmiges Bild
einen geringen Wert liefern, und je größer der Unterschied in der
Helligkeit zwischen dem Mittelteil und dessen Umgebung ist, desto
größer ist dieser
Wert (unabhängig
davon, ob der Mittelteil oder das Äußere heller ist).
-
Bildratensteuerung
-
Wenn
Schwachlichtbedingungen auftreten, kann die Bildraten-Steuerungs-Fähigkeit
bzw. -Funktion gemäß einer
Ausführungsform
der vorliegenden Erfindung implementiert werden. Dies gestattet
ein besseres Signal/Rausch-Verhältnis
bei Schwachlichtbedingungen.
-
5 ist
ein Graph, der zeigt, wie gemäß einer
Ausführungsform
der vorliegenden Erfindung ein Bildraten-, ein Verstärkungs-
und ein Entsättigungs-Algorithmus
interagieren. Die X-Achse
von 5 repräsentiert
die Intensität
der Beleuchtung (in einer logarithmischen Skala) und die Y-Achse
repräsentiert
die Integrationszeit (in logarithmischer Skala). Wenn das zur Verfügung stehende
Licht abnimmt (d.h. bei einer Bewegung nach links in dem Graphen),
wird die Integrationszeit erhöht
(die Bildrate abgesenkt), um die Abnahme des Lichts zu kompensieren.
Die Rate der von der Kamera 100 erfaßten Bilder wird abgesenkt,
um in der Lage zu sein, die Bildqualität zu verbessern, indem längere Integrationszeiten
und geringere Verstärkungsgrade
verwendet werden. Jedoch ist eine sehr geringe Bildrate oft aus
verschiedenen Gründen
nicht akzeptabel, beispielsweise wegen des Benutzerserlebnisses
oder aufgrund von Bildraten, die durch bestimmte Anwendungen verlangt
werden.
-
Wenn
die von der Anwendung verlangte Bildrate erreicht ist, und das zur
Verfügung
stehende Licht weiter absinkt, wird der Verstärkungsgrad stetig erhöht (wie
durch den horizontalen Teil der Kurve dargestellt ist). Wenn das
zur Verfügung
stehende Licht noch weiter abnimmt, wird ein Punkt (die Schwelle
maximalen Verstärkungsgrades)
erreicht, bei dem ein weiteres Erhöhen des Verstärkungsgrades
nicht akzeptabel ist. Dies liegt daran, daß eine Erhöhung des Verstärkungsgrades
das Bild verrauscht macht, und die Schwelle maximalen Verstärkungsgrades
ist der Punkt, an dem ein weiterer Anstieg des Rauschens nicht mehr
akzeptabel ist. Wenn das zur Verfügung stehende Licht über diesen
Punkt hinaus abnimmt, wird die Bildrate wiederum abgesenkt (die
Integrationszeit wird erhöht).
Wenn schließlich
die Bildrate auf einen minimalen Schwellenwert abgesenkt wurde (minimale
Bildrate) und das zur Verfügung
stehende Licht weiter abnimmt, werden andere Maßnahmen ausprobiert. Beispielsweise
kann der Verstärkungsgrad
weiter erhöht
werden und/oder es wird mit den Image-Pipe-Steuerungen gespielt
(beispielsweise kann die Entsättigung
erhöht
werden, der Kontrast kann manipuliert werden und dergleichen).
-
In
einer Ausführungsform
hat der Bildratenalgorithmus die Parameter, die in Tabelle 6 gezeigt
sind.
-
-
Wenn
die maximale Bildzeit kürzer
als die maximale Bildzeit ist, die der Bildrate entspricht, die
durch die Anwendung gefordert ist, wird in einer Ausführungsform
dieser Parameter ignoriert, um die Bildqualität zu optimieren (dies geschieht
auf der linken Seite von 4 nachdem
der Verstärkungsgrad
den maximal erlaubten Verstärkungsgradwert
erreicht hat).
-
Image-Pipe-Steuerungen
-
Mehrere
andere Fähigkeiten
bzw. Funktionen sind gemäß einer
Ausführungsform
der vorliegenden Erfindung implementiert und werden hier unter den
Image-Pipe-Steuerungen diskutiert. Image-Pipe-Steuerungen sind ein
Satz von Knöpfen
in dem Image-Pipe, die einen Einfluß auf die Bildqualität haben,
und die eingestellt werden können,
um gewisse Aspekte der Bildqualität zulasten anderer zu verbessern.
Beispielsweise können
diese Aspekte Sättigung,
Kontrast, Helligkeit und Schärfe
umfassen. Eine jeder dieser Steuerungen hat gewisse Zielkonflikte.
Beispielsweise führt
das Steuern der Sättigungslevel
zu einem Kompromiß zwischen Farbigkeit
und Rauschen, das Steuern der Schärfe führt zu einem Kompromiß zwischen
Klarheit und Rauschen und das Steuern des Kontrasts führt zu einem
Kompromiß zwischen
Helligkeit und Rauschen. Gemäß Ausführungsformen
der vorliegenden Erfindung wird einem von einem Nutzer spezifizierten
Pegel einer Steuerung soweit wie möglich entsprochen, wäh rend jedoch
das Zusammenspiel dieser Steuerung mit mehreren anderen Faktoren
berücksichtigt
wird, um sicherzustellen, daß die
Qualität
des gesamten Bildes nicht auf ein inakzeptables Niveau absinkt.
-
In
einer Ausführungsform
werden diese Image-Pipe-Steuerungen durch die intelligente Bildqualitäts-Funktionseinheit 140 gesteuert.
In einer anderen Ausführungsform
kann ein Nutzer eine oder mehrere dieser Image-Pipe-Steuerungen
manuell auf unterschiedliche Pegel einstellen, wie unten mehr im
Detail diskutiert wird. In einer Ausführungsform kann eine oder können mehrere
dieser Image-Pipe-Steuerungen sowohl durch den Nutzer als auch die
intelligente Bildqualitäts-Funktionseinheit
gesteuert werden, wobei die Wahl des Nutzers diejenige der intelligenten
Bildqualitäts-Funktionseinheit überstimmt.
-
6 ist
ein Graph, der veranschaulicht, wie ein vom Nutzer spezifizierter
Sättigungspegel
gemäß einer
Ausführungsform
der vorliegenden Erfindung implementiert wird. Die Sättigung
ist gegen die Y-Achse aufgetragen, und der Verstärkungsgrad ist gegen die X-Achse
aufgetragen. In dieser Ausführungsform
hat der Nutzer die Wahl zwischen vier Graden von Entsättigung – 25%, 50%,
75% und 100% einer maximalen gestatteten Entsättigung, die für ein jedes
Produkt definiert ist. Wie in der Figur zu sehen ist, wird die Sättigung,
wenn der Verstärkungsgrad
zwischen dem Schwellenwert 1 und dem Schwellenwert 2 liegt, zwischen
dem vom Nutzer ausgewählten
Grad und dem Grad interpoliert, der dem Ausmaß der Verringerung entspricht.
In einer Ausführungsform
wird im wesentlichen eine lineare Interpolation durchgeführt, um
basierend auf dem Verstärkungsgrad
den Übergang
von dem vollen Sättigungspegel
zu dem verringerten Sättigungspegel
herzustellen. Die zwei Schwellenwerte definieren den Verstärkungsgradbereich, über den
die Verringerung der Sättigung progressiv
vorgenommen wird. Die Sättigungssteuerung
ist der Standard-Sättigungspegel,
der durch den Benutzer festgelegt wird, und die Entsättigungssteuerung
ist das Ausmaß der
Entsättigung,
die entweder durch den Nutzer oder die intelligente Bildqualitäts-Maschine
gestattet wird.
-
In
einer Ausführungsform
sind die verschiedenen Steuerungen Teil der Bild-Pipe, entweder
in Software oder in Hardware. Einige der Parameter für die Image-Pipe-Steuerungen
sind in der folgenden Tabelle 7 angegeben.
-
-
Zeitfilter
-
Wie
oben unter Bezugnahme auf 2 erwähnt wurde,
wird gemäß mancher
Ausführungsformen
der vorliegenden Erfindung eine gewisse Verarbeitung oder Bearbeitung
der Bilddaten nach deren Erfassung durchgeführt (Schritt 270).
Zeitfiltern ist eine solche Art von Nachverarbeitungs-Algorithmus.
-
In
einer Ausführungsform
ist der Zeit-Rausch-Filter ein Software-Bildverarbeitungsalgorithmus,
der Rauschen entfernt, indem Pixel in bewegungsfreien Bereichen
des Bildes zeitlich gemittelt werden. Obwohl Zeitfiltern zeitliches
Rauschen in feststehenden Teilen des Bildes verringert, beeinflußt es nicht
das Rauschen eines feststehenden Musters. Dieser Algorithmus ist
nützlich,
wenn der Verstärkungsgrad
einen Pegel erreicht, bei dem das Rauschen deutlicher wird. In einer
Ausführungsform
wird dieser Algorithmus nur aktiviert, wenn der Verstärkungsgradpegel über einem
gewissen Schwellenwert liegt.
-
In
einer Ausführungsform
hat der Zeitfilter die in Tabelle 8 gezeigten Parameter:
-
-
Nutzerschnittstelle
-
In
einer Ausführungsform
besteht die Standardeinstellung bei der Bilderfassungseinrichtung 100 darin, daß die intelligente
Bildqualitäts-Funktionseinheit 140 aktiviert
ist, jedoch nicht ohne Erlaubnis des Nutzers implementiert wird.
Anfänglich
sind die Wirkungen der intelligenten Bildqualitäts-Funktionseinheit 140 darauf
beschränkt,
Umstände
zu detektieren, die die Qualität
des Bildes beeinflussen (wie beispielsweise Belichtungsumstände (Schwachlicht- oder Gegenlicht)),
und/oder darauf beschränkt,
die Fähigkeiten
bzw. Funktionen zu verwenden, solange sie keinen negativen Einfluß auf die
Wahrnehmung des Nutzers haben. Jedoch wird in einer Ausführungsform
der Nutzer um Erlaubnis gefragt, bevor Algorithmen implementiert
werden, die wie oben beschrieben Kompromisse eingehen.
-
Wie
oben beschrieben wurde, werden in einer Ausführungsform Verbesserungen an
der Bildqualität, die
vorgenommen werden können,
ohne das Nutzererlebnis zu beeinflussen, automatisch vorgenommen
werden. Wenn irgendwelche der Auslöser erreicht werden, die weitere
Verbesserungen notwendig machen, die zu gewissen Zielkonflikten
oder Kompromissen führen,
wird der Nutzer 120 gefragt, ob solche Merkmale aktiviert
werden sollen, und er wird über
die negativen Auswirkungen informiert, oder er erhält die Möglichkeit,
diese selbst zu optimieren. In einer Ausführungsform wird der Nutzer 120 außerdem gefragt,
ob er in zukünftigen Fällen auf ähnliche
Weise unterrichtet bzw. gefragt werden möchte, oder ob er es vorzöge, wenn
die intelligente Bildqualitäts-Funktionseinheit
in der Zukunft weiterarbeiten würde,
ohne ihn zu fragen. 7A zeigt einen Anzeige-Schnappschuß, den der
Nutzer gemäß einer
Ausführungsform
der vorliegenden Erfindung auf einer Anzeige sieht, die mit dem
Host 110 assoziiert ist. In 7A wird
die intelligente Bildqualitäts-Funktionseinheit 140 als
RightLightTM bezeichnet.
-
Wenn
in einer Ausführungsform
der Nutzer 120 die Implementierung der intelligenten Bildqualitäts-Funktionseinheit 140 akzeptiert
und auswählt,
beim nächsten
Mal nicht gefragt zu werden, wird die intelligente Bildqualitäts-Funktionseinheit 140 in
der Zukunft verschiedene Fähigkeiten
bzw. Funktionen verwenden, ohne den Nutzer 120 erneut zu
unterrichten, außer
wenn der Benutzer 120 diese Einstellung manuell ändert. Wenn
der Nutzer 120 die Implementierung der intelligenten Bildqualitäts-Funktionseinheit 140 akzeptiert, aber
auswählt,
beim nächsten
Mal benachrichtigt zu werden, wird die intelligente Bildqualitäts-Funktionseinheit 140 verschiedene
Fähigkeiten
oder Funktionen verwenden, ohne den Nutzer 120 zu benachrichtigen,
bis keine solchen Fähigkeiten
bzw. Funktionen mehr benötigt
werden, die Kompromisse beinhalten, oder bis die Kamera 100 ausgeschaltet
oder geschlossen wird. Wenn der Nutzer 120 die Nutzung
der intelligenten Bildqualitäts-Funktionseinheit 140 verweigert,
werden nur solche Aktionen vorgenommen, die keinerlei negativen
Einfluß auf
das Nutzererlebnis bzw. die Nutzerwahrnehmung haben.
-
In
einer Ausführungsform
können
verschiedene der Fähigkeiten
bzw. Funktionen, die mit der intelligenten Bildqualitäts-Funktionseinheit 140 zusammenhängen, auch
manuell eingestellt werden. 7B zeigt eine
Nutzerschnittstelle, die der Nutzer 120 gemäß einer
Ausführungsform
der vorliegenden Erfindung benutzen kann, um verschiedene Steuerungen
auszuwählen,
wie beispielsweise die Schwachlicht-Sättigung ("Low Light Saturation" in der Figur, entsprechend der oben
beschriebenen Image-Pipe-Steuerung für die Entsättigung), eine Schwachlicht-Verstärkung ("Low Light Boost" in der Figur, entsprechend
der oben beschriebenen Bildratensteuerung), eine Video-Rauschsteuerung
("Video Noise" in der Figur, entsprechend
dem oben beschriebenen Zeitfilter) und eine Fleckmessung ("Spot Metering" in der Figur, entsprechend
der oben beschriebenen intelligenten Belichtungsautomatik). 7B gestattet
es dem Nutzer 120, die Grade einer jeder dieser Steuerung
unter Verwendung von Schiebeschaltern einzustellen. In einer Ausführungsform
wird eine vom Nutzer manuell eingestellte Steuerung denselben Parameter,
wie er durch die intelligente Bildqualitäts-Funktionseinheit 140 vorgegeben
ist, überstimmen.
In einer Ausführungsform
sind die Schiebeschalter nicht-linear und haben einen Bereich zwischen
0 (Aus) und 3 (Maximal). In der Standardeinstellung sind sie alle
auf 0 (Aus) eingestellt. Das Verhalten des Auto-Modus-Kästchens
wird unter Bezugnahme auf 7C diskutiert.
Das Anklicken des Knopfes "Return
to Default Settings" (Rückkehr zu
Standardeinstellungen) in 7B setzt
alle Schiebeschalter zurück
in den Standardmodus. Dies wird ebenfalls unten unter Bezugnahme
auf 7C diskutiert.
-
Die
folgende Tabelle 9 enthält
die Abbildung zwischen Steuerungen der Nutzerschnittstelle ("User Interface", UI) und Parametern
gemäß einer
Ausführungsform
der vorliegenden Erfindung.
-
-
7C ist
ein Flußdiagramm,
das veranschaulicht, was in einer Ausführungsform passiert, wenn der Nutzer
in 7A eine Auswahl trifft und/oder eine Schiebeschalterposition
in 7B wählt.
Wenn der Treiber für
die Einrichtung 100 in der hier gezeigten Ausführungsform
installiert ist, entspricht die Standardeinstellung dem manuellen
Modus (0). Wenn der Installierer einen RightLightTM-Monitor
installiert, setzt er einen Registrierungsschlüssel ("Registry Key"), der den Treiber informiert, daß eine RightLightTM-UI installiert ist. Dies gestattet es
dem Treiber, seine sogenannten "Property
Pages" (Eigenschaftsseiten)
so einzurichten, daß sie
den richtigen Satz an Steuerungen anzeigen. Wenn die zugehörige Software
zum ersten Mal gestartet wird, wird sie den RightLight-Modus als
Standardmodus (5) einstellen. Der Standardmodus (aus der UI-Perspektive)
verhält
sich wie folgt:
- – Der Auto-Modus-Knopf von 7B ist
angekreuzt
- – Die
Schiebeschalter von 7B sind deaktiviert und ihre
Werte reflektieren nicht die Treiberwerte und
- – Benachrichtigungen
von der intelligenten Bildqualitäts-Funktionseinheit 140 veranlassen
die Software, den in 7A gezeigten Prompt-Dialog anzuzeigen.
-
Wie
in 7A zu sehen ist, gibt der Prompt-Dialog dem Nutzer
drei Optionen:
- 1. Immer. Dies wendet den Modus 10 an.
Dies gestattet es der intelligenten Bildqualitäts-Maschine 140 alles
zu steuern.
- 2. Einmal. Dies wendet Modus 10 an. Die Software fahrt
fort, Benachrichtigungen von der intelligenten Bildqualitäts-Maschine 140 zu
verarbeiten, und wenn der Strom beendet ist, wird der Modus in die
Standardeinstellung (5) versetzt. Der Nutzer wird nur einmal für einen
Strom mit einem Prompt-Dialog konfrontiert.
- 3. Nie. Dies wendet den Modus 0 an. Dies versetzt das System
in den manuellen Modus (und löscht
das Kreuz im Kästchen "Automatic RightLightTM Settings" von 7B).
-
Im
automatischen Modus (9 oder 10) verhält sich die UI wie folgt:
- – das
Kästchen "Use Automatic RightLightTM Settings" von 7B ist
angekreuzt
- – die
UI-Steuerungen von 7B sind deaktiviert (der Benutzer
kann sie nicht ändern
und sie sind blaß dargestellt)
- – die
UI-Steuerungen werden basierend auf der intelligenten Bildqualitäts-Funktionseinheit 140 aktualisiert.
-
Es
besteht ein Unterschied zwischen den automatischen Modi 9 und 10.
Der Modus 9 entspricht einem hohen Leistungsverbrauch durch die
CPU des Hostsystems 110, und der Modus 10 entspricht
einem niedrigen Leistungsverbrauch durch die CPU des Hostsystems 110.
Ande re Funktionen/Anwendungen (z.B. intelligente Gesichtsverfolgung,
die Verwendung von Avataren etc.), die verwendet werden, beeinflussen
die Auswahl dieser Modi.
-
In
einer Ausführungsform
werden diese Modi pro Einrichtung bzw. auf Einrichtungsebene in
der Anwendung gespeichert. Wenn der Nutzer eine Kamera in den manuellen
Modus versetzt und eine neue Kamera anschließt, wird die neue Kamera in
dem Standardmodus initialisiert. Wenn die alte Kamera wieder angeschlossen
wird, wird sie im manuellen Modus initialisiert. Wenn der Nutzer
eine Löschtaste
drückt
(z.B. die Esc-Taste drückt),
während
der in 7A gezeigte Prompt-Dialog offen
ist, wird der Dialog geschlossen, ohne daß der Modus geändert wird.
Es gibt keinen weiteren Prompt-Dialog für den Nutzer bis zum Auftreten
eines neuen Stroms.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung ist eine Bilderfassungseinrichtung 100 mit einer
oder mehreren LEDs ausgestattet. Diese LED bzw. LEDs werden verwendet,
um Nutzerinformation bezüglich
der intelligenten Bildqualitäts-Funktionseinheit 140 zu
kommunizieren. Beispielsweise entspricht in einer Ausführungsform
eine stetig leuchtende LED der Standardeinstellung im Normalmodus.
Eine blinkende LED wird in einer Ausführungsform verwendet, um den
Nutzer über
spezifische Modi zu unterrichten, in die die Kamera 100 übergehen
kann. Wenn beispielsweise keiner der intelligenten Bildqualitäts-Algorithmen
(z.B. die Bildratensteuerung, die intelligente Belichtungsautomatik
etc.) implementiert ist, ist die LED grün. Wenn die intelligente Bildqualitäts-Funktionseinheit
einen der Zustände
annimmt, in denen solch ein Algorithmus implementiert sein wird,
blinkt die LED. In diesem Fall zeigt das Blinken an, daß eine Nutzerinteraktion
erforderlich ist. Wenn die Nutzerinteraktion (wie in 7A)
vorbei ist, leuchtet die LED wieder grün. In einer Ausführungsform
werden die LED-Einstellungen
von dem Host 110 zur intelligenten Bildqualitäts-Funktionseinheit 140 kommuniziert,
und aktualisierte Einstellungen werden von der intelligenten Bildqualitäts-Funktionseinheit 140 zum
Host 110 kommuniziert, wie unter Bezugnahme auf 2 diskutiert
wurde.
-
Obwohl
spezielle Ausführungsformen
und Anwendungen der vorliegenden Erfindung gezeigt und beschrieben
wurden, versteht es sich, daß die
Erfindung nicht auf die exakte Konstruktion und genau die Komponenten
beschränkt
ist, die hier offenbart wurden. Beispielsweise können andere Metriken und Steuerungen zugefügt werden,
wie beispielsweise eine softwarebasierte Autofokusfunktion, unterschiedliche
Verwendungen für
die ZOI, fortgeschrittene Gegenlichtdetektions- und Belichtungsautomatik-Algorithmen,
nicht-gleichförmiger
Verstärkungsgrad über dem
Bild etc. Verschiedene andere Modifikationen, Änderungen und Variationen, die
dem Fachmann offensichtlich erscheinen, können in der Anordnung, an dem
Betrieb und in den Details des Verfahrens der vorliegenden Erfindung,
wie sie hier offenbart wurden, vorgenommen werden, ohne vom Geist und
Rahmen der Erfindung abzuweichen, wie er in den folgenden Ansprüchen definiert
ist.