DE69221840T2 - Abtastratenwandlungsschaltung für Bilddaten - Google Patents
Abtastratenwandlungsschaltung für BilddatenInfo
- Publication number
- DE69221840T2 DE69221840T2 DE69221840T DE69221840T DE69221840T2 DE 69221840 T2 DE69221840 T2 DE 69221840T2 DE 69221840 T DE69221840 T DE 69221840T DE 69221840 T DE69221840 T DE 69221840T DE 69221840 T2 DE69221840 T2 DE 69221840T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- filter
- coefficient
- pixel values
- input
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/06—Non-recursive filters
- H03H17/0621—Non-recursive filters with input-sampling frequency and output-delivery frequency which differ, e.g. extrapolation; Anti-aliasing
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
- Studio Circuits (AREA)
- Television Systems (AREA)
- Editing Of Facsimile Originals (AREA)
Description
- Die vorliegende Erfindung ist auf einen Tastratenwandler für Bilddaten gerichtet, der kompakt und kostengünstig ist, und insbesondere auf einen Wandler, der direkt einen Pixelstrom auf eine andere Tastrate umwandelt, entweder höher oder niedriger, und zwar durch Filterung während der Gewichte oder ein Filterkoeffizient auf Pixel im Pixelstrom angewandt werden, und zwar unter Verwendung von Koeffiziententabellen, die ansprechend auf das gewünschte Umwandlungsverhältnis ausgewählt werden.
- Während der Anzeige von Bildern, welche durch Video- Kompaktdisk (Video-CD) erzeugt werden, wie beispielsweise von der Photo-CD erzeugt, die von Eastman Kodak Co. erhältlich ist, wünscht der Anwender gelegentlich das ari gezeigte Bild zu verkleinern oder das angezeigte Bild zu vergrößern, und zwar aus verschiedenen Gründen. Die Verkleinerung und Vergrößerung kann durch Interpolieren der Pixel- bzw. Bildpunktdaten ausgeführt werden. Ein Verfahren der Interpolation der Pixelbilddaten, wie in Fig. 1 veranschaulicht, ist es, eine Tastraten- bzw. Sample- Ratenumwandlung in Richtung einer Bildzeile auszuführen. Die Tastratenumwandlung wird ausgeführt durch Übertasten bzw. Übersampeln (Oversampling) einer Zeile von Pixeln mit H-Pixeln in der Längsrichtung durch einen gewissen ganzzahligen Faktor N. Das Oversampling bzw. Übertasten besteht aus dem Einfügen von (N-1) zusätzlichen Pixeln vom Wert Null zwischen jedem Pixel in der Eingabebildzeile, was einen Strom von NxH aufgesampelten bzw. aufgetasteten Pixeln zur Folge hat. Ein Faltungsfilter ist am Anfang des Stroms der aufgesampelten Bilder positioniert und wird verwendet, um den daraus resultierenden Pixelstrom zu sampeln bzw. zu tasten, um ein einziges Ausgabepixel zu ergeben. Ein Faltungsfilter besteht im allgemeinen aus Gewichtungswerten, die beim Aufnehmen einer ge wichteten Summe des Pixelstroms verwendet werden, und zwar beginnend mit dem Pixel, welches unter dem ersten Gewichtungswert ist und fortfahrend, bis es keine Gewichtungswerte mehr gibt. Der Faltungsfilter wird nach vorne im Strom der aufgesampelten bzw. aufgetasteten Pixel ge schoben, und zwar um M Pixel, wobei M die Absampling(Downsampling-) bzw. Heruntertastrate ist, und das nächste Ausgangspixel wird dann erzeugt. Der Prozeß wird wiederholt, bis der Filter nicht länger den aufgesampelten Pixelstrom überlappt Die Anzahl der ausgegebenen Pixel ist dann gleich N/M mal die Anzahl der Eingangspixel. Ein Bild resultiert daraus, welches auf die gegebene Dimension um einen Faktor N/M skaliert worden ist. Ein Weg, um dieses Verfahren in Hardware bzw. in Komponenten einzurichten, wie in Fig. 2 veranschaulicht, ist es, einen Strom von Eingangsdaten durch ein Schieberegister 2 zu schicken, dessen Länge gleich der Filterlänge L ist. Nachdem jedes Eingangspixel hereingeschoben ist, müssen (N-1) Null-Werte hereingeschoben werden, um das Aufsampeln durchzuführen. Dann muß die Ausgangsgröße aus jeder Stufe des Schieberegisters 2 durch einen entsprechenden von einer Gruppe 4 von Multiplizierern gehen, um mit dem entsprechenden Filtergewicht von einem entsprechenden einer Gruppe von Speichern multipliziert zu werden, um die Gewichte zu speichern. Die Ausgangsgröße dieser Multiplizierer wird dann über eine Kaskade von Addierern 8 addiert, um ein Ausgangspixel in einem Register 10 zu erzeugen und zu speichern, und zwar nach jeweils M Verschiebungen der aufsgesampelten Daten durch das Schieberegister. Der Null-Einschub und die Verarbeitung wird gesteuert durch eine Steuereinheit 12. Ein Filter mit L Rückkoppelungsabgriffen benötigt L Schieberegisterstufen, L Multiplizierer und (L-1) Addierer. Aufgrund der für die Zwischenergebnisse bei dieser Art von Schaltung erforderlichen Präzision und der langen Filterlänge, die gewöhnlicherweise für die Bilddatenverarbeitung nötig ist, ist dieser Ansatz für eine integrierte Schaltung oder für ein kostengünstiges Produkt unpraktisch, und zwar wegen der großen Menge benötigter Hardware bzw. Komponenten.
- Es sei hingewiesen auf IEEE International Solid-State Circuits Conference, Februar 1991, Seiten 238-239 und 320 (Lerch und andere). Das Dokument bezieht sich auf einen monolithischen δ A/D- und D/A-Wandler mit einem Filter für eine Breitbandsprachcodierung. Sowohl der A/D-Wandler als auch der D/A-Wandler sind mit Oversampling- δ-Wandlern zweiter Ordnung implementiert, was die Anforderungen an analoge Anti-Aliasing- und Anti-Imaging- bzw. Anti-Abbildungsfilter verringert. Die Dezimierung und Interpolation werden jeweils in zwei bzw. vier Stufen erreicht, und zwar unter Verwendung von Linear-Phasen-FIR-Filtern für Stabilität und Wellenformwiedergabe. Ein Tiefpaß-FIR- Filter 160-zigster Ordnung wird in einer verteilt-arithmetischen Bauart implementiert, und zwar mit vorberechneten Koeffizientensummen, die in einem ROM bzw. Lesespeicher gespeichert sind. Die geeigneten Summen werden vom binären Eingangsstrom ausgewählt, und werden akkumuliert, um ein Ergebnis alle 32 Sampel- bzw. Tastperioden zu ergeben.
- Der zweite Dezimierungsfilter und die ersten drei Interpolationsfilter werden mit einem mikroprogrammierten Faltungsprozessor (convolution processor) verwirklicht. Die Konvover-Struktur zieht Vorteil aus dem symmetrischen Impulsansprechen der Linear-Phasen-FIR-Filter unter Verwendung von zwei Sampel- bzw. Tastdaten-RAMs (Arbeitspeicher), mit getrennten Adreßerzeugungseinheiten, wie Verzögerungsleitungen, und durch Addieren ihrer Ausgangsgrößen vor dem Vervielfachungs-Akkumulierungs-Schritt, wodurch die notwendigen Multiplikationen um die Hälfte verringert werden. Die Filterkoeffizienten werden von einem zyklisch adressierten ROM geliefert, der auch den Mikrocode vorsieht, der die Operationen im digitalen Teil steuert. Die erneute Definierung der ROM-Inhalte gestattet es, daß die gleiche Hardware für andere Anwendungen verwendet wird, wie beispielsweise bis zu vier Filtern mit bis zu 256 Koeffizienten in Mikrocode programmiert werden können.
- Es sei weiter hingewiesen auf US-A-4 792 975, die sich auf Digitalsprachsignalverarbeitung für eine Pitch- bzw. Höhenveränderung mit einer Sprungsteuerung bzw. -überwachung (jump control) gemäß der Pitch- bzw. Höhenperiode bezieht. Eine Digitalverarbeitung von Sprachsignalen für eine Kompressions/Expansions-Höhenveränderung wird vorge sehen durch Schreiben und Lesen in einen ROM mit unterschiedlichen Raten und durch Steuern der Ablege/Wiederholungs-Speichersegmente, so daß sie ungefähr integrale Mehrfache der Höhen- bzw. Teilungsperiode sind, und zwar mit Mitteln zur Verfolgung der Höhenperiode, wenn sie sich ändert, und durch entsprechendes Modifizieren der Ablage/Wiederholungs-Segmente.
- Es sei weiter hingewiesen auf EP-401 562, die einen Tastratenwandler mit Speichermitteln aufweist, um Eingangsdaten mit einer ersten Sampling- bzw. Tastrate zu speichern, Filtermittel, um direkt die Eingangsdaten zu filtern, um Ausgangsdaten mit einer zweiten Sampling- bzw. Tastrate zu erzeugen, mit Speichermitteln zum Speichern von unterschiedlichen Koeffizientensätzen, wobei jeder Satz einer anderen Tastwandlungsrate entspricht, und wobei ein Multiplexer von einem Steuerab-schnitt angetrieben wird, um aus den Speichermitteln unterschiedliche Koeffizientensätze auszuwählen.
- Gemäß der vorliegenden Erfindung ist ein Tastratenwandler nach den unabhängigen Ansprüchen 1 und 6 vorgesehen. Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung sind in den abhängigen Ansprüchen offenbart.
- Es ist ein Ziel der vorliegenden Erfindung, einen Tatsratenwandler mit einer geringen Anzahl von Komponenten zu erzeugen.
- Es ist ein weiteres Ziel der vorliegenden Erfindung, einen Tastratenwandler zu erzeugen, der leicht in einer integrierten Schaltung implementiert bzw. eingerichtet werden kann.
- Es ist ein weiteres Ziel der vorliegenden Erfindung, einen Tastratenwandler zu erzeugen, bei dem die mathematischen Operationen auf ein Minimum reduziert sind.
- Es ist auch ein Ziel der vorliegenden Erfindung, einen Wandler vorzusehen, der mit hoher Geschwindigkeit arbeitet.
- Es ist ein weiteres Ziel der vorliegenden Erfindung, eine Sample- bzw. Tastratenumwandlung direkt ohne Zwischenschritte des Aufsampelns bzw. Auftastens (Upsampling) und Absampelns bzw. Heruntertastens (Downsampling) auszuführen.
- Es ist ein Ziel der vorliegenden Erfindung, eine Tastratenumwandlung ohne Null-Einschub und Null-Verarbeitung vorzusehen.
- Die obigen Ziele können mit einem Tastratenwandler erreicht werden, der durch Filterung einen umgewandelten Pixel- bzw. Bildpunktstrom erzeugt. Während des Betriebes speichert der Wandler einen Pixeistrom in einem Datenspeicher, und während der Umwandlung werden Zeiger (Pointer) verwendet, um die Pixel auszuwählen, die mit Filterkoeffizienten multipliziert und akkumuliert werden. Die Multiplikation wird durch eine Nachschautabelle ausgeführt, die die Ergebnisse der Pixel-Koeffizienten-Multiplikation für alle Kombinationen von Pixelwerten und Koeffizienten für jede Tastratenumwandlung speichert, die der Wandler ausführen wird. Die Ausgangsgröße der Nachschautabelle wird durch die Pixeldaten gesteuert, wobei der Koeffizient ausgewählt wird und die Tabelle ausgewählt wird. Die akkumulierte Ausgangsgröße sind die gefilterten Bilddaten.
- Diese zusammen mit anderen Zielen und Vorteilen, die im folgenden offensichtlich werden, liegen in den Details der Konstruktion und des Betriebs, wie genauer im folgenden beschrieben und beansprucht wird, wobei Bezug genommen wird auf die Begleitzeichnungen, die einen Teil davon bilden, wobei gleiche Bezugszeichen sich auf gleiche Teile darin beziehen.
- Fig. 1 veranschaulicht eine Null-Einschub-Tastratenumwandlung;
- Fig. 2 veranschaulicht Hardware bzw. Komponenten, die eine Null-Einschub-Umwandlung wie in Fig. 1 gezeigt, ausführen werden;
- Fig. 3 veranschaulicht ein Ausführungsbeispiel der vorliegenden Erfindung;
- Fig. 4 veranschaulicht die Speicherkarte bzw. das Speicherlayout des Speichers 32; und
- Fig. 5 veranschaulicht die Vorgänge der in Fig. 3 abgebildeten Steuereinheit 37.
- Der Tastratenwandler 28 der vorliegenden Erfindung, wie er in Fig. 3 veranschaulicht wird, ist als ein Filter mit endlichem Impulsansprechen bzw. FIR-Filter ausgelegt, der teilweise konstruiert bzw. ausgelegt ist, um eine von drei möglichen Tastratenumwandlungen auszuführen, und zwar ansprechend auf eine Ratenurnwandlungsauswahl durch einen Anwender. Die Filterkoeffizienten und, wie sie abgeleitet bzw. erhalten werden, sind beschrieben in der US-Anmeldung 809 365, betitelt "Storage and Retrieval of Digital Photographic Images" von Axman, Barry, Mathieu, Timmermans und Richards mit der Kodak-Aktennummer 60.092, die durch Bezugnahme hier aufgenommen sei. Der Wandler 30 implementiert bzw. bietet insbesondere direkt die folgen den Gleichungen ohne Aufsampeln und Null-Einschub.
- FP&sup0; = 1xPIX&supmin;&sup6;-4xPIX&supmin;&sup5;-11xPIX&supmin;&sup4;-3xPIX&supmin;³+24xPIX&supmin;² +55xPIX&supmin;¹+68xPIX&spplus;¹+24xPIX&spplus;²-3xPIX&spplus;³-11xPIX&spplus;&sup4; -4xPIX&spplus;&sup5;+1xPIX&spplus;&sup6; (1)
- FP0 = -4xPIX&supmin;&sup7;-8xPIX&supmin;&sup6;-8xPIX&supmin;&sup5;+0xPIX&supmin;&sup4;+19xPIX&supmin;³ +40xPIX&spplus;²+57xPIX&supmin;¹+64xPIX&sup0;+57xPIX&spplus;¹+40xPIX&spplus;² +19xPIX+³+0xPIX&spplus;&sup4;-8xPIX&spplus;&sup5;-8xPIX&spplus;&sup6;-4xPIX&spplus;&sup7; (2)
- FP&sup0; = 1xPIX&supmin;&sup6;-3xPIX&supmin;&sup5;-7xPIX&supmin;&sup4;-2xPIX&supmin;³+16xPIX&supmin;² +37xPIX&supmin;¹+44xPIX&sup0;+37xPIX&spplus;¹+16xPIX&spplus;²-2xPIX&spplus;³-7xPIX&spplus;&sup4; -3xPIX&spplus;&sup5;+1xPIX&spplus;&sup6; (3)
- wobei FP der gefilterte Pixelwert ist, wobei PIX&sup0; der gegenwärtige Pixelwert ist, für den das gefilterte/Tastraten umgewandelte Pixel FP erzeugt wird, wobei PIX+n der n-te nächste Pixelwert ist, wenn beispielsweise das gegenwärtige verarbeitete Pixel p6 in Fig. 1 ist, dann ist PIX&spplus;³ p9, und wobei PIX-n der n-te vorherige Pixelwert ist, wenn beispielsweise das gegenwärtig verarbeitete Pixel p6 ist, dann ist PIX&supmin;² p4. Es sei bemerkt, daß das Null-Gewicht oder der Koeffizient in Gleichung (2) nicht verarbeitet werden muß, sondern nur zur Vereinfachung der Hardware-Konstruktion verarbeitet wird, so daß ein Gewicht nicht übersprungen werden muß.
- Die vorliegende Erfindung 28, wie sie in Fig. 3 veranschaulicht wird, besitzt vier Hauptabschnitte, einen Datenspeicher 30 (einen RAM = random access memory bzw. Arbeitsspeicher), der die hereinkommenden Pixeldaten in einer Umlaufanordnung speichert, bei der die letzteren Pixel über Pixel geschrieben werden, die zuvor verarbeitet worden sind, einen Multiplizierer 32, der die Filterkoeffizienten der ausgewählten Gleichung mit den entsprechenden Pixeln multipliziert, und einen Akkumulator 33, der die gefilterte Pixelausgangsgröße akkumuliert.
- Der Akkumulator 33 weist einen Multiplizierer 34 und ein Speicherregister 35 auf, welcher D-Flip-Flops aufweist. Die Pixeldaten werden ausgewählt, und die Multiplikation wird unter Steuerung eines Steuerabschnittes 36 ausgeführt, der eine Steuereinheit 37 aufweist, die den Zähler 38 und das Register 40 inkrementiert bzw. weiterschaltet, die zusammen mit einem von der Steuereinheit 37 gesteuerten Multiplexer 42 auswählen, welche Pixeldaten oder welcher Wert zu multiplizieren sind. Die Steuereinheit 37 steuert den Koeffizienten, der mit einem Zähler 44 multipliziert wird, dessen Ausgang durch eine Map- bzw. Karteneinheit 46 läuft oder führt. Die Steuereinhiet 37 wird durch Register 48-54 gesteuert, die die Länge der verarbeiteten Bildzeile, die Filterlänge und den verwendeten Filter, die Aufsampling- bzw. Auftastrate (Upsampling- Rate) und die Absampling- bzw. Abtastrate (Downsampling- Rate) beschreiben.
- Die Architektur der Fig. 3 gestattet, daß die Tastraten umwandlung direkt ausgeführt wird, das heißt anstelle von Zwischenschritten des Aufsampelns (Null-Einschub) und Absampelns (Null-Verarbeitung). Insbesondere wird keine Verarbeitungszeit oder Hardware oder Komponenten für das Schreiben, Lesen oder Verarbeiten der Nullen verwendet, die durch den Zwischenschritt des Aufsampeln eingeführt werden würden.
- Es ist zu sehen, daß, wenn keine Nullen eingefügt werden, man immer noch die gleichen gewichteten Summen wie in Fig. 1 erreichen wird, da keiner der Null-Ausdrücke zu den Summen beiträgt. Wenn man beispielsweise mit 2 aufsampelt und mit 3 heruntersampelt, wie in Fig. 1 gezeigt, gibt es bei dem Satz von Gewichten oder Koeffizienten [k&sub0; bis k&sub1;&sub0;] zwei unterschiedliche Untersätze von Gewichten für die Summen der darauffolgenden Eingangspixel. Ein Untersats ist [k&sub0;, k&sub2;, k&sub4;, k&sub6;, k&sub8;, k&sub1;&sub0;] und der andere ist [k&sub1;, k&sub3;, k&sub5;, k&sub7;, k&sub9;]. Im allgemeinen wird es für eine Aufsamplingrate bzw. Auftastrate von N auch N unterschiedliche solcher Untersätze von Gewichten geben. Durch periodisches Anwenden dieser Untersätze in der korrekten Reihenfolge auf Abschnitte des Eingangspixelstroms, können die gleichen daraus folgenden Summen bzw. Ergebnissummen erhalten werden, wie wenn der gesamte Satz auf den aufgesampelten Pixelstrom angewandt wird. Solche Segmente oder Abschnitte werden sich im allgemeinen überlappen. Somit muß das Einfügen bzw. der Einschub und die darauffolgende Verarbeitung der Nullen nicht ausgeführt werden.
- Im allgemeinen ist der j-te Untersatz gleich [kj, kN+j, k2N+j, ... knN+j], wobei n eine ganze Zahl ist, die von inkrementiert bzw. weitergeschaltet wird, bis (nN+j) größer ist als (Filterlänge-1), wobei N die Aufsampel-Rate ist, und wobei j eine ganze Zahl von Null bis (N-1) ist. Dies eliminiert jene Gewichte für aufgesampelte Pixel, die eingefügten Nullen entsprechen würden. Beispielsweise ist in Fig. 1 N=2 und die Filterlänge ist 11, was zwei solche Untersätze zur Folge hat:
- j=O: [k&sub0;, k&sub2;, k&sub4;, k&sub6;, k&sub8;, k&sub1;&sub0;]
- j=1: [k&sub1;, k&sub3;, k&sub5;, k&sub7;, k&sub9;]
- Die Reihenfolge, in der diese Untersätze angewandt werden, und die Versetzungen der Eingabe- bzw. Eingangssegmente, auf welche diese Untersätze angewandt werden, um eine Ausgangsgröße zu erhalten, sind periodisch und werden einzigartig bestimmt durch die Auswahl der effektiven Aufsamplingrate N und die effektive Absamplingrate M, die in den Registern 52 bzw. 54 (Fig. 3) gespeichert sind. Die Periode und die Reihenfolge, in der die Untersätze der Gewichte angewandt werden müssen, wenn neue Eingangspixel verfügbar werden, kann bestimmt werden durch Bildung eines Diagramms ähnlich der Fig. 1 für die gewünschten Werte von N und M. Dann können die Ausgangspixel bezüglich der gewichteten Summen geschrieben werden, aus denen die Reihenfolge der Untersätze der Gewichte direkt bestimmt werden kann. Als ein Beispiel wird in Fig. 1 der Untersatz für j=0 auf die Eingangspixel angewandt, die bei p&sub0; starten, der Untersatz für j=1 wird auf die Eingangspixel angewandt, die bei p&sub2; starten, der Untersatz für j=0 wird auf das Eingangspixelsegment angewandt, und zwar beginnend bei p&sub3;, der Untersatz für j=1 wird auf den Eingangspixeluntersatz angewandt, und zwar beginnend bei p&sub5; usw..
- Eine Steuereinheit, wie beispielsweise die Einheit 37, deren Betrieb genauer in Fig. 5 beschrieben wird, kann für irgendwelche solcher N und M ausgelegt werden, die die ordnungsgemäßen Gewichtsuntersätze für die geeigneten Segmente der Eingangspixel auswählen werden. Wenn somit Eingangpixel empfangen werden, bestimmt die Steuereinheit 37, wann es ausreichende Informationen gibt, um das nächste Ausgangspixel zu berechnen, wählt den ordnungsgemäßen Untersatz von Gewichten aus und weist die Berechnung der geeigneten gewichteten Summen an.
- Die Reihenfolge, in der diese Untersätze auf die Segmente bzw. Abschnitte des Eingangspixelstroms angewandt werden, werden von der Steuereinheit 37 und verschiedene kleine Zähler 38 und 40 und ein Register 44 gesteuert, wie in Fig. 3 gezeigt. Die Steuereinheit 37 steuert drei Zeiger (Pointer) P1, P2 und P3, die alle auf Null beim Beginn jeder Zeile von Eingangspixeln initialisiert werden. P1 und P2 zeigen auf den Datenspeicher RAM 30, während P3 auf eine Tabelle von Filterkoeffizienten zeigt. Wenn ein neues Eingangspixel verfügbar wird, schreibt die Steuereinheit 37 es in den RAM 30 an der Stelle, auf die P1 zeigt, und inkrementiert P1 um eins.
- Für jedes Inkrement von P1, welches bewirkt, daß der Integerteil bzw. ganzzahlige Teil von {N x (Anzahl der P1- Iterationen seit dem Start der Zeile)/M} steigt, wird eines oder mehrere Ausgangspixel berechnet. Wenn somit beispielsweise gilt N=2 und M=3, dann wird ein Ausgangspixel für Inkremente von Pl berechnet werden, die abgezählt sind mit O, 2, 3, 5, 6, 8, usw., da (2/3)x0 = 0, (2/3)x1 = 2/3, (2/3)x2 = 1+1/3, (2/3)x3 = 2, (2/3)x4 = 2+2/3, (2/3)x5 = 9+1/3, usw.. Die Steuereinheit ist ausgelegt, um den ordnungsgemäßen Untersatz von Gewichten für jede Berechnung auszuwählen, wie im vorherigen Absatz beschrieben. Jede Berechnung wird ausgeführt durch Positionieren von P2 am Anfang der speziellen Pixelsequenz, für die eine gewichtete Summe genommen wird, und P3 wird am Beginn des erforderlichen Gewichtsuntersatzes positioniert.
- Am Beginn einer Berechnung wird der Akkumulator 33 zurückgesetzt, dann wird der Wert (Pixel), auf den P2 im Speicher 30 zeigt, ausgelesen und mit dem Gewicht bzw. der Gewichtung multipliziert, auf die P3 zeigt, und wird im Akkumulator 33 addiert. P2 und P3 werden dann jeweils um eins inkrementiert bzw. weitergeschaltet, die neue Speicherstelle (Pixel) im RAM 30, auf die P2 zeigt, wird dann ausgelesen, und das Pixel wird mit dem Gewicht multipliziert, auf welches P3 nun zeigt, und das Ergebnis wird zum Akkumulator 33 addiert bzw. zugefügt. Dieser Prozeß fährt fort, bis der Zeiger P3 über das letzte Gewicht des ausgewählten Untersatzes hinaus inkrementiert werden würde. Der daraus resultierende "DATA OUT"-Wert im Akkumulator 33 wird dann ausgetaktet, und zwar mittels der "DATA CLK"-Leitung (Datentaktleitung). Wenn darauffolgende Eingangspixel verfügbar werden, wird der obige Prozeß wiederholt, was einen Strom von Ausgangspixeln erzeugt, bis keine weiteren Pixel von der Eingangsleitung der Pixel verfügbar sind. Eine Nachschautabelle von in einem Speicher gespeicherten Gewichten und ein Hardwarebzw. Schaltungsmultiplizierer können die Gewichte liefern bzw. vorsehen und die Multiplikation ausführen.
- Dieses Verfahren kann mehr Clock- bzw. Taktzyklen erfordem als der in Fig. 1 und 2 gezeigte Ansatz, da es Daen seriell anstatt parallel verarbeitet. Für eine Zeilenlänge von H wird die folgende Anzahl von Zugriffen auf den RAM 30 erforderlich:
- 1. H Schreibvorgänge
- 2. (L/N) x (N/M) x H=L x (H/M) Lesevorgänge.
- Beispielsweise ist in einem Betriebszustand, bei dem H=768, L=11, N=2 und M=3 eine Gesamtzahl von Speicherzugriffszyklen von H+L x (N/M) x H=3584 erforderlich, was ein Durchschnitt von 4,666 Zugriffen pro Eingangspixel ist. In vielen Fällen ist die erforderliche Durchsatzrate niedrig genug, so daß die zusätzlichen Zugriffe kein Problem darstellen.
- Die Gewichtsmultiplikation wird statt von einer Kombination eines Speichers und eines Hardware-Multiplizierers durchgeführt zu werden, vorzugsweise über eine Nachschautabelle durchgeführt, die in einem RAM- oder ROM- (Read Only Memory) Speicher 32 gespeichert ist, wie in Fig. 3 gezeigt. Bei diesem Ausführungsbeispiel ist ein Teil der Speicheradresse der Zeiger P3, der dazu dient, ein spezielles Speichergebiet auszuwählen, was einem speziellen Gewicht entspricht, und ein weiterer Teil der Adresse ist der Pixelwert (Multiplikant bzw. Faktor), der multipliziert werden soll. Somit besteht der Teil des Speichers 32, der einem speziellen Gewicht entspricht, aus einer Nachschautabelle, deren Einträge das Produkt des ausge wählten Gewichtes mit dem Multiplikantwert bzw. Faktorwert ist, der auf die restlichen Adreßlinien angewandt wird. Darüber hinaus werden zusätzliche Adreßleitungen (Karten- bzw. Map-Auswahl (Map = Zuweisungsplan)) vorzugsweise vorgesehen, um unterschiedliche Gewichtssätze auszuwählen, da die vorliegende Erfindung ausgelegt ist, um unterschiedliche Filter für unterschiedliche Tastratenumwandlungen einzurichten. Wenn nur eine einzige Umwandlungsrate einzurichten ist, sind die Adreßzeilen bzw. Adreßlinien für die Map- bzw. Karten- (Tabellen-) Wahl nicht nötig und die Größe des Speichers 32 ist entsprechend kleiner. Auch ist die Konfiguration der Fig. 3 leicht für unterschiedliche Zeilenlängen, Sampling- bzw. Tastverhältnisse und Filterlängen zu verändern bzw. umzuschalten, da die passenden Parameter in leicht zugreifba ren Registern gespeichert sind, und die Gewichte können leicht verändert werden, und zwar entweder durch Verändem bzw. Umschalten des Speichers (durch Schreiben oder durch physischen Ersatz) oder durch Auswählen von unterschiedlichen Bänken innerhalb des Speichers. Im Ausführungsbeispiel der Fig. 3 werden unterschiedliche Bänke (unterschiedliche Umwandlungsraten) ausgewählt, und zwar unter Verwendung von zusätzlichen Adreßzeilen (SRC- Tabellenwahl), während verschiedene Sätze von unterschiedlichen Parametern mittels von verschiedenen Registerbits auswählbar sind. Die Details und Anforderungen für den Speicher 32 werden genauer mit Bezug auf Fig. 4 besprochen.
- Ein kleiner RAM 30 kann verwendet werden, wenn P1 ausgelegt ist um "umzulaufen", wenn er über die letzte Stelle im RAM 30 inkrementiert bzw. weitergeschaltet wird. Dieser RAM 30 muß mindestens so viele Speicherstellen enthalten, wie es Gewichte im Filter gibt. Wenn P1 inkrementiert wird, so daß sein Wert die letzte Adresse des RAM 30 überschreiten würde, wird die RAM-Größe vom Zähler subtrahiert. In der Praxis wird die Subtraktion niemals tatsächlich ausgeführt, da die Pointer- bzw. Zeigerlänge (der höchste Zählerstand des Zählers 38) ausgewählt wird, um zur Anzahl der verfügbaren Adressen zu passen, und der Zeiger P1 schaltet durch Voreinstellung um bzw. läuft um (oder er wird auf Null zurückgesetzt), wenn ein Versuch vorgenommen wird, ihn über die letzte Adresse des RAM zu inkrementieren. P2 verhält sich auch in dieser Weise.
- Für Filter, die zwei oder mehr identische Gewichte besitzen, wie beispielsweise ein symmetrischer Filter (der für die Tastratenumwandlung in der vorliegenden Erfindung verwendet wird) kann die Größe der Gewichtstabelle (und die Größe der Gewicht-mal-Pixel-Tabelle, die im Speicher 32 gespeichert ist) weiter reduziert werden, und zwar durch Leiten von P3 durch einen Mapping- bzw. Darstellungs- oder Aufzeichnungsprozeß oder eine Mapping- bzw. Darstellungseinheit 46, wie in Fig. 3 gezeigt, so daß die Werte von P3, die identischen Gewichten entsprechen, auf die gleiche Adresse in der Gewichtstabelle zuweisen bzw. mappen (Map = Karte oder Zuweisungsplan). Wenn beispielsweise die gewünschten Gewichte für einen speziellen Filter [k&sub0; bis k&sub1;&sub0;] wären, wobei k&sub0; = k&sub1;&sub0;, k&sub1; = k&sub9;, k&sub2; = k&sub8;, k&sub3; = k&sub7; und k&sub4; = k&sub6;, und wenn diese in die zwei Untersätze [k&sub0;, k&sub2;, k&sub4;, k&sub6;, k&sub8;, k&sub1;&sub0;] und [k&sub1; k&sub3;, k&sub5;, k&sub7;, k&sub9;] aufgeteilt wären, wie beispielsweise für das Beispiel mit 2:3 schon beschrieben, müßten nur die Gewichte k&sub0; bis k&sub5; gespeichert werden. Der Zeiger P3 würde gemappt bzw. geleitet oder zugewiesen werden, um auf diese in der Reihenfolge [k&sub0;, k&sub2;, k&sub4;, k&sub4;, k&sub2;, k&sub0;] oder [k&sub1;, k&sub3;, k&sub5;, k&sub3;, k&sub1;] zuzugreifen. Im Fall, wo die Multiplikation durch die Anwendung der Naschautabelle 32 ausgeführt wird, ist die Reduzierung der Anzahl der Gewichte insbesondere vorteilhaft.
- Der Betrieb der Mapping- bzw. Anweisungseinheit 46, die die Umwandlung der Zählung bzw. des Zählerstandes in dem Zeigerzähler 44 in die geeignete Koeffizientenauswahl ausführt, ist in den unten dargestellten Wahr-Tabellen abgebildet. Tabelle 1 Tabelle 2 Tabelle 3
- Die Mapping-Einheit 46 kann als eine Nachschautabelle in einem Speicher eingerichtet werden, wie beispielsweise in einem ROM, bei dem die Adreßeingänge Map- bzw. Karten- Wahl, Untersatzwahl und Zeiger-3-Zählerstand sind, und wobei die Ausgangsgröße Koeffizientenadreßbits sind. Wenn beispielsweise dies Ergebnisse der Multiplikation des Koeffizienten k1 mal alle möglichen Pixelwerte in einem Speicher an Adressen 0100 bis 01FF gespeichert sind (wie in Fig. 4 gezeigt, um später im Detail besprochen zu werden, wäre die Ausgangsgröße des ROM "1" wenn der Koeffizient k1 von der Steuereinheit 37 als der Untersatzwahlwert festgelegt wird. Wenn entsprechend der k5-Koeffizienten-(Gewichts-) Wert festgelegt bzw. beschrieben wird, würde die Koeffizientenausgangsgröße durch den Mapping-ROM "5" sein, was gestattet, daß die Adressen 0500 bis 05FF angesprochen werden. Es sei bemerkt, daß, wenn eine "NULL" die Koeffizientenwahlausgangsgröße ist, der RAM 32 einen Wert von Null ausgibt, was eine Null- Koeffizientenwahl erfordert, um eine Speicherstelle anzusprechen, die eine Null speichert, oder anders den Ausgang des Speichers 32 auf Null zu halten. Die Mapping- Einheit 46 könnte auch eine verkabelte bzw. als Hardware ausgeführte Decodierungslogik bzw. Docodierungslogikmittel sein, die von einem Fachmann aus den Nachschautabellen 1-3 erzeugt wurden, und zwar unter Verwendung eines Logik- bzw. Logikmittelkonstruktionswerkzeuges, wie beispielsweise Idea Station von Mentor Graphics.
- Die Speicherkarte bzw. Speichermap einer Nachschautabelle, die verwendet wird, um die Multiplikation für die drei unterschiedlichen Filter auszuführen, wie in den Gleichungen 1-3 dargelegt, und die Vorteil aus dieser Symmetrie erzieht, und das Adreßschema sind in Fig. 4 gezeigt. Wie in Fig. 4 zu sehen, weist die Speicheradresse zwei Tabellen- oder Map- bzw. Kartenwahlbits 70 auf, die das implementierte Umwandlungsverhältnis auswählen, drei Koeffizienten oder Gewichtswahlbits 72, die bis zu acht Koeffizienten oder Gewichte zulassen, und acht Bits 74, die gleich dem multiplizierten Pixelwert sind. Der Inhalt des Speichers 32 wird in drei Tabellen 76, 78 und 80 aufgeteilt, und zwar entsprechend der speziellen Umwandlungsrate. Jede der Tabellen ist in Abschnitte 82-92 aufgeteilt, wobei jede Auswahl eine Tabelle entsprechend den Werten von einem der Koeffizienten mal allen möglichen Pixelwerten ist. Beispielsweise weist der Abschnitt 86 alle Ausgangswerte für den Koeffizienten k2 mal alle möglichen Pixelwerte auf. Wenn das Pixel 8 Bit ist, wie in Fig. 4 veranschaulicht, nimmt jeder Abschnitt 256 Acht- Bit-Bytes ein. Es sei bemerkt, daß die Abschnitte entsprechend den Koeffizienten k6 und k7, die 4:3- Umwandlung, nicht gezeigt sind, da die Tabelle 80 nicht im Detail in Fig. 4 gezeigt ist.
- Die Steuereinheit 37 kann ein herkömmlicher Mikroprozessor mit einem geeigneten Programm und einem Datenspeicher sein, oder die Einheit 37 kann aus verkabelten bzw. als Hardware eingerichteten Schaltungen ausgeführt sein, die herkömmliche Zähler, Register, Komparatoren, Addierer und Steuerlogiken bzw. Steuerlogikmittel aufweisen, beispielsweise eine Zustandsmaschine (state machine). Verkabelte Schaltungen werden vorzugsweise verwendet, wenn die Erfindung als Teil einer integrierten Schaltung eingerichtet wird, da der Raum, der für die verkabelten Schaltungen erforderlich ist, geringer ist, als jener für einen Mikroprozessor. Fig. 5 veranschaulicht die Vorgänge, die von der Steuereinheit 37 ausgeführt werden, aus denen ein Fachmann einen Mikroprozessor programmieren kann oder die verkabelten Schaltungen auslegen kann. Wenn ein Beginn einer neuen Zeile von Pixeln detektiert wird 90, tritt die Steuereinheit 37 aus einem Warte- oder Leerlaufzustand aus und setzt sich zurück 92 oder setzt die Zählung bzw. den Zählerstand in den Zählern 38 und 44 und den Zählerstand im Register 40 auf Null, lädt den aus der Umwandlungskarte (map) oder Tabelle ausgewählten Wert, wie von den Inhalten des Registers 50 bezeichnet und setzt den Koeffizientenuntersatzwahlwert, der anzeigt, welcher Koeffizient zu verarbeiten ist, auf Null. Der Untersatzwahlwert kann in einem Zähler oder in einem Register enthalten sein, wobei die Inhalte davon inkrementiert werden können, und der Map- bzw. Kartenwahlwert kann auch in einenm Register gespeichert werden. Zusätzlich werden die Inhalte der Register A, B, D und E, die später genauer besprochen werden, auf Null zurückgesetzt. Die Einheit 37 bestimmt dann 94, ob die Bestätigungs(ACK-) Leitung frei ist, sendet 96 eine Anforderung bzw. ein Request (REQ), wenn sie frei ist, wartet bis ACK wieder aktiv ist und löst bzw. schaltet 100 REQ. Die Abfolge der Schritte 94, 96, 98 und 100 sind der herkömmliche Handshake bzw. die Übergabe, die auftritt, wenn ein neuer Pixelwert zur Verarbeitung verfügbar ist. Sobald der Handshake bzw. die Übergabe vollendet ist, ist der Wandler 28 fertig, um eine Verarbeitung eines Pixelwertes des Eingangspixelstroms zu beginnen. Der erste Schritt is es, die Adressenwahlleitung des Multiplexers 42 zu setzen bzw. einzustellen, um den Zähler 38 zu wählen 102. Die Schreibleitung des RAM 30 wird dann gepulst 104, was bewirkt, daß der erste Pixelwert an die erste Stelle des RAM 30 geschrieben wird. Als nächstes wird der Zähler 38 inkrementiert 106, und der im Register E gespeicherte Zählerstand wird inkrementiert. Der Zählerstand des Registers E zählt die Anzahl der eingegebenen Pixel, so daß der Betrieb des Wandlers 28 angehalten werden kann, wenn alle Pixel der Zeile eingegeben worden sind. Die Inhalte des Registers D werden auch inkrementiert 110, und zwar durch die Aufsampling-Rate N. Das Register D speichert einen Wert, der verwendet wird, wann genug Pixeiwerte eingegeben worden sind, um ein Ausgangspixel zu erzeugen. Das Register D wird jedes Mal um N inkrementiert, wenn ein neues Eingangspixel in den RAM 30 geschrieben wird. Wenn bestimmt wird, 112, daß die Inhalte des Registers D die Absample-Rate M überschreiten, werden die Inhalte des Registers D um M dekrementiert und der Prozeß der Berechnung des nächsten Ausgangspixels wird ausgeführt. Anderenfalls wird die Anzahl der Eingangspixel, die in dem Register E gespeichert sind, gegen die Pfeilenlänge getestet 114, um zu bestimmen, ob zu Stoppen ist 116. Wenn das Ende der Zeile der Pixel nicht erreicht worden ist, tritt der Handshake- bzw. Übergabevorgang wieder auf und ein weiterer Eingangspixelwert wird gespeichert.
- Wenn eine ausreichende Anzahl von neuen Pxielwerten eingegeben worden ist, um eine Ausgabe bzw. Ausgangsgröße 112 zu erzeugen, wird der Zähler 2 vom Multiplexer 42 gewählt 117, die Inhalte des Registers D werden aktualisiert 118, die Inhalte des Akkumulators 33 werden zurückgesetzt 120, und die Inhalte des Registers B werden auf Null gesetzt 122. Das Register B speichert die Zäh lung bzw. den Zählerstand, wie viele Gewichte oder Koeffizienten innerhalb eines speziellen Untersatzes von Gewichten verwendet worden sind. Das Register A wird mit dem Wert des Zählers 2 geladen 124, der in dem Register gespeichert ist. Der Akkumulator 33 wird dann getaktet 126, wobei das Resultat der Multiplikation akkumuliert wird. Das Register 40 und der Zähler 44 werden dann inkrementiert (+1) 128, was zum nächsten Pixelwert und Koffizienten zur Multiplikation zeigt. Der Koeffizientenzählerstand im Register B wird inkrementiert 130, und der Koeffizientenzählerstand wird getestet 132, um zu bestimmen, ob alle Gewichte verarbeitet worden sind, und ein Ausgangspixelwert erzeugt werden kann. Wenn dies so ist, wird der Datentakt gepulst 134. Der Wert im Zeigerzähler wird dann aktualisiert 136. C ist ein Wert, der zu dem alten Zeigerwert addiert wird, der im Register A gespeichert ist, um den nächsten Wert des Zeigers 2 zu bestimmen. Dies "schiebt" den nächsten Untersatz von Gewichten, um ordnungsgemäß mit dem Eingangspixelstrom ausgerichtet zu werden, um den nächsten Ausgangspixelwert zu berech nen. Die C-Eingabe kann aus einer Nachschautabelle erzeugt werden, die in einem ROM gespeichert ist, der Eingänge von den Kartenwahl- bzw. Map-Wahl- (d. h. Tastratenumwandlungsauswahl) und Untersatz-Wahl-Leitungen besitzt. Als nächstes wird der Untersatzwahlwert inkrementiert (+1) 138, um auf den nächsten Satz von Koeffizienten zu zeigen. Wenn dieser Vorgang beendet ist, inkrementiert die Steuereinheit 37 110 das Register D und fährt fort, wie zuvor besprochen.
- Die vorliegende Erfindung hat zur Folge, daß viel weniger Hardware bzw. Komponenten erforderlich sind, auch wenn man diskrete VLSI-Teile verwendet, wie beispielsweise Multiplizierer, Addierer und Speicher, um die Tastratenumwandlung auszuführen. Die Schaltung der vorliegenden Erfindung ist flexibler als der Stand der Technik, was gestattet, daß der gleiche Satz von Hardware unterschiedliche Tastratenumwandlungen ausführt, wobei Parameter, wie beispielsweise die Zeilenlänge, die Filterlänge, Sampling- bzw. Tastverhältnisse und Filtergewichte leicht verändert werden können, und zwar durch Schreiben von neuen Werten in die verschiedenen Register und/oder den Speicher, die in Fig. 3 gezeigt sind, ohne eine Rekonfiguration der Hardware zu erfordern.
- Die vielen Merkmale und Vorteile der Erfindung werden aus der detaillierten Beschreibung offensichtlich und somit ist es beabsichtigt, daß die beigefügten Ansprüche alle solche Merkmale und Vorteile der Erfindung abdecken, die in den Umfang der Erfindung fallen. Da weiter zahlreiche Modifikationen und Veränderungen dem Fachmann leicht offensichtlich werden, ist es nicht erwünscht, die Erfindung auf die genaue Konstruktion und den genauen Betrieb einzuschränken, die veranschaulicht und beschrieben wurden, und entsprechend kann auf alle geeigneten Modifikationen und äquivalente Ausführungen zugegriffen werden, die in den Umfang der Ansprüche fallen.
Claims (8)
1. Tastratenwandler (28), der folgendes aufweist:
a) Speichermittel (30) zum Speichern von
Eingangsdaten mit einer ersten Tastrate;
b) Filtermittel zum direkten Filtern der
Eingangsdaten zur Erzeugung von Ausgangsdaten mit einer
zweiten Tastrate, wobei die Filtermittel folgendes
aufweisen:
einen Multiplikationsspeicher (32) verbunden mit den
Speichermitteln (30) zum Speichern sämtlicher
Kombinationen der Pixelwerte mal der Filterkoeffizienten
für jede Tastumwandlungsrate; und
c) einen Steuerabschnitt (36) verbunden mit den
Speichermitteln (30) und den Filtermitteln, wobei
der Steuerabschnitt (36) folgendes aufweist:
einen Multiplexer (42) zur Auswahl zwischen
Speicherzeigern (Pointer) für den Speicher;
erste und zweite mit dem Multiplexer verbundene
Zeiger- oder Pointerzähler (38, 40);
einen dritten Pointer- oder Zeigerzähler (44)
verbunden mit dem Multiplikationsspeicher;
eine Steuereinheit (37) verbunden mit den
Speichermitteln, den Filtermitteln und den Zeiger- oder
Pointer-Zählern; und
Darstellungs- (Mapping-) Mittel (46) verbunden
zwischen dem dritten Pointer- oder Zeiger-Zähler (44)
und dem Multiplikationsspeicher (32) zum Umwandeln
eines sequentiellen Zählerstandes in eine
nichtsequentielle Koeffizienten-Auswahl oder Selektion.
2. Wandler nach Anspruch 1, wobei die Filtermittel
ferner folgendes aufweisen:
einen Filterkoeffizientenspeicher (32), der
Filterkoeffizienten entsprechend den Eingangsdaten und für
jede Tastumwandlungsrate abgibt;
einen Multiplizierer (32) verbunden mit dem Speicher
und die Eingangsdaten mit den Filterkoeffizienten
multiplizierend; und
einen Akkumulator (33) verbunden mit dem
Multiplizierer (32) und die mit dem Koeffizienten
multiplizierten Eingangsdaten akkumulierend.
3. Wandler nach Anspruch 1, wobei die Darstellungs-,
Mapping- oder Aufzeichnungsmittel (46) einen
sequentiellen Zählerstand, eine
Koeffizienten-Untersatzauswahl und eine
Tastraten-Umwandlungsdarstellungsauswahl in die nicht sequentielle
Koeffizientenauswahl umwandeln.
4. Wandler nach einem der vorhergehenden Ansprüche,
wobei die Filterkoeffizienten symmetrisch sind und der
Multiplikationsspeicher einen in Tabellen
aufgeteilten Speicher entsprechend den Tastraten-Umwandlungen
aufweist, und wobei jede Tabelle in
Koeffizientenabschnitte unterteilt ist, die die Pixelwerte
multipliziert mit einem entsprechenden symmetrischen
Filterkoeffizienten speichern.
5. Wandler nach Anspruch 1 oder 3, wobei die
Mapping- bzw. Darstellungsmittel (46) eine
ROM-Nachschautabelle und Dekodierlogik aufweisen.
6. Tastratenwandler (28) zum Umwandeln von mit einer
ersten Rate eingegebenen Eingangs-Pixelwerten in mit
einer zweiten Rate erzeugte Ausgangs-Pixelwerte,
wobei der Wandler folgendes aufweist:
einen RAM (30) zum Speichern der Eingangsdaten;
einen Multiplexer (42) verbunden mit dem RAM (30);
einen ersten Zähler (38) verbunden mit dem
Multiplexer (42) und die Speicherung der Eingangs-Pixelwerte
in das RAM steuernd;
ein Register (40) verbunden mit dem Multiplexer und
die Ausgabe der Eingangs-Pixelwerte zur Erzeugung
der Ausgangs-Pixelwerte steuernd;
ein ROM (32) verbunden mit dem RAM und die
Pixelwerte multipliziert mit den Filterkoeffizienten-Werten
speichernd;
eine Aufzeichnungs- bzw. Mapping- oder
Darstellungseinheit (46) verbunden mit dem ROM und eine
Koeffizienten-Auswahl oder einen Selektionswert erzeugend;
einen Zähler (44) verbunden mit der Mapping- bzw.
Darstellungseinheit und die Erzeugung des
Koeffizienten-Selektionswerts steuernd; und
einen Akkumulator (33) verbunden mit dem ROM (32)
und die Ausgangs-Pixelwerte erzeugend.
7. Wandler nach Anspruch 1, wobei die Filtermittel ein
Faltungsfilterung ausführen.
8. Wandler nach Anspruch 1, wobei die Speichermittel
(30) ein RAM aufweisen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/810,405 US5274469A (en) | 1991-12-23 | 1991-12-23 | Sample rate converter circuit for image data |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69221840D1 DE69221840D1 (de) | 1997-10-02 |
DE69221840T2 true DE69221840T2 (de) | 1998-03-26 |
Family
ID=25203782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69221840T Expired - Fee Related DE69221840T2 (de) | 1991-12-23 | 1992-12-22 | Abtastratenwandlungsschaltung für Bilddaten |
Country Status (4)
Country | Link |
---|---|
US (1) | US5274469A (de) |
EP (1) | EP0548917B1 (de) |
JP (1) | JPH0612487A (de) |
DE (1) | DE69221840T2 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06245063A (ja) * | 1992-12-25 | 1994-09-02 | Dainippon Screen Mfg Co Ltd | 色分解条件の設定方法 |
JPH07298061A (ja) * | 1994-04-28 | 1995-11-10 | Canon Inc | カラーファクシミリ装置 |
US5835160A (en) * | 1995-09-13 | 1998-11-10 | Oak Technology, Inc. | Sampling rate conversion using digital differential analyzers |
US5808691A (en) * | 1995-12-12 | 1998-09-15 | Cirrus Logic, Inc. | Digital carrier synthesis synchronized to a reference signal that is asynchronous with respect to a digital sampling clock |
US5892693A (en) | 1996-07-01 | 1999-04-06 | Sun Microsystems, Inc. | Signal interpolation and decimation exploiting filter symmetry |
JPH10149348A (ja) | 1996-07-01 | 1998-06-02 | Sun Microsyst Inc | フィルタ対称を使用した信号内挿及びデシメーション |
US6256654B1 (en) * | 1996-07-01 | 2001-07-03 | Sun Microsystems, Inc. | Signal interpolation and decimation exploiting filter symmetry |
US6151025A (en) * | 1997-05-07 | 2000-11-21 | Hewlett-Packard Company | Method and apparatus for complexity reduction on two-dimensional convolutions for image processing |
JP3071765B2 (ja) * | 1998-09-29 | 2000-07-31 | 日本電気アイシーマイコンシステム株式会社 | 有限数の入力データをフィルタ処理対象とするディジタルフィルタ及びディジタルフィルタ処理方法 |
KR100311482B1 (ko) | 1999-10-21 | 2001-10-18 | 구자홍 | 보간 영상의 화질 개선을 위한 필터링 제어방법 |
KR100378592B1 (ko) * | 2000-07-31 | 2003-03-31 | 한국전자통신연구원 | 디지털 이동 통신용 108 탭 1대4 인터폴레이션유한임펄스응답 필터장치 |
KR100340048B1 (ko) * | 2000-10-26 | 2002-06-15 | 오길록 | 승산기를 사용하지 않는 유한 임펄스 응답 필터 장치 |
CN100379212C (zh) * | 2002-01-23 | 2008-04-02 | 华为技术有限公司 | 一种查找表电路的实现方法 |
WO2006059301A2 (en) * | 2004-12-03 | 2006-06-08 | Koninklijke Philips Electronics N.V. | Programmable processor |
US8494297B2 (en) * | 2007-04-05 | 2013-07-23 | Adobe Systems Incorporated | Automatic detection and mapping of symmetries in an image |
JP5235604B2 (ja) * | 2008-10-20 | 2013-07-10 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
JP6349765B2 (ja) | 2014-02-13 | 2018-07-04 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
JP6201799B2 (ja) | 2014-02-13 | 2017-09-27 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
GB2552238A (en) | 2016-04-18 | 2018-01-17 | Argon Design Ltd | Blending images |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4106053A (en) * | 1977-08-01 | 1978-08-08 | Rca Corporation | Digital sampling rate conversion of color TV signal |
JPS58219841A (ja) * | 1982-06-15 | 1983-12-21 | Kokusai Denshin Denwa Co Ltd <Kdd> | 標本化周波数の高速変換回路 |
US4792975A (en) * | 1983-06-03 | 1988-12-20 | The Variable Speech Control ("Vsc") | Digital speech signal processing for pitch change with jump control in accordance with pitch period |
CA1336342C (en) * | 1988-01-21 | 1995-07-18 | Richard B. Kline | Multiple-mode modem with digital filtering |
US4891713A (en) * | 1988-06-20 | 1990-01-02 | Eastman Kodak Company | Method of sampling picture signals and apparatus therefor |
EP0370473B1 (de) * | 1988-11-22 | 1996-02-28 | Yamaha Corporation | Digitales Filter |
DE3918866A1 (de) * | 1989-06-09 | 1990-12-13 | Blaupunkt Werke Gmbh | Anordnung zur umsetzung eines signals mit einer ersten abtastrate in ein signal mit einer zweiten abtastrate |
JP3094419B2 (ja) * | 1990-02-19 | 2000-10-03 | ソニー株式会社 | サンプリングレート変換装置 |
-
1991
- 1991-12-23 US US07/810,405 patent/US5274469A/en not_active Expired - Fee Related
-
1992
- 1992-12-22 DE DE69221840T patent/DE69221840T2/de not_active Expired - Fee Related
- 1992-12-22 EP EP92121804A patent/EP0548917B1/de not_active Expired - Lifetime
- 1992-12-24 JP JP4344142A patent/JPH0612487A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0548917A1 (de) | 1993-06-30 |
DE69221840D1 (de) | 1997-10-02 |
US5274469A (en) | 1993-12-28 |
JPH0612487A (ja) | 1994-01-21 |
EP0548917B1 (de) | 1997-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69221840T2 (de) | Abtastratenwandlungsschaltung für Bilddaten | |
DE3486316T2 (de) | System und Verfahren zum Umformen und Filtern von Videobildern. | |
DE3789116T2 (de) | Prozessor zur zweidimensionalen diskreten cosinustransformation. | |
DE69422871T2 (de) | Digitaler integrierter Abtastratenumwandlungsschaltkreis und Anwendung bei einer schnellen Grössenänderung eines Bildes | |
DE3850117T2 (de) | Für einen videosignalprozessor geeignete pixelinterpolationsschaltung. | |
DE69504371T2 (de) | Digitales videoumwandlungsschaltsystem | |
DE69406306T2 (de) | Verfahren zur bildskalierung und zum filtern mit diskreter cosinustransformation | |
DE3177295T2 (de) | Vordezimierungsfilter fuer bildveraenderungssystem. | |
DE60210494T2 (de) | Hochgeschwindigkeitsberechnung in einer arithmetik- und logikschaltung | |
DE3882767T2 (de) | Bandpass-Digitaloszilloskop. | |
DE69723451T2 (de) | Deformation eines digitalen bildes mit effizienter berechnung | |
DE2135590C3 (de) | Schaltungsanordnung zum Interpolieren des Wertes einer Funktion einer unabhängigen Veränderlichen | |
DE68927120T2 (de) | Interpolator und Verfahren zur Interpolierung von digitalen Signalmustern | |
DE69033444T2 (de) | Signalprozessor mit einer arithmetischen und logischen Einheit und einer Multiplizier-Akkumulatoreinheit, die gleichzeitig betrieben werden können | |
DE3650348T2 (de) | Zweidimensionalfiltereinrichtungen mit begrenzter Impulsantwort. | |
DE3628349A1 (de) | System zur verarbeitung von signalen nach einem pyramiden-algorithmus in realzeit | |
DE3632639C2 (de) | Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung | |
DE2432594C3 (de) | Rekursives Digitalfilter | |
DE69419167T2 (de) | Digitale vorrichtung zur änderung der grösse eines bildes und verwendungsmethode desgleichen | |
DE3116042A1 (de) | Digitalfiltervorrichtung | |
DE2918692C2 (de) | Digitalfilter | |
DE69424790T2 (de) | Prozessor für schnelle Fourier-Transformation | |
DE3507584C2 (de) | ||
DE19518891C2 (de) | Verfahren und Vorrichtung zur Durchführung einer programmierbaren Videotransformation | |
DE19514069C2 (de) | Digitalfilter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |