DE10146416A1 - Verfahren und Anordnung zur effizienten Berechnung polynombasierter Koordinatentransformationen - Google Patents

Verfahren und Anordnung zur effizienten Berechnung polynombasierter Koordinatentransformationen

Info

Publication number
DE10146416A1
DE10146416A1 DE10146416A DE10146416A DE10146416A1 DE 10146416 A1 DE10146416 A1 DE 10146416A1 DE 10146416 A DE10146416 A DE 10146416A DE 10146416 A DE10146416 A DE 10146416A DE 10146416 A1 DE10146416 A1 DE 10146416A1
Authority
DE
Germany
Prior art keywords
polynomial
calculation
polynomials
coordinates
stage
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
DE10146416A
Other languages
English (en)
Inventor
Marco Winzker
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.)
LIESEGANG ELECTRONICS GmbH
Original Assignee
LIESEGANG ELECTRONICS GmbH
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 LIESEGANG ELECTRONICS GmbH filed Critical LIESEGANG ELECTRONICS GmbH
Priority to DE10146416A priority Critical patent/DE10146416A1/de
Priority to AU2002337121A priority patent/AU2002337121A1/en
Priority to EP02772332A priority patent/EP1430445A2/de
Priority to TW091121563A priority patent/TWI233296B/zh
Priority to PCT/EP2002/010602 priority patent/WO2003025857A2/de
Priority to US10/490,352 priority patent/US20050047668A1/en
Publication of DE10146416A1 publication Critical patent/DE10146416A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations

Abstract

Für Anwendungen der Signalverarbeitung, insbesondere der Bildsignalverarbeitung, müssen aus Eingangskoordinaten transformierte Koordinaten berechnet werden. Diese Berechnung ist für jeden Eingangs- und/oder Ausgangsabtastwert einzeln erforderlich und kann durch ein Polynom erfolgen. Für praktische Anwendungen sind Polynome höheren Grades erforderlich. Die Berechnung dieser Polynome ist aufwendig und erfordert einen sehr großen Schaltungsaufwand. DOLLAR A Bei hier beschriebenen Verfahren und Anordnung wird das Polynom durch sukzessive Teilpolynome berechnet. Dabei wird davon ausgegangen, daß nicht alle theoretisch möglichen Teilpolynome wirklich benötigt werden. Durch Verschieben der Eingangskoordinaten kann erreicht werden, daß Teilpolynome entfallen können. Die sich daraus ergebende Formel kann durch konfigurierbare Verarbeitungseinheiten effizient in eine Schaltungsarchitektur zur Berechnung polynombasierter Koordinatentransformationen umgesetzt werden.

Description

    Technisches Gebiet
  • Die Erfindung betrifft ein Verfahren und eine Anordnung zur effizienten Berechnung transformierter Koordinaten aus Eingangskoordinaten mittels einer polynombasierten Formel.
  • Transformierte Koordinaten werden benötigt, wenn eine diskrete Signalverarbeitung eine Verzerrung der räumlichen und/oder zeitlichen Dimension eines Signals erzeugen und/oder ausgleichen soll. Eine solche Signalverarbeitung arbeitet sequentiell mit variablen Koordinaten. Für diese Eingangskoordinaten müssen transformierte Koordinaten berechnet werden. Transformierte Koordinaten werden dazu verwendet, Daten für die Signalverarbeitung zu lesen und/oder Verarbeitungsergebnisse abzulegen.
  • Die Berechnung transformierter Koordinaten muß für jeden Abtastwert eines Eingangs- oder Ausgangssignals erfolgen. Insbesondere bei Bilddaten ist hierfür eine sehr hohe Rechenleistung erforderlich. Diese hohe Rechenleistung kann durch eine arithmetische Verarbeitungseinheit effizient zur Verfügung gestellt werden.
  • Eine sehr flexible Definition einer Koordinatentransformation ist durch eine polynombasierte Formel möglich. Exemplarisch sei ein Polynom 4-ter Ordnung mit einer Eingangskoordinaten "x" dargestellt, welches wie folgt lautet:

    f(x) = c0 + c1.x + c2.x2 + c3.x3 + c4.x4 (Gleichung 1)
  • Die Koeffizienten "cn" legen die Funktion des Polynoms fest.
  • Für eine Transformation mehrerer Koordinaten "(x, y, z, . . .)" in transformierte Koordinaten "(xt, yt, zt, . . .)" müssen mehrere Polynome mit unterschiedlichen Koeffizienten berechnet werden.
  • Stand der Technik
  • Eine direkte Umsetzung der Berechnung von Gleichung 1 ist sehr aufwendig. Insbesondere die hohe Anzahl an Multiplikationen führt zu einer sehr komplexen Schaltungsumsetzung.
  • Eine effizientere Berechnung ist möglich, wenn die Multiplikationen zur Berechnung der Potenzen der Eingangskoordinaten "x" mit den Multiplikationen der Koeffizienten "cn" kombiniert werden. Dies stellt eine sukzessive Multiplikation von Teilpolynomen dar, entsprechend der Gleichung:

    f(x) = c0 + x.(c1 + x.(c2 + x.(c3 + x.c4)) (Gleichung 2)
  • Praktische Aufgabenstellungen, insbesondere der Bildverarbeitung, erfordern jedoch selbst bei einer Schaltungsumsetzung entsprechend Gleichung 2 einen sehr hohen Aufwand.
  • Aufgabe
  • Aufgabe der Erfindung ist es, eine polynombasierte Koordinatentransformation, insbesondere für Anwendungen der Bildverarbeitung, in eine effiziente Schaltungsarchitektur umzusetzen. Dabei ist vor allem die Anzahl der erforderlichen Multiplikationen gering zu halten.
  • Weiterhin soll die Koordinatentransformation möglichst universell konfigurierbar sein, um eine Vielzahl von Anwendungen zu unterstützen.
  • Lösung
  • Die Erfindung besteht darin, daß die Koordinatentransformation durch sukzessive Multiplikation von Teilpolynomen erfolgt und durch Ausnutzung von Symmetrien einige Koeffizienten zu Null gesetzt werden.
  • Ausführungsbeispiel
  • Für die Berechnung einer Koordinatentransformation mit zwei Eingangskoordinaten "x" und "y" und einem Polynom 3-ter Ordnung gilt die Gleichung:

    f(x, y) = c00 + c01.x + c10.y + c02.x2 + c11.x.y + c20.y2 + c03.x3 + c12.x2.y + c21.x.y2 + c30.y3 (Gleichung 3)
  • Diese kann mit folgender Berechnungsweise effizienter umgesetzt werden:

    f(x, y) = c00 + x.(c01 + x.(c02 + x.c03)) + y.(c10 + x.(c11 + x.c21) + y.(c20 + x.c12 + y.c30)) (Gleichung 4)
  • Eine Schaltungsarchitektur, die diese Berechnung direkt umsetzt, ist in Bild 1 dargestellt. Die mit MULT gekennzeichneten Module führen eine Multiplikation, die mit ADD gekennzeichneten Module eine Addition durch. Besonders aufwendig sind die Module MULT zur Multiplikation. Zur Berechnung von Gleichung 4 werden neun Multiplikationsmodule benötigt.
  • Anwendung der Bildverarbeitung enthalten oftmals eine ihnen innewohnende Symmetrie. Diese kann ausgenutzt werden, um die Anzahl der Multiplikationen zu reduzieren. Dazu kann es erforderlich sein die Eingangskoordinaten derart zu verschieben, daß die Symmetrieachse mit dem Nullpunkt der Koordinaten zusammenfällt.
  • Als Beispiel diene Gleichung 5 zu deren Berechnung drei Multiplikationen nötig sind.

    f(x, y) = 20 - 2.x - 10.y + 2.x.y = 20 + x.(-2 + 2.y) - 10.y (Gleichung 5)
  • Gleichung 5 enthält eine Symmetrie bezüglich x = 5 und y = 1. Durch Subtraktion dieser Werte ergibt sich folgende äquivalente Gleichung:

    f(x, y) = 10 + 2.(x - 5).(y - 1) (Gleichung 6)
  • Zur Berechnung von Gleichung 6 sind lediglich zwei (statt drei) Multiplikationen erforderlich, so daß sich eine Einsparung des Schaltungsaufwands ergibt. Die Verschiebung der Koordinaten durch Subtraktion kann gemeinsam für jede Verwendung einer Koordinate erfolgen. Dies bedeutet, daß zunächst verschobene Koordinaten "xs" und "ys" berechnet werden. Das Polynom zur Koordinatentransformation basiert dann auf diesen verschobenen Koordinaten. Für das Beispiel aus Gleichung 6 ergibt sich damit Gleichung 7.

    f(xs, ys) = 10 + 2.xs.ys

    mit

    xs = x - 5; ys = y - 1 (Gleichung 7)
  • Eine effiziente Schaltungsarchitektur zur Berechnung polynombasierter mehrdimensionaler Koordinatentransformationen basiert auf einem PE genannten Untermodul welches in Bild 2 dargestellt ist.
  • Das Untermodul PE erhält als Eingang die auf die Symmetrieachsen verschobenen Koordinaten, im Bild für zwei Koordinaten "xs" und "ys" dargestellt. Über einen Multiplexer (MUX) wird eine Koordinate ausgewählt und als Multiplikand einem Multiplikationsuntermodul (MULT) zur Verfügung gestellt. Der Multiplikator wird mit einem Addierer (ADD) aus der Summe anderer Eingänge gebildet. Diese Eingänge sind eine feste Konstante (const) sowie Zwischenergebnisse vorangegangener Stufen.
  • Bild 3 stellt die Schaltungsarchitektur zur Berechnung von Koordinatentransformationen dar. Die Schaltungsarchitektur besteht aus Subtrahierern (OFFSET) zur Berechnung der verschobenen Koordinaten X_S, Y_S als Differenz der Eingangskoordinaten X, Y und einer programmierbaren Konstante D_X, D_Y. Die verschobenen Koordinaten werden an Untermodule PE geführt, die kaskadiert angeordnet sind (stage 0, stage 1, stage 2, stage n - 1, stagen). Die Ausgänge eines PE sind dabei mit den Eingängen eines oder mehrerer PEs einer nachfolgenden Stufe verbunden. Ist ein PE mit mehreren nachfolgenden PEs verbunden, können diese Verbindungsleitungen über Schalter (SWITCH) konfiguriert werden. Die Schalter (SWITCH) leiten Zwischenergebnisse eines PEs weiter oder ersetzen sie durch den Wert Null.
  • Die Ergebnisse der letzten Stufe an PEs (stage 1) werden über mit einem abschließenden Addierer (ADD_F) zusammen mit einer weiteren Konstante (const) zusammengefaßt (stage 0) und bilden die transformierte Koordinate (FCO_R).
  • Die Anzahl der Stufen bestimmt den Grad des Polynoms der mit der Schaltung berechnet werden kann. Die Anzahl der Untermodule PE je Stufe bestimmt die Anzahl der Koeffizienten ungleich Null, die pro Grad des Polynoms gewählt werden können.
  • In Bild 4 ist eine Architektur dargestellt, welche ein Polynom 5-ter Ordnung, entsprechend Gleichung 8 berechnet.

    f(xs, ys) = c00 + c01.xs + c10.ys + c02.xs 2 + c11.xs.ys + c20.ys 2 + c03.xs 3 + c12.xs 2.ys + c21.xs.ys 2 + c30.ys 3 + c04.xs 4 + c13.xs 3.ys + c22.xs 2.ys 2 + C31.xs.ys 3 + c40.ys 4 + c05.xs 5 + c14.xs 4.ys + c32.xs 3.ys 2 + c23.xs 2.ys 3 + c41.xs.ys 4 + c50.ys 5

    mit

    xs = x - dx; ys = y - dy (Gleichung 8)
  • Die unterste Stufe (stage 0) verarbeitet die Ergebnisse der vorangegangenen Stufe und addiert die Konstante c00 aus Gleichung 8.
  • Die Stufe "stage 1" enthält zwei PE, welche die Terme 1-ten Grades (xs, ys) entsprechend c01 und c10 berechnen.
  • Die Stufe "stage 2" enthält drei PE, welche die Terme 2-ten Grades (xs 2, xs.ys, ys 2) entsprechend c02, c11, c20 berechnen.
  • Die Stufe "stage 3" enthält zwei PE, welche die Terme 3-ten Grades (xs 3, xs 2.ys, xs.ys 2, ys 3) entsprechend c03, c12, C21, c30 berechnen. Da lediglich 2 PE vorhanden sind, können nur 2 der Koeffizienten dieses Grades frei gewählt werden. Die anderen Koeffizienten müssen zu Null gewählt werden.
  • Die Stufe "stage 4" enthält zwei PE, welche die Terme 4-ten Grades (xs 4, xs 3.ys, xs 2.ys 2, xs.ys 3, ys 4) entsprechend c04, C13, c22, c31, cao berechnen. Da wie in der vorangegangenen Stufe (stage 2) lediglich 2 PE vorhanden sind, können nur 2 der Koeffizienten frei gewählt werden, während die anderen Koeffizienten zu Null gewählt werden müssen.
  • Die Stufe "stage 5" enthält drei PE, welche die Terme 5-ten Grades (xs 5, xs 4.ys, xs 3.ys 2, xs 2.ys 3, xs.ys 4, ys 5) entsprechend c05, C14, c23, c32, c41, c50 berechnen. Mit den 3 PE können 3 der Koeffizienten zu Werten ungleich Null gewählt werden. Da dieser Stufe keine weitere Stufe vorangeht, werden die unbenutzten Eingänge des Untermoduls PE mit dem Wert Null verbunden. Die Addierer der Untermodule PE können dann entfallen und die Konstante des Untermoduls kann direkt an das Multiplikationsuntermodul angeschlossen werden.
  • Durch die mit "bypass" gekennzeichnete Verbindung kann ein PE aus der Stufe "stage 5" nicht nur mit dem Eingang eines PEs aus der direkt nachfolgenden Stufe (stage 4), sondern auch mit PE-Eingängen weiterer nachfolgender Stufen (in Bild 3, "stage 3" und "stage 2") verbunden werden. Anstelle eines Termes 5-ter Ordnung kann damit ein weiterer Term 4-ter oder 3-ter Ordnung implementiert werden.

Claims (9)

1. Verfahren zur effizienten Berechnung polynombasierter Koordinatentransformationen, dadurch gekennzeichnet, daß
a) die Berechnung eines Polynoms durch sukzessive Multiplikationen von Teilpolynomen erfolgt und
b) einige Teilpolynome bei der Berechnung vernachlässigt werden können.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Eingangskoordinaten durch Subtraktionen von Konstanten verschoben werden.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß für jede Eingangskoordinate jeweils die gleiche Konstante subtrahiert wird und die Subtraktionen zusammengefaßt werden.
4. Anordnung zur effizienten Berechnung polynombasierter Koordinatentransformationen nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß zur Berechnung der Teilpolynome konfigurierbare Verarbeitungseinheiten verwendet werden.
5. Anordnung nach einem oder mehreren der vorgenannten Ansprüchen, dadurch gekennzeichnet, daß die konfigurierbaren Verarbeitungseinheiten eine Multiplikation einer auswählbaren Eingangskoordinate mit der Summe aus einer programmierbaren Konstante und aus Zwischenergebnissen vorangegangener Stufen durchführt.
6. Anordnung nach einem oder mehreren der vorgenannten Ansprüchen, dadurch gekennzeichnet, daß die konfigurierbaren Verarbeitungseinheiten in mehreren Stufen kaskadiert sind und Teilergebnisse einer Stufe in einer oder mehreren nachfolgenden Stufen weiterverarbeitet werden.
7. Anordnung nach einem oder mehreren der vorgenannten Ansprüchen, dadurch gekennzeichnet, daß Teilergebnisse einer Stufe durch konfigurierbare Schalter auf den Wert Null gesetzt werden können werden.
8. Anordnung nach einem oder mehreren der vorgenannten Ansprüchen, dadurch gekennzeichnet, daß weniger konfigurierbare Verarbeitungseinheiten verwendet werden, als zur Berechnung eines vollständigen Polynoms benötigt werden.
9. Anordnung nach einem oder mehreren der vorgenannten Ansprüchen, dadurch gekennzeichnet, daß die Eingangskoordinaten durch einen vorangestellten Subtrahierer vorverarbeitet werden.
DE10146416A 2001-09-20 2001-09-20 Verfahren und Anordnung zur effizienten Berechnung polynombasierter Koordinatentransformationen Withdrawn DE10146416A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE10146416A DE10146416A1 (de) 2001-09-20 2001-09-20 Verfahren und Anordnung zur effizienten Berechnung polynombasierter Koordinatentransformationen
AU2002337121A AU2002337121A1 (en) 2001-09-20 2002-09-20 Method and arrangement for signal processing in particular image signal processing
EP02772332A EP1430445A2 (de) 2001-09-20 2002-09-20 Verfahren und anorndung zur signalverarbeitung, insbesondere der bildsignalverarbeitung
TW091121563A TWI233296B (en) 2001-09-20 2002-09-20 Method and device for signal processing, particularly image signal processing
PCT/EP2002/010602 WO2003025857A2 (de) 2001-09-20 2002-09-20 Verfahren und anorndung zur signalverarbeitung, insbesondere der bildsignalverarbeitung
US10/490,352 US20050047668A1 (en) 2001-09-20 2002-09-20 Method and arrangement for signal processing particular image signal processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10146416A DE10146416A1 (de) 2001-09-20 2001-09-20 Verfahren und Anordnung zur effizienten Berechnung polynombasierter Koordinatentransformationen

Publications (1)

Publication Number Publication Date
DE10146416A1 true DE10146416A1 (de) 2003-04-17

Family

ID=7699698

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10146416A Withdrawn DE10146416A1 (de) 2001-09-20 2001-09-20 Verfahren und Anordnung zur effizienten Berechnung polynombasierter Koordinatentransformationen

Country Status (6)

Country Link
US (1) US20050047668A1 (de)
EP (1) EP1430445A2 (de)
AU (1) AU2002337121A1 (de)
DE (1) DE10146416A1 (de)
TW (1) TWI233296B (de)
WO (1) WO2003025857A2 (de)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5846741A (ja) * 1981-09-11 1983-03-18 Nec Corp 復号器
JP2674287B2 (ja) * 1990-08-21 1997-11-12 富士ゼロックス株式会社 グラフィックマイクロコンピュータ
DE10052263A1 (de) * 2000-10-21 2002-05-08 Liesegang Electronics Gmbh Verfahren und Anordnung zur Bildverarbeitung mit gleichzeitiger Koordinatentransformation

Also Published As

Publication number Publication date
WO2003025857A3 (de) 2004-01-15
TWI233296B (en) 2005-05-21
AU2002337121A1 (en) 2003-04-01
WO2003025857A2 (de) 2003-03-27
US20050047668A1 (en) 2005-03-03
EP1430445A2 (de) 2004-06-23

Similar Documents

Publication Publication Date Title
DE69435047T2 (de) Schaltung und Verfahren zur parallelen Addition und Mittelwertbildung
DE4229666C2 (de) Wechselseitig arbeitende Divisionsschaltung
DE602005000367T2 (de) Digitale Frequenzaufwärtskonversionsschaltung
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE2911096C2 (de)
DE3240906A1 (de) Digitale filteranordnung mit zwei ausgaengen
DE10013068C2 (de) Potenzierungsoperationsvorrichtung
DE10219158B4 (de) Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
EP1543408A1 (de) Vorrichtung und verfahren zum berechnen einer multiplikation mit einer verschiebung des multiplikanden
EP0016318B1 (de) Korrekturschaltung zur Verbesserung der Konturenschärfe von Fernsehbildern
EP0628183B1 (de) Schaltungsanordnung zum digitalen multiplizieren von integer-zahlen
EP0660246A2 (de) Signalprozessor
DE10146416A1 (de) Verfahren und Anordnung zur effizienten Berechnung polynombasierter Koordinatentransformationen
EP0130397B1 (de) Digitales Rechenwerk
DE10200133B4 (de) Verfahren und Vorrichtung zur Berechnung von Modulo-Operationen
EP0629943B1 (de) Multiplizierer für reelle und komplexe Zahlen
EP1672480A1 (de) Verfahren und Vorrichtung zur Durchführung einer Multiplikations- oder Divisionsoperation in einer elektronischen Schaltung
DE3702697A1 (de) Paritaetserzeugungsschaltung
EP0294540B1 (de) Verfahren zur zweidimensionalen diskreten inversen Cosinus-Transformation
EP0254824A2 (de) Verfahren zur zweidimensionalen diskreten Cosinus-Transformation
DE19644688A1 (de) Schaltungsanordnung einer digitalen Multiplizierer-Baugruppe, zur Verarbeitung von Binärzahlen sowie Elementen aus GF(2 APPROX )
DE3700740A1 (de) Linearapproximationsumformschaltung
DE19757891C2 (de) Arithmetische Betriebseinrichtung zum Berechnen einer Summe von zwei Produkten
DE3505989C2 (de)
DE19718657A1 (de) Verfahren und Anordnung zur Bildpunktwertberechnung

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee