-
Die
Erfindung bezieht sich allgemein auf ein Verfahren und eine Schaltungsanordnung
zum maßstäblichen
Verkleinern (Skalieren) und Farbinterpolieren eines in einer CFA-Form
vorliegenden Bildes.
-
Ein
Digitalbild einer Szene/Umgebung weist eine bestimmte Größe auf,
welche durch die Anzahl der Zeilen und Spalten von Pixeln (einzelnen
Farb/Intensitätspunkten),
die es enthält,
definiert ist. Die Bildgröße oder "Auflösung" wird somit durch
die Anzahl der Spalten multipliziert mit der Anzahl der Zeilen ausgedrückt. Beispielsweise
weist ein Bild mit einer Auflösung
von 786 x 576 768 Spalten und 576 Zeilen von Pixeln einer Gesamtzahl
von 442.368 Pixeln auf.
-
Oftmals
ist die ursprüngliche
Größe eines Bildes,
wie es von einer Bildverarbeitungseinrichtung, wie einer Kamera,
aufgenommen worden ist oder wie es später dargestellt wird, für eine bestimmte
Anwendung zu groß.
Während
ein Bild einer größeren Auflösung mehr
Bildinformationen (mehr Pixel pro Fläche) enthält und wahrscheinlich eine
wünschenswertere
visuelle Qualität
aufweist, als ein Bild geringerer Auflösung, können Bandbreiten, Speicher-
und andere -einschränkungen
diktieren, daß ein
Bild geringerer Auflösung
verwendet wird. Für
bestimmte Geräte,
wie beispielsweise Digitalkameras, kann es erwünscht sein, deren Gesamtkosten
zu verringern, indem ein Bild geringerer Auflösung benutzt wird, so daß die erforderliche
Speicherkomponente in dem Gerät
ebenfalls kleiner wird. Im Kontext der Videokonferenzen wurde beispielsweise
bestimmte standardisierte Bildformate, wie beispielsweise QCIF (Quarter
Common Intermediate Format) definiert, so daß sich die empfangenden und
sendenden Knoten nicht mit der Konvertierung nicht übereinstimmender Bildgrößen befassen
brauchen. Bei Videokonferenzen ist es oftmals erwünscht, eine
bestimmte "Einzelbild"-Rate (die Rate,
bei welcher einzelne Bildrahmen empfangen und/oder ausgegeben werden)
aufrechtzuerhalten. Um diese Einzelbildrate aufrechtzuerhalten,
wurden Formate, wie beispielsweise QCIF, definiert, welche typischerweise
von geringerer Größe als die
meisten aufgenommenen Digitalbilder, insbesondere die von bestimmten
Digitalkameras, aufgenommenen, sind. Da ein Bild ursprünglich in
einer Auflösung
vorliegen kann, die nicht dieselbe Auflösung ist, wie die durch eine
bestimmte Anwendung gewünschte,
wird ein als Bildskalierung bekannter Prozeß benutzt. wenn ein Bild maßstäblich vergrößert wird,
wird seine Größe erhöht, und
wenn es maßstäblich verkleinert
wird, wird seine Größe verringert.
Im folgenden ist dann, wenn auf "Skalierung" oder "ein skaliertes Bild" Bezug genommen wird,
eine maßstäbliche Verkleinerung
oder Reduktion der Bildgröße die beabsichtigte
Bedeutung und Verwendung dieser Begriffe.
-
Die
Skalierung eines Bildes ist von der Bildbeschneidung zu unterscheiden,
bei der die Auflösung
reduziert wird, indem ein Abschnitt des Bildes herausgeschnitten
wird. Skalierung impliziert, daß, während die
Größe des Bildes
verringert wird, die gesamte Szene/Umgebung in dem nicht skalierten
Bild (das im folgenden verschiedentlich als "ursprüngliches" oder "unskaliertes" Bild bezeichnet wird) größtenteils
aufrechterhalten. Die Szene aus dem ursprünglichen Bild bleibt vollständig, wird
aber nach dem Skalieren in einer geringeren Auflösung wiedergegeben.
-
Die
Bildskalierung kann im Stand der Technik auf verschiedene Weise
erreicht werden. Die üblichste
Skalierungstechnik mittelt Pixel in einem bestimmten Bildbereich
mit gleicher Wichtung und "dezimiert" dann vollständige Pixel
in dem Bereich oder schneidet sie weg, wodurch ein Pixel in dem
skalierten Bild erzeugt wird. Das gemittelte Pixel ersetzt einen
vollständigen
Bereich von Pixeln, wobei der ersetzte Bereich nicht notwendigerweise
von der gleichen Größe ist wie
der gemittelte Bereich. Man betrachte beispielsweise eine 2:1- Skalierungsprozedur,
bei der jeweils ein 2-x-2-Pixelbereich in dem ursprünglichen Bild
durch ein einzelnes Pixel in dem skalierten Bild ersetzt werden
soll. Wenn der Wert des Pixels des skalierten Bildes bestimmt wird,
kann es wünschenswert
sein, einen größeren Bereich
als das 2-x-2-Gebiet der Ersetzung zu mitteln, beispielsweise ein 3-x-3-Nachbargebiet.
In einem solchen Fall ist der "Abtast"-Bereich (3x3) größer als
der "Skalier"-Bereich (2x2) und
kann nützlich
sein, wenn gesichert werden soll, daß mehr von dem Bild berücksichtigt wird,
so daß Merkmale,
die in dem Skalierbereich beginnen und über den Skalierbereich hinaus
auslaufen, angemessen berücksichtigt
werden. Ein Mittlungsverfahren, bei dem jedes Pixel in dem Abtastbereich
eine gleiche Wichtung gegeben wird, ist jedoch in verschiedener
Hinsicht mangelhaft. Primär
hat die gleichmäßige Mittelung
der Pixel die Auswirkung, daß viel
von den ursprünglichen
Bildinformationen verlorengeht. Eine gleichmäßig gewichtete Mittelwertbildung
unternimmt wenig, um Bildmerkmale zu identifizieren, da sie sämtliche
Teile des Bildbereichs identisch behandelt und dann sämtliche
Pixel dezimiert.
-
Zusätzlich zu
der Bildskalierung wird eine weitere, typischerweise unabhängige, Bildverarbeitungstechnik,
die Farbinterpolation genannt wird, benutzt, um die fehlenden Farben
in einem durch einen Bildsensor in der unten erläuterten Weise erzeugten Pixelort
wiederherzustellen. Bei digitalen Standbild- und Videokameras und
bestimmten weiteren Bildverarbeitungseinrichtungen werden Rohbilder
zunächst als
rechtwinklige Zeilen und Spalten von Pixeln dargestellt, wobei jedes
Pixel nur den Intensitätswert
einer bestimmten Farbe aufweist. Im Falle der RGB (Rot, Grün und Blau)-Unterabtastungsbildverarbeitungseinrichtungen
werden Bilder in einem "Bayer"-Muster gewonnen
und gespeichert. Das Bayer-Muster ist dann, wenn drei Farbebenen
unter Verwendung eines Farbfilterarrays (CFA) unterabgetastet (sub-sampled)
werden, dadurch gekennzeichnet, daß auf einer Zeile eines Bildes
sich abwechselnde Pixel von Rot und Grün und dann auf einer nächsten Zeile
sich abwechselnde Pixel von Blau und Grün enthalten sind. Beispielsweise
ist das Bayer-Muster für
die ersten vier Zeilen von Pixeln (wobei jedes Pixel typischerweise
ein 8-Bit-Wert ist) wie folgt (wobei sich die Zeilen anschließend in
dem gleichen Muster wiederholen):
-
Im
Ergebnis erhält
jeder Pixelort einen Intensitätswert
für nur
eine einzige Farbkomponente. Wie dies bei einigen Bildverarbeitungseinrichtungen
der Fall ist, sei angenommen, daß jedes Pixel des Bayer-Musters
eine Auflösung
von acht Bits aufweist (das heißt,
das Pixel ist ein die Intensität
der Farbe darstellender Wert, der von 0-255 reicht), dann wäre ein "Vollfarb"-Pixel, das sämtliche
drei R-, G- und B-Komponenten aufweist, ein 24-Bit-Wert. Die Farbinterpolation
ist die Wiederherstellung der zwei fehlenden Farbkomponenten für jedes
Pixel.
-
Oftmals
werden die Skalierung und die Farbinterpolation unabhängig voneinander
und durch separate Prozesse ausgeführt.
-
Aus
dem US-Patent 5,418,565 und der
EP 0 632 652 A1 sind Verfahren und Vorrichtungen
zum maßstäblichen
Verkleinern (Skalieren) von in einer CFA-Form (Bayer-Muster) vorliegenden
Bildern bekannt. Sofern die Skalierung vor der Farbinterpolation
ausgeführt
wird, sind die ursprünglichen
Sensorinformationen bezüglich
des Farbinhalts für
den Interpolationsprozeß unbekannt,
was Bilder schlechterer Qualität
hervorbringt. Wenn es jedoch a priori bekannt ist, daß für das endgültige Bild
sowohl eine Skalierung als auch eine Farbinterpolation gewünscht sind,
besteht ein Erfordernis für
eine kombinierte Technik, die beides ausführt. Betrachtet man ferner
die Nachteile der herkömmlichen
Skalierungs- und Farbinterpolationstechniken, sollte die kombinierte
Technik so ausgebildet sein, daß sie
eine akzeptable Bildqualität
hervorbringt.
-
Darüber hinaus
ist es bezüglich
der Implementierung dann, wenn die Skalierung in Hardware, wie beispielsweise
einer CMOS (Komplementär-Metall-Oxid-Halbleiter)-Bildverarbeitungseinrichtung, implementiert
werden soll, wichtig, die Berechnungskomplexität der Skalierungsprozedur zu
verringern, und zwar insbesondere dann, wenn viele weitere Funktionen
durch die Einrichtung ausgeführt
werden sollen. Wenn eine Bildverarbeitungseinrichtung verwendet
wird, um Einzelbildrahmen (eine Sequenz von einzelnen Standbildern)
für die
Zwecke der Videokonferenz zu senden, muß die Übertragung schnell genug sein,
um die Einzelbildrate einzuhalten und mit den Bandbreitenfähigkeiten
der Schnittstelle zwischen der Bildverarbeitungseinrichtung und
der Verarbeitungseinrichtung (Computersystem), das verwendet wird,
um die aufgenommenen Einzelbilder in Pakete zu bringen und zu dem
Zielknoten zu übersenden,
kompatibel sein. In Einrichtungen, die in zwei Modi betrieben werden
können
und welche sowohl bewegte als auch Standbilder zur Verfügung stellen
können,
sind darüber
hinaus Verfahren und Einrichtungen erwünscht, die auf einfache Weise
unterschiedliche Grade der Skalierung in austauschbarer Weise zur
Verfügung
stellen können.
-
Aufgabe
der Erfindung ist es, eine kombinierte Skalierung und Farbinterpolation
bei akzeptabler Bildqualität
und geringer Komplexität
zu ermöglichen.
-
Diese
Aufgabe wird erfindungsgemäß durch ein
Verfahren mit den Merkmalen des Anspruchs 1 bzw. eine Schaltungsanordnung
mit den Merkmalen des Anspruchs 7 gelöst.
-
Die
Aufgaben, Merkmale und Vorteile des Verfahrens und der Einrichtung
gemäß der vorliegenden
Erfindung werden aus der folgenden Beschreibung klar, in welcher:
-
1 ein
Ablaufdiagramm eines Ausführungsbeispiels
der Erfindung zum Durchführen
einer 4:1-Skalierung ist.
-
2 zeigt
einen ursprünglichen
CFA-Bereich, der in Übereinstimmung
mit wenigstens einem Ausführungsbeispiel
der Erfindung skaliert wird.
-
3(a)–3(c) zeigen die Stufen der Filteranwendung, um
die Maske für
einen beispielhaften Rot-Unterbild-CFA-Bereich zu gewinnen.
-
4(a) zeigt eine beispielhafte Maske, die angewendet
wird, um eine Rot-Komponente in einem Superpixel eines 4:1-skalierten Bildes
zu erzielen.
-
4(b) zeigt eine Beispielmaske, die angewendet
wird, um eine Blau-Komponente eines Superpixels in einem 4:1-skalierten Bild zu
erzielen.
-
4(c) zeigt eine Beispielmaske, die angewendet
wird, um die Grün-Komponente
eines Superpixels in einem 4:1-skalierten
Bild zu erzielen.
-
5 ist
eine Darstellung gemäß einem Ausführungsbeispiel
der Erfindung.
-
6 ist
eine Systemskizze eines Ausführungsbeispiels
der Erfindung.
-
Unter
Bezugnahme auf die Figuren werden jetzt Ausführungsbeispiele der Erfindung
beschrieben. Die Ausführungsbeispiele
werden angegeben, um Aspekte der Erfindung zu ver anschaulichen und sollten
nicht in einem den Umfang der Erfindung einschränkenden Sinne verstanden werden.
Die Ausführungsbeispiele
werden primär
unter Bezugnahme auf Blockdarstellungen oder Ablaufdiagramme beschrieben.
Was die Ablaufdiagramme angeht, stellt jeder Block in den Ablaufdiagrammen
sowohl einen Verfahrensschritt als auch ein Einrichtungselement zum
Durchführen
des Verfahrensschritts dar. In Abhängigkeit von der Implementierung
kann das zugehörige
Einrichtungselement in Hardware, Software, Firmware oder Kombinationen
davon konfiguriert werden.
-
1 ist
ein Ablaufdiagramm eines Ausführungsbeispiels
der Erfindung zum Durchführen
einer 4:1-Skalierung.
-
Die
in 1 beschriebene Technik ist insbesondere auf ein
Bild in seiner CFA (Farbfilterarray)-Form anwendbar, wie es beispielsweise
aus einem Bildsensor oder einem Satz von Bildsensoren gewonnen wird.
Ein übliches
CFA-Muster ist das Bayer-Muster (das unten beschrieben und in 2 gezeigt
wird), bei dem jeder Pixelort in dem Array einer der drei Farben,
Rot (R), Grün
(G) oder Blau (B), zugeordnet wird. Die Grün zugeordneten Pixel erscheinen
zweimal, für
jedes Rot oder Blau zugeordnete Pixel. Jedes Pixel ist nur einer
der drei Farben (R, G oder B) zugeordnet, was als ausreichend angesehen
wird, um ein "voll" farbpixel darzustellen,
das heißt
eines, das sämtliche
drei Farbkomponenten, Rot, Grün
und Blau, enthält.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung wird zunächst
ein Anfangsort in dem CFA eingestellt (Schritt 110). Dieser
Ort bestimmt den Startpunkt für
den Abtastbereich und den Skalierbereich. Beispielsweise ist der
erste Startort für
den ersten 4x4-Skalierbereich das Rot-Pixel in Spalte 1, Zeile 1
(R11) (siehe 2). Für eine 4:1-Skalierung wird eine
geeignete Filterung auf jeden Bereich des Unterbildes (der Farbebene)
angewendet, um sämtliche drei
Komponenten R, G und B für
ein "Superpixel", ein den Skalierbereich
des CFA in dem skalierten Bild ersetzendes Pixel, wiederherzustellen.
Unter Bezugnahme auf 3(a) wird
unten die Matrix ("Maske") gezeigt und beschrieben,
die auf das Rot-Unterbild (Sup-Image) beginnend am Pixel R11 angewendet wird,
um die Rot-Komponente für
das erste Superpixel x11 zu gewinnen. Bei einer 3-Schritt-Filterung (three-tap-filtering)
zum Erzeugen dieser Maske ergibt sich eine Gesamtzahl von 32 oder
9 Pixelorten des Unterbilds in dem Abtastbereich der sich ergebenden
Maske. Die Maskenprodukte (die in 4(a) gezeigt
sind) werden als nächstes
miteinander summiert (Schritt 125), um die Rot-Komponente
dieses Superpixels des 4:1-skalierten Bildes wiederherzustellen
(recover). Die Summation kann erreicht werden, indem während der
Filteranwendung eine Akkumulation abläuft, oder die Produkte können separat
in einem Array gespeichert und später miteinander summiert werden.
Als nächstes
wird, um einen einzigen Intensitätswert,
der die Rot-Komponente des skalierten Bildpixels darstellt, zu gewinnen,
das Maskenergebnis normiert (Schritt 130), indem das Maskenergebnis
durch die Gesamtgewichtung der Maske dividiert wird. In Übereinstimmung
mit Schritt 120 wird die Filterung angewendet, um R-, G-
und B-Komponenten eines Superpixels mit Hilfe der in den 4(a), 4(c) bzw. 4(b) gezeigten Masken zu gewinnen. Sämtliche
drei Komponenten können
gleichzeitig oder nacheinander bestimmt werden, was von dem gewünschten
Design abhängig
ist. Im Falle der in 4(a) gezeigten
Maske wäre
der Divisor somit 16 (Summe sämtlicher
Maskenkoeffizienten). Das Ergebnis der normierten Maske stellt eine
Komponente des Superpixels in dem skalierten Bild dar, die der gleichen
Farbe zugeordnet ist wie die Farbe des Superbildes. Im Falle des
anfänglichen
Pixelortes ist das erste derartige normierte Maskenergebnis eine
Rot-Komponente RX 11 des Superpixels
X11 des skalierten Bildes (siehe 2). Dieses
normierte Maskenergebnis wird dann in einem Array für das skalierte
Bild gespeichert (Schritt 140). Die ursprünglichen
CFA-Pixel können
nicht vollständig
verworfen werden, da einige von ihnen erneut verwendet werden, wenn
das nächste
Pixel des skalierten Bildes bestimmt wird. Die (in 4(a) gezeigte) Maske für die erste Rot- Komponente des Superpixels
enthält
in ihrem Abtastbereich das Pixel R15. Da das Filter ein three-tap-filter
ist, enthält
der Abtastbereich für
eine Komponente in dem Superpixel den skalierten Bereich plus eine
zusätzliche
Zeile und Spalte von Pixeln. Die Grün- und die Blau-Komponente
des Superpixels werden in ähnlicher
Weise gewonnen, allerdings auf der Grundlage der in 4(c) bzw. 4(b) gezeigten
Masken. Sobald sämtliche
drei Komponenten für
ein Superpixel auf diese Weise bestimmt worden sind, wählt die
Technik den nächsten
Startort in dem CFA aus, welches der Startort des nächsten Skalierbereichs
wäre (Schritt 150).
Wenn sämtliche
Superpixel des skalierten Bildes berechnet sind (Schritt (160),
wird die Prozedur für
eine integrierte Skalierung und Farbinterpolation als abgeschlossen
angesehen. Anderenfalls werden die Schritte 120–150 für den ausgewählten Startort wiederholt,
so daß das
nächste
Superpixel (dessen Komponenten) bestimmt werden kann.
-
2 zeigt
einen ursprünglichen
CFA-Bereich der in Übereinstimmung
mit wenigstens einem Ausführungsbeispiel
der Erfindung skaliert wird.
-
Das
in 2 gezeigte CFA kann als drei verschiedene Farbebenen,
Rot (R), Grün
(G) und Blau (B), enthaltend angesehen werden. Pixel, die zu der Rot-Farbebene
gehören
oder ihr zugeordnet sind, werden durch einen "R"-Präfix gekennzeichnet,
während
der Blau-Farbebene zugeordnete Pixel durch einen "B"-Präfix
gekennzeichnet sind. Die der Grün-Farbebene
zugeordneten Pixel sind durch einen "G"-Präfix bezeichnet.
Ein Charakteristikum eines Bayer-Muster-CFA, wie beispielsweise
des in 2 gezeigten, besteht darin, daß den Farbebenen zugeordnete
Pixel entlang der Zeilen und Spalten einander abwechseln. Somit
ist es bei einem gegebenen Startpixelort geeignet, ein Unterbild
von Pixeln derselben Farbe wie der Startort zu extrahieren oder zu
gewinnen, indem jede zweite Spalte in der gleichen Zeile wie der
Startpixelort berücksichtigt
und dann, nachdem die Zeile abgeschlossen ist, die unmittelbar nachfolgende
Zeile übersprungen
und die Prozedur der ersten Zeile mit der nächsten, dritten Zeile wiederholt
wird. Das in 2 gezeigte CFA ist für Rohbilddaten
repräsentativ,
die aus einer Bildverarbeitungseinrichtung, wie beispielsweise einer
Digitalkamera, oder einem anderen Sensorsystem gewonnen werden.
-
Herkömmliche
Skalierungstechniken führen keinerlei
Farbinterpolation aus. Solche Techniken wurden entwickelt unter
der Annahme, daß das
Eingabebild sich nicht in der Bayer-Muster-Form befindet, sondern
stattdessen, daß jedes
Pixel die vollständigen
RGB-Farbinformationen enthält.
Eine Mittelung und/oder Beseitigungstechnik, die einfach ursprüngliche
Pixel in dem skalierten Bild wegschneidet, welche für Vollfarbpixelbilder
ausreichend sein kann, wäre
für eine
direkte Anwendung auf ein CFA-Bild unzureichend. Eine Skalierungstechnik
beispielsweise, die eine Mittelung verwendet, die eine 2:1-Herunterskalierung
eines Bildes zur Verfügung stellt,
würde den
Wert R11 in Spalte 1, Zeile 1 gemäß 2 durch
den Mittelwert der drei Nachbarpixel G21, G12 und B22 mit R11 ersetzen.
Eine solche Mittlung ist jedoch ungeeignet, da jedes Pixel unterschiedliche
Chrominanz-(Farb-) und Luminanz-(Helligkeits-)Informationen enthält. Die
zwei grünen
Pixel G21 und G12 enthalten primär
Luminanzinformationen, während
B22 und R11 primär
Chrominanzinformationen enthalten. Das Mischen der vier Farbebenen
auf eine solche Weise, um das zu gewinnen, was im wesentlichen ein
zu dem skalierten Bild gehöriges Pixel
ist, verzehrt und zerstört
die Rot-Farbinformationen. In gleicher Weise würde eine auf die G- oder B-Pixel
angewendete Mittelwertbildung zu einer Mischung mit Farbebeneninformationen
führen,
welche die darin bezüglich
des Bildes enthaltenen Informationen (wie beispielsweise Chrominanz)
zerstören würde. In ähnlicher
Weise würde
eine gewaltsame Skalierung, die bloß die G21-G12- und B22-Pixel vollständig wegschneidet
(dezimiert), beim Skalieren die Wirkung der Zerstörung von
noch mehr Bildinformation haben und im wesentlichen ein CFA zurücklassen,
welches durch eine Technik, wie beispielsweise die Farbinterpolation,
nicht in ein Bild vollständiger
Farbe transformiert werden kann.
-
Um
eine Effizienz zu erreichen und diese Hindernisse für ein CFA-Bild
zu überwinden,
werden in Übereinstimmung
mit einem Ausführungsbeispiel der
Erfindung die Skalierung und Farbinterpolation gleichzeitig erreicht,
indem auf jedes Unterbild einer Farbebene eine Maske unabhängig angewendet
wird und dann das Ergebnis zu einem einzelnen Superpixel kombiniert
wird. Das Filter kann zeilenweise auf den Unterbildbereich und dann
ebenso spaltenweise angewendet werden. wenn es so angewendet wird, bildet
das Filter eine Matrix von Koeffizienten (eine Maske), mit welcher
die Intensitätswerte
der Pixel in dem Unterbildbereich multipliziert werden. Der sich ergebende
Punktproduktwert (das heißt
die Summe sämtlicher
Maskenprodukte) wird mit dem Gewicht der Maske normiert, wie es
in 1 gezeigt ist. Dieser normierte Wert stellt dann
den Wert einer Farbkomponente (R, G oder B) eines Superpixels dar.
-
Ein
(in 2 mit durchgezogener Linie umrandeter) "Skalier" bereich für die 4:1-Skalierung
besteht aus einem ursprünglichen
CFA-Bereich von 4x4 Pixeln, welcher im Falle einer 4:1-Skalierung
in ein Superpixel des skalierten Bildes transformiert wird, oder
einen 4x4-CFA-Bereich im Falle der 2:1-Skalierung. Gemäß einem
Ausführungsbeispiel
der Erfindung wird eine Maske auf jedes Farbebenenunterbild angewendet,
um sämtliche
drei Komponenten eines Superpixels des skalierten Bildes zu bestimmen.
Der Abtastbereich, das heißt
die Anzahl der von der Maske transformierten Pixel, ist größer als
der Skalierbereich. Wenn beispielsweise die Rot-Komponente RX11 des Superpixels des 4:1-skalierten Bildes
bestimmt werden soll, wird eine 3x3-Maske auf die roten Pixel R11,
R13, R15, R31, R33, R35, R51, R53 und R55 angelegt. In gleicher
Weise kann die Grün-Komponente
Gx11 des Superpixels X11 des skalierten Bildes durch Anwenden einer
2x4-Maske auf die Pixel G12, G14, G21, G23, G32, G34, G41 und G43
in dem ursprünglichen
CFA bestimmt werden. Somit ist der Abtastbe reich größer als
der Skalierbereich. Wie unten beschrieben wird, führt dies
zu einem Überlappen
der für
die Pixel desselben Unterbildes in dem skalierten Bild verwendeten
Abtastung, was im Unterschied zu typischen Skaliertechniken dabei
hilft, Kantenmerkmale richtiger zu erfassen.
-
Wenn
dies ausgeführt
wird, weist jedes Superpixel Xij des skalierten Bildes drei Farbkomponenten
R
X ij, G
X ij und B
X ij auf. Ein 4:1-skaliertes Bild besteht aus
den Superpixeln Xij, die jeweils einen rechteckigen Skalierbereich
mit vier Zeilen und vier Spalten in dem ursprünglichen CFA ersetzen. Wenn
somit das ursprüngliche
CFA eine Größe von MxN
aufweist, hat ein 4:1-skaliertes Bild eine Größe von
-
Vorteilhafterweise
weist jedes Superpixel des skalierten Bildes darüber hinaus die vollständigen Farbinformationen
auf, womit die Notwendigkeit einer unabhängig angewendeten Farbinterpolationsprozedur
beseitigt wird.
-
3(a)–3(c) zeigen die Stufen der Filteranwendung, um
die Maske für
einen beispielhaften Rot-Unterbild-CFA-Bereich zu erlangen.
-
3(a) zeigt einen Rot-Unterbildbereich in dem ursprünglichen
CFA. Ein three-tap-Filter, das sowohl vertikal als auch horizontal
angewendet wird, umfaßt
eine Maske von neuen Produkten. Dieser Abtastbereich von neuen Pixeln
für das
Unterbild der Rot-Farbebene erscheint nicht zusammenhängend und
benachbart in den CFA, sondern stattdessen versetzt. Das rote Unterbild
wird aus dem ursprünglichen
CFA gewonnen, indem jede zweite Pixelspalte und Zeile darin übersprungen
wird (siehe 2).
-
Wenn
ein three-tap-Filter mit Koeffizienten von {1,2,1} in Übereinstimmung
mit einem Ausführungsbeispiel
der Erfindung auf eine horizontale Weise auf das ursprüngliche
Unterbild gemäß 3(a) angewendet wird (das heißt, das Filter über eine
Unterbildzeile angewendet wird), ist das Ergebnis das Array (die
Maske) von Produkten, das in 3(b) gezeigt
ist. Wenn das three-tap-Filter {1,2,1} auf das Ergebnisarray gemäß 3(b) aber jetzt in einer vertikalen Weise, angewendet
wird, ergibt sich die Maske gemäß 3(c). Die in 3(c) gezeigte
Maske ist repräsentativ
für die
Maskenprodukte, die miteinander summiert werden, um einen einzigen
Wert hervorzubringen, welcher dann in der oben unter Bezugnahme
auf 1 beschriebenen Weise normiert werden kann.
-
In Übereinstimmung
mit der sich ergebenden Maske wird dem zentralen Pixel (wie beispielsweise R33)
nicht mehr als das vierfache Gewicht der Eckpixel in dem Unterbildbereich
gegeben. Unter Bezugnahme auf 3(c) ist
anzumerken, daß die
nicht in den Ecken befindlichen Seitenpixel (nicht in der ersten
und letzten Zeile und Spalte des Bereichs befindlichen) im Ergebnis
des Anlegens der Maske mit der Hälfte
des Gewichts des mit vier gewichteten zentralen Pixels gewichtet
werden. Wiederum dominiert, obwohl keine Vorhersage darüber getroffen
werden kann, ob das Kantenmerkmal innerhalb dieses Unterbildes liegt,
keines der Pixel, welche niemals vollständig eine Kante darstellen
können,
wie es dies bei den herkömmlichen
Skalierfiltern tun würde.
Indem die Korrelation zwischen den Pixeln in dem Abtastbereich eng
gehalten wird, gibt es mehr statische Garantie, daß ein Kantenmerkmal
in richtiger Weise dargestellt und nicht dezimiert wird. Dies ist
insbesondere deshalb der Fall, da Kantenmerkmale, die einen signifikanten
sichtbaren Einfluß aufweisen
(das heißt die
deutlich sichtbar sind), üblicherweise
durch einen Bereich von wenigstens mehr als nur ein oder zwei Pixel
laufen. Wie es in 4(b) gezeigt ist, ist die Maske
zum Gewinnen der Blau-Komponente BX 11 des Superpixels X11 in ihren Koeffizienten
identisch der Maske gemäß 3(c) und kann somit gewonnen werden, indem in
zwei Richtungen ein three-tap-Filter {1,2,1} angewendet wird.
-
4(a) zeigt eine Beispielmaske, die zum Gewinnen
einer Rot-Komponente in einem Superpixel eines 4:1-skalierten Bildes
angewendet wird.
-
Es
wird wieder auf 3 Bezug genommen; ein threetap-Filter,
wie es oben beschrieben ist, kann zunächst zeilenweise auf das abgetastete
Unterbild und dann wiederum spaltenweise auf das Ergebnis der zeilenweise
Anwendung angewendet werden. Der Intensitätswert einer Komponente in
einem Superpixel des skalierten Bildes wird durch Anlegen einer
derartigen Maske, die sich aus einer Filteroperation ergibt, auf
einen Unterbildabtastbereich bestimmt. Vereinbarungsgemäß ist M
die Zeilenzahl und N die Spaltenzahl des Startpixels in der linken oberen
Ecke des CFA für
einen gegebenen Skalierbereich. Die Zeilen- und Spaltenzahl werden
für ein leichteres
Verständnis
durch Kommas getrennt. 4(a) zeigt
die zum Bestimmen der Rot-Komponente eines Superpixels Xij erforderlichen Maske. Beispielsweise,
gemäß. 2,
weist das Superpixel X11 des skalierten Bildes eine Rot-Komponente RX11 auf, welche durch die Maske gemäß 4(a) bestimmt wird. Die in 4(a) gezeigten
Maskenprodukte werden miteinander summiert, um einen einzigen Wert
zu gewinnen. Da jedes Pixel in einem CFA gewöhnlich eine eingestellte Intensitätsauflösung, typischerweise
einen Wert von 8 Bits (0-255), aufweist, muß die Summe des Maskenprodukt
auf einen derartigen Wert normiert werden. Dies wird erreicht, indem einfach
die Summe der Maskenprodukte durch die Summe der Maskenkoeffizienten
dividiert wird. Da es einen Therm mit einem Koeffizienten von vier,
vier Therme mit einem Koeffizienten von zwei und vier weitere mit
einem Koeffizienten von eins gibt, ist das Gesamt "gewicht" der Maske gemäß 4(a) (die Summe der Koeffizienten) gleich 16.
Somit wäre RX11, die Rot-Komponente des Superpixels X11
des skalierten Bildes, gleich [R11 + 2·R13 + R15 + 2·R31 +
4·R33
+ 2·R35
+ R51 + 2·R53
+ R55]/16. (Man beachte, daß die
die Zeilen- und Spaltennummern trennenden Kommas in diesem Ausdruck
entfernt wurden). In gleicher Weise kann RX12,
die Rot-Komponente des Superpixels X12 des skalierten Bildes (siehe 2)
(dessen Skalierbereich einen Startort R15 aufweist, so daß M = 1,
N = 5 sind), durch Berechnen des Ausdrucks [R15 + 2·R17 +
R19 + 2·R35
+ 4·R37 +
2·R39
+ R55 + 2·R57
+ R59]/16 erhalten werden.
-
Die
Verteilung der Maskenkoeffizienten über den Abtastbereich zeigt,
daß die
relative Überdeckung
oder Darstellung in dem skalierten Bild zwischen dem Mittelpixel
und einem Eckpixel in dem Abtastbereich nur das vierfache ist. Dies
unterstützt eine
Kantenerfassung, da einem Pixel ein übermäßiges Gewicht gegeben worden
ist, und im Unterschied zu der einfachen Mittelwertbildung Funktionen
zum besseren Abdecken der wichtigeren Bereiche innerhalb eines Bereichs,
wie beispielsweise des Zentrums.
-
4(b) zeigt eine Beispielmaske, die zum Erzielen
einer Blau-Komponente eines Superpixels in einem 4:1-skalierten
Bild angewendet wird.
-
Die
für die
Blau-Komponenten B bei einem Superpixel X eines skalierten Bildes
verwendete Maske ist ähnlich
der Maske gemäß 4(a) dahingehend, daß die Verteilung der Koeffizienten
in dem Maskenarray identisch ist. Jedoch unterscheiden sich die
für die
Maskierung abgetasteten Pixel vollständig, da diese Pixel keinen
Rot-Unterbildbereich, sondern einen zweiten, Blau-Unterbildbereich
darstellen. Das Startpixel des Abtastbereichs für den Blau-Unterbildbereich
ist B22 in dem ursprünglichen CFA
(siehe 2). Beginnend mit diesem Ort B12 kann ein three-tap-Filter
vertikal und horizontal auf das Blau-Unterbild so angewendet werden,
wie es für das
Rot-Unterbild in den 3(a)–3(c) gezeigt worden ist. Die sich ergebende Maske
ist in 4(b) gezeigt. Wie bei der Rot-Komponente
RX11 kann die Blau-Komponente durch Summieren
der Maskenprodukte und anschließendes
Dividieren durch das Gesamtgewicht der Maske (16) gewonnen
werden. Es wird wieder auf 2 Bezug
genommen; die Blau-Komponente
B des Superpixels X des 4:1-skalierten Bildes er gibt sich aus dieser
Prozedur. Wiederum weisen, berücksichtigt
man einen Startort (M, N) des Skalierbereichs, die Blau-Komponenten
RX11 (für
das Superpixel X11) und B12 (für
das Superpixel X12) Startorte des Skalierbereichs von M = 1, N =
1 bzw. M = 1, N = 5 auf. Diese Komponenten werden wie folgt berechnet:
BX11 = [B22 + 2·B24 + B26 + 2·B42 +
4·B44
+ 2·B46 +
B62 + 2·B64
+ B66]/16
BX12 = [B26 + 2·B28 +
B20 + 2·B46
+ 4·B48
+ 2·B40 +
B66 + 2·B68
+ B60]/16,
wobei "0" die zehnte Spalte
des CFA darstellt.
-
4(c) zeigt eine Beispielmaske, die zum Erzielen
der Grün-Komponente
eines Superpixels in einem 4:1-skalierten Bild angewendet wird.
-
Wie
oben beschrieben, müssen
für jedes
Superpixel Xij des skalierten Bildes drei
Komponenten, eine Rot-Komponente RXij, eine
Grün-Komponente GXij und eine Blau-Komponente BXij,
erzeugt werden. Die Erfindung kombiniert das Skalieren die Farbinterpolation,
um aus einem MxN-CFA ein Bild voller Farbauflösung von einem Viertel der
Größe zu erzeugen,
welches oftmals aus den Intensitätswerten
für jede
der drei Farbebenen Rot, Grün
und Blau angesehen wird. Bei dem Bayer-Muster-CFA trifft man die roten und
blauen Pixel auf abwechselnden Zeilen an, aber die grünen Pixel
sind auf jeder Zeile anzutreffen. Somit sind in Bezug auf die roten
und blauen Pixel zweimal soviele grüne Pixel vorhanden. Die grünen Pixel
sind in einem gestaffelten Muster angeordnet und enthalten einen
großen
Teil der wichtigen "Luminanz"-Informationen des
Bildes, die für
die visuelle Auflösung
des Bildes kritisch sind. Aus diesen Gründen variiert die in 4(c) gezeigte Grün-Maske beträchtlich
von den in 4(a) bzw. 4(b) gezeigten
Rot- und Blau-Masken.
-
4(c) zeigt, daß es nur acht Produkte in der
Maske zum Gewinnen der Grün-Komponente
an Stelle der neun gibt. Darüber
hinaus sind die die Maskenprodukte bildenden Koeffizienten nicht
in der Maske symmetrisch, wie sie bei den 4(a) und 4(b) waren. Somit würde eine Filteranwendung in
zwei Dimensionen, wie sie beispielsweise in den 3(a)–3(c) gezeigt ist, Schwierigkeiten beim Erzeugen
der sich ergebenden Maske in 4(c) vorfinden.
Die Summe der Maskenkoeffizienten bleibt 16, aber die Wichtung ist
auf zwei Pixel konzentriert.
-
Es
wird wieder auf 1 Bezug genommen; der Skalierbereich
für das
Superpixel X11 weist zwei zentral positionierte Grün-Pixel
in dem CFA auf, welche G23 und G32 sind. Alle anderen Grün-Pixel,
die in dem Bereich berücksichtigt
werden, sind an einer Kante/Ecke. Somit werden die zentralen Grün-Pixel, welche
mit höchster
Wahrscheinlichkeit wesentliche Luminanzinformationen in dem Skalierbereich
enthalten, den Maskenkoeffizienten 4 zugewiesen. Gemäß 4(c) werden die zentralen Grün-Pixel GM + 1, N + 2 und GM
+ 2, N + 1 mit vier gewichtet. Somit kann die Grün-Komponente GX11
des Superpixels X11 des Superpixels X11 dargestellt als: [G12 +
G14 + 2·G21
+ 4·G23
+ 4·G32
+ 2·G34
+ G41 + G43]. In gleicher Weise kann die Grün-Komponente GX12
des Superpixels X12 gleich [G16 + G18 + 2·G25 + 4·G27 + 4·G36 + 2·G38 + G45 + G47]/16 sein.
-
Darüber hinaus
zeigen, wie oben angemerkt wurde, die 4(a)–4(c) Masken für
die Pixel eines Bildes, das maßstäblich in
seiner Größe um vier verkleinert
wird. Die Bildskalierung von 1/4 wird oftmals bei bewegten Videoanwendungen,
wie beispielsweise Videokonferenzen, benutzt. Bei anderen Anwendungen,
bei denen eine Skalierung von 2:1 bzw. um die Hälfte erforderlich ist, kann
die oben beschriebene Maskierungsprozedur wie folgt modifiziert
werden. Bei einem 2:1-skalierten Bild werden jeweils zwei Zeilen
und Spalten von Pixeln in dem ursprünglichen unskalierten CFA zu
einem einzigen Pixel des skalierten Bildes abgebildet oder reduziert. Dieser
Fall ist in 2 gezeigt, wo gezeigt ist, daß ein 2:1-skalierter
Bildbereich der Hälfte
der Größe des Skalierungsbereichs
in den ursprünglichen
CFA entspricht. Die Größe und Anzahl
der Produkte (das heißt
der Abtastkriterien) können
modifiziert oder ähnlich
den oben beschriebenen sein. Wenn eine schnelle Hardwareimplementierung
einer solchen Dual-Modus-Skalierung (2:1 und 4:1) gewünscht wird, wie
es oftmals bei Videokonferenzanwendungen erforderlich ist, kann
die Verwendung einer separaten Maskierung für jeden der Fälle nachteilig
sein.
-
5 ist
eine Darstellung gemäß einem Ausführungsbeispiel
der Erfindung.
-
5 ist
eine Blockdarstellung interner Bildverarbeitungs- und -kompressionskomponenten
eines Bildaufnahmegeräts.
Ein Sensor 500 erzeugt Pixelkomponenten, welche Intensitätswerte
aus irgendeiner Quelle darstellen. Die von dem Sensor 500 erzeugten
m-Bit-Pixelwerte werden zu einer Aufnahmeschnittstelle 510 gesendet.
Der Sensor 500 im Kontext einer Digitalkamera erfaßt typischerweise eine
der R-, G- oder
B-Komponenten für
eine "Abtastung" eines Ortes. So
wird der Intensitätswert
jedes Pixels nur einer der drei Farbebenen/Pixel zugeordnet. Die
Aufnahmeschnittstelle 510 nimmt das von dem Sensor erzeugte
Bild auf und hängt
TAGs an, die die Farbzuordnung für
die einzelnen Pixel identifizieren. Die TAGs sind jeweils zwei Bits,
beispielsweise 00, 01, 10 und 11 für ein R (Rot-), G-(geradzahliges
Grün-),
G(ungeradzeiliges Grün-)
bzw. B-(Blau-)Pixel. Die Menge sämtlicher
Pixel für
das gesamte Bild ist das CFA. Es ist typisch bei einem Sensorgerät, das einige
der Pixelzellen in der Sensorebene möglicherweise nicht richtig
auf die Beleuchtungsbedingungen antworten. Im Ergebnis können die
aus diesen Zellen erzeugten Pixelwerte defekt sein. Diese Pixel
werden "Totpixel" genannt. Die "Pixelsubstitutions"-Einheit 515 ersetzt
jedes tote Pixel durch das unmittelbar vorhergehende gültige Pixel
in der Zeile.
-
Eine
RAM-Tabelle 516 besteht aus den Zeilen- und Spaltenindizes
der toten Pixel, welche von dem Sensor geliefert werden. Diese RAM-Tabelle 516 unterstützt die
Identifikation des Ortes toter Pixel in Bezug auf das aufgenommene
Bild. Das Kompandierungsmodul 525 ist ein auf dem Tabellennachschlagen
basierender Konverter zum Konvertieren jedes ursprünglichen
Pixels von m Bitintensität
(mit 10b bezeich net), wie es von dem Sensor aufgenommen wurde, in
einen n-Bit-Intensitätswert,
wobei m kleiner als n (typischerweise m ist = 10, n = 8). Eine RAM-Tabelle 526 begleitet
das Kompandierungsmodul 525 und speichert die Einträge dieser
beispielhaften Sensorkompandierungstabelle. Somit ist jedes Pixel
in dem CFA ein n-Bit-Wert, der eine der drei Farbebenen darstellt.
-
Nach
dem Kompandieren wird eine Skalierungs- und Farbinterpolationseinheit
(SCI-Einheit) 527 verwendet, um das Bild maßstäblich zu
verkleinern. Wenn die ursprüngliche
Bildgröße MxN ist,
skaliert eine 2:1-Skalierungsoperation die Bildgröße hinunter
zu M/2 x N/2, während
eine 4:1-Skalierungsoperation die Bildgröße herunter zu M/4 x N/4, wobei aber
jedes skalierte Bildpixel sämtliche
drei Farbkomponenten aufweist, skaliert. Der RAM 528 begleitet die
SCI-Einheit 527 und wird zur Zwischenspeicherung während der
Skalierungs/Farbinterpolationsoperation verwendet.
-
Gemäß den verschiedenen
Ausführungsbeispielen
der Erfindung ist die Skalierungseinheit 527 in der Lage,
auf effiziente Weise gleichzeitig sowohl eine Skalierung als auch
Farbinterpolation auszuführen.
Wie bei einem Ausführungsbeispiel
der Erfindung wird die 4:1-Skalierung erreicht, indem ein Satz von
Masken auf Unterbilder (ausgewählte
Pixel in einer bestimmten Farbebene) angewendet wird, jeweils eine
Maske pro Farbunterbild R, G und B. Da die Masken aus Koeffizienten
(Multiplikatoren) von 1 und 4 zusammengesetzt sind, können die
Masken unter Verwendung eines Schieberegisters implementiert werden,
welches den Intensitätswert
für ein
gegebenes Pixel nach links verschiebt.
-
Bei
einem Ausführungsbeispiel
der Erfindung werden die erzeugten Masken summiert und dann normiert,
um das Pixel des skalierten Bildes zu bilden. Das Schieberegister
und Puffer verwendende Filter-Design kann durch einen Addierer begleiten, welcher
die an jeder Spalte oder Zeile gewonnenen Produkte in einen Akkumulator
addiert. Wenn sämtliche
neun (oder im Falle des Grüns
8) Produkte akkumuliert worden sind, kann die Ausgabe des Akkumulators
zu einem weiteren Schieberegister weitergeleitet werden, welches
vier Bit nach rechts schiebt, oder im Endeffekt durch 16 teilt,
was die Maskenwichtung für
jede der drei Masken ist. Alternativ können dann, wenn jede Zeile
oder Spalte von Pixeln verarbeitet wird, die sich daraus ergebenden
Produkte summiert werden und dann normiert werden. Beispielsweise können die
Ausgabe des three-tap-Filters an einen Addierer zum Summieren der
Produkte weitergeleitet werden. Diese Summe kann dann durch die
Summe der Filter-taps normiert werden, welche gleich 4 ist (1+2+1).
Die Division durch 4 kann durch ein Verschieben nach rechts um 2
Bits (wiederum unter Verwendung eines Schieberegisters) erreicht
werden. Jedes normierte Zeilen- oder
Spaltenergebnis kann akkumuliert werden, und wenn das Filter vollständig auf
den Abtastbereich angewendet ist, kann der akkumulierte Wert wiederum
zur Normierung geteilt werden.
-
Das
ursprüngliche
CFA kann um einen Faktor von zwei statt vier durch den SCI mit 627 skaliert werden.
Ein Fachmann ist sofort in der Lage, die oben beschriebene Methodik
so zu modifizieren, daß ein
2:1 oder N:1 implementiert wird. Mit der obigen Implementierung
können
skalierte Bilddaten schneller erzeugt und andere Bildverarbeitungseinheiten, die
in 6 gezeigt sind, gesendet werden, und schließlich die
Lieferung der Bilddaten über
den Bus 560 und aus der Bildaufnahmeeinrichtung hinaus
beschleunigen. Dies ist insbesondere für die 4:1-Skalierungsoperation
vorteilhaft, welche bei Videokonferenzen verwendet wird, bei denen
eine Aufrechterhaltung von Einzelbildraten wichtig ist. Die Qualität des skalierten
Bildes ist darüber
hinaus gegenüber der
herkömmlichen
4:1-Skalierung deshalb verbessert, weil die effektive Farbinterpolation
auch gleichzeitig durchgeführt
wird, was skalierte Bilddaten erbringt, die von vollständiger Farbe
sind. Wenn das CFA Pixel von n Bits aufweist, dann sind jedem Superpixel
in dem skalierten Bild 3·n
Bits zugeordnet, n Bits für
jede Farbkomponente. Diese Farbkomponen tenwerte können miteinander
verkettet oder separat übermittelt
werden, wie es gewünscht
wird. Die skalierten Bilddaten, die Superpixel für Superpixel gewonnen worden
sind, können
zu einer Kompressionseinheit 530 und einem Codierer 535 weitergeleitet
werden, welche die skalierten Bilddaten in verwaltbare und transportable
Blöcke
kompäktieren
und codieren. Die komprimierten und codierten Daten werden dann
durch eine Datenpackeinheit 540 zusammengepackt und gehen
dann zur Übertragung über den
Bus 560 zur DMA-Steuereinrichtung 550 hinaus.
Die Bustechnologie, Adressierprotokolle und DMA-Controller sind
im Stand der Technik des Systemdesigns gut bekannt und können auf
einfache Weise modifiziert/spezialisiert werden, um für die gewünschte Anwendung
zu passen.
-
Jede
der RAM-Tabellen 516, 526, 528, 532 und 534 kann
direkt mit dem Bus 560 kommunizieren, so daß deren
Daten geladen und dann später, sofern
gewünscht,
modifiziert werden können.
Darüber
hinaus können
diese RAM-Tabellen und weitere RAM-Tabellen verwendet werden, um
gegebenenfalls skalierte Bilddaten zu speichern. Obwohl die einzelnen
Komponenten (Auswähler,
Schieberegister, Register und Steueradreßsignale) der Skalierungseinheit 527 nicht
im Detail beschrieben worden sind, ist ein Fachmann ohne weiteres
in der Lage, eine solche Skalierungseinrichtung zu implementieren.
Die Effizienz und die Leichtigkeit der gleichzeitigen Skalierung
und Farbinterpolation erbringt den Vorteil der Erzeugung maßstäblich verkleinerter
Bilddaten hoher Qualität,
bei denen die Kantenmerkmale auf eine bessere Weise als bei herkömmlichen
Nur-Skalierungs-Techniken bewahrt werden. Obwohl die Erfindung für ein R-,
G- und B-CFA beschrieben worden ist, kann sie auf ein beliebiges
zahlreicher CFA-Schemata, wie beispielsweise MWY (Magenta, Weiß und Gelb)
angewendet werden.
-
6 ist
ein Systemdiagramm eines Ausführungsbeispiels
der Erfindung. Veranschaulicht ist ein Computersystem 610,
welches eine beliebige Mehrzweck- oder spezielle Re chen- oder Datenverarbeitungsmaschine,
wie beispielsweise ein PC (Personalcomputer), sein kann, die mit
einer Kamera 630 gekoppelt ist. Die Kamera 630 kann
eine Digitalkamera, eine digitale Videokamera oder eine beliebige Bildaufnahmeeinrichtung
oder ein Bildverarbeitungssystem oder eine Kombination dieser Einrichtung sein
und wird verwendet, um ein Sensorbild einer Szene 640 aufzunehmen.
Im wesentlichen werden die aufgenommenen Bilder durch eine Bildverarbeitungsschaltung 632 verarbeitet,
so daß sie
auf effiziente Weise in einer Bildspeichereinheit 634,
welche ein ROM, RAM oder eine andere Speichereinrichtung, wie beispielsweise
eine Festplatte sein kann, gespeichert werden können. Das in der Bildspeichereinheit 634 enthaltene
Bild, das für
das Computersystem 610 besteht ist, wird dahingehend verbessert, daß der Verlust
von Bildmerkmalen in Folge der herkömmlichen Skalierung und unabhängigen Farbinterpolation
beträchtlich
gemildert wird, indem Kantenmerkmale besser bewahrt werden. Bei
den meisten Digitalkameras, die eine Standbildaufnahme ausführen können, werden
die Bilder zunächst
gespeichert und später
heruntergeladen. Dies ermöglicht
der Kamera 630, ohne zusätzliche Verzögerung das
nächste
Objekt/die nächste
Szene schnell aufzunehmen. Im Falle einer digitalen Videokamera,
insbesondere einer für
Live-Videokonferenzen verwendeten, ist es jedoch wichtig, daß Bilder
nicht nur schnell aufgenommen werden, sondern auch schnell verarbeitet und
aus der Kamera 630 hinaus übertragen werden. Die Erfindung
in ihren verschiedenen Ausführungsbeispielen
ist für
die Bereitstellung eines schnellen Durchsatzes von Farbbilddaten
an andere Teile der Bildverarbeitungsschaltung 632 gut
geeignet, so daß die
Gesamtgeschwindigkeit der Übermittlung
von Einzelbildern gegenüber
typischen Skalierungstechniken, welche aufgrund ihrer Natur keine
Farbinterpolation ausführen,
erhöht
wird.
-
Die
Bildskalierung und Farbinterpolation wird bei diesem Ausführungsbeispiel
der Erfindung in der Bildverarbeitungsschaltung 632 ausgeführt. Nachdem
das Bild skaliert/inter poliert worden ist, kann es zusätzlich für den Transport
komprimiert werden. Die Dekompression der gesendeten Bilddaten kann
unter Verwendung eines Prozessors 612, wie beispielsweise
des Pentium® (eines
Produkt der Intel Corporation), und eines Speichers 611,
wie beispielsweise eines RAM, welcher verwendet wird, um Befehlsadressen
und Ergebnisdaten zu speichern/zu laden, erreicht werden. Bei einem
alternativen Ausführungsbeispiel
kann die Skalierung/Farbinterpolation in einer Softwareanwendung
erreicht werden, die auf dem Computersystem 610 abläuft, statt
direkt in Hardware. Die Anwendung(en), die verwendet wird(werden),
um Superpixel des skalierten Bildes zu erzeugen, die aus der Kamera 630 heruntergeladen worden
sind, kann eine aus einem Quellcode, der in einer Sprache, wie beispielsweise
C++, geschrieben worden ist, in eine ausführbare Datei kompiliert werden.
Die Befehle dieser ausführbaren
Datei, welche mit dem zum Skalieren des Bildes erforderlichen Befehlen
entsprechen, können
auf einer Platte 618 oder einem Speicher 611 gespeichert
werden. Für
einen Fachmann ist es sofort klar, wie ein Programm einer Rechnermaschine
zum Skalieren und gleichzeitigen Farbinterpolieren eines Bildes
gemäß der oben
beschriebenen Methodik programmiert werden kann. Darüber hinaus
können
die verschiedenen Ausführungsbeispiele
der Erfindung auf einem Videoanzeigeadapter oder einer Graphikverarbeitungseinheit implementiert
sein, die die Skalierung und Farbinterpolation zur Verfügung stellt.
-
Das
Computersystem 610 weist einen Systembus 613 auf,
welcher die Informationsübertragung
zum/aus dem Prozessor 612 und dem Speicher 611 ermöglicht,
und eine Brücke 614,
welche diese mit einem I/O-Bus 615 koppelt. Der I/O-Bus 615 verbindet
verschiedene I/O-Einrichtungen, wie beispielsweise einen Anzeigeadapter 616,
eine Platte 618 und ein I/O-Port 617, wie beispielsweise
einen seriellen Port. Viele derartige Kombinationen von I/O-Einrichtungen,
Bussen und Brücken
können
bei der Erfindung verwendet werden, und die gezeigte Kombination
dient bloß der
Veranschaulichung einer solchen möglichen Kombination.
-
Wenn
ein Bild, wie beispielsweise ein Bild einer Szene 640,
von der Kamera 630 aufgenommen wird, wird es zu der Bildverarbeitungsschaltung 632 gesendet.
Die Bildverarbeitungsschaltung 632 besteht aus ICs und
weiteren Bauelementen, welche neben anderen Funktionen, die maßstäbliche Verkleinerung
(Skalierung) und gleichzeitige Farbinterpolation des aufgenommenen
Bildes ausführen.
Die hier erörterte
Skalierungs/Interpolationstechnik kann eine Bildspeichereinheit
verwenden, um das ursprüngliche
CFA der Szene 640, das von der Kamera 630 aufgenommen
worden ist, zu speichern. Darüber hinaus
kann dieselbe Speichereinheit verwendet werden, um die skalierten/interpolierten
Bilddaten zu speichern. Sobald sämtliche
Pixel skaliert, verarbeitet und zu dem Computersystem 610 zur
Wiedergabe übertragen
worden sind, ist die Kamera 630 frei, das nächste Bild
aufzunehmen. Das Wesen der Skalierungstechnik bei der Farbiinterpolation
ermöglicht
es, daß die
Kamera 630 als Filmkamera wirkt, die farbig und nicht schwarz-weiß ist, obwohl
eine solche nicht komplexer ist, als eine reine Schwarz-Weiß-Kamera. Wenn
der Benutzer oder die Anwendung ein Herunterladen von Bildern wünscht/anfordert,
werden die in der Bildspeichereinheit gespeicherten skalierten komprimierten
Bilder aus der Bildspeichereinheit 634 an den I/O-Port 617 übertragen.
Der I/O-Port 617 verwendet die gezeigte Bus-Brücken-Hierarchie (I/O-Bus 615 zur
Brücke 614 zum
Systembus 613), um vorübergehend
die skalierten komprimierten Bilddaten in den Speicher 611 oder
optional auf die Platte 618 zu speichern.
-
Die
komprimierten Bilder werden auf dem Computersystem 612 durch
eine geeignete Anwendungssoftware (oder Hardware) dekomprimiert,
welche den Prozessor 612 für ihre Ausführung verwenden können. Die
Bilddaten werden dann visuell unter Verwendung eines Anzeigeadapters 616 in
Form eines wiedergegebenen/skalierten Farbbildes 650 wiedergegeben.
Es ist gezeigt, daß das
skalierte Farbbild von geringerer Größe als die ursprünglich aufgenommene
Szene ist. Dies ist bei vielen Bildanwendungen erwünscht, bei
denen die ursprüngliche
Sensoraufnahmegröße einer
Szene nicht erforderlich ist. Bei einer Videokonferenzanwendung
können
die Bilddaten in ihrer komprimierten und skalierten Form über ein
Netzwerk oder ein Kommunikationssystem zu einem anderen Knoten oder
Computersystem zusätzlich
zu oder an Stelle der Übertragung
zum Computersystem 610 übermittelt
werden, so daß eine
Videokonferenzsitzung stattfinden kann. Da die Skalierung und Farbinterpolation
bei einem Ausführungsbeispiel
der Erfindung bereits in der Kamera erreicht worden sind, einen
Kommunikationsport in der Kamera 630 zu implementieren,
der es gestattet, daß die
Bilddaten direkt zu den anderen Knoten bei einer Videokonferenzsitzung
transportiert werden. Wenn immer ein Benutzer des Computersystems 610 es darüber hinaus
wünscht,
seine eigene Szene auf dem Monitor 620 zu betrachten, können die
Bilddaten, die skaliert und farbinterpoliert sind, sowohl zu dem
Computersytem 610 gesendet als auch über ein Netzwerk an andere
Knoten transport werden. Darüber
hinaus gestatten die verschiedenen Ausführungsbeispiele der Erfindung
außerdem,
daß gegebenenfalls
eine effiziente Softwareskalierung implementiert wird. wie oben
erörtert,
weist das skalierte/interpolierte Farbbild mehr sichtbar akkurate
Kantenmerkmale auf, als sie bei Skalierungsoperationen typisch sind,
infolge der Anreicherung oder Verbesserung des Skalierungsprozesses
und dem gleichzeitigen Wesen der Farbinterpolation, welche im Endeffekt
ein eingebetteter Prozeß ist.
Im Vergleich zu typischen Skalierungsverfahren, welche keine Farbinterpolation
ausführen,
sondern diese Aufgabe einer weiteren Einrichtung, einem weiteren
Prozeß oder
einer weiteren Stufe der Bildverarbeitungssitzung überlassen,
ist das Endergebnis ein mit höherer Qualität wiedergegebenes
skaliertes Bild 650, das auf dem Monitor 620 oder
anderen Knoten in einer Videokonferenzsitzung angezeigt wird.
-
Die
hier beschriebenen Ausführungsbeispiele
sind bloß zur
Veranschaulichung der Prinzipien der Erfindung angegeben und sollten
nicht in einem den Umfang der Erfindung einschränkenden Sinne ausgelegt werden.
Stattdessen können
die Prinzipien der Erfindung auf einen breiten Bereich von Systemen
angewendet werden, um die hier beschriebenen Vorteile zu erreichen
und um weitere Vorteile zu erreichen oder ebensogut andere Aufgaben
zu erfüllen.