DE19601564A1 - Digitale Bildinterpolationsvorrichtung mit einer Vielzahl von Interpolationskernen - Google Patents

Digitale Bildinterpolationsvorrichtung mit einer Vielzahl von Interpolationskernen

Info

Publication number
DE19601564A1
DE19601564A1 DE1996101564 DE19601564A DE19601564A1 DE 19601564 A1 DE19601564 A1 DE 19601564A1 DE 1996101564 DE1996101564 DE 1996101564 DE 19601564 A DE19601564 A DE 19601564A DE 19601564 A1 DE19601564 A1 DE 19601564A1
Authority
DE
Germany
Prior art keywords
interpolation
pixel values
coefficients
digital image
vertical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE1996101564
Other languages
English (en)
Inventor
Thomas Lawrence Rockwell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Eastman Kodak Co
Original Assignee
Eastman Kodak Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Eastman Kodak Co filed Critical Eastman Kodak Co
Publication of DE19601564A1 publication Critical patent/DE19601564A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • G06F17/175Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

Die vorliegende Erfindung bezieht sich allgemein auf Interpolationsvorrichtun­ gen zum Verarbeiten digitaler Bilder und insbesondere auf Interpolationsvor­ richtungen für die Hochgeschwindigkeitsverarbeitung digitaler Bilder, wie z. B. Röntgenbilder, um derartige Bilder zu vergrößern oder zu verkleinern.
US-A-5,125,042 beschreibt einen Prozeß zum Interpolieren von Bilddaten zu­ nächst in Zeilenrichtung. Anschließend werden mehrere Zeilen interpolierter Pixelwerte in Spaltenrichtung interpoliert. Dies erfordert am Eingang zur Spal­ teninterpolationsstufe den Einsatz eines Zeilenpuffers großer Tiefe. Obwohl die im Patent beschriebene Interpolation ausgezeichnet funktioniert, werden die Interpolationskoeffizienten an 256 diskreten Orten digitalisiert und im Speicher abgelegt. Eine verbesserte Implementierung für Bilder mit "fotografischer Qualität" würde für die Interpolationskoeffizienten möglichst ein fortlaufendes Spektrum verwenden.
US-A-4,595,958 beschreibt einen Prozeß zum Aufzeichnen eines oder mehre­ rer digitaler Bilder auf einem Hardcopy-Ausgabemedium, etwa ein fotografi­ scher Film oder ein fotografisches Papier. In diesem Aufzeichnungsprozeß können die digitalen Bilder durch Interpolation vergrößert oder verkleinert werden, um das verfügbare Ausgabemedium auszufüllen. Zur Durchführung linearer Interpolation wird keine besondere Hardware beschrieben.
US-A-4,578,812 beschreibt Hardware zur Durchführung einer zweidimensiona­ len Interpolation mit hoher Geschwindigkeit für ein digitales Bild anhand des kubischen Faltungsverfahrens. Sechzehn Pixel von dem Originalbild, die einen Interpolationsort in einem zweidimensionalen Feld umgeben, werden gleichzeitig mit sechzehn entsprechenden Interpolationskoeffizienten multipli­ ziert (auch als Gewichtsfaktoren bekannt), und sechzehn Produkte werden ad­ diert, um den interpolierten Wert am Interpolationsort zu bilden. Die Interpola­ tionskoeffizienten, die Abtastungen eines zweidimensionalen Interpolations­ kerns kubischer Faltung darstellen, werden in einem digitalen Speicher abge­ legt. Der kubische Faltungskern wird bei einer Auflösung von 32 mal 32 Abta­ stungen zwischen Originalpixeln abgetastet. Die Abtastungen werden als 12- Bit-Werte gespeichert. Im Ergebnis ist der gesamte Speicherbedarf für die Interpolationskoeffizienten das Produkt von 32 × 32 × 12 × 16 oder 196.608 Bit, wobei die Zahl "16" die sechzehn Koeffizienten bezeichnet, mit denen die 16 Pixelwerte beaufschlagt wurden, um den interpolierten Wert zu erhalten. Der Speicherbedarf für die Interpolationskoeffizienten beträgt somit 192 kBit.
Für Bilder mit hoher Auflösung, beispielsweise für diagnostische Röntgen­ bilder, ist es wünschenswert, den kubischen Faltungskern mit einer viel höhe­ ren Auflösung von beispielsweise 256 × 256 Abtastungen abzutasten und die Koeffizienten mit einer höheren Genauigkeit von beispielsweise 16 Bit aufzu­ zeichnen, um eine genauere Interpolation und feinere Vergrößerungsstufen vorzusehen. Dies würde ca. 16 MBit Speicher (256 × 256 × 16 × 16) zur Spei­ cherung der Interpolationskoeffizienten erfordern. Die Bereitstellung einer der­ art großen Speicherkapazität wäre aber natürlich sehr kostspielig und schwie­ rig zu adressieren.
Darüber hinaus ist bekannt, daß die kubische Faltung für bestimmte Bildarten kein optimales Interpolationsbild erzeugt. Für diese Bilder werden andere Interpolationsalgorithmen bevorzugt etwa lineare oder replizierende Interpo­ lation.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine Vorrichtung und ein Verfahren zur Durchführung einer Interpolation mit kubischer Faltung für ein digitales Bild ohne die eingangs genannten Nachteile bereitzustellen.
Der vorliegenden Erfindung liegt weiterhin die Aufgabe zugrunde, eine Interpo­ lationsvorrichtung und ein Verfahren bereitzustellen, die bzw. das zur Durchführung einer Vielzahl von Interpolationsarten verwendet werden kann, etwa kubische Faltung, quadratische, lineare und replizierende Interpolation.
Die wird erfindungsgemäß dadurch erreicht, daß eine digitale Bildverarbei­ tungsvorrichtung und ein Verfahren zum Interpolieren eines eingegebenen di­ gitalen Bildes bereitgestellt werden, das als Reihe beabstandeter Pixelwerte ausgedrückt wird, wobei die Interpolation zwischen den beabstandeten Pixel­ werten zur Darstellung an ausgegebenen Pixelorten durchgeführt wird, die durch ein vorgegebenes Inkrement voneinander getrennt sind. In einem Spei­ cher wird mindestens eine Menge genauer Koeffizienten gespeichert, die einen Kern bestimmt. Eine Menge genauer Koeffizienten wird an jedem Ausgabe­ pixelort ermittelt, und zwar auf Grundlage des 1.) Abstands zwischen eingege­ benen Pixelwerten, 2.) dem vorgegebenen Inkrement zwischen ausgegebenen Orten und 3.) dem gewünschten Interpolationsverfahren an jedem ausgege­ benen Pixelort. Die eingegebenen digitalen Bildpixelwerte werden interpoliert, indem die Reihe der beabstandeten Pixelwerte mit den genauen Koeffizienten beaufschlagt wird.
Gemäß einem anderen Ausführungsbeispiel der vorliegenden Erfindung führt die Vorrichtung eine zweidimensionale Interpolation eines eingegebenen digitalen Bildes durch, das als vertikal beabstandete Reihen horizontal beab­ standeter Pixelwerte dargestellt wird, wobei die Interpolation zwischen den ver­ tikal beabstandeten Reihen und zwischen den horizontal beabstandeten Pi­ xelwerten in den Reihen zur Darstellung an ausgegebenen Pixelorten durchge­ führt wird, die durch vorgegebene vertikale und horizontale Inkremente ge­ trennt sind. Ein Speicher speichert eine Menge genauer Koeffizientenglei­ chungen, die mindestens einen Kern für vertikale Interpolation und einen Kern für horizontale Interpolation bestimmen. Eine Menge genauer Koeffizienten wird an jedem ausgegebenen Pixelort auf der Basis 1.) eines vertikalen Ab­ stands zwischen Reihen eingegebener Pixelwerte, 2.) des horizontalen Ab­ stands zwischen eingegebenen Pixelwerten in den Reihen, 3.) des vorgegebe­ nen vertikalen Inkrements zwischen Reihen ausgegebener Pixelorte, 4.) des vorgegebenen horizontalen Inkrements zwischen Reihen ausgegebener Pixel­ orte, 5.) des gewünschten Verfahrens der vertikalen Interpolation an jedem ausgegebenen Pixelort und 6.) des gewünschten Verfahrens der horizontalen Interpolation an jedem ausgegebenen Pixelort ermittelt. Die ausgegebenen digitalen Bildpixelwerte werden berechnet, indem die Folge der beabstandet eingegebenen Pixelwerte mit den genauen Koeffizienten beaufschlagt wird. Die Vielzahl der Kernarten umfaßt Kerne zur Durchführung kubischer Faltung, linearer, quadratischer und replizierender Interpolation.
Gemäß einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung speichert der Speicher eine Vielzahl unterschiedlicher, genauer Koeffizienten, wobei jeder Koeffizient eine unterschiedliche Kernart bestimmt, einschließlich Kernen zur Durchführung kubischer Faltung, linearer, quadratischer und repli­ zierender Interpolation. Die Bestimmungsmittel umfassen Mittel zum Auswäh­ len einer der gespeicherten Mengen von Interpolationskoeffizienten.
Die Erfindung wird im folgenden anhand in der Zeichnung dargestellter Ausfüh­ rungsbeispiele näher erläutert.
Es zeigen
Fig. 1 ein Blockschaltbild einer erfindungsgemäßen Interpolationsvorrich­ tung;
Fig. 1A ein Blockschaltbild einer in Fig. 1 gezeigten Schaltungs- und Steuerungseinheit;
Fig. 2 einen den durch kubisch gefaltete Interpolation bestimmten Kern darstellenden Graphen;
Fig. 3 einen zur Beschreibung des Interpolationsverfahrens durch kubische Faltung verwendbaren Graphen;
Fig. 4 ein schematisches Blockschaltbild der Anordnung des Interpolati­ onskoeffizientenspeichers;
Fig. 5 einen den durch lineare Interpolation bestimmten Kern darstellenden Graphen;
Fig. 6 einen den durch replizierende Interpolation bestimmten Kern dar­ stellenden Graphen;
Fig. 7 ein Schaubild zum Veranschaulichen der Anordnung eines ausge­ gebenen Beispielbildes;
Fig. 8 ein schematisches Blockschaltbild zur Darstellung der Anordnung der Eingabezeilensteuereinheit und des Multiplexers, die Teil der Interpolationsvorrichtung aus Fig. 1 sind;
Fig. 9 ein Ablaufdiagramm zur Darstellung der Steuerung der Eingabezei­ lensteuereinheit aus Fig. 8;
Fig. 10 ein Ablaufdiagramm zur Darstellung der Steuerung dem vertikalen Interpolators; und
Fig. 11 ein Ablaufdiagramm zur Darstellung des Betriebs der Steuereinheit für die horizontale Interpolation.
Die vorliegende Erfindung wird insbesondere mit Bezug auf Elemente be­ schrieben, die Teil einer erfindungsgemäßen Vorrichtung sind oder mit dieser direkt zusammenarbeiten. Nicht ausdrücklich gezeigte oder beschriebene Ele­ mente können natürlich verschiedene Formen annehmen, die Fachleuten be­ kannt sind.
Fig. 1 zeigt ein schematisches Blockschaltbild mit einer Interpolationsvorrich­ tung gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung. Die Interpolationsvorrichtung empfängt digitale Bildpixeldaten P, wie z. B. aus einem Bildfeldspeicher (nicht dargestellt), und zwar jeweils zeilenweise von einem Eingang 10, und erzeugt jeweils Zeile für Zeile über Ausgang 12 interpo­ lierte, digitale Bilddaten P′′. Die interpolierten, digitalen Bilddaten können in einen Drucker (nicht dargestellt) eingespeist oder zur zukünftigen Verwendung gespeichert werden, etwa in einem zweiten Bildfeldspeicher (nicht dargestellt).
Die Interpolationsvorrichtung umfaßt einen vertikalen Interpolator 14, einen horizontalen Interpolator 16, einen vertikalen Interpolationskoeffizientenspei­ cher 18 mit einer Vielzahl eindimensionaler Interpolationskerne, einen hori­ zontalen Interpolationskoeffizientenspeicher 20 mit ebenfalls einer Vielzahl eindimensionaler Interpolationskerne, einen vertikalen Interpolationseingabe­ puffer 22 und einen vertikalen Interpolationsausgabepuffer 24.
Eine Schaltungs- und Steuerungseinheit 26, die detaillierter in Fig. 1A darge­ stellt ist, umfaßt einen Schaltungs- und Steuerungsbereich, eine Eingabezei­ lensteuereinheit, eine vertikale Interpolationssteuereinheit und eine horizontale Interpolationssteuereinheit. Im Betrieb empfängt Schaltungs- und Steue­ rungseinheit 26 Anweisungen hinsichtlich der Anzahl und Größe der auf einem bestimmten Ausgabeformat auszugebenden Eingabebilder. Es werden Werte für die Eingabezeilensteuereinheit, die horizontalen und vertikalen Koeffizien­ ten, die Steuerung des vertikalen Interpolationsausgabepuffers und die Anzahl der ausgegebenen Pixel und ausgegebenen Zeilen geladen. Die Eingabezei­ lensteuereinheit von Schaltungs- und Steuerungseinheit 26 füllt ,den vertikalen Interpolationseingabespeicher 22 und unterhält ordnungsgemäß unabhängige Lese- und Schreibzeiger zusammen mit der Steuerung eines Multiplexers 28.
Der vertikale Interpolator 14 ruft Daten von der Eingabezeilensteuereinheit und vertikale Koeffizienten vom vertikalen Interpolationskoeffizientenspeicher 18 ab. Die vertikale Interpolation führt die Interpolation in einer Spaltenrichtung durch Multiplizieren einer Vielzahl eingegebener Pixeldatenspalten mit der entsprechenden Vielzahl von Interpolationskoeffizienten und addiert die Produkte, um interpolierte Werte P′ zu erzeugen.
Die interpolierten Pixelwerte P′ des vertikalen Interpolators 14 werden an die zweizeiligen Interpolationausgabepuffer 24 übergeben. Die Ausgabe des verti­ kalen Interpolators wird zweizeilig gepuffert, so daß eine Reihe interpolierter Daten in den Speicher geschrieben werden kann, während eine andere Reihe ausgelesen wird. Wie aus dem Stand der Technik bekannt ist, wird die dop­ pelte Pufferung durch ein Zeilenpufferpaar und durch Wechsel der nicht ver­ wendeten Pufferausgabe zwischen drei Zuständen erzeugt.
Der horizontale Interpolator 16 übernimmt Reihen interpolierter Pixeldaten aus den Puffern 24 für die vertikale Interpolationsausgabe und verzögert die Daten mit einer 4-Pixel-Leitung 30 um einen Pixeltakt zu jeder Stufe des horizontalen Interpolators. Der horizontale Interpolator erzeugt Reihen von horizontal inter­ polierten Daten durch Multiplizieren der aus den Puffern für die vertikale Inter­ polationsausgabe 24 ausgelesenen verzögerten Pixelwerte um ihren entspre­ chenden Interpolationskoeffizientenkern, der aus dem horizontalen Interpolati­ onskoeffizientenspeicher 20 abgerufen wurde, und summiert die Produkte mit einer Operation, die mit der Operation vergleichbar ist, die durch den vertikalen Interpolator 14 durchgeführt wurde.
Nachfolgend wird die eindimensionale Interpolation durch Verwendung der in Speicher 18 und 26 gespeicherten Koeffizienten beschrieben. Die Interpolation kann folgendermaßen ausgedrückt werden:
wobei P′(x) den interpolierten Wert darstellt, und C(x-xk/h) der Wert des Inter­ polationskerns an Ort (x-xk) ist; h ist das Abtastinkrement der interpolierten Funktion, xk stellt den Ort der Abtastungen eingegebener Daten dar (auch als Interpolationsknoten bezeichnet), und Pk sind die Werte der eingegebenen Daten an den Interpolationsknoten.
Der Interpolationskern ist eine stetige Funktion, die abgetastete Daten in eine stetige Funktion umsetzt, wobei die resultierende stetige Funktion erneut abge­ tastet werden kann, um die interpolierten Abtastwerte zu erzielen. Bei der kubi­ schen Faltung wird ein Kern verwendet, der durch stückweise kubische Po­ lynome bestimmt ist, die wiederum auf den Subintervallen (-2,-1), (-1,0), (0,1) und (1,2) bestimmt sind. Außerhalb des Intervalls (-2,2) ist der Kern null.
Zur Auswertung der Gleichung (1) für den kubischen Faltungskern sind vier aufeinanderfolgende Datenabtastungen von den Originalbilddaten erforderlich. Fig. 2 ist eine Kurve, die den kubischen Faltungskern 34, definiert im Intervall (-2,2), zeigt. Der Maßstab der X-Achse in Fig. 2 ist der Beabstandung der Da­ tenabtastungen im Originalbild äquivalent.
Fig. 3 zeigt, wie der Interpolationskern 34 benutzt wird, um einen interpolierten Wert an Ort x zu berechnen. Vier aufeinanderfolgende Datenwerte von den Originalbilddaten werden als A, B, C und D gezeigt. Um einen interpolierten Wert an Ort x zu erzeugen, wird Interpolationskern 34 an x zentriert, und die Werte des Kernbereichs werden an den Orten der Originaldatenabtastungen berechnet. Diese Werte CA, CB, CC und CD sind die Interpolationskoeffizienten. Der interpolierte Wert an x ist:
P(x) = (A*CA)+(B*CB)+(C*CC)+(D*CD) (2)
Auf diese Weise kann ein Wert an einem beliebigen Ort zwischen den Origi­ nalabtastpunkten B und C berechnet werden. Um zu vermeiden, daß die Werte der Interpolationskoeffizienten jedesmal berechnet werden müssen, wenn ein interpolierter Wert erzeugt wird, werden die Koeffizientenwerte von den den Kern definierenden stückweisen kubischen Polynomen berechnet und in verti­ kalen und horizontalen Interpolationskoeffizientenspeichern 18 bzw. 20 ge­ speichert (siehe Fig. 1). Das bevorzugte Ausführungsbeispiel enthält eine Software-"Schicht", die die gewünschten Antworten entgegennimmt und die entsprechenden Koeffizientenwerte mit den in den Werten codierten richtigen Steuerbits erzeugt.
Gemäß einem bevorzugten Ausführungsbeispiel der Erfindung werden die ge­ nauen Koeffizienten an jedem ausgegebenen Pixelort basierend auf 1.) dem Abstand zwischen Eingabepixelwerten, 2.) dem vorgegebenen Inkrement zwi­ schen Ausgabepixelorten und 3.) einem Kern berechnet. Die Koeffizienten werden mit einer Genauigkeit von 16 Bit berechnet und von der Hardware auf zwölf Bit abgeschnitten. Die Koeffizienten werden in vier Gruppen nach hori­ zontal und vertikal unterteilt, die die vier Segmente des Kerns zwischen (-2,-1), (-1,0), (0,1) und (1,2) darstellen. Die vier Gruppen werden in acht Speicher­ banken gespeichert, vier Speicherbanken für vertikale Koeffizienten, vier Speicherbanken für horizontale Koeffizienten, die durch die Schaltungs- und Steuerungseinheit simultan adressiert werden können. Die Anordnung der In­ terpolationskern-Transformationstabellen ist in Fig. 4 dargestellt, wobei die erste Speicherbank 36 die Koeffizienten enthält, die den Kern in Intervall (-2,-1) definieren, der in der Figur grafisch dargestellt ist. Die zweite Speicherbank 38 enthält gleichfalls die Koeffizientengruppe, die den Teil des Faltungskerns aus (-1,0) darstellt, und so weiter für Speicherbanken 40 und 42. Wie in Fig. 4 ge­ zeigt erfolgt eine Leseanforderung simultan an alle vier Speicherbanken, um die Koeffizienten C₁, C₂, C₃ und C₄ zu erzeugen. Der Speicher kann effizienter genutzt werden, wenn sich die Koeffizienten in einem gewissen Muster wie­ derholen. Ein Bit im Koeffizientenspeicher wird in die Schaltungs- und Steue­ rungseinheit 26 eingespeist, um zu ermitteln, wann der Koeffizientenspeicher­ zeiger auf den Anfang der Koeffizienten neu zu initialisieren ist. Das Vorhan­ densein eines Wiederholungsmusters wird durch folgende Gleichung ermittelt:
R = (Quotient*i)/(Integer)(Quotient*i) = 1
Der Wiederholungswert wird durch folgende Gleichung berechnet:
Quotient = N/(LCD)
wobei N die Anzahl der eindeutigen Koeffizienten ist und LCD der kleinste ge­ meinsame Nenner.
Mit erneutem Bezug auf Fig. 1 können die Interpolationskern-Transformati­ onstabellen Kerne für eine beliebige Zahl anderer Interpolationsarten enthal­ ten, etwa lineare oder replizierende Interpolation, und zwar zusätzlich zu unter­ schiedlichen Arten kubischer Faltung. Bei der bevorzugten Ausführungsform der Erfindung enthalten die vertikalen und horizontalen Interpolationskoeffizientenspeicher 18 bzw. 20 zwei kubische Faltungskerne, einer mit a=-1 (als 44 bezeichnet) und einer mit a=-0,5 (als 46 bezeichnet), wobei "a" eine Bedingung ist, die auf die Interpolationskernpolynome ange­ wandt wird, wenn der Kern wie folgt definiert ist:
Die vertikalen und horizontalen Interpolationskoeffizientenspeicher 18 und 20 enthalten zudem einen Kern für lineare Interpolation (mit 48 bezeichnet) und einen Kern für replizierende Interpolation (mit 50 bezeichnet). Der lineare In­ terpolationskern 40 ist in Fig. 5 gezeigt und grafisch als sägezahnförmige Welle im Intervall (-1,1) und Null anderweitig dargestellt. Replizierkern 50 ist in Fig. 6 gezeigt und grafisch als eine Stufenfunktion mit einem Wert von eins im Intervall (-2,-1) und Null anderweitig dargestellt.
Mit erneutem Bezug auf Fig. 1 wählt Schaltungs- und Steuerungseinheit 26 den durch vertikale und horizontale Interpolatoren 14 bzw. 16 adressierten Speicher in Reaktion auf eine die gewünschte Interpolationsprozedur bezeich­ nende Bedienereingabe aus. Beispielsweise ist bekannt, daß die replizierende Interpolation bei Bildern bessere Leistungen erbringt als bei Text. Somit kann der nächstbenachbarte Kern zur Durchführung der Interpolation für Text­ bereiche eines Bildes ausgewählt werden.
Das Abtastinkrement "h" der interpolierten Funktion wird durch einen Benutzer ermittelt, indem zuerst die Vergrößerungsfaktoren Mx und My, definiert als die Verhältnisse x′/x und y′/y vom Benutzer ermittelt werden, wobei x die Anzahl der Pixel im Originalbild in horizontaler Richtung ist, und x′ die Anzahl der auf dem Ausgabedrucker zur Ausgabe des Originals verfügbaren Pixel ist. Die Anzahl der gewünschten Pixel auf dem Ausgabemedium wird anhand des Aus­ gabeformats ermittelt, einschließlich der Breite des Ausgabemediums und der Anzahl der eingegebenen Bilder, die auf der Seite im Ausgabebild gedruckt werden sollen. Gleichermaßen stellt y die Anzahl der Pixel in einem eingegebe­ nen Bild in vertikaler Richtung dar und y′ die Anzahl der gewünschten Pixel zum Drucken des Bildes in vertikaler Richtung. Das Abtastinkrement h wird fol­ gendermaßen ermittelt:
Möglicherweise sind die Abtastinkremente aufgrund der Tatsache, daß die einzelnen Pixel möglicherweise nicht die gleichen horizontalen und vertikalen Abmessungen haben, nicht identisch. h-Werte kleiner eins stellen eine Vergrö­ ßerung dar, Werte größer eins stellen eine Verkleinerung dar.
In einem bevorzugten Ausführungsbeispiel wird das Ausgabebildformat durch den Benutzer gewählt und umfaßt eine oder mehrere Bereiche. Es gibt zwei Arten von Bereichen: Bild und Text. Jeder Textbereich wird nach der Höhe des Bereichs in Pixel und der Anzahl der Bilder im Bereich angegeben. Minimale horizontale und vertikale Ränder und Trennungen zwischen den Bildern wer­ den automatisch durch die Schaltungs- und Steuerungseinheit 26 festgelegt. In Fig. 7 wird ein Beispiel eines Ausgabeformats gezeigt. Das Ausgabebild 52 umfaßt einen ersten Bereich 54, der y₁-Pixel hoch ist und drei Bilder 56, 58 und 60 aufweist, einen zweiten Bereich 62, der y₂-Pixel hoch ist und zwei Bilder 64 und 66 aufweist, und drei Textbereiche 68, 70 und 72, jeder y₃-Pixel hoch.
Mit Bezug auf Bild 8 lädt die in Fig. 1A als Teil der Schaltungs- und Steue­ rungseinheit 26 gezeigte Eingabezeilensteuereinheit eine neue Zeile, wenn der vertikale Interpolator 14 anzeigt, daß eine weitere Zeile benötigt wird, bevor die nächste Zeile verarbeitet werden kann. Die Verschiebung der steti­ gen Funktion aus den abgetasteten Daten wird durch Auswahl der Koeffizien­ ten ermittelt. Eine Entscheidung, von einem bestimmten Interpolationsmodus zu einem anderen bestimmten Modus umzuschalten, hängt von der Anzahl der geladenen Datenzeilen ab. Insbesondere, 1.) wenn die erste Datenzeile ver­ fügbar ist, steht Replizierung als ein Ausgabeformat zur Verfügung, 2.) wenn die zweite Datenzeile verfügbar ist, sind replizierende oder lineare Interpolation verfügbar, 3.) wenn die dritte Zeile verfügbar ist, sind replizierende, lineare oder quadratische Interpolation verfügbar, und wenn 4.) die vierte Zeile und weitere Zeilen zur Verfügung stehen, sind replizierende, lineare, quadratische Interpolation oder kubische Faltungsinterpolation die verfügbaren Formate. Eingabezeilensteuereinheit 74 lädt weiterhin Zeilen aus dem Bildfeldspeicher anhand des in Fig. 9 gezeigten Algorithmus, bis der vertikale Interpolator ein Datenende anzeigt. Es gibt fünf Eingabezeilenpuffer 76-80, die es ermöglichen, daß die nächste Zeile während einer Zeilenzeit geladen wird, ohne den Interpolator zu verzögern.
Speziell in Fig. 9 ist gezeigt, daß die Eingabezeilensteuereinheit den Puffer­ zeiger an 82 initialisiert. Wenn keine Zeilenanforderung empfangen wird (Test 84), überprüft die Steuereinheit, ob weitere Daten vorhanden sind (Test 86). Wenn eine Zeilenanforderung empfangen wird, wird eine Datenzeile am Funktionsblock 88 in den vertikalen Eingabepuffer 22 eingegeben. Der Puffer­ zeiger wird an 90 inkrementiert, und die Eingabezeilensteuereinheit wartet auf eine weitere Zeilenanforderung.
Die durch Schaltungs- und Steuerungseinheit 26 bereitgestellte vertikale In­ terpolatorsteuereinheit ist in Fig. 10 gezeigt. Während eines Initialisierungsprozesses, auf den in Funktionsblock 92 in Fig. 10 Bezug genommen wird, sendet Schaltungs- und Steuerungseinheit 26 zunächst die Bereichsparameter für den ersten Bereich, einschließlich der Linienanzahl in dem Bereich, der Bildanzahl in dem Bereich und der Anzahl der pro Bild ausgegebenen Pixel an den vertikalen Interpolator. Die Schaltungs- und Steuerungseinheit wählt dann an Funktionsblock 94 die zugehörigen Koeffizienten.
Als nächstes fordert die Schaltungs- und Steuerungseinheit 26 an Funktions­ block 96 eine Datenreihe vom Interpolationseingabepuffer 22 an. Die Schal­ tungs- und Steuerungseinheit fährt bei 98 mit der Anforderung einer Zeile aus dem Eingabepuffer fort, bis genügend Datenzeilen vorhanden sind, um die Interpolation zu beginnen. Wenn genügend Datenzeilen vorhanden sind, ist der Interpolationsprozeß abgeschlossen.
Wenn eine Zeile von der Schaltungs- und -Steuerungseinheit angefordert wird, wie von Funktionsblock 100 ermittelt, weist die Schaltungs- und Steuerungs­ einheit den vertikalen Interpolator an Block 102 an, die Interpolation zu begin­ nen und eine Datenreihe aus der Eingabezeilensteuereinheit abzurufen. Die vier Interpolationskoeffizienten C₁-C₄ aus dem vertikalen Interpolationskoeffizi­ entenspeicher 18 werden parallel in den vertikalen Interpolator 14 eingegeben. Der vertikale Interpolator berechnet einen interpolierten Pixelwert P′ folgen­ dermaßen:
P′ = (C₁*P₁)+(C₂*P₂)+(C₃*P₃)+(C₄*P₄)
Die Interpolation wird für eine ganze Zeile fortgesetzt und hält dann an, um auf die nächste Zeilenanforderung zu warten. Wenn die nächste Zeile angefordert wird, wird der Interpolator neu gestartet.
Wenn bei Block 104 ein Bereichsendesignal von Schaltungs- und Steuerungs­ einheit 26 empfangen wird, prüft die vertikale Interpolationssteuereinheit an Block 106, ob der letzte Bereich im Bild interpoliert worden ist. Falls das nicht der Fall ist, wird eine Initialisierungsoperation für den nächsten Bereich durch­ geführt, indem zu Funktion 94 zurückgekehrt wird, und der Prozeß wird dann wiederholt. Wenn der letzte Bereich abgeschlossen ist, wird der Prozeß been­ det. Falls an Block 104 kein Bereichsendesignal empfangen wird, wird an Block 102 nach der nächsten Zeilenanforderung gesucht.
Der horizontale Interpolator 16 wird jetzt detaillierter mit Bezug auf Fig. 11 be­ schrieben. Die Schaltungs- und Steuerungseinheit sendet die Bereichspara­ meter für den ersten Bereich, einschließlich der Anzahl Zeilen im Bereich, der Anzahl Bilder im Bereich und der Anzahl ausgegebener Pixel pro Bild an den horizontalen Interpolator. Die horizontale Interpolatorsteuereinheit wählt zu­ nächst an Block 110 die vom Benutzer angeforderte Interpolationsart und die zugehörigen Koeffizienten. Wenn im. vertikalen Interpolationsausgabepuffer 24 Daten verfügbar sind, fordert die Steuereinheit die benötigte Pixelanzahl (wie von der Schaltungs- und Steuerungseinheit 26 und dem Bedarf der gewählten Koeffizienten ermittelt) vom vertikalen Interpolationsausgabepuffer 24 an. Hierdurch wird die Initialisierung durch Anforderung der richtigen Pixelanzahl abgeschlossen.
Der horizontale Interpolator 16 wird aktiviert, und die horizontalen Koeffizienten aus Koeffizientenspeicher 20 werden mit den Pixeldaten im Interpolator zusammengebracht, um P′′ zu berechnen und dann auszugeben. Dies wird für alle Pixel der vorhandenen Zeile wiederholt, wobei zusätzliche Pixeldaten wie erforderlich geholt werden. Am Ende einer Zeile wird an Block 112 eine Prü­ fung auf ein "Bereichsende"-Signal durchgeführt. Wenn dieses von Schal­ tungs- und Steuerungseinheit 26 empfangen wird, prüft die horizontale Interpo­ lationssteuereinheit an Block 114, ob der letzte Bereich im Bild interpoliert wor­ den ist. Falls das nicht der Fall ist, wird eine Initialisierungsoperation für den nächsten Bereich durch Rückkehr zu Funktion 110 durchgeführt, und der Pro­ zeß wird wiederholt. Wenn der letzte Bereich abgeschlossen ist, wird der Pro­ zeß beendet. Wenn an Block 112 kein Bereichsendesignal empfangen wird, wird an Block 116 der nächste Interpolationsausgabepuffer ausgewählt.
Bei der quadratischen Interpolation ist die Anzahl der ausgegebenen Pixel kleiner als die Anzahl der eingegebenen Pixel, und es wird eine gültige Daten­ markierung erzeugt, um dem nachgelegenen Schreiber anzuzeigen, daß dieser Fall vorliegt. Diese Funktion ist nach dem Stand der Technik bekannt, wobei die Wahl unter mehreren herkömmlichen Verfahren besteht.
Die erfindungsgemäße Interpolationsvorrichtung ist für die Vergrößerung und Verkleinerung digitaler Bilder verwertbar, wie z. B. für diagnostische Röntgen­ bilder. Die mit der Interpolationsvorrichtung erzielbaren Vorteile bestehen darin, daß eine Interpolation mit hoher Auflösung praxisgerecht bei minimaler Koeffizientenspeichergröße durchgeführt werden kann. Ein weiterer erzielbarer Vorteil besteht darin, daß es aufgrund der im Vergleich mit den dem Stand der Technik entsprechenden zweidimensionalen Koeffizientenspeichern kleineren Koeffizientenspeichergröße möglich ist, mehrere Interpolationskerne im Speicher abzuspeichern, wodurch ein einfaches Umschalten zwischen unter­ schiedlichen Interpolationsarten ermöglicht wird.
Die Erfindung wurde detailliert mit besonderem Bezug auf bevorzugte Ausfüh­ rungsbeispiele beschrieben, aber natürlich können Änderungen und Ausgestal­ tungen vorgenommen werden, ohne dabei den Schutzumfang der Erfindung zu verlassen.

Claims (6)

1. Digitale Bildverarbeitungseinrichtung zum Interpolieren eines eingegebe­ nen digitalen Bildes, das als eine Folge beabstandeter Pixelwerte darge­ stellt ist, wobei die Interpolation zwischen den beabstandeten Pixelwerten zur Darstellung an Ausgabepixelorten durchgeführt wird, die durch ein vorgegebenes Inkrement getrennt sind, gekennzeichnet durch
Speicher (18; 20) zur Speicherung mindestens einer Menge genauer Koeffizienten, die einen Kern bestimmt;
Mittel zum Bestimmen einer Menge genauer Koeffizienten an jedem Aus­ gabepixelort auf Grundlage des 1.) Abstands zwischen Eingabepixelwer­ ten, 2.) dem vorgegebenen Inkrement zwischen Ausgabepixelorten und 3.) einem gewünschten Interpolationsverfahren an jedem Ausgabepixel­ ort;
Mittel (14, 16) zum Interpolieren der eingegebenen digitalen Bildpixel­ werte, indem die Reihe der beabstandeten Pixelwerte mit den genauen Koeffizienten beaufschlagt wird.
2. Digitale Bildverarbeitungseinrichtung nach Anspruch 1, dadurch gekenn­ zeichnet, daß der Speicher eine Vielzahl unterschiedlicher Mengen ge­ nauer Koeffizienten speichert, von denen jede eine unterschiedliche, eindeutige Kernart bestimmt, und daß diese Bestimmungsmittel Mittel zum Auswählen einer der gespeicherten Mengen genauer Koeffizienten umfassen.
3. Digitale Bildverarbeitungseinrichtung nach Anspruch 2, dadurch gekenn­ zeichnet, daß unterschiedliche, eindeutige Kernarten Kerne zur Durch­ führung kubischer Faltungsinterpolation, linearer, quadratischer und repli­ zierender Interpolation umfassen.
4. Digitale Bildverarbeitungseinrichtung zum zweidimensionalen Interpolie­ ren eines eingegebenen digitalen Bildes, das als vertikal beabstandete Reihen von horizontal beabstandeten Pixelwerten ausgedrückt wird, wo­ bei die Interpolation zwischen den vertikal beabstandeten Reihen und zwischen den horizontal beabstandeten Pixelwerten in den Reihen zur Darstellung an Ausgabepixelorten durchgeführt wird, die durch vorgege­ bene vertikale und horizontale Inkremente getrennt sind, gekennzeichnet durch:
Speicher (18, 20) zum Speichern einer mindestens einen Kern zur vertika­ len Interpolation und einen Kern zur horizontalen Interpolation bestim­ menden Menge genauer Koeffizienten;
Mittel zum Bestimmen einer Menge genauer Koeffizienten an jedem Aus­ gabepixelort auf Grundlage des 1.) vertikalen Abstands zwischen Reihen von Eingabepixelwerten, 2.) dem horizontalen Abstand zwischen Einga­ bepixelwerten in den Reihen, 3.) dem vorgegebenen vertikalen Inkrement zwischen Reihen von Ausgabepixelorten, 4.) dem vorgegebenen horizon­ talen Inkrement zwischen Reihen von Ausgabepixelorten, 5.) einem ge­ wünschten Verfahren zur vertikalen Interpolation an jedem Ausgabepixel­ ort und 6.) ein gewünschtes Verfahren zur horizontalen Interpolation an jedem Ausgabepixelort und
Mittel (14, 16) zum Interpolieren der eingegebenen digitalen Bildpixel­ werte, indem die Reihe der beabstandeten Pixelwerte mit den genauen Koeffizienten beaufschlagt wird.
5. Digitale Bildverarbeitungsvorrichtung nach Anspruch 4, dadurch gekenn­ zeichnet, daß der Speicher (18, 20) eine Vielzahl genauer Koeffizienten speichert, die eine Vielzahl von Kernarten zum vertikalen Interpolieren und eine Vielzahl von Kernarten zum horizontalen Interpolieren bestim­ men, und daß diese Bestimmungsmittel Mittel (26) zum Auswählen eine der gespeicherten Mengen genauer Koeffizienten zum vertikalen Interpo­ lieren und eine der gespeicherten Mengen genauer Koeffizienten zum horizontalen Interpolieren umfassen.
6. Digitale Bildverarbeitungsvorrichtung nach Anspruch 4 mit Interpolati­ onsmitteln (14, 16), gekennzeichnet durch
vertikale Interpolationsmittel (14) zum Multiplizieren von eingegebenen digitalen Bildpixelwerten einer Vielzahl aufeinanderfolgender Spalten von eingegebenen digitalen Bildpixelwerten mit entsprechenden genauen Koeffizienten und Summieren der Produkte zum Erzeugen vertikal inter­ polierter Pixelwerte; und
horizontale Interpolationsmittel (16) zum Multiplizieren vertikal interpolier­ ter Pixelwerte einer Vielzahl aufeinanderfolgender Reihen vertikal inter­ polierter Pixelwerte mit entsprechenden genauen Koeffizienten und Sum­ mieren der Produkte zum Erzeugen von Reihen interpolierter Pixelwerte.
DE1996101564 1995-01-20 1996-01-17 Digitale Bildinterpolationsvorrichtung mit einer Vielzahl von Interpolationskernen Withdrawn DE19601564A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US37588295A 1995-01-20 1995-01-20

Publications (1)

Publication Number Publication Date
DE19601564A1 true DE19601564A1 (de) 1996-07-25

Family

ID=23482755

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1996101564 Withdrawn DE19601564A1 (de) 1995-01-20 1996-01-17 Digitale Bildinterpolationsvorrichtung mit einer Vielzahl von Interpolationskernen

Country Status (3)

Country Link
JP (1) JPH08251400A (de)
DE (1) DE19601564A1 (de)
GB (1) GB2297216B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10009536A1 (de) * 2000-02-29 2001-09-06 Cgk Comp Ges Konstanz Mbh Verfahren und Vorrichtung zur Transformation von Bildern in zwei Koordinatensystemen

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0157566B1 (ko) * 1995-09-30 1998-11-16 김광호 고화질을 위한 보간방법 및 장치
JP3873390B2 (ja) * 1996-09-04 2007-01-24 株式会社デンソー 酸素センサー
US6768559B1 (en) * 1998-04-20 2004-07-27 Seiko Epson Corporation Medium on which printing control program is recorded, printing controller, and printing controlling method
AU748831B2 (en) * 1998-12-18 2002-06-13 Canon Kabushiki Kaisha A modified kernel for image interpolation
AU729482B2 (en) * 1998-12-18 2001-02-01 Canon Kabushiki Kaisha Image interpolation with a continuous two-dimensional kernel
JP2001014454A (ja) 1999-06-29 2001-01-19 Sharp Corp 画像処理装置
GB2356506A (en) * 1999-09-25 2001-05-23 Eastman Kodak Co Multiple dimension interpolator
US7496242B2 (en) 2004-12-16 2009-02-24 Agfa Inc. System and method for image transformation
US7848597B2 (en) * 2006-09-08 2010-12-07 Telefonaktiebolaget Lm Ericsson (Publ) Data processing
JP2018088098A (ja) 2016-11-28 2018-06-07 富士通株式会社 情報処理装置、情報処理方法、およびプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69028075T2 (de) * 1989-06-16 1997-03-13 Eastman Kodak Co Digitaler bildinterpolator
US5008752A (en) * 1989-06-16 1991-04-16 Eastman Kodak Company Digital image interpolator with multiple interpolation algorithms

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10009536A1 (de) * 2000-02-29 2001-09-06 Cgk Comp Ges Konstanz Mbh Verfahren und Vorrichtung zur Transformation von Bildern in zwei Koordinatensystemen

Also Published As

Publication number Publication date
GB2297216A (en) 1996-07-24
GB9600931D0 (en) 1996-03-20
JPH08251400A (ja) 1996-09-27
GB2297216B (en) 1999-11-24

Similar Documents

Publication Publication Date Title
DE69728247T2 (de) Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem
DE3202365C2 (de) Datenspeicher mit Fensterabtastung
DE69724512T2 (de) Texturabbildungssystem -medium und -verfahren
DE69535098T2 (de) Verfahren und -vorrichtung zur Suche von Bildern in einer Datenbank
DE3419063C2 (de)
DE69535231T2 (de) VERFAHREN ZUR INTEGRATION EINES Bildtextursignalspeicher UND INTERPOLATIONSLOGIK
DE3619427C2 (de)
DE3417195C2 (de)
DE3629984C2 (de)
DE60014723T2 (de) System zur Erzeugung eines zusammengesetzten Bildes
DE3628349A1 (de) System zur verarbeitung von signalen nach einem pyramiden-algorithmus in realzeit
DE3804938A1 (de) Bildverarbeitungseinrichtung
DE2835689A1 (de) Anordnung zur veraenderung der aufloesung bei der bild-datenerfassung und -uebertragung
DE3144822A1 (de) Anordnung und verfahren zum speichern und wiedergewinnen von daten in einem ultraschallabtastsystem
DE3640369C2 (de)
WO2008019867A2 (de) Bildverarbeitungsvorrichtung für farb-bilddaten und verfahren zur bildverarbeitung von farb-bilddaten
DE19601564A1 (de) Digitale Bildinterpolationsvorrichtung mit einer Vielzahl von Interpolationskernen
DE19806985B4 (de) Organisationsverfahren für volumetrische Daten, das effiziente Cache-Aufbereitungsbeschleunigungen und einen effizienten Graphik-Hardwareentwurf ermöglicht
DE69921608T2 (de) Verfahren und vorrichtung zum zoomen von digitalen bilddateien
DE4234985C2 (de) Verfahren zum Transformieren von Farbsignalen und Vorrichtung zur Durchführung des Verfahrens
DE10156040B4 (de) Verfahren, Vorrichtung und Computerprogramm-Produkt zum Entzerren einer eingescannten Abbildung
EP0625762B1 (de) Verfahren zum Entzerren von Röntgenaufnahmen und Anordnung zur Durchführung des Verfahrens
DE4215094C2 (de) Bildverarbeitungsverfahren und -vorrichtung
DE4437385A1 (de) Verfahren und Vorrichtung zur Bildkorrektur
DE10250837A1 (de) Verfahren zur Kontrastanpassung mehrerer Bilder des gleichen Objektes oder der gleichen Szene an ein gemeinsames Referenzbild

Legal Events

Date Code Title Description
8128 New person/name/address of the agent

Representative=s name: WAGNER & GEYER PARTNERSCHAFT PATENT- UND RECHTSANW

8141 Disposal/no request for examination