DE69208737T2 - Schaltung zur Interpolation eines Bildsignals - Google Patents
Schaltung zur Interpolation eines BildsignalsInfo
- Publication number
- DE69208737T2 DE69208737T2 DE69208737T DE69208737T DE69208737T2 DE 69208737 T2 DE69208737 T2 DE 69208737T2 DE 69208737 T DE69208737 T DE 69208737T DE 69208737 T DE69208737 T DE 69208737T DE 69208737 T2 DE69208737 T2 DE 69208737T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- circuit
- pixel data
- memory
- image
- 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
- 230000015654 memory Effects 0.000 claims description 107
- 239000013598 vector Substances 0.000 claims description 33
- 230000003287 optical effect Effects 0.000 claims description 8
- 239000000872 buffer Substances 0.000 description 13
- 238000000034 method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
- G06F17/175—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
- H04N5/92—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N5/926—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation
- H04N5/9261—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation involving data reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
- H04N5/93—Regeneration of the television signal or of selected parts thereof
- H04N5/937—Regeneration of the television signal or of selected parts thereof by assembling picture element blocks in an intermediate store
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/84—Television signal recording using optical recording
- H04N5/85—Television signal recording using optical recording on discs or drums
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Television Systems (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
- Die Erfindung betrifft eine Schaltung zur Interpolation von Bildsignalen, die in der Lage ist, auf der Basis mehrerer Pixeldaten Interpolationswerte zwischen den jeweiligen Pixeln zu berechnen.
- Um bei der Übertragung von Bilddaten eines bewegten Bildes die übertragene Datenmenge zu reduzieren wurde bisher häufig ein Verfahren angewendet, bei dem die Datenmenge mit Hilfe eines beliebigen Verfahrens komprimiert wurde. Wenn beispielsweise, wie in Fig. 6 dargestellt, das Bild eines beliebigen Blocks Bn, der aus mehreren Pixeln (z.B. Pixel mit 8x8 Punkten) besteht, in dem Bild eines Rahmens Fn in die Position eines Blocks Bn+1 eines Rahmens Fn+1 verschoben wird, werden Bilder von zeitlich vorangehenden und nachfolgenden Rahmen (Rahmen Fn und Fn+1) miteinander verglichen, um einen sogenannten Bewegungsvektor zu detektieren, der die Richtung und das Ausmaß der Bewegung von dem Block Bn zu dem Block Bn+1 anzeigt. Die Information des Bewegungsvektors wird dann in Bezug auf das Bild des bewegten Blocks übertragen und damit letztlich die übertragene Datenmenge von bewegten Bildern komprimiert.
- Wenn beispielsweise, wie in Fig. 7 dargestellt, durch Vergleichen zweier Bilder, die jeweils aus mehreren Pixeln D bestehen, festgestellt wird, daß ein Block, der in einem zeitlich vorangehenden Rahmen an der Position Ba in der Figur lag (der Block hat in dem Beispiel von Fig. 7 eine Größe von 3x3 Punkten) in dem nachfolgenden Rahmen in die Position Bb bewegt wurde, besitzt der oben erwähnte Bewegungsvektor v(x, y) die Komponenten (oder Koordinaten) v(x, y) = (+3, -3). Ein Vektor mit solchen Komponenten, wie sie in Fig. 7 dargestellt sind, wird als ein Vektor mit ganzzahliger Genauigkeit bezeichnet.
- Wenn, wie in Fig. 8 dargestellt, durch Vergleichen zweier Bilder, die jeweils aus mehreren Pixeln D bestehen, festgestellt wird, daß ein Block, der in einem zeitlich vorangehenden Rahmen an der Position Bc in der Figur lag (der Block hat auch in dem Beispiel von Fig. 8 eine Größe von 3x3 Punkten) in dem nachfolgenden Rahmen in die Position Bd bewegt wurde, besitzt der oben erwähnte Bewegungsvektor v(x, y) die Komponenten (oder Koordinaten) v(x, y) = (+2,5, -1,5). Ein Vektor mit solchen Komponenten, wie sie in Fig. 8 dargestellt sind, wird als ein Vektor mit Halbpixelgenauigkeit bezeichnet.
- Bei einer solchen Codierung mit D> atenkompression, bei der die Bewegungsvektorinformation zusammen mit den Bilddaten übertragen wird, benutzt man diese Bewegungsvektorinformation zur Dekodierung für den Aufbau eines Bildes des Blocks. Wenn beispielsweise, wie in Fig. 8 dargestellt, ein Bewegungsvektor mit Halbpixelgenauigkeit zur Bildung oder zum Aufbau des Blocks Bb in Fig. 8 verwendet wird, macht man von der Möglichkeit Gebrauch, die Daten (Interpolationswerte), die den Block Bc in Fig. 8 bilden, aus Werten der betreffenden Pixeldaten eines Blocks zu berechnen, der größer ist als der Block Bc in Fig. 8, und anschließend diesen Block Bb in Fig. 8 zu bilden oder aufzubauen.
- Wenn man davon ausgeht, daß der oben erwähnte Block beispielsweise aus Pixeln mit 8x8 Punkten besteht, benötigt man zur Bildung eines Blocks, der Daten mit Halbpixelgenauigkeit (Interpolationswerte) aufweist, wie dies in Fig. 8 dargestellt ist, einen Operations- oder Rechenvorgang, der weiter unten beschrieben wird.
- Wenn beispielsweise in dem Block mit 8x8 Punkten Daten mit Halbpixelgenauigkeit bestimmt werden sollen, d.h. Werte in horizontaler Richtung, die aus den betreffenden Pixeldaten in horizontaler Richtung interpoliert werden, benutzt man den in Fig. 9 dargestellten Lösungsweg, bei dem Werte der betreffenden zwei benachbarten Pixeldaten aus insgesamt neun Pixeldaten DH1, DH2, ..., DH9 in horizontaler Richtung eines Blocks mit 9x9 Punkten addiert werden, der größer ist als der Block mit 8x8 Punkten, und dividiert diese durch 2. Die so gewonnenen Werte werden als Interpolationswerte dH1, dH2, ..., dH8 betrachtet. Und zwar wird bei der Bestimmung von Interpolationswerten in horizontaler Richtung ein Interpolationswert dH1 aus den Pixeldaten DH1 und DH2 bestimmt oder berechnet, ein Interpolationswert dH2 aus den Pixeldaten DH2 und DH3, ein Interpolationswert dH3 aus den Pixeldaten DH3 und DH4, ein Interpolationswert dH4 aus den Pixeldaten DH4 und DH5, ein Interpolationswert dH5 aus den Pixeldaten DH5 und DH6, ein Interpolationswert dH6 aus den Pixeldaten DH6 und DH7, ein Interpolationswert dH7 aus den Pixeldaten DH7 und DH8 und ein Interpolationswert dH8 aus den Pixeldaten DH8 und DH9. Durch Wiederholung dieser Operation können in dem Block mit 8x8 Punkten 64 Interpolationswerte in horizontaler Richtung gebildet werden.
- Wenn in einem solchen Block mit 8x8 Punkten Interpolationswerte in vertikaler Richtung bestimmt oder berechnet werden sollen, benutzt man den in Fig. 10 angedeuteten Lösungsweg, bei dem jeweils zwei in vertikaler Richtung benachbarte Pixeldaten D1H1, D1H2, ..., D1H8 und D2H2, D2H8, die in zwei horizontalen Zeilen angeordnet sind, addiert und die addierten Werte durch 2 dividiert werden. So gewinnt man Interpolationswerte so gewonnenen Werte werden als Interpolationswerte dv1, dv2, ... dv8. Und zwar wird in Fig. 10 bei der Bestimmung von Interpolationswerten in horizontaler Richtung ein Interpolationswert dv1 aus den Pixeldaten D1H1 und D1H2 bestimmt, ein Interpolationswert dv2 aus den Pixeldaten D1H2 und D2H3, ein Interpolationswert dv3 aus den Pixeldaten D1H3 und D2H4, ein Interpolationswert dv4 aus den Pixeldaten D1H4 und D2H5, ein Interpolationswert dv5 aus den Pixeldaten D1H5 und D2H6, ein Interpolationswert dv6 aus den Pixeldaten D1H6 und D2H7, ein Interpolationswert dv7 aus den Pixeldaten D1H7 und D2H8 und ein Interpolationswert dv8 aus den Pixeldaten D1H8 und D2H9. Durch Wiederholung dieser Operation können in dem Block mit 8x8 Punkten 64 Interpolationswerte in vertikaler Richtung gebildet werden.
- Um in einem solchen Block mit 8x8 Punkten Interpolationswerte an Zwischenpositionen aus den Pixeldaten in horizontaler und vertikaler Richtung zu bestimmen oder zu berechnen, wird beispielsweise der in Fig. 11 dargestellte Lösungsweg beschritten, bei dem die Werte von jeweils vier in vertikaler und horizontaler Richtung benachbarten Pixeldaten D1H1, D1H2, ..., D1H9 und D2H1, D2H2, ..., D2H9, die in zwei horizontalen Zeilen eines Blocks mit 9x9 Punkten angeordnet sind, der größer ist als der Block mit 8x8 Punkten, addiert, die addierten Werte durch 4 geteilt und die so gewonnenen Werte als Interpolationswerte dM1, dM2 ..., dM8 verwendet werden. Und zwar wird in Fig. 11 der Interpolationswert dM1 aus Pixeldaten D1H1, D1H2 und D2H1, D2H2 bestimmt, der Interpolationswert dM2 aus den Pixeldaten D1H2, D1H3 und D2H2, D2H3, der Interpolationswert dM3 aus den Pixeldaten D1H3, D1H4 und D2H3 D2H4, der Interpolationswert dM4 aus den Pixeldaten D1H4, D1H5 und D2H4, D2H5, der Interpolationswert dM5 aus den Pixeldaten D1H5, D1H6 und D2H5, D2H6 der Interpolationswert dM6 aus den Pixeldaten D1H6, D1H7 und D2H6, D2H7, der Interpolationswert dM7 aus den Pixeldaten D1H7, D1H8 und D2H7, D2H8 und der Interpolationswert dM8 aus den Pixeldaten D1H8, D1H9 und D2H8, D2H9. Auf diese Weise lassen sich in dem Block mit 8x8 Punkten 64 Interpolationswerte an Zwischenpositionen vertikaler und horizontaler Richtung bestimmen.
- Als Anordnung für die oben beschriebene Bestimmung oder Berechnung von Interpolationswerten mit Halbpixelgenauigkeit in einem Block von 8x8 Punkten ist z.B. die in Fig. 12 dargestellte Bildsignal-Interpolationsschaltung bekannt. Zur Vereinfachung der Erläuterung und Darstellung ist hier nur die Anordnung für die in Fig. 9 gezeigte Bestimmung von Interpolationswerten in horizontaler Richtung dargestellt. Außerdem handelt es sich hier um ein Beispiel, bei dem in der Bildsignal-Interpolationsschaltung die Interpolationswerte auf der Basis von Bilddaten und Informationen bestimmt werden, die von einem Aufzeichnungsmedium ausgelesen werden, auf dem zusammen mit den Bilddaten Bewegungsvektorinformationen aufgezeichnet sind.
- In Fig. 12 ist die Bewegungsvektorinformation zusammen mit den Bilddaten auf einem Aufzeichnungsmedium aufgezeichnet, das im dargestellten Beispiel eine optische Platte 1 ist. Von dieser optischen Platte 1 werden die aufgezeichneten Daten mit Hilfe einer Leseeinrichtung 2 ausgelesen. Die von der optischen Platte 1 ausgelesenen Bilddaten werden einem Umschalter 5 zugeführt. Wenn dieser Umschalter 5 auf die Schaltseite a geschaltet ist, werden die Bilddaten z.B. einem Vollbildspeicher (Rahmenspeicher) 6 zugeführt und in diesem gespeichert. Dieser Rahmenspeicher 6 führt nach Maßgabe von Schreib/Lese-Adressendaten, die von einem Adressengenerator 4 geliefert werden, eine Lese/Schreiboperation aus. Die Bewegungsvektorinformation der von der optischen Platte 1 ausgelesenen Daten wird von einem Bewegungsvektordetektor 3 detektiert. Die so detektierte Bewegungsvektorinformation wird dem Adressengenerator 4 zugeführt. In dem Adressengenerator 4 werden Lese-Adressendaten zum Auslesen der betreffenden Pixeldaten eines Blocks erzeugt, der durch die Bewegungsvektorinformation der Bilddaten bestimmt wird, die in dem Rahmenspeicher 6 gespeichert sind.
- Die Pixeldaten des so ausgelesenen Blocks werden einem Umschalter 8 zugeführt. Wenn der Umschalters 8 auf den Schaltanschluß a geschaltet ist, werden die Pixeldaten über einen Eingang 33 einer Bildsignal-Interpolationsschaltung 20 zugeführt. Diese Bildsignal-Interpolationsschaltung 20 besteht aus einem 9-Bit-Schieberegister 21, einem 8-Bit-Schieberegister 23 sowie aus Operations- oder Rechenelementen 22 zum Addieren und Dividieren durch 2. Die Pixeldaten des Blocks, die über den Umschalter 8 zugeführt werden, werden seriell an das 9-Bit-Schieberegister 21 weitergegeben. Die von dem 9-Bit-Schieberegister 21 parallel ausgegebenen Pixeldaten werden entsprechenden Exemplaren von acht Operations- oder Rechenelementen zugeführt, die einen Rechenvorgang ausführen und die Daten von jeweils zwei in horizontaler Richtung benachbarten Pixeln (Fig. 9) addieren und durch 2 teilen. Die Ausgangssignale dieser Operations- oder Rechenelemente 22 werden dem 8-Bit-Schieberegister 23 zugeführt. Dieses gibt die den Ergebnissen der von den Operations- oder Rechenelementen 22 ausgeführten Operationen entsprechenden Daten an einem Ausgang 38 seriell aus.
- Das Ausgangssignal des Schieberegisters 23, d.h. die Daten der betreffenden Interpolationswerte werden über einen Umschalter 9, der auf seinen Schaltanschluß a geschaltet ist, zum zweiten Mal z.B. in dem Rahmenspeicher 6 gespeichert. Die hierbei verwendeten Schreibadressendaten stammen aus dem Adressengenerator 4 und basieren auf der Bewegungsvektorinformation.
- Die bildinterpolierten Bilddaten, die in dieser Weise z.B. in dem Rahmenspeicher 6 gespeichert wurden, werden über den auf den Schaltanschluß b geschalteten Umschalter 8 und den auf den Schaltanschluß a geschalteten Umschalter 10 einem Monitor 11 zugeführt, der ein Bild anzeigt, in dem das Bild des Blocks auf der Basis der Bewegungsvektorinformation verschoben ist.
- Während des beschriebenen Verarbeitungsvorgangs, bei dem die Interpolationswerte der von der optischen Platte 1 ausgelesenen und z.B. in dem Rahmenspeicher 6 gespeicherten Daten bestimmt oder berechnet werden, werden die Daten des nächsten Rahmens von der optischen Platte 1 ausgelesen. Die Daten des nächsten Rahmens werden über den auf den Schaltanschluß b geschalteten Umschalter 5 in einem Rahmenspeicher 7 gespeichert. Nachdem die Bestimmung oder Berechnung der Interpolationswerte der in dem Rahmenspeicher 6 gespeicherten Daten beendet ist, werden die in dem Rahmenspeicher 7 gespeicherten Daten über den auf den Schaltanschluß b geschalteten Umschalter 8 der Bildsignal- Interpolationsschaltung 20 zugeführt. Nach einer der oben beschriebenen Verarbeitung analogen Verarbeitung werden die Daten dem Monitor 11 zugeführt. Dabei sind der Umschalter 9 auf den Schaltanschluß b und der Umschalter 10 auf den Schaltanschluß b geschaltet.
- Durch die beschriebene Verarbeitung mit "doppelter Pufferung", bei der abwechselnd die beiden Rahmenspeicher 6 und 7 benutzt werden, werden auf dem Monitor 11 aufeinanderfolgende Bewegtbilder angezeigt.
- Es sei noch erwähnt, daß bei der Schaltung von Fig. 12 zusätzlich analoge Anordnungen, die dort nicht dargestellt sind, benötigt werden, um Interpolationswerte auch in vertikaler Richtung und Interpolationswerte in Zwischenpositionen vertikaler und horizontaler Richtung zu bestimmen oder zu berechnen, und daß die Operations- oder Rechenelemente zur Bestimmung oder Berechnung von Interpolationswerten von Zwischenpositionen vertikaler und horizontaler Richtung in der Lage sein müssen, die ihnen zugeführten Daten durch 4 zu dividieren.
- Die vorangehend beschriebene Signal-Interpolationsschaltung von Fig. 12 erfordert ein Schieberegister (9-Bit-Schieberegister 21 oder 8-Bit-Schieberegister 23), das der Anzahl der Punkte (z.B. 8x8 Punkte) des zu verarbeitenden Blocks entspricht. Wenn also z.B. die Größe des Blocks geändert werden soll, muß der Schaltungsentwurf so geändert werden, daß die Bildsignal-Interpolationsschaltung der Größe des zu ändernden Blocks entspricht. Dies erfordert hohe Kosten für den Schaltungsentwurf (Entwicklungskosten), und es ist schwierig, eine vielseitig verwendbare Bildsignal-Interpolationsschaltung herzustellen, die für verschiedene Blöcke geeignet ist.
- Außerdem benötigt die herkömmliche Bildsignal-Interpolationsschaltung sehr viel Verarbeitungszeit für die Interpolation, so daß eine Verarbeitung mit hoher Geschwindigkeit schwierig ist.
- Hiervon ausgehend ist es ein Ziel der vorliegenden Erfindung, eine Bildsignal-Interpolationsschaltung zu schaffen, die in der Lage ist, Interpolationswerte von Blöcken verschiedener Größe zu bestimmen oder zu berechnen, die vielseitig verwendbar und kostengünstig ist und mit hoher Geschwindigkeit betrieben werden kann.
- Zur Erreichung dieses Ziels ist nach einem Aspekt der vorliegenden Erfindung eine Schaltung zur Interpolation von Bildsignalen vorgesehen mit
- einer Mehrzahl von integrierten Schaltungen,
- wobei jede integrierte Schaltung aufweist:
- - einen Speicher zum Halten von Pixeldaten mit 2 x 2 Punkten,
- - eine interpolierende Operationsschaltung zum Berechnen von interpolierten Werten auf der Basis der betreffenden Pixeldaten mit 2x2 Punkten und
- - eine Steuereinrichtung zur Steuerung der Eingabe/Ausgabe der Pixeldaten, wobei die Mehrzahl von integrierten Schaltungen arrayförmig angeordnet ist, um zwischen Pixeln eines Blocks, der aus Pixeln von 2nx2m Punkten besteht, interpolierte Werte zu berechnen, worin n und m positiv und ganzzahlig sind.
- Die integrierte Schaltung kann einen Steueranschluß, einen Eingangsanschluß und einen Ausgangsanschluß aufweisen. Außerdem kann die integrierte Schaltung weiterhin aufweisen: Einen ersten Wähler zur Unterstützung der selektiven Speicherung von Daten, die von dem Eingangsanschluß in den Speicher eingegeben werden, und einen zweiten Wähler zur selektiven Ausgabe entweder von Pixeldaten aus dem Speicher oder von Pixeldaten aus der interpolierenden Operationsschaltung an den Ausgangsanschluß. In diesem Fall wird vorzugsweise so vorgegangen, daß Pixeldaten aus dem Speicher oder Pixeldaten von dem Ausgangsanschluß Daten mit ganzzahliger Genauigkeit sind und Daten aus der interpolierenden Operationsschaltung Daten mit halber Pixelgenauigkeit sind.. Die interpolierende Operationsschaltung kann so arbeiten, daß sie im Fall der Berechnung eines interpoliertes Wertes von zwei in horizontaler Richtung benachbarten Pixeln einen Verarbeitungsvorgang ausführt, bei dem die in horizontaler Richtung benachbarten Pixeldaten addiert und der addierte Wert durch 2 geteilt wird, daß sie im Fall der Berechnung eines interpoliertes Wertes von zwei in vertikaler Richtung benachbarten Pixeln einen Verarbeitungsvorgang ausführt, bei dem die in vertikaler Richtung benachbarten Pixeldaten addiert und der addierte Wert durch 2 geteilt wird, und daß sie im Fall der Berechnung von interpolierten Werten in Zwischenpositionen von vier Pixeln, die vertikaler und ein horizontaler Richtung einander benachbart sind, einen Verarbeitungsvorgang ausführt, bei dem diese vier Pixeldaten addiert und der addierte Wert durch 4 geteilt wird. Die beschriebene Bildsignal-Interpolationsschaltung läßt sich für einen Verarbeitungsvorgang einsetzen, bei dem die Bilddaten durch Bewegungsvektoren der Bilddaten dekodiert werden.
- Nach einem zweiten Aspekt der Erfindung ist eine Bildsignal-Dekodiervorrichtung vorgesehen mit einer ersten Aspekt der Erfindung entsprechenden Bildsignal-Interpolationsschaltung, ferner einer Leseschaltung zum Auslesen von Bilddaten und Bewegungsvektorinformationen aus einem Speichermedium, einem Rahmenspeicher zum Speichern der ausgelesenen Bilddaten, einem Detektor zum Detektieren der Bewegungsinformation und einer Steuerschaltung zum Erzeugen von Steuersignalen für den Rahmenspeicher und die Bildsignal-Interpolationsschaltung auf der Basis der Bewegungsvektorinformation aus dem Detektor, um auf diese Weise Bitdaten aus dem Rahmenspeicher mit Hilfe der Bildsignal-Interpolationsschaltung zu dekodieren. Das Speichermedium ist vorzugsweise eine optische Platte. Der Rahmenspeicher kann die der Verarbeitung durch die Bildsignal-Interpolationsschaltung unterzogenen Bilddaten ein zweites Mal speichern und einer Anzeigevorrichtung zuführen.
- Fig. 1 zeigt die Anordnung einer Bildsignal-Interpolationsschaltung nach einem ersten Ausführungsbeispiel der Erfindung als Blockschaltbild,
- Fig. 2 zeigt eine Ansicht zur Erläuterung von Interpolationswerten in einem zweiten Ausführungsbeispiel der Erfindung,
- Fig. 3 zeigt eine Ansicht zur Erläuterung der Funktion bei der Bestimmung oder Berechnung von Interpolationswerten des zweiten Ausführungsbeispiels,
- Fig. 4 zeigt die Anordnung einer Bildsignal-Interpolationsschaltung nach dem zweiten Ausführungsbeispiel als Blockschaltbild,
- Fig. 5 zeigt die Anordnung zur Berechnung von Interpolationswerten mit Halbpixelgenauigkeit und/oder mit ganzzahliger Genauigkeit in horizontaler und vertikaler Richtung in der Schaltung des zweiten Ausführungsbeispiels als Blockschaltbild,
- Fig. 6 zeigt eine Ansicht zur Erläuterung von Blöcken und des Bewegungsvektors,
- Fig. 7 zeigt eine Ansicht zur Erläuterung der ganzzahligen Genauigkeit,
- Fig. 8 zeigt eine Ansicht zur Erläuterung der Halbpixelgenauigkeit,
- Fig. 9 zeigt eine Ansicht zur Erläuterung des Interpolationsvorgangs in horizontaler Richtung,
- Fig. 10 zeigt eine Ansicht zur Erläuterung des Interpolationsvorgangs in vertikaler Richtung,
- Fig. 11 zeigt eine Ansicht zur Erläuterung des Interpolationsvorgangs in horizontaler und vertikaler Richtung,
- Fig. 12 zeigt eine herkömmliche Bildsignal-Interpolationsschaltung als Blockschaltbild.
- Im folgenden seien anhand der Zeichnungen bevorzugte Ausführungsbeispiele beschrieben, bei denen die Erfindung angewendet wird. Eine Bildsignal-Interpolationsschaltung 30, einem ersten Ausführungsbeispiel der Erfindung entspricht, eignet sich zur Berechnung von Werten, die zwischen entsprechenden Pixeln des Bilds eines Blocks interpoliert sind, der von Pixeln mit einer Mehrzahl von Punkten gebildet ist. Die Bildsignal-Interpolationsschaltung 30 hat die Struktur eines aus einer Mehrzahl von integrierten Schaltungen 31 (31&sub1;, 31&sub2;, ...) bestehenden Arrays und liefert Werte, die zwischen entsprechenden Pixeln eines Blocks interpoliert sind, der aus Pixeln mit 2nx2m Punkten besteht. Jede der integrierten Schaltungen 31 besitzt vier Speicher 40, 41, 42, 43 zum Halten von Pixeldaten eines Punkts, die als Speichermittel zum Halten von Pixeldaten mit 2x2 Punkten dienen, ferner Operations- oder Rechenelemente 44, 45, 46, 47, die eine interpolierende Operationseinrichtung zur Berechnung von Interpolationswerten auf der Basis der betreffenden Pixeldaten von 2x2 Punkten bilden, sowie einen Steuerteil 36 zur Eingabe/Ausgabesteuerung.
- Es sei erwähnt, daß die Komponenten, die Komponenten der oben beschriebenen Schaltung von Fig. 12 entsprechen, mit den gleichen Bezugszeichen versehen sind wie dort und daß die Funktion dieser Komponenten nicht erneut beschrieben wird. Außerdem wird das vorliegende Ausführungsbeispiel für ein Beispiel erläutert, bei dem der Block von Pixeldaten z.B. 8x8 Punkte aufweist (d.h. 2nx2m = 8x8).
- Die Bewegungsvektorinformation aus dem Bewegungsvektordetektor 3 wird einer Steuerschaltung 50 zugeführt, die Schreib/Lese-Adressendaten zum Ein- und Auslesen der oben beschriebenen Rahmenspeicher 6, 7 erzeugt und Steuersignale bildet, die den jeweiligen Steuerteilen 36 der integrierten Schaltungen 31&sub1;, 31&sub2;, ... (im vorliegenden Ausführungsbeispiel 31&sub1; bis 31&sub8;) zugeführt werden. Die Steuersignale aus der Steuerschaltung 50 werden den Steuerteilen 36 jeweils über Anschlüsse 32 der integrierten Schaltungen zugeführt.
- Den Anschlüssen 33 der Bildsignal-Interpolationsschaltung 30 werden z.B. von den Rahmenspeichern 6 oder 7 jeweils die Pixeldaten eines Blocks zugeführt. Diese Pixeldaten werden jedem Wähler 35 zugeführt. Dieser Wähler 35 gibt die ihm zugeführten Pixeldaten selektiv in Abhängigkeit von einem Schaltsignal aus dem Steuerteil 36 aus, der in Abhängigkeit von dem Steuersignal wirksam wird. Das heißt, der Wähler 35 dient dazu, die oben beschriebenen vier Pixeldaten, die in horizontaler und vertikaler Richtung einander benachbart sind (wie dies in Fig. 10 oder 11 dargestellt ist), selektiv an die entsprechenden Speicher 40 bis 43 auszugeben. Der Wähler 35 kann z.B. benachbarte Pixeldaten in einer Reihe der oberen Zeile von Fig. 10 oder 11 an die Speicher 40, 41 ausgeben sowie benachbarte Pixeldaten in einer Reihe der unteren Zeile von Fig. 10 oder 11 die Speicher 42, 43.
- Die Speicherung von Pixeldaten z.B. in den Speichern 40 bis 43 der integrierten Schaltung 31&sub1; geschieht folgendermaßen: Es seien z.B. die oben erwähnten Daten D1H1 in dem Speicher 40, die Daten D1H2 in dem Speicher 41, die Daten D2H1 in dem Speicher 42 und die Daten D2H2 in dem Speicher 43 gespeichert. Dann sind in der integrierten Schaltung 31&sub2; - obwohl dies nicht dargestellt ist - die Daten D1H2 in dem Speicher 40, die Daten D1H3 in dem Speicher 41, die Daten D2H2 in dem Speicher 42 und die Daten D2H3 in dem Speicher 43 gespeichert. In der integrierten Schaltung 31&sub3; sind die Daten D1H3 in dem Speicher 40, die Daten D1H4 in dem Speicher 41, die Daten D2H3 in dem Speicher 42 und die Daten D2H4 in dem Speicher 43 gespeichert. In ähnlicher Weise sind in den jeweiligen integrierten Schaltungen bis zu der integrierten Schaltung 31&sub8; die gleichen Daten wie in dem Speicher 41 einer integrierten Schaltung der vorhergehenden Stufe in dem Speicher 40 gespeichert, und in dem Speicher 42 sind die gleichen Daten wie in dem Speicher 43 einer integrierten Schaltung der vorhergehenden Stufe gespeichert.
- Dem Operations- oder Rechenelement 44 werden die Ausgangssignale der Speicher 40 und 41 zugeführt, dem Operations- oder Rechenelement 45 die Ausgangssignale der Speicher 40 und 42, dem Operations- oder Rechenelement 46 die Ausgangssignale der Speicher 42 und 43 und dem Operations- oder Rechenelement 47 die Ausgangssignale der Elemente 44 und 46. Die Operations- oder Rechenelemente 44 bis 46 dienen hier dazu, die ihnen zugeführten Daten zu addieren und die addierten Daten durch 2 zu teilen. Das Operations- oder Rechenelement 47 addiert die ihm zugeführten Daten und dividiert die addierten Daten durch 4.
- In der integrierten Schaltung 31&sub1; addiert also das Operationselement 44 die Daten D1H1 und D1H2 aus den Speichern 40 und 41 und teilt die addierten Daten durch 2. Das Operationselement 45 addiert die Daten D1H1 und D2H1 aus den Speichern 40 und 42 und teilt die addierten Daten durch 2. Das Operationselement 46 addiert die Daten D2H1 und D2H2 aus den Speichern 42 und 43 und dividiert die addierten Daten durch 2. Das Operationselement 47 addiert die Daten (D1H1 + D1H2)/2 aus dem Operationselement 44 und die Daten (D2H1 + D2H2)/2 aus dem Operationselement 46 und dividiert die addierten Daten durch 4. In ähnlicher Weise verarbeiten die Operationselemente der integrierten Schaltungen 31&sub2; bis 31&sub8; die in den betreffenden Speichern 40 bis 43 gespeicherten Daten. Die Ausgangssignale der einzelnen Operationselemente bilden die Daten der Interpolationswerte.
- Die Ausgangssignale der Operations- oder Rechenelemente 44 bis 47 werden dem Wähler 37 zugeführt, dessen Schaltvorgänge durch den Steuerteil 36 gesteuert wird. Außerdem werden die Ausgangssignale der Speicher 40 bis 43 dem Wähler 37 zugeführt. Dieser Wähler 37 wählt die ihm zugeführten Daten der jeweiligen Interpolationswerte und die ihm zugeführten entsprechenden Pixeldaten nach Maßgabe des dem Steuersignal entsprechenden Schaltsignal aus.
- Das Ausgangssignal des Wählers 37 wird über den Anschluß 38 dem Umschalter 9 zugeführt. Die entsprechenden Bilddaten an den Anschlüssen 38 der jeweiligen integrierten Schaltungen 31&sub1; bis 31&sub8; dienen als Daten für die ganzzahlige Genauigkeit, die Daten der daraus gewonnenen Interpolationswerte dienen als Daten für die Halbpixelgenauigkeit.
- Die Bildsignal-Interpolationsschaltung nach dem vorliegenden Ausführungsbeispiel ist also, wie beschrieben, als Array aufgebaut, das aus einer Mehrzahl von integrierten Schaltungen 31 besteht. Jede der integrierten Schaltungen besitzt Speicher 40, 41, 42 und 43 zum Halten von Pixeldaten mit 2x2 Punkten, ferner Operations- oder Rechenelemente 44, 45, 46 und 47 zum Berechnen Interpolationswerte auf der Basis der betreffenden Pixeldaten mit 2x2 Punkten sowie den Steuerteil 36 für die Eingabe/Ausgabesteuerung. Wenn man diese Mehrzahl von integrierten Schaltungen 31 elektrisch verbindet, kann man Blöcke verschiedener Größen bearbeiten, d.h. Pixelblöcke mit 2nx2m Punkten. Außerdem ist es durch bloßes elektrisches Verbinden der integrierten Schaltungen 31 möglich, eine vielseitig verwendbare Bildsignal-Interpolationsschaltung aufzubauen, die unterschiedliche Blöcke verarbeiten kann. Da es also nicht erforderlich ist, den Schaltungsentwurf je nach Größe eines Blocks zu ändern, sind die Entwurfskosten (Entwicklungskosten) niedrig. Weiterhin ist es durch bloßes elektrisches Verbinden der integrierten Schaltungen 31 möglich, Interpolationswerte sowohl mit ganzzahliger Genauigkeit als auch mit Halbpixelgenauigkeit in horizontaler Richtung und in vertikaler Richtung zu berechnen. Da die Zeit für das Auslesen der Speicher 40 bis 43 nur einige zehn Takte beträgt, ist es unnötig, speziell eine Zeit für die Interpolation vorzusehen, so daß eine Verarbeitung mit hoher Geschwindigkeit möglich wird.
- Anhand von Fig. 2 bis 4 sei eine zweite Ausführungsform der Bildsignal-Interpolationsschaltung gemäß der Erfindung beschrieben. Zur Verkürzung der Erläuterung werde als Beispiel ein Block mit 3x3 Punkten beschrieben. Bei der zweiten Ausführungsform wird ein Beispiel dafür angegeben, wie Interpolationswerte an Zwischenpositionen in horizontaler und vertikaler Richtung berechnet werden.
- In der Darstellung von Fig. 2 werden zur Berechnung von Interpolationswerten der betreffenden Pixel eines Blocks mit 3x3 Punkten die Pixeldaten D&sub1;, D&sub2;, D&sub3;, ..., D&sub1;&sub6; eines Blocks mit 4x4 Punkten verwendet, der größer ist als der Block mit 3x3 Punkten. Um die Interpolationswerte d&sub1;, d&sub2;, d&sub3;, ..., d&sub9; des Blocks mit 3x3 Punkten zu berechnen, werden die in den folgenden Gleichungen (1) bis (9) angegebenen Operationen durchgeführt.
- (1) d&sub1; = (D&sub1; + D&sub2; + D&sub5; + D&sub6;)/4
- (2) d&sub2; = (D&sub2; + D&sub3; + D&sub6; + D&sub7;)/4
- (3) d&sub3; = (D&sub3; + D&sub4; + D&sub7; + D&sub8;)/4
- (4) d&sub4; = (D&sub5; + D&sub5; + D&sub9; + D&sub1;&sub0;)4
- (5) d&sub5; = (D&sub6; + D&sub7; + D&sub1;&sub0; + D&sub1;&sub1;)/4
- (6) d&sub6; = (D&sub7; + D&sub8; + D&sub1;&sub1; + D&sub1;&sub2;)/4
- (7) d&sub7; = (D&sub9; + D&sub1;&sub0; + D&sub1;&sub3; + D&sub1;&sub4;)/4
- (8) d&sub8; = (D&sub1;&sub0; + D&sub1;&sub1; + D&sub1;&sub4; + D&sub1;&sub5;)/4
- (9) d&sub9; = (D&sub1;&sub1; + D&sub1;&sub2; + D&sub1;&sub5; + D&sub1;&sub6;)/4
- Mit anderen Worten, wenn man davon ausgeht, daß die Pixeldaten in der Reihenfolge D&sub1;, D&sub2;, D&sub3;, ..., D&sub1;&sub6; angeliefert werden, können die Interpolationswerte d&sub1;, d&sub2;, d&sub3;, ..., d&sub9; mit der in Fig. 3 angegebenen Operation berechnet werden. Und zwar lassen sich nach dieser Darstellung von Fig. 3 die Interpolationswerte d&sub1;, d&sub2;, d&sub3;, ..., d&sub9; berechnen, indem die Rechenvorgänge (D&sub1;+D&sub2;), (D&sub2;+D&sub3;), (D&sub3;+D&sub4;), (D&sub4;+D&sub5;), (D&sub5;+D&sub6;), (D&sub6;+D&sub7;), (D&sub7;+D&sub8;), (D&sub8;+D&sub9;), ... ausgeführt werden und (D&sub1;+D&sub2;) und (D&sub5;+D&sub6;) addiert und der addierte Wert durch 4 geteilt wird, (D&sub2;+D&sub3;) und (D&sub6;+D&sub7;) addiert und der addierte Wert durch 4 geteilt wird und (D&sub3;+D&sub4;) und (D&sub6;+D&sub7;) addiert und der addierte Wert durch 4 geteilt werden.
- Als Schaltungskonfiguration zur Ausführung der in Fig. 2 und 3 dargestellten Rechenvorgänge läßt sich beispielsweise die in Fig. 4 dargestellte Anordnung verwenden.
- Bei der Anordnung von Fig. 4 werden aus einem Rahmenspeicher 60 (z.B. den oben beschriebenen Rahmenspeichern 6, 7 von Fig. 1) Pixeldaten in der in Fig. 3 dargestellten Reihenfolge ausgelesen. Diese Pixeldaten werden Pufferspeichern 61, 62 zugeführt. Im vorliegenden Beispiel arbeitet der Pufferspeicher 61 als Pufferspeicher z.B. für die ungeradzahligen (oder geradzahligen) Exemplare der aus dem Rahmenspeicher 60 ausgelesenen Daten und der Pufferspeicher 62 als Pufferspeicher z.B. für die geradzahligen (oder ungeradzahligen) Exemplare der aus dem Rahmenspeicher 60 ausgelesenen Daten. Die Ausgangssignale dieser Pufferspeicher 61, 62 werden einem Addierer 63 mit zwei Eingängen zugeführt, indem sie addiert werden. Es werden also Operationsergebnisse (D&sub1;+D&sub2;), (D&sub2;+D&sub3;), (D&sub3;+D&sub4;), (D&sub4;+D&sub5;), (D&sub5;+D&sub6;), (D&sub6;+D&sub7;), (D&sub7;+D&sub8;), (D&sub8;+D&sub9;), ... ausgegeben, wie dies in Fig. 3 dargestellt ist. Das Ausgangssignal des Addierers 63 wird einem Eingang eines Addierers 65 mit zwei Eingängen sowie einem temporären Speicher 64 zugeführt.
- Dieser temporäre Speicher 64 dient dazu, z.B. drei Ausgangsdaten des Addierers 63 zu speichern und sie in der Reihenfolge der Eingabe auszugeben. Das heißt, in dem temporären Speicher 64 werden die von dem Addierer 63 ausgegebenen Daten (D&sub1;+D&sub2;), (D&sub2;+D&sub3;), (D&sub3;+D&sub4;) gespeichert, und diese Daten werden in der Reihenfolge der Eingabe ausgelesen. Anschließend werden die Daten (D&sub5;+D&sub6;), (D&sub6;+D&sub7;), (D&sub7;+D&sub8;) gespeichert und in der Reihenfolge ihrer Eingabe ausgelesen. Dann werden die Daten (D&sub9;+D&sub1;&sub0;), (D&sub1;&sub0;+D&sub1;&sub1;), (D&sub1;&sub1;+D&sub1;&sub2;) gespeichert und in der Reihenfolge ihrer Eingabe wieder ausgegeben. Ebenso werden die Daten (D&sub1;&sub3;+D&sub1;&sub4;), (D&sub1;&sub4;+D&sub1;&sub5;), (D&sub1;&sub5;+D&sub1;&sub6;) gespeichert und dann in der Reihenfolge ihrer Eingabe wieder ausgelesen.
- Wenn die Daten sequentiell aus dem Rahmenspeicher 60 ausgelesen werden, werden die Daten D&sub5; von dem Pufferspeicher 61, die Daten D&sub6; von dem Pufferspeicher 62 und die Daten (D&sub1;+D&sub2;) von dem temporären Speicher 64 ausgegeben. Deshalb werden in dem Addierer die Daten (D&sub5;+D&sub6;) aus dem Addierer 63 und die Daten (D&sub1;+D&sub2;) aus dem temporären Speicher 64 addiert. Wenn die Daten D&sub7; von dem Pufferspeicher 61 und die Daten D&sub8; von dem Pufferspeicher 62 ausgegeben werden, werden die Daten (D&sub2;+D&sub3;) von dem temporären Speicher 64 ausgegeben. Der Addierer 65 addiert diese Daten. Da die anschließend ausgeführten Operationen ähnlich ablaufen wie die beschriebenen Operationen, kann hier auf ihre nähere Erläuterung verzichtet werden. Das Ausgangssignal des Addierers 64 wird in einem Dividierer 66 durch 4 geteilt. Als Ergebnis der vorangehend beschriebenen Verarbeitungsvorgänge liegen an dem Anschluß 67 Interpolationswerte in der Reihenfolge d&sub1;, d&sub2;, d&sub3;, ... vor.
- Es sei erwähnt, daß Interpolationswerte eines Blocks mit beispielsweise 8x8 Punkten gewonnen werden können, wenn der temporäre Speicher in Fig. 4 ein 8-Byte-Speicher ist.
- Die anhand von Fig. 4 beschriebene Anordnung ist auf ein Beispiel gerichtet, bei dem die Interpolation mit Halbpixelgenauigkeit in horizontaler und vertikaler Richtung durchgeführt wird. Es kann auch eine Anordnung verwendet werden, wie sie in Fig. 5 dargestellt ist, die sich für die Interpolation mit ganzzahliger Genauigkeit und mit Halbpixelgenauigkeit in horizontaler Richtung (x-Richtung) bzw. vertikaler Richtung (y-Richtung) eignet. In Fig. 5 bezeichnen gleiche Bezugszeichen die gleichen Komponenten wie in Fig. 4. Auf ihre nähere Erläuterung wird hier verzichtet.
- In der Anordnung von Fig. 5 werden die Daten aus dem Rahmenspeicher 60 den Pufferspeichern 61, 62 und dem Schaltanschluß b eines Umschalters 71 und dem Schaltanschluß b eines Umschalters 74 zugeführt. Dem Schaltanschluß a des Umschalters 71 wird das Ausgangssignal des Addierers 63 zugeführt. Der Ausgang des Addierers 63 ist außerdem mit dem Schaltanschluß b eines Umschalters 72 verbunden. Der Schaltanschluß a des Umschalters 72 ist mit dem Ausgang des Addierers 65 verbunden. Der Ausgang des Umschalters 72 ist mit einem Operationselement 73 verbunden. Dieses Operationselement 73 dient zum selektiven Umschalten zwischen einer Division durch 2 und einer Division durch 4, die jeweils ausgewählte Divisionsoperation durchzuführen. Der Ausgang des Operationselements 73 ist mit dem Schaltanschluß a des Umschalters 74 verbunden. Der Ausgang dieses Umschalters 74 ist mit dem Anschluß 67 verbunden.
- Wenn im vorliegenden Fall Interpolationswerte mit Halbpixelgenauigkeit in x-Richtung (horizontaler Richtung) und Halbpixelgenauigkeit in y-Richtung (vertikaler Richtung) bestimmt oder berechnet werden sollen, sind die geschalteten Anschlüsse a der Umschalter 71, 72 und 74 ausgewählt. Der Datenweg von dem Rahmenspeicher 60 bis zu dem Umschalter 72 ist dann der gleiche wie in Fig. 4. Außerdem wird das Operationselement 73 der nachfolgenden Stufe des Addierers 65 so gesteuert, daß es, ähnlich wie das Element in Fig. 4, eine Division durch 4 ausführt.
- Wenn Interpolationswerte mit Halbpixelgenauigkeit in x-Richtung (horizontaler Richtung) und mit ganzzahliger Genauigkeit in y-Richtung (vertikaler Richtung) berechnet werden sollen, sind der Schaltanschluß b des Umschalters 72 und der Schaltanschluß a des Umschalters 74 ausgewählt. Der Umschalter 71 kann beliebig entweder auf dem Schaltanschluß a oder b stehen. Das Ausgangssignal des Addierers 63 wird dann dem Operationselement 73 zugeführt, ohne daß es über den temporären Speicher 64 und den Addierer 65 geführt wird. In dem Operationselement 73 findet eine Division durch 2 statt. Das heißt, das Operationselement 73 teilt die Ergebnisse (D&sub1;+D&sub2;), (D&sub2;+D&sub3;), (D&sub3;+D&sub4;), (D&sub4;+D&sub5;), (D&sub5;+D&sub6;), (D&sub6;+D&sub7;), (D&sub7;+D&sub8;), (D&sub8;+D&sub9;) ... durch 2. Auf diese Weise erhält man an dem Anschluß 67 interpolierte Ergebnisse mit Halbpixelgenauigkeit in x-Richtung und ganzzahliger Genauigkeit in y-Richtung.
- Um Interpolationswerte mit ganzzahliger Genauigkeit in x-Richtung (horizontaler Richtung) und Halbpixelgenauigkeit in y-Richtung (vertikaler Richtung) zu berechnen, wird der Umschalter 71 auf die Schaltseite b geschaltet, der Umschalter 72 auf die Schaltseite a und der Umschalter 74 auf die Schaltseite a. Das Ausgangssignal des Rahmenspeichers 60 wird dann unter Umgehung der Puffer 61, 62 und des Addierer 63 direkt dem temporären Speicher 64 und dem Addierer 65 zugeführt. Das Operationselement 73 teilt die ihm zugeführten Daten durch 2. In diesem Fall werden in dem temporären Speicher 64 zunächst die von dem Rahmenspeicher 60 ausgegebenen Daten D&sub1;, D&sub2;, D&sub3; gespeichert, die dann in der Reihenfolge ihrer Eingabe ausgelesen werden. Anschließend werden die Daten D&sub4;, D&sub5;, D&sub6; gespeichert und in der Reihenfolge der Eingabe ausgelesen. Dann werden die Daten D&sub7;, D&sub8;, 9&sub6; gespeichert und in der Reihenfolge der Eingabe ausgelesen. Anschließend werden die Daten D&sub1;&sub0;, D&sub1;&sub1;, D&sub1;&sub2; gespeichert und in der Reihenfolge der Eingabe ausgelesen. Nachfolgend werden in ähnlicher Weise Schreib/Leseoperationen bis zu den Daten D&sub1;&sub6; ausgeführt.
- In dem Zeitpunkt, in dem der Rahmenspeicher 60 die Daten D&sub4; ausgibt, gibt der temporäre Speicher 64 die Daten D&sub1; aus. Deshalb werden in dem Addierer 65 die Daten D&sub4; aus dem Rahmenspeicher 60 und die Daten D&sub1; aus dem temporären Speicher 64 addiert. Wenn der Rahmenspeicher 60 die Daten D&sub5; ausgibt, gibt der temporäre Speicher 64 die Daten D&sub2; aus. Deshalb werden diese Daten in dem Addierer 65 addiert. Die anschließenden Operationen laufen analog, so daß sich eine nähere Erläuterung erübrigt. Das Ausgangssignal des Addierers 64 wird in dem Operationselement 66 durch 2 geteilt. Auf diese Weise gewinnt man Interpolationswerte mit ganzzahliger Genauigkeit in x-Richtung und mit Halbpixelgenauigkeit in y-Richtung.
- Zur Berechnung von Interpolationswerten mit ganzzahliger Genauigkeit in x-Richtung (horizontaler Richtung) und ganzzahliger Genauigkeit in y-Richtung (vertikaler Richtung) wird der Umschalters 74 auf seine Schaltseite b geschaltet. Dabei sind die Verbindungszustände der Umschalter 71 und 72 und des Operationselements 73 beliebig. In diesem Zustand wird das Ausgangssignal des Rahmenspeichers 60 über den Umschalter 74 unter Umgehung der Puffer 61, 62, des Addierers 63, des temporären Speichers 64, des Addierers 65 und des Operationselements 73 direkt dem Anschluß 67 zugeführt. Somit stehen an dem Anschluß 67 Interpolationswerte mit ganzzahliger Genauigkeit sowohl in x-Richtung als auch in y-Richtung zur Verfügung.
- In der Tabelle 1 ist der Schaltzustand der Umschalter 71, 72 und 74 und des Operationselements 73 für den Fall dargestellt, daß in der Anordnung von Fig. 5 Operationen mit ganzzahliger Genauigkeit und/oder mit Halbpixelgenauigkeit in horizontaler Richtung (x-Richtung) und in vertikaler Richtung (y-Richtung) durchgeführt werden.
- Es sei erwähnt, daß auch bei der oben beschriebenen Anordnung von Fig. 5 Interpolationswerte eines Blocks mit beispielsweise 8x8 (oder 9x9) Punkten gewonnen werden können, wenn der temporäre Speicher 64 ein 8-Byte- oder ein 9-Byte-Speicher ist. In Tabelle 1 ist die Anzahl der von dem Rahmenspeicher 60 ausgelesenen Daten für den Fall angegeben, daß Interpolationswerte eines Blocks mit 8x8 Punkten usw. berechnet werden. Tabelle 1 Umschalter 71 Umschalter 72 Umschalter 74 Operationselement 73 Auslesen Halbpixel in x-Richtung ganzzahlig in x-Richtung Halbpixel in y-Richtung ganzzahlig in y-Richtung Anschluß a Anschluß b
- In den Beispielen für die tatsächliche Schaltungsanordnung des zweiten Ausführungsbeispiels benötigt der temporäre Speicher 64 lediglich die Kapazität einer Zeile in einem Block (z.B. nur 8 Bytes bei einem Block mit 8x8 Punkten). Deshalb bleibt der Umfang der Anordnung klein.
- Wie die vorangehende Beschreibung zeigt, besitzt die Bildsignal-Interpolationsschaltung gemäß der Erfindung eine Mehrzahl von integrierten Schaltungen mit jeweils einem Speicher zum Halten von Pixeldaten mit 2x2 Punkten, einer interpolierenden Operationsschaltung zum Berechnen von Interpolationswerten auf der Basis der betreffenden Pixeldaten mit 2x2 Punkten und einer Steuereinrichtung zur Steuerung der Eingabe/Ausgabe der Pixeldaten, wobei die Mehrzahl von integrierten Schaltungen arrayförmig angeordnet ist, um Werte zu berechnen, die zwischen Pixeln eines Blocks interpoliert sind, der aus Pixeln von 2nx2m Punkten besteht. Damit ist diese Bildsignal-Interpolationsschaltung vielseitig anwendbar und ermöglicht die Gewinnung von Werten, die zwischen Pixeln von Blöcken unterschiedlicher Größen interpoliert sind. Die Schaltung ist kostengünstig und arbeitet mit hoher Geschwindigkeit.
- Eine entsprechende Bildsignal-Dekodiervorrichtung umfaßt die Bildsignal-Interpolationsschaltung mit den oben beschriebenen Merkmalen, eine Leseschaltung zum Auslesen von Bilddaten und Bewegungsvektorinformationen aus einem Speichermedium, einen Rahmenspeicher zum Speichern der ausgelesenen Bilddaten, einen Detektor zum Detektieren der Bewegungsvektorinformation und eine Steuerschaltung zum Erzeugen von Steuersignalen für den Rahmenspeicher und die Bildsignal-Interpolationsschaltung auf der Basis der aus dem Detektor stammenden Bewegungsvektorinformation, um auf diese Weise mit Hilfe der Bildsignal-Interpolationsschaltung Bilddaten aus dem Rahmenspeicher zu dekodieren. Somit läßt die Bildsignal-Interpolationsschaltung einsetzen, um Bilddaten mit Hilfe der Bewegungsvektoren dieser Bilddaten zu dekodieren.
Claims (9)
1. Schaltung (30) zur Interpolation von Bildsignalen mit
einer Mehrzahl von integrierten Schaltungen (31),
wobei jede integrierte Schaltung (31) aufweist:
- einen Speicher (40-43) zum Halten von Pixeldaten mit 2x2 Punkten,
- eine interpolierende Operationsschaltung (44, 46, 47) zum Berechnen von
interpolierten Werten auf der Basis der betreffenden Pixeldaten mit 2x2 Punkten und
- eine Steuereinrichtung (36) zur Steuerung der Eingabe/Ausgabe der Pixeldaten,
wobei die Mehrzahl von interpolierten Schaltungen (31) arrayförmig angeordnet ist, um
zwischen Pixeln eines Blocks, der aus Pixeln von 2nx2m Punkten besteht, interpolierte
Werte zu berechnen, worin n und m positiv und ganzzahlig sind.
2. Schaltung (30) zur Interpolation von Bildsignalen nach Anspruch 1, bei der die integrierte
Schaltung (31) einen Steueranschluß (32), einen Eingangsanschluß (33) und einen
Ausgangsanschluß (38) aufweist.
3. Schaltung (30) zur Interpolation von Bildsignalen nach Anspruch 2, bei der die integrierte
Schaltung mit einer solchen Struktur weiterhin aufweist:
einen ersten Wähler (35) zur Unterstützung der selektiven Speicherung von Daten, die
von dem Eingangsanschluß (33) in den Speicher (40-43) eingegeben werden, und
einen zweiten Wähler (37) zur selektiven Ausgabe entweder von Pixeldaten aus dem
Speicher (40-43) oder von Pixeldaten aus der interpolierenden Operationsschaltung (44,
46, 47) an den Ausgangsanschluß (38).
4. Schaltung (30) zur Interpolation von Bildsignalen nach Anspruch 2 oder 3, bei der bewirkt
wird, daß Pixeldaten aus dem Speicher (40-43) oder Pixeldaten von dem
Ausgangsanschluß (38) Daten mit ganzzahliger Genauigkeit sind und Daten aus der interpolierenden
Operationsschaltung (44, 46, 47) Daten mit halber Pixelgenauigkeit sind.
5. Schaltung (30) zur Interpolation von Bildsignalen nach einem der Ansprüche 1 bis 4, bei
der die interpolierende Operationsschaltung (44, 46, 47) so ausgebildet ist,
daß sie im Fall der Berechnung eines interpoliertes Wertes von zwei in horizontaler
Richtung benachbarten Pixeln einen Verarbeitungsvorgang ausführt, bei dem die in
horizontaler Richtung benachbarten Pixeldaten (D&sub1;, D&sub2;) addiert und der addierte Wert durch 2
geteilt wird,
daß sie im Fall der Berechnung eines interpoliertes Wertes von zwei in vertikaler
Richtung benachbarten Pixeln einen Verarbeitungsvorgang ausführt, bei dem die in vertikaler
Richtung benachbarten Pixeldaten (D&sub1;, D&sub5;) addiert und der addierte Wert durch 2 geteilt
wird,
und sie im Fall der Berechnung von interpolierten Werten (d&sub5;) in Zwischenpositionen
von vier Pixeln, die vertikaler und ein horizontaler Richtung einander benachbart sind, einen
Verarbeitungsvorgang ausführt, bei dem diese vier Pixeldaten (D&sub6;, D&sub7;, D&sub1;&sub0;, D&sub1;&sub1;) addiert
und der addierte Wert durch 4 geteilt wird.
6. Schaltung (30) zur Interpolation von Bildsignalen nach einem der Ansprüche 1 bis 5, bei
der die Bildsignal-Interpolationschaltung (44, 46, 47) für einen Verarbeitungsvorgang
verwendet wird, bei dem die Bilddaten durch Bewegungsvektoren der Bilddaten dekodiert
werden.
7. Bildsignal-Dekodiervorrichtung mit
einer Bildsignal-Interpolationschaltung (30), die eine Mehrzahl von interpolierten
Schaltungen (31) umfaßt,
wobei jede integrierte Schaltung (31) aufweist:
- einen Speicher (40-43) zum Halten von Pixeldaten mit 2x2 Punkten,
- eine interpolierende Operationsschaltung (44, 46, 47) zum Berechnen von
interpolierten Werten auf der Basis der betreffenden Pixeldaten mit 2x2 Punkten und
- eine Steuereinrichtung (36) zur Steuerung der Eingabe/Ausgabe der Pixeldaten,
wobei die Mehrzahl von interpolierten Schaltungen (31) arrayförmig angeordnet ist, um
zwischen Pixeln eines Blocks, der aus Pixeln von 2nx2m Punkten besteht, interpolierte
Werte zu berechnen, worin n und m positiv und ganzzahlig sind,
- eine Leseschaltung (2) zum Auslesen von Bilddaten und
Bewegungsvektorinformation aus einem Speichermedium (1),
- einen Rahmenspeicher (6, 7) zum Speichern der ausgelesenen Bilddaten,
- einen Detektor (3) zum Detektieren der Bewegungsvektorinformation und
- eine Steuerschaltung (50) zum Erzeugen von Steuersignalen für den
Rahmenspeicher (6, 7) und die Bildsignal-Interpolationschaltung (30) auf der Basis der
Bewegungsvektorinformation aus dem Detektor (3), um auf diese Weise mit Hilfe der
Bildsignal-Interpolationschaltung (30) Bilddaten aus dem Rahmenspeicher (6, 7) zu dekodieren.
8. Bildsignal-Dekodiervorrichtung nach Anspruch 7, bei der das Speichermedium (1) eine
optische Platte ist.
9. Bildsignakdekodiervorrichtung nach Anspruch 7 oder 8, bei der der Rahmenspeicher (6,
7) die der Verarbeitung durch Bildsignal-Interpolationschaltung (30) unterzogenen Bilddaten
ein zweites Mal speichern und diese Bilddaten einer Anzeigevorrichtung (11) zuführen kann.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3155749A JPH04354287A (ja) | 1991-05-30 | 1991-05-30 | 画像補間回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69208737D1 DE69208737D1 (de) | 1996-04-11 |
DE69208737T2 true DE69208737T2 (de) | 1996-07-25 |
Family
ID=15612583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69208737T Expired - Fee Related DE69208737T2 (de) | 1991-05-30 | 1992-05-27 | Schaltung zur Interpolation eines Bildsignals |
Country Status (5)
Country | Link |
---|---|
US (1) | US5396592A (de) |
EP (1) | EP0517095B1 (de) |
JP (1) | JPH04354287A (de) |
KR (1) | KR920022891A (de) |
DE (1) | DE69208737T2 (de) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9405914D0 (en) | 1994-03-24 | 1994-05-11 | Discovision Ass | Video decompression |
US5461423A (en) * | 1992-05-29 | 1995-10-24 | Sony Corporation | Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal |
JPH05336514A (ja) * | 1992-05-29 | 1993-12-17 | Sony Corp | 画像符号化装置 |
US6034674A (en) * | 1992-06-30 | 2000-03-07 | Discovision Associates | Buffer manager |
US5821885A (en) | 1994-07-29 | 1998-10-13 | Discovision Associates | Video decompression |
US5398079A (en) * | 1993-01-27 | 1995-03-14 | General Instrument Corporation | Half-pixel interpolation for a motion compensated digital video system |
US5861894A (en) | 1993-06-24 | 1999-01-19 | Discovision Associates | Buffer manager |
JPH0723389A (ja) * | 1993-06-28 | 1995-01-24 | Toshiba Corp | 画像処理装置 |
KR0126657B1 (ko) * | 1993-10-28 | 1997-12-29 | 구자홍 | 디지탈 영상 복원을 위한 움직임 보상장치 |
EP0652676A1 (de) * | 1993-11-08 | 1995-05-10 | Sony Corporation | Verfahren und Vorrichtung zur Komprimierung eines digitalen Bewegtbildsignals |
FR2717979B1 (fr) * | 1994-03-24 | 1996-06-21 | Sgs Thomson Microelectronics | Filtre de matrices de pixels. |
KR0151210B1 (ko) * | 1994-09-23 | 1998-10-15 | 구자홍 | 엠펙2를 수용하는 반화소 움직임 보상조절장치 |
JPH09102954A (ja) * | 1995-10-04 | 1997-04-15 | Matsushita Electric Ind Co Ltd | 1つまたは2つの予測ブロックからブロックの画素値を計算する方法 |
US5935198A (en) * | 1996-11-22 | 1999-08-10 | S3 Incorporated | Multiplier with selectable booth encoders for performing 3D graphics interpolations with two multiplies in a single pass through the multiplier |
GB9704027D0 (en) * | 1997-02-26 | 1997-04-16 | Discovision Ass | Memory manager for mpeg decoder |
DE19746214A1 (de) * | 1997-10-21 | 1999-04-22 | Bosch Gmbh Robert | Verfahren zur bewegungskompensierenden Prädiktion von Bewegtbildfolgen |
US6028969A (en) * | 1997-10-28 | 2000-02-22 | Sharp Laboratories Of America, Inc. | System and method of additive interpolation for affine transformations |
US5966474A (en) * | 1997-12-12 | 1999-10-12 | Hewlett-Packard Company | Non-symmetric radial and non-symmetric pruned radial interpolation |
US6049400A (en) * | 1997-12-12 | 2000-04-11 | Hewlett-Packard Company | Non-symmetric tetrahedral and non-symmetric pruned tetrahedral interpolation |
US6040925A (en) * | 1997-12-12 | 2000-03-21 | Hewlett-Packard Company | Radial and pruned radial interpolation |
US6031642A (en) * | 1997-12-12 | 2000-02-29 | Hewlett-Packard Company | Tetrahedral and pruned tetrahedral interpolation |
US6040926A (en) * | 1997-12-12 | 2000-03-21 | Hewlett-Packard Company | Common non-symmetric pruned radial and non-symmetric pruned tetrahedral interpolation hardware implementation |
US6028683A (en) * | 1997-12-12 | 2000-02-22 | Hewlett-Packard Company | Common pruned radial and pruned tetrahedral interpolation hardware implementation |
JPH11196427A (ja) * | 1997-12-26 | 1999-07-21 | Canon Inc | 単板カラー撮像装置 |
JP4224876B2 (ja) * | 1998-09-11 | 2009-02-18 | ソニー株式会社 | 記憶装置、並びに書き込み方法および読み出し方法 |
KR100311482B1 (ko) * | 1999-10-21 | 2001-10-18 | 구자홍 | 보간 영상의 화질 개선을 위한 필터링 제어방법 |
GB2443668A (en) * | 2006-11-10 | 2008-05-14 | Tandberg Television Asa | Motion-compensated temporal recursive filter |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6028185B2 (ja) * | 1979-05-28 | 1985-07-03 | 日本電気株式会社 | デ−タ補間方式 |
US4769778A (en) * | 1985-02-25 | 1988-09-06 | Siemens Aktiengesellschaft | Circuit arrangement comprising a matrix-shaped memory arrangement for digital filtration of image signals in row and column directions |
US4712141A (en) * | 1985-03-30 | 1987-12-08 | Dainippon Screen Mfg. Co., Ltd. | Method and apparatus for interpolating image signals |
US5008752A (en) * | 1989-06-16 | 1991-04-16 | Eastman Kodak Company | Digital image interpolator with multiple interpolation algorithms |
US5060172A (en) * | 1989-07-06 | 1991-10-22 | Digital Equipment Corporation | Method and apparatus for displaying smooth-shaded objects |
-
1991
- 1991-05-30 JP JP3155749A patent/JPH04354287A/ja not_active Withdrawn
-
1992
- 1992-05-20 US US07/886,429 patent/US5396592A/en not_active Expired - Fee Related
- 1992-05-27 KR KR1019920008972A patent/KR920022891A/ko not_active Application Discontinuation
- 1992-05-27 DE DE69208737T patent/DE69208737T2/de not_active Expired - Fee Related
- 1992-05-27 EP EP19920108954 patent/EP0517095B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR920022891A (ko) | 1992-12-19 |
EP0517095A1 (de) | 1992-12-09 |
DE69208737D1 (de) | 1996-04-11 |
EP0517095B1 (de) | 1996-03-06 |
JPH04354287A (ja) | 1992-12-08 |
US5396592A (en) | 1995-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69208737T2 (de) | Schaltung zur Interpolation eines Bildsignals | |
DE69109821T2 (de) | Anzeigevorrichtung für Bildhintergrund und externe Speichereinheit. | |
DE68926502T2 (de) | Senkrechte filtervorrichtung für nach einem gitter abgetastete anzeige | |
DE68926890T2 (de) | Bildvergrösserung | |
DE3230679C2 (de) | Bildzeilen-Zwischenspeicher-Vorrichtung | |
DE69122226T2 (de) | Verfahren und Einrichtung zur Zugriffsanordnung eines VRAM zum beschleunigten Schreiben von vertikalen Linien auf einer Anzeige | |
DE68919781T2 (de) | Videospeicheranordnung. | |
DE69506059T2 (de) | Blockübereinstimmungsverfahren mit reduzierter Anzahl von Zugriffen auf einem Referenz-Rasterspeicher | |
DE69124853T2 (de) | Vorrichtung zur Detektion von Unterschieden zwischen Bewegtbildern | |
DE4019508A1 (de) | Digitale video-aufzeichnungs/wiedergabe-vorrichtung | |
DE3736195A1 (de) | Raster-scan-videoanzeigegeraet | |
EP0276434A1 (de) | Schaltungsanordnung zur Verschiebungsvektorsuche in der digitalen Bildanalyse | |
EP0180661B1 (de) | Fernsehempfänger mit flimmerfreier Wiedergabe eines Zwischenzeilen-Videosignals | |
DE3788925T2 (de) | Interpolator für Fernsehtricksystem. | |
DE3437895A1 (de) | Bildverarbeitungseinrichtung | |
DE2952453C2 (de) | ||
DE2510542A1 (de) | Digitale bildwiedergabevorrichtung mit mehreren bildschirmen | |
DE10156040A1 (de) | Verfahren, Vorrichtung und Computerprogramm-Produkt zum Entzerren einer eingescannten Abbildung | |
DE3587765T2 (de) | Einrichtung zum Speichern von multi-bit Bildelementdaten. | |
DE69215733T2 (de) | Vorrichtung zur Detektion der relativen Bewegung zwischen Inhalten von aufeinanderfolgenden Halbbildern eines Videosignals | |
DE3508606C2 (de) | ||
DE4210116A1 (de) | Digitale zoomvorrichtung mit bildpufferspeichern | |
DE3789341T2 (de) | Verarbeitung von Videobildsignalen. | |
DE3885294T2 (de) | Parallele pipeline-bildverarbeitungseinheit mit einem 2x2-fenster. | |
DE4409066C2 (de) | Bilddaten-Kompressions/Expansions-Schaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |