DE69127759T2 - Abspeicherungsverfahren für die Bildverarbeitung und Gerät,um dieses einzusetzen - Google Patents
Abspeicherungsverfahren für die Bildverarbeitung und Gerät,um dieses einzusetzenInfo
- Publication number
- DE69127759T2 DE69127759T2 DE69127759T DE69127759T DE69127759T2 DE 69127759 T2 DE69127759 T2 DE 69127759T2 DE 69127759 T DE69127759 T DE 69127759T DE 69127759 T DE69127759 T DE 69127759T DE 69127759 T2 DE69127759 T2 DE 69127759T2
- Authority
- DE
- Germany
- Prior art keywords
- block
- memory
- address
- bits
- blocks
- 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
- 238000000034 method Methods 0.000 title claims description 20
- 230000015654 memory Effects 0.000 claims description 87
- 238000006073 displacement reaction Methods 0.000 claims description 11
- 101000608154 Homo sapiens Peroxiredoxin-like 2A Proteins 0.000 claims description 9
- 102100039896 Peroxiredoxin-like 2A Human genes 0.000 claims description 9
- 230000000295 complement effect Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 239000000463 material Substances 0.000 claims description 6
- 230000007704 transition Effects 0.000 claims 1
- 230000033001 locomotion Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Input (AREA)
- Memory System (AREA)
- Image Processing (AREA)
Description
- Die vorliegende Erfindung betrifft ein Verfahren zur Verwaltung und Abspeicherung eines Bildverarbeitungssystems, der besegte Speicher dynamischen Typs ist in Reihen und Spalten mit Kettenzugriff angeordnet, bei dem Verfahren werden die Bilder nach Blöcken verarbeitet, jeder dieser Blöcke ist quadratisch oder rechteckig und enthält in jeder horizontalen und vertikalen Richtung mehrere Pixel, die Beschreibung der Pixel verläuft im Innern eines Blocks über die reihenweise Betrachtung der Pixel nach parallel aufeinanderfolgenden Zeilen im Block, die horizontalen und vertikalen, in der Anzahl Pixel ausgedrückten Abmessungen der Blöcke sind ganze Potenzen von zwei.
- Sie betrifft außerdem eine Vorrichtung mit einem Speicher dynamischen Typs, in Reihen und Spalten mit Kettenzugriff angeordnet, um ein nach Blöcken verarbeitetes Bild zu speichern, jeder dieser Blöcke ist quadratisch oder rechteckig und seine horizontalen und vertkalen, in der Anzahl Pixel ausgedrückten Abmessungen sind ganze Potenzen von zwei, wobei die Beschreibung der in einem Block enthaltenen Pixel unter Betrachtung der pallel aufeinanderfolgenden Zeilen in einem Block stattfindet.
- Für die Algorithmen zur Kompression von Bildern niederen Informationsflusses nimmt die temporäre Verarbeitung aufgrund der Benötigung einer großen Speicherkapazität viel Platz ein. Dazu ist für diesen Typ Algorithmen die Anzahl pro Zeiteinheit zu verarbeitender Pixel fest, um einerseits nicht die Leistungen der Algorithmen zu verschlechtern und andererseits der Komplexität des Kodier- und Dekodiersystems eine Grenze zu setzen. Dies hat zur direkten Folge, daß die Anzahl in einem Bild zu kodierender Pixel und folglich die für ihre Speicherung erforderliche Anzahl Speicherwörter beschränkt ist.
- Bei bestimmten Anwendungen der Bildkompression, wo es wünschenswert ist, ein variables Bildformat (Formfaktor) zuzulassen, erscheint die Notwendigkeit, eine Adäquanz zwischen dem variablen Format der Bilder und der festen Größe des für den Erhalt der Bilder beim Dekodiervorgang bestimmten Speichers zu finden. Ein solcher Fall stellt sich bei Multimedia-Anwendungen wie der interaktiven Compact Disc ("CDI") ein, bei der das Format der Bilder variabel ist.
- Einer der kritischen Punkte für die Herstellung von Dekodierern komprimierter Bilder auf der Grundlage von Blöcken liegt auf dem Niveau des großen Umfangs erforderlichen Speicherzugriffs. Die normalerweise aus Kosten- und Integrationsgründen verwendeten Speicher sind dynamische Speicher, die sich mit einem Zugriff in zwei Zeiten auezeichnen, der darin besteht, in einer ersten Zeit die Adresse der "Reihe", und abhängig vom verwendeten Speicher nach einer bestimmten Verzögerung in einer zweiten Zeit die Adresse der "Spalte" zu liefern, und schließlich nach einer weiteren Verzögerung auf die Information zuzugreifen. Der Zugriff kann schneller sein, wenn sich die zu lesenden Informationen auf derselben Reihe entweder an aufeinanderfolgenden "Spalten"-Adressen befinden, unter Verwendung eines sogenannten "Nibble"-Modus, oder an beliebigen Adressen, unter Verwendung eines sogenannten Ketten-Zugriffmodus ("static column mode" oder "page mode"). In beiden Fällen entspricht der Zugriff zur ersten Information den beiden weiter oben beschriebenen Zeiten, doch der Zugriff zu den folgenden Informationen erfordert nur noch die zweite Zeit.
- Ein anderer Nachteil besteht in der schlechten Leistung der Speicherplatzverwendung, wenn die Anzahl Pixel pro Zeile oder die Anzahl Zeilen pro Bild kein Vielfaches oder Unter-Vielfaches der Anzahl Spalten oder der Anzahl Reihen der Speicherplätze ist.
- Aus dem Dokument EP-A-0 085 210 ist die Verwendung einer besonderen Adressierung mit Adressensprüngen im Speicher für aufeinanderfolgende Bildzeilen bekannt, um Ansammlungen bestimmter Punkte leichter finden zu können. Jedoch läßt dieses Dokument die Tatsache außer Acht, daß das Bild in regelmäßige Blöcke unterteilt und eine Art Schachbrett darstellen würde.
- Die Grundidee der Eriindung beruht auf der Tatsache, daß die Algorithmen zur Bildkomprimierung auf Blöcken gründen, deren horizontalen und vertikalen Abmessungen ein Unter-Vielfaches der Bildabmessungen sind. Dazu nutzt die vorliegende Erfindung außerdem den bestehenden Kettenzugriffmodus in den verwendeten Speichern. So wird gemäß der Erfindung die vollständige Beschreibung jedes Blocks gemäß der Erhebung von Anspruch 1 in den Speicher gebracht.
- Die Erfindung wird besonders dann interessent, wenn das Bildformat variabel ist. Sie ermöglicht die Verwendung der strikt notwendigen Speicherkapazität zum Speichern eines Bildes, völlig ungeachtet dessen Formfaktors. Die Erfindung ermöglicht außerdem den schnelleren Zugriff auf Blöcke im Bild.
- Man speichert die Inhalte der verschiedenen Blöcke ab, durch die Erhöhung der Spaltenadresse auf ihren Grenzwert, und bringt daraufhin diese Adresse auf Null und erhöht die Reihenadresse usw.
- Die Operationen zur Berechnung der Speicheradresse des Beginns eines ein beliebiges Pixel enthaltenden Blocks werden über die mit binären Wörtern dargestellten Werte vorgenommen, mittels Dichotomien, die als Ergebnis einer ganzen Teilung die Bits liefern, deren Rang höher als die weiter oben genannte Potenz von zwei (m oder p) ist, und als Ergebnis einer Modulo-Operation die Bits, deren Rang niederer oder gleich dieser selben Potenz von zwei ist.
- Eine Einrichtung gemäß der vorhergehenden Einleitung zur Verarbeitung eines Bilds nach Blöcken, wobei jeder der besagten Blöcke horizontale H und vertikale V Abmessungen hat, ausgedrückt in Pixeln, die ganze Potenzen von zwei sind, respektive m und p, während die Beschreibung der in einem Block enthaltenen Pixel über die Betrachtung der Pixel in den parallelen, in einem Block aufeinanderfolgenden Zeilen erfolgt, die vollständige Beschreibung jedes Blocks in der Reihenfolge der Beschreibung des Blocks abgespeichert wird und die Blöcke einer nach dem anderen in den Speicher gebracht werden, enthält Mittel zur Berechnung der Blocknummer im Speicher, ausgehend von den Koordinaten x, y eines Pixels dieses Blocks, Mittel, die aus zwei materiellen Operatoren gebildet werden, die anhand der binären, die Werte x und y darstellenden Wörter daraus die Bits höheren Stellenwerts zu jeweils m und p aus einem Multiplikator entnehmen, dem als Multiplikanden einerseits die Anzhl der Blöcke pro Bildzeile und andererseits das binäre Wort geliefert wird, bestehend aus den Bits, die von einem der obengenannten Operatoren aus dem binären, y darstellenden Wort entnommen werden (diese Bits stellen die vertikale Koordinate im Bild des das Pixel enthaltenden Blocks dar), und einen Addierer, dem um darin addiert zu werden einerseits das aus dem obengenannten Multiplikator kommende Ergebnis und andererseits das binäre Wort zugeführt werden, bestehend aus den Bits, die von dem anderen obengenannten Operatoren aus dem binären, x darstellenden Wort entnommen werden (diese Bits stellen die horizontale Koordinate im Bild des das Pixel enthaltenden Blocks dar).
- Außerdem enthält die Vorrichtung vorzugsweise Mittel zur Berechnung der relativen Adresse eines Pixels in einem Block anhand seiner Adresse x, y im Bild, die aus zwei materiellen Operatoren gebildet werden und jeweils aus binären, die Werte x und y dargestellten Wörtern die m und p Bits geringsten Stellenwerts entnehmen, die beiden entnommenen Blockgruppen werden einem anderen materiellen Operator zugeführt, der die von einem der beiden obengenannten Operatoren aus y entnommene Gruppe Bits um m Bits nach links versetzt und sie mit der von x von dem anderen der beiden obengenannten Operatoren entnommenen Gruppe Bits verkettet.
- Die Vorrichtung enthält außerdem vorzugsweise Mittel zur Berechnung der Spalten- und Zeilenadressen eines Pixels im Speicher anhand der Blocknummer, die dieses Pixel enthält, und der relativen Adresse des Pixels im Block, die aus einem Operatoren gebildet werden, der in einem binren, die Blocknummer darstellenden Wort die "e" Bits geringsten Stellenwerts trennt, wobei "e" eine Ganzzahl ist, so daß zwei Potenz "e" gleich der Anzhl Blöcke pro Speicher:zeile ist, diese "e" Bits werden an ein Verkettungselement geleitet, wo sie nach links versetzt werden und mit den die relative Pixeladresse im Block darstellenden Bits verkettet werden, um die Komponente der gesuchten Adresse in horizontaler Richtung zu finden, d.h. die Nummer der Speicherspalte, die anderen Bits (eines Stellenwerts über "e") liefern die Komponente der gesuchten Adresse in vertikaler Richtung, d.h. die Zeilennummer des Speichers.
- Das in Blöcken verarbeitete Bild wird folglich in einem Netz regelmäßig angeordneter Blöcke (wie ein Schachbrett) organisiert. Wenn allerdings eine an sich bekannte Methode für den Bewegungsausgleich verwendet wird setzt die Dekodierung komprimierter Bilder voraus, nicht nur auf die Daten eines Blocks zuzugreifen, der genau einem Block H*V des Blocknetzes eines Bilds entspricht, sondern auch eines Blocks, der in bezug auf einen Block des Netzes horizontal und/oder vertikal versetzt ist und folglich zu vier verschiedenen Blöcken des Netzes gehört. Dafür muß zur Berechnung der in einem Bildblock enthaltenen, in bezug auf einen Block des obengenannten Netzes versetzten Pixelspeicheradresse die Berechnung ausgehend von der Adresse dieses als Referenzblock bezeichneten Netzblocks und der Versetzung des versetzten Blocks in bezug auf diesen Referenzblock vorgenommen werden, und unter Kenntnis der Anzhl horizontal im Bild enthaltenen Blöcke sind in der Vorrichtung eine oder mehrere der folgenden Einheiten enthalten:
- - erste Mittel, um ausgehend von der Versetzung des versetzten Blocks zu berechnen, um wieviel der Block horizontal und vertikal in bezug auf den Referenzblock versetzt ist, und um seine relative Position in bezug zu dem seinen Ausgangspunkt enthaltenden Netzblock zu berechnen, horizontal und vertikal,
- - zweite Mittel, um ausgehend von der Versetzung des versetzten Blocks, der Adresse des Referenzblocks und der Anzahl horizontaler Blöcke pro Bild im Bild die Nummer des Blocks zu berechnen, der den Ausgangspunkt des versetzten Blocks enthält,
- - dritte Mittel, um die beiden Komponenten der relativen Pixeladresse im Innern des Blocks zu erzeugen, dessen Nummer von den vorhergehenden Mitteln gegeben wird,
- - vierte Mittel zur Versetzung nach links der Bits der vertikalen Komponente der relativen Pixeladresse und ihre Verkettung mit den Bits der horizontalen Komponente dieser relativen Adresse, um eine relative "lineare" Adresse im Speicherblock zu liefern (unter "linearer Adresse" versteht man die Tatsache, daß sie durch aufeinanderfolgende Numerierung sämtlicher Pixel eines Blocks ab dem Anfang berechnet wird),
- - fünfte Mittel, bestehend aus einem Operator, der im binären, die Nummer des Blocks angebenden Wort die "em Bits geringsten Stellenwerts trennt, wobei "e" eine Ganzzahl ist, so daß zwei Potenz "e" gleich der Anzahl Blöcke pro Speicherzeile ist, diese "e" Bits werden an ein Verkettungselement geleitet, wo sie nach links versetzt werden und mit den die relative Pixeladresse im Block darstellenden Bits verkettet werden, um die Komponente der gesuchten Adresse in horizontaler Richtung zu finden (d.h. die Nummer der Speicherspalte), die anderen Bits des besagten binären Worts liefern die Komponente der gesuchten Adresse in vertikaler Richtung (Nummer der Speicherreihe).
- Die obengenannten ersten Mittel können vorzugsweise mit einem Operator zur Trennung der m Bits geringsten Stellenwerts im binären Wort versehen sein, der den Wert in horizontaler Richtung der Versetzung des versetzten Block in bezug auf den Referenzblock gibt, und mit einem Operator zur Trennung der p Bits geringsten Stellenwerts im binären Wort, der den Wert in vertikaler Richtung der Versetzung des versetzten Blocks in bezug auf den Referenzblock gibt.
- Die besagten zweiten Mittel können vorzugsweise von einem ersten Addierer, der die Summe des Wertes der Adresse des Referenzblocks in vertikaler Richtung und des Werts der Versetzung des versetzten Blocks in vertikaler Richtung berechnet, einem Multiplikator zur Multiplikation des von diesem ersten Addierers gelieferten Werts mit der Anzahl Blöcke pro Bild in horizontaler Richtung, einem zweiten Addierer, der die Summe des Werts der Adresse des Referenzblocks in horizontale Richtung und des Werts der Versetzung des versetzten Blocks in horizontale Richtung herechnet, und einem dritten Addierer ersetzt werden, der die Summe des vom zweiten Addierer gelieferten Werts und des vom Multiplikator gelieferten Werts berechnet.
- Die obengenannten dritten Mittel können vorzugsweise aus einer oder mererer Gruppen folgender Elemente gebildet werden:
- - einer Gruppe, die einen Multiplexer enthält, der einen entweder zwischen Null oder dem Wert der relativen Position in horizontaler Richtung des im Vergleich zum Block des Netzes, der seinen Ausgangspunkt enthält, versetzten Blocks gewählten Wert liefert, und einen Zähler, der mit einem Wert aktiviert werden kann, der vom Multiplexer geliefert wird und der im Zeittakt die horizontale Komponente einer relativen Adresse des Pixels liefert,
- - einer identisch zusammengestellten Gruppe, die die entsprechenden Elemente in vertikaler Richtung behandelt,
- - einer Gruppe, die eine arithmetische Schaltung enthält, die die Ergänzung zu zwei des binären Worts liefert und den Wert der relativen Position in horizontaler Richtung des in bezug auf den seinen Ausgangspunkt enthaltenden Block des Netzes versetzten Blocks liefert, einen Multiplexer zur Abgabe eines entweder zwischen Null oder der obengenannten Ergänzung zu zwei gewählten Werts, und einen Zähler, der mit einem Wert aktiviert werden kann, der vom Multiplexer geliefert wird und der im Zeittakt die horizontale Komponente einer relativen Adresse des Pixels liefert,
- - einer identisch zusammengestellten Gruppe, die die entsprechenden Elemente in vertialer Richtung behandelt.
- Die folgende Beschreibung wird hinsichtlich der beigefügten, nicht begrenzende Beispiele gebenden Zeichnungen gut verständlich machen, wie die Erfindung verwirklicht werden kann.
- Abbildung 1 zeigt einen Nachteil des sogenannten "Bitmap"-Verfahrens.
- Abbildung 2 zeigt den Beschreibungsmodus nach Blöcken in einem Bild.
- Abbildung 3 zeigt die Anordnung der Beschreibung der gespeicherten Blöcke.
- Abbildung 4 ist der Plan einer Vorrichtung zur Berechnung der Adressen.
- Abbildung 5 zeigt die Position in einem Bild eines in der Bewegung ausgeglichenen Blocks.
- Abbildung 6 zeigt die im Speicher vom Block E der Abbildung 5 belegten Positionen.
- Abbildung 7 zeigt eine Vorrichtung zur Berechnung der Adressen im Speicher der Pixel eines in der Bewegung ausgeglichenen Blocks.
- Die Abbildungen 8 bis 11 zeigen mehr im Detail verschiedene Moduln der Vorrichtung von Abbildung 7.
- Abbildung 12 ist ein Zeitdiagramm der von der GENADR-Vorrichtung der Abbildungen 7 und 8 vorgenommenen Operationen.
- Die Abbildungen 13 und 14 zeigen eine vereinfachte Durchführung der Vorrichtung der Abbildung 7 für den Fall eines nicht in der Bewegung ausgeglichenen Blocks.
- Auf Abbildung 1 stellt der Rahmen 24 eine in Zeilen R und Spalten C organisierten Speichers dar. Wenn eine "Bitmap"-Organisation verwendet wird, muß die Speicherreihe lange genug sein, um die Breite des darin eingefügten Bilds 25 aufzunehmen. Wenn man jedoch wünscht, daß das Bildformat geändert werden kann und z.B. ein weniger breites, doch höheres Bild 26 verwendet werden kann, muß die Anzahl Reihen des Speichers ausreichend sein, um das Bild 26 aufzunehmen. Außerdem ist, da die Anzahl Pixel pro Zeile oder die Anzhl Zeilen pro Bild kein Vielfaches oder Unter-Vielfaches der Anzahl Spalten oder der Anzhl Reihen des Speichergehäuses ist, die Größe des Speichers noch etwas größer als die der Höhe des Bilds 26 mal Breite des Bilds 25 entsprechende. Der Speicher kann ein mit dem Rahmen 24 angezeigtes Bild enthalten, wobei er nur ein Bild 25 oder 26 enthalten muß. Will man z.B. das horizontale Format und das vertikale Format in den Verhältnissen 1/2, 1 oder 2 ändern können, muß man über einen viermal größeren Speicher als den verfügen, der nur die Anzhl anzuzeigender Pixel enthält.
- Die Verarbeitung eines Bilds nach Blöcken wird auf Abbildung 2 gezeigt, wo zwei Blöcke mit ihren horizontalen H und vertikalen V Abmessungen dargestellt sind, die hier alle beide gleich 8 sind. Die Folge, in denen die Pixelbeschreibungen verarbeitet und im Speicher abgelegt werden, ist mit Pfeilen angezeigt. die Abstufungen zeigen die Koordinaten der Pixel im Bild nach x und nach y. Die Abbildung zeigt die beiden ersten Blöcke oben links eines Bildes und deutet einige andere Blöcke mit einer teilweisen Darstellung an: so wird ein Bild aus einem Netz regelmäßiger, wie ein Schachbrett angeordneter Blöcke zusammengesetzt.
- Ein mit einer "horizontalen" Größe MEMDIMH zu 512 Spalten und einer "vertikalen" MEMDIMV zu 512 Reihen organisierter Speicher ist schematisch auf Abbildung 3 dargestellt, auf der die Positionen angezeigt sind, in denen die Beschreibungen der Blöcke eingeordnet werden. Der Begriff horizontal oder vertikal versteht sich selbstverständlich als sprachliche Vereinfachung und steht in keinem Zusammenhang zur physischen Anordnung der Speicherelemente, da es sich tatsächlich um die beiden Größen einer Matrix handelt. Die z.B. BLOC0 und BLOC1 bezeichneten Blöcke entsprechen jeweils der Speicherposition der im ersten und im zweiten Block enthaltenen Inhalte oben links eines Bilds, die auf Abbildung 2 dargestellt sind.
- Die Darstellung von Abbildung 3 entspricht dem Fall, bei dem eine Reihe des Speichers eine ganze Zahl Blöcke enthält (hier acht Blöcke: von 0 bis 7) und wo die Anzhl Reihen im Speicher (hier fünfhundertzwölf Reihen: von 0 bis 511), multipliziert mit der Anzahl Blöcke pro Reihe, gleich der gesamten (ganzen) Anzahl Blöcke ist.
- Bei einem nicht idealen Fall würde es ausreichen, wenn zu einem bestimmten Zeitpunkt der verbleibende Platz einer Reihe des Speichers für die vollständige Beschreibung eines Blocks nicht ausreicht, den Anfang der Beschreibung in den Block der folgenden Reihe zu übertragen. Allerdings wird zur Vereinfachung der späteren Beschreibung vorausgesetzt, daß die horizontale Größe MEMDIMH des Speichers ein Vielfaches von H*V ist, und man bezeichnet k die Ganzzahl gleich MEMDIMH / (H*V). Diese Hypothese ist durchaus realistisch, denn in der Praxis sind MEMDIMH, H, V immer Potenzen von zwei.
- Zur Vermeidung sämtlicher Mehrdeutigkeiten wird, wenn keine genaueren Angaben gemacht werden, von "Position" gesprochen, wenn es sich um eine Position im Bild handelt, und von Adresse, wenn es sich um eine Position im Speicher handelt.
- Das zu speichernde Bild hat die horizontalen Abmessungen IMADIMH und IMADIMV, mit IMADIMH als Vielfachem von H und IMADIMV als Vielfachem von V. Man setzt selbstverständlich voraus, daß der Speicher ausreichend groß ist, um alle Pixel des Bildes zu speichern, d.h.:
- MEMDIMH*MEMDIMV > IMADIMH*IMADIMV.
- Man stellt auf:
- 2 Potenz m ist gleich H
- 2 Potenz p ist gleich V
- "div" ist als Operator für ganze Teilungen zu verstehen
- "mod" ost als Modulo-Operator zu verstehen.
- Da der Adressiermodus die Basis der Blöcke H mal V ist wird in einem ersten Zeitraum die Nummer des Blocks H*V im Bild anhand der Pixelkoordinaten x, y im Bild bestimmt. Dafür berechnet man die horizontalen und vertikalen Koordinaten des ersten Elements des Blocks H*V im Bild, ADBLOCH und ADBLOCV:
- ADBLOCH = x div H (1)
- ADBLOCV = y div V (2)
- Davon leitet man die Nummer des Blocks im Bild NUMBLOC ab, in einer fortlaufenden Reihe ab dem ersten Block oben links gezählt (Abbildung 3):
- NUMBLOC = (IMADIMH div H) * ADBLOCV + ADBLOCH (3)
- Anhand der Koordinaten jedes Pixels bestimmt man die relativen Adressen ADRELH, ADRELV des Pixels im Innern des Blocks:
- ADRELH = x mod H (4)
- ADRELV = y mod V (5)
- ADREL = ADRELV * H + ADRELH (6)
- Die Berechnung der Adresse eines Bildblocks BLOCH und BLOCV in einer gemäß der Erfindung beschriebenen Adressierung wird anhand seiner Blocknummer NUMBLOC vorgenommen:
- BLOCH = (NUMBLOC mod k) * (H*V) (7)
- BLOCV = (NUMBLOC div k) (8)
- Man verfügt über alle Elemente zur Berechnung der Adresse ADRX der Speicherreihe und der Adresse ADRY der Speicherspalte für ein Bildpixel:
- ADRX = BLOCH + ADREL (9)
- ADRY = BLOCV (10)
- Es folgt eine Beschreibung des Verfahrens zur Vornahme der Berechnung von ADRX und ADRY anhand der zuvor entwickelten Berechnungen, ausgehend von den Koordinaten x, y des Bildpixels, unter Bezugnahme auf Abbildung 4.
- Man stellt auf:
- 2 Potenz a ist gleich zu IMADIMH
- 2 Potenz b ist gleich zu IMADIMV
- 2 Potenz Alpha ist gleich zu MEMDIMV
- 2 Potenz Beta ist gleich zu MEMDIMV
- 2 Potenz e ist gleich zu k
- mit der Bedingung, das Bild speichern zu können
- Alpha + Beta ≥ a + b
- Als dargestelltes Beispiel wurden Blöcke zu 8 mal 8 Pixeln gewählt, doch die Methode wendet sich auf andere Werte von H und V an.
- Die für H, V und kgewählten Werte sind ganze Potenzen von 2. In diesem Fall können die Operatoren div und mod auf einfache Art erstellt werden: es reicht aus, ein Bitfeld in zwei Bitfelder mit der Bezeichnung MSB und LSB zu trennen, die jeweils die Werte liefern, die sich aus den Operationen div und mod ergeben (die Trennungsstelle der Bits hängt vom Wert des Divisors H, V oder k ab). Diese Dichotomie wird mit den auf Abbildung 4 (und auf den Abbildungen 9 und 13) mit "OP" bezeichneten Moduln erreicht. Das Modul "CONC" erzeugt ausgehend von der Verkettung von zwei Bitfeldern MSB und LSB ein Bitfeld. Die anderen Moduln: "+" (Addierer) und "*" Multiplikator) sind dem Fachmann bekannt.
- Außer anderslautendem Vermerk führen die Moduloperatoren OP eine ganze Teilung durch 8 durch, d.h. daß die Teilung zwischen dem dritten und dem vierten Bit stattfindet.
- Ausgehend von den Koordinaten x und y des zu verbrbeitenden Pixels, auf die mit jeweils a Drähten und b Drähten versehenen Verbindungen 13 und 14 gebracht, liefern jeweils die Moduln OP 11 und 12 die Werte ADBLOCH, ADRELH, ADBLOCV, ADRELV, entsprechend den weiter oben vermerklen Formeln (1) (2) (4) (5), an die jeweils mit a-m Drähten, m Drähten, b-p Drähten und p Drähten versehenen Verbindungen.
- Ausgehend von den Werten ADRELV und ADRELH versetzt das Modul CONC 23 die Bits von ADRELV um m Positionen, was einer Multiplikation um H gleichkommt, und verkettet sie mit den Bits von ADRELH, um die weiter oben vermerkte Formel (6) anzuwenden, und liefert so ADREL an eine mit p+m Drähten versehene Verbindung.
- Ausgehend von den Werten IMADIMH und IMADIMV an den Verbindungen 15 und 16, jeweils mit a und mit b Drähten versehen, liefert das Modul OP 18, das als Divisor V verwendet, an der mit b-p versehenen Verbindung einen Wert NBLOCV, der die Anzahl vertialer Blöcke im Bild darstellt, und das Modul OP 17, das als Divisor H verwendet, liefert an eine mit a-m Drähten versehene Verbindung den Wert NBLOCH, der gleich IMADIMH div H der Formel (3) ist, d.h. die Anzahl horizontaler Blöcke im Bild. Für die Anwendung der Formel (3) wird dieser Wert im Multiplikator 19 mit ADBLOCV multipliziert, und das Ergebnis der Multiplikation wird vom Addierer 20, der so NUMBLOCK liefert, zum Ende vom ADBLOCH zugefügt.
- Der Wert NUMBLOCK wird von einem Modul OP 21 wieder aufgenommen, dessen Divisor k ist und der folglich BLOCV = ADRY nach den Formeln (8) und (10) und MUMBLOC mod k liefert (man hat: 2. = k, folglich trennt das Modul OP die "e" Bits geringen Stellenwerts). Im Modul CONC 22 werden die Bits dieses letzten Werts um m+p Positionen versetzt, was unter Anwendung der Formel (7) einer Multiplikation von H*V gleichkommt, und über die Formel (9) mit ADREL verkettet und ADRX geliefert.
- Was allgemein "Beschreibung eines Pixels" bezeichnet wird kann sowohl die Leuchtdichte wie die Chrominanz betreffen.
- Das nachstehend beschriebene Schema veranschaulicht den Vorgang zur Ermöglichung der materiellen Verarbeitung der Formeln. Wenn die Anzeigeschaltungen des Systems (die nicht Teil der Erfindung sind) die Koordinaten x, y des im Bild anzuzeigenden Pixels erzeugen berechnet die oben beschriebene Adressiervorrichtung die Adressen ADRX und ADRY des Pixels im Speicher und kann folglich zur Anzeige des Bilds verwendet werden.
- Wenn eine Methode zum Bewegungsausgleich verwendet wird, in der die Dekodierung komprimierter Bilder den Zugang zu einem in bezug auf das Netz (d.h. in bezug auf einen Block des Netzes) horizontal und/oder vertikal versetzten Block erfordert und folglich höchstens vier verschiedenen Blöcken dieses Netzes zugehören kann wird eine andere Anordnung verwendet, die weiter unten in bezug auf die Abbildungen 7 bis 12 beschrieben wird. Dies ist z.B. der Fall des Blocks E der Abbildung 5, wo die Pixel den vier Blöcken A, B, C, D zugehören. Dazu muß die Anzeigevorrichtung auf eine Gesamtheit Pixel zugreifen können, die eine Zeile (oder einen Zeilenausschnitt) eines Bilds bilden.
- Vor dem Beginn der Anzeige muß die Dekodiervorrichtung die Pixel des Bilds unter der Form "Leuchtdichte und Farbunterschiede (Y, U, V) lesen, um die von ihren drei Grundfarben (R, G, B) definierten Pixel zu erzeugen. Andererseits wird aus Platzgründen nur ein Teil der Videozeile im Innern der Dekodiervorrichtung zwischengespeichert. Die blockweise Adressiervorrichtung ermöglicht es, auf einer selben Speicherreihe über MEMDIMH / V Pixel zu verfügen, die einer selben Videozeile zugehören und folglich mit einem einzigen Kettenzugriff zugänglich sind. Wenn man einen Pufferspeicher gleicher Größe wie MEMDIM H / V wählt erhält man optimale Kommunikationsleistungen zwischen der Abspeicherung und der Dekodiervorrichtung.
- "Kettenzugriff" wird ein aus folgender Sequenz bestehender Vorgang genannt:
- - Abspeichern einer "Reihen"-Adresse und des entsprechenden "RAS" Signals (Reihenadressenauswahl),
- - Abspeichern einer "Spalten"-Adresse und des entsprechenden "CAS"- Signals (Spaltenadressenauswahl),
- - Abspeichern einer "Spalten"-Adressenfolge für alle Pixel, auf die man zugreifen will und die auf derselben Reihe sind.
- In einer "Bitmap"-Adressiervorrichtung verläuft der Zugriff auf einen Block H*V über V Kettenzugriffe auf H Pixel. In einer Vorrichtung, in der die Bilder blockweise adressiert sind, verläuft der Zugriff auf einen Block der Größe H*V über einen einzigen Kettenzugriff auf H*V Pixel, im Falle der Block, auf den man zugreift, sich genau an einer Blockgrenze befindet, und höchstens über vier Kettenzugriffe, wenn sich der Block über mehrere Blöcke verteilt befindet.
- Um z.B. auf Block E der Abbildung 5 zuzugreifen, die die physische Anordnung des Blocks in einem Bild darstellt, nimmt man die Adresse des Beginns von Blocks A, der man nacheinander die relativen Adressen in diesem Block A hinzufügt: 46, 47, 54, 55, 62, 63, und nimmt dann die Adresse des Beginns von Block B mit aufeinanderfolgend den relativen Adressen im Block B: 40 bis 45, 48 bis 53, 56 bis 61, usw. mit den Blöcken C und D.
- Abbildung 6 zeigt dieselbe Sequenz, doch hier vom Standpunkt der Speicherpositionen: hier findet man die Blöcke A, B, C, D und die relativen Positionen der Pixel in jedem Block, erwähnt im vorhergehenden Absatz.
- Wenn man die Blöcke verarbeitet, deren Größe V ausschließlich größer als 4 ist, ermöglicht die Adressiervorrichtung gemäß der Erfindung den Zugriff zu einem Block der Größe H*V bewegungsausgeglichen schneller als mit einer "Bitmap"- Adressierung, und für einen Zugriff zu einem genau einem Speicherblock entsprechenden Block ist der Zugriff schneller, als die Werte von H und V.
- Die im Folgenden beschriebenen Vorrichtungen entsprechen einer Umsetzung der Adressiervorrichtung, die an den besonderen Zugriffstyp des Speichers gebunden ist. Die Spezifität des Zugriffs (nach Reihen, nach Blöcken,...) führt zur Verwendung besonderer Vorrichtungen, der durchzuführenden Adressenberechnung angepaßt.
- Zur Verarbeitung von bewegungsausgeglichenen Blöcken verwendet man eine Adressiervorrichtung, die dazu bestimmt ist, die Adressen der einem Block zugehörenden Pixel zu erzeugen, dessen Ausgangsadresse gleich der Adresse gleich eines horizontal um DX und vertikal um DY versetzten Speicherblocks ist, entsprechend der Darstellung von Abbildung 5, wo E der in bezug auf Block A mit DX +6 und DY= +5 bewegungsausgeglichene Block ist. Diese Vorrichtung wird unter Bezugnahme auf Abbildung 7 beschrieben. Sie erhält einen Eingang NBLOCH und NBLOCV, d.h. die Ahzahl der Blöcke H*V, horizontal und vertikal, berechnet von den Moduln 17 und 18 der Schaltung der Abbildung 4, sowie die horizontalen DX und vertkalen DY Verschiebungen oder Versetzungen des bewegungsausgeglichenen Blocks. Sie erzeugt die Adressen der Reihe ADRX und Spalte ADRY des Pixels im Speicher sowie die Adressen der Reihe BUFADRH und der Spalte BUFADRV desselben Pixels im Pufferspeicher, bestimmt für den Erhalt des bewegungsausgeglichenen Blocks.
- Ausgehend von einem Synchronisationssignal des Blocks CBLK zählt die in Abbildung 8 mehr im Detail dargestellte Vorrichtung CNTRBLK den Zählern CNTR 27 und 28 die Nummer des aktuellen Blocks. Diese Nummer wird horizontal und vertikal in den Vergleichern 29 und 30 jeweils mit den Werten NBLOCH und NBLOCV verglichen. Der Vergleicher 29 stellt den Zähler 27 an jedem Bildzeilenende auf Null zurück und erhöht zugleich den Zähler 28 um eine Einheit. Der Vergleicher 30 liefert ein Signal FINIMA, das anzeigt, daß der letzte Bildblock soeben verarbeitet wurde. Die Vorrichtung CNTRBLK erzeugt die Adresse des Beginns des aktuellen Blocks ADBLOCH, ADBLOCV entsprechend dem Verfahren der Vorrichtung von Abbildung 4, doch hier ausgehend vom Block-Synchronisationssignal, und nicht einer Pixeladresse x, y.
- Die Vorrichtung OFCAL zur Berechnung der Versetzung oder des "Offsets" des Blocks OFBLKX, OFBLXY und der Versetzung oder des "Offsets" des Pixels OFPELX, OFPELY, den Block- und Pixelsssressen des aktuellen Blocks aufgrund des Bewegungsausgleichs hinzuzufügen, ist in Abbildung 9 dargestellt. Sie wird aus einem Block OP 31 gebildet, der die m Bits geringsten Stellenwerts im binären Wort zum Ausdruck des Werts in der horizontalen DX Versetzungsrichtung des in bezug auf den Referenzblock versetzten Blocks trennt, und aus einem Block OP 32 gebildet, der die p Bits geringsten Stellenwerts im binären Wort zum Ausdruck des Werts DY in der vertikalen Versetzungsrichtung des in bezug auf den Referenzblock versetzten Blocks trennt. Die Bits geringsten Stellenwerts liefern die Werte OFPELX und OFPELY. Es ist darauf hinzuweisen, daß die Versetzungen DX und DY von einer Bewegungsbestimmungsvorrichtung geliefert werden, die unabhängig von der vorliegenden Vorrichtung ist (und nicht Teil der Erfindung ist), und daß die Versetzungen, die sie liefert, acht Pixel übersteigen können, derart, daß der versetzte Block seinen Ausgangspunkt außerhalb des Referenzblocks heben kann (anders gesagt "g - m" ist ungleich Null).
- Für die Wiederherstellung des Blocks E (Abbildung 5) muß auf die in den Blöcken A, B, C und D befindlichen Blöcke zugegriffen werden. Dafür dienen zwei addx und addy bezeichnete Bits zur Bestimmung, in welchem der vier Quadrate A, B, C, D man derzeit arbeitet. Diese Bits addx und addy werden ausgehend von den Versetzungswerten OFPELX und OFPELY und eines Synchronisationssignals CK bestimmt, das die Änderung des Blocks im Laufe des Weges von A nach B und dann C und D anzeigt. Dafür wird eine sehr einfache Schaltung (Abbildung 7) aus einem Zähler 37 gebildet, der die Signale CK zählt. Dieser Zähler zählt von Null bis drei und beginnt dann wieder bei Null. Die Zählerzahl erscheint folglich über zwei Bits. Am Ausgang des Zählers 37 ist das Bit mit dem geringsten Stellenwert relativ zu addx, und das Bit mit dem höchsten Stellenwert relativ zu addy. Sie haben während dem Zugriff auf Block A addx und addy einen Wert Null; während dem Zugriff auf Block B heben addx einen Wert 1 und addy einen Wert Null; während dem Zugriff auf Block C heben addx einen Wert Null und addy einen Wert 1; und schließlich während dem Zugriff auf Block D haben addx einen Wert Null und addy einen Wert 1. Um den Fall zu berücksichtigen (in der einen oder anderen Richtung), bei dem die Versetzung genau gleich einer ganzen Zahl Blöcke wäre, die Bits des einen der binären Wörter OFPELX oder OFPELY sind dann alle gleich Null, werden diese Werte OFPEUC und OFPELY paallel an die Eingänge (es gibt pro Wort gleich viele Bits wie Wörter) einer jeweiligen ODER- Verbindung 38, 39 gebracht, deren Ausgang an einen Steuereingang einer jeweiligen UND-Verbindung 40, 41 gebracht wird, und die Bits addx und addy müssen jeweils die Verbindung 40 oder die Verbindung 41 überqueren, um bestätigt zu werden.
- Die Bits addx und addy werden schließlich von den Moduln "+" (Abbildung 9) den Werten am Ausgang (13it5 des höchsten Stellenwerts) der jeweiligen Moduln 31,32 zugefügt, um OFBLKX und OFBLKY zu liefern.
- Die mehr im Detail auf Abbildung 10 dargestellte Vorrichtung NUMBLK wird aus einem ersten Addierer 33 zusammengesetzt, der die Summe des Wertes der Adresse des Referenzblocks in vertikaler Richtung (ADBLOCV) und des Versetzungswerts des in vertikaler Richtung (OFBLXY) versetzten Blocks bildet, aus einem Multiplikators 34 für die Multiplikation des vom ersten Addierer gelieferten Werts mit dem Wert der Anzhl Blöcke pro Bild in horizontaler Richtung (NBLOCH), einem zweiten Addierer 35 zum Bilden der Summe des Werts der Adresse des Referenzblocks in horizontaler Richtung (ADBLOCH) und des Versetzungswerts des in horizontaler Richtung versetzten Blocks (OFBLKX), und aus einem dritten Addierer 36 zum Bilden der Summe des vom zweiten Addierer gelieferten Werts mit dem vom Multiplikator gelieferten Wert.
- Die auf Abbildung 11 mehr im Detail dargestellte Vorrichtung GENADR ist mit der Erzeugung der relativen Pixeladresse im Innern des bewegungsausgeglichenen Blocks betraut. Dabei sollte man sich zugleich auf die Abbildungen 5 und 6 beziehen, deren Beispiel für die Erklärung der Adressensequenz verwendet wird, die die Vorrichtung GENADR für jeden Speicherblock erzeugen muß, dem der bildversetzte Block zugehört. Eine nicht abgebildete Kontrollvorrichtung, die kein Teil der Erfindung ist und die vom Fachmann leicht erdacht werden kann, ist mit der Erzeugung der Kontrollsignale des operativen Teils beauftragt: die Signale CPELX, CPELY, CPELH, CPELV sind Takignale zur Erhöhung der Zähler CNTR respektive A, B, C, D, die Signale LOADX, LOADY, LOADH, LOADV sind Ladesignale eines anfänglichen Werts für die Zähler CNTR respektive A, B, C, D und die Signale SELDEPX, SELDEPY, SELDEPH, SELDEPV sind Informationssignale zur Steuerung der Wahl der von den Multiplexern MUX übertragenen Variablen, wobei die Variable entweder Null oder jeweils OFPELX, OFPELY ist, das Komplement zu zwei von OFPELX, das Komplement zu zwei von OFPELY.
- Man will zuerst auf die Pixel 46, 47, 54, 55, 62, 63 zugreifen, die sich alle auf derselben Reihe des Speichers in Block A befinden. Dafür lädt man den Zähler A CNTR mit dem Wert OFPELX durch Einwirken auf die Signale SELDEPX und LOADX sowie durch Einwirken auf die Signale SELDEPY und LOADY und lädt den Zähler B CNTR mit dem Wert OFPELY. Auf dieselbe Art lädt man mit den Sigaalen SEU)EPH, SEU)EPV, LOADH und LOADV die Zähler C CNTR und D CNTR mit Null, auf der Abbildungmit "0" bezeichnet. Mit jedem neuen Pixel, auf das man im Speicher zugreift, erhöht man die Zähler A CNTR und C CNTR. Wenn der Zählerwert des Zählers A CNTR H erreicht wird OVERFX auf 1 gebracht, was die Erhöhung der Zählerb CNTR und D CNTR bewirkt und die Erhöhung des Zählers A CNTR mit OFPELX und des Zählers C CNTR mit Null, und man beginnt erneut mit der Erhöhung von ACNTR und C CNTR der Zyklus setzt sich fort, bis das Zählen in BCNTR mit Null erreicht, was OVERFY auf 1 stellt. Zu diesem Zeitpunkt wurden alle Pixel im Block A, auf die man zugreifen wollte, erreicht und in einem Pufferspeicher zwischengespeichert, an Adressen, die von den Zählern C CNTR und D CNTR geliefert werden.
- Dann geht man zum Zugang der Pixel von Block B über. Dafür lädt man zuerst den Zähler A CNTR mit Null durch Einwirken auf die Steuerdrähte SELDEPX und LOADX, man lädt die Zähler B CNTR und D CNTR wie für den Zugang zu Block A, man lädt den Zähler C CNTR mit dem Komplement zu 2 von OFPELX durch Einwirken auf die Steuerdrähte SELDEPH und LOADH, wonach ein ähnlicher Wiederholungsvorgang wie der für den Zugriff auf Block A stattfindet, bis der Zählerwert des Zählers B CNTR größer oder gleich V ist. Dann geht man zum Zugriff auf die Pixel von Block C durch Laden der Zähler C CNTR und B CNTR mit Null über, den Zähler A CNTR mit OFPELX und den Zähler D CNTR mit dem Komplement zu 2 von OFPELY, und es tritt erneut ein Wiederholungsvorgang ein, bis diesmal der Zählerwert des Zählers D CNTR größer oder gleich groß V ist.
- Schließlich greift man auf die Pixel von Block D zu, durch Laden der Zähler A CNTR und B CNTR mit Null, die Zähler A CNTR und C CNTR mit jeweils den Komplementen zu 2 von OFPELX und OFPELY, weiterhin durch Einwirken auf dieselben Steuerdrähte, und es tritt erneut ein Wiederholungsvorgang ein, bis der Zählerwert des Zählers D CNTR größer oder gleich groß V ist, was den Zugriff auf den gesuchten Pixelblock beendet.
- Die Funktionsweise der Zähler C und D ist ähnlich und muß nicht ausdrücklich beschrieben werden: es genügt, die Referenzbezeichnungen X oder Y von weiter oben mit denselben Bezeichnungen H oder V auszutauschen und darauf hinzuweisen, daß die zu Beginn in die Zähler zu ladenden Werte Komplemente zu zwei sind, erzeugt von den Moduln mit der Bezeichnung 2/COMPL, der Werte OFPELX und OFPELY. Diese Zähler liefern die Werte BUFADRH und BUFADRV, was relative Adressen des Pixels im Innern des versetzten Blocks sind, und ermöglichen die Adressierung eines für die Verarbeitung eines Blocks verwendeten Pufferspeichers.
- Die Funktionsweise der Vorrichtung GENADR ist in Abbildung 12 dargestellt, wo die Kontrollsignale in bezug auf die Vorrichtung GENADR dargestellt sind, die dem in den Abbildungen 5 und 6 gezeigten Beispiel entsprechen. Das Signal CPELX ist ein Taktgeber, von dem eine Periode der Verarbeitungszeit eines Pixels entspricht; die Zeile MUXX zeigt die Aktion des Multiplexers an: sein Ausgang wird über die sechs entsprechenden Perioden auf die Pixel 46, 47, 54, 55, 62, 63 des Blocks A auf OFPELX (= +6) ausgerichtet, dnnn wird sie für die anderen Blöcke B und D auf Null ausgerichtet und für den Block C auf die Position OFPELX; das Signal LOADX steuert das Laden im Zähler A CNTR dessen, was aus dem Multiplexer ausgeht, vor dem Pixel 46 des Blocks A, vor dem Pixel 54 des Blocks A, vor dem Pixel 62 des Blocks A vor dem Pixel 40 des Blocks B usw.; das Signal AVERFX wird ausgelöst, wenn der Zählerwert des Zählers A CNTR acht erreicht (=H), d.h. nach zwei Zeiten, da er mit sechs ausgelöst wurde: schließlich zeigt die Zeile ADRELH das Resultat an, d.h. die relative Adresse des Pixels in seinem Referenzblock, für die Pixel 46, 47, 54, 55, 62, 63 von Block A, dann für die Pixel 40 bis 46, 48 von Block B... Die folgenden, die relative vertkale Adresse betreffenden Zeilen werden mit Ausnahme dessen auf dieselbe Art erklärt, daß der Taktgeber CPELY in Übereinstimmung mit dem Signal LOADX ausgelöst wird. Wenn man z.B. im Block B von Pixel 45 auf Pixel 48 übergeht ist der Wert "48" in A CNTR zu laden und B CNTR zugleich zu erhöhen.
- Die Vorrichtung BLKADREL, die die relative Adresse des Pixels ausgehend von den horizontalen und vertikalen Koordinaten im Block bildet, und die Vorrichtung MEMADR, die mit der Bildung der Adresse jedes Pixels ausgehend von der Blocknummer und der relativen Pixeladresse im Block beauftragt ist, sind dieselben wie die in Abbildung 4 mit denselben Referenzen bezeichneten.
- Wenn die Versetzung Null ist kann die zuvor beschriebene Vorrichtung aufgrund der Tatsache beträchffich vereinfacht werden, da man immer Pixeladressen erzeugt, die innerhalb desselben Speicherblocks liegen. Man verwendet dann die in Abbildung 13 dargestellte Adressiereinrichtung, die eine ähnliche Struktur wie die der vorangehend beschriebenen Vorrichtung für die Berechnung der Adressen eines bewegungsausgeglichenen Blocks aufweist. Die Moduln CNTRBLK, NUMBLK, MEMADR, OP sind mit denen, die mit denselben Bezeichnungen bereits beschrieben wurden, identisch. Das Modul ADRBLK ist auf Abbildung 14 mehr im Detail dargestellt. Es besteht aus einem Rückwärtszähler, der unter dem Einfluß eines Taktgebers CPEL rückwärts zählt und mit dem Wert H*V unter dem Einfluß einer Steuerung LOAD aktiviert wird. Der rückwärts gezählte Wert, den er liefert, ist ADREL, und er zeigt das Erlangen seiner Höchstkapazität mit einem Signal OVERF an.
Claims (10)
1. Verfahren zur Verwaltung und Abspeicherung eines
Bildverarbeitungssystems, der besagte Speicher dynamischen Typs ist in Reihen und
Spalten mit Kettenzugriff angeordnet, bei dem Verfahren werden die Bilder nach
Blöcken verarbeitet, jeder dieser Blöcke ist quadratisch oder rechteckig und enthält in
jeder horizontalen und vertikalen Richtung mehrere Pixel (H*V), die Pixel werden im
Innern eines Blocks beschrieben, über die reihenweise Betrachtung der Pixel nach
parallel aufeinanderfolgenden Zeilen im Block (Abb. 2), die horizontalen und vertikalen
(H,V), in der Anzahl Pixel ausgedrückten Abmessungen der Blöcke sind ganze Potenzen
von zwei (m,p), mit dem Merkmal, daß im Speicher die verschiedenen Pixel eines
Blocks ein aufeinanderfolgenden Positionen angeordnet werden, derart, daß die Zeilen
des Blocks nacheinander in einer selben Reihe des Speichers angeordnet werden, die
Beschreibungen einer Vielzahl an Blöcken werden ebenfalls nacheinander in der Folge
ihrer Nummer in eine selbe Reihe des Speichers angeordnet, mit dem Übergang zu
einer folgenden Reihe, wenn eine Reihe voll ist, die Nummer eines Blocks für ein
bestimmtes Pixel wird ausgehend von den Koordinaten (x,y) dieses Pixels im Bild
berechnet, die ganze Teilung der horizontalen Koordinate durch die horizontale Größe
eines Blocks diefert die horizontale (ADBLOCH) Position im Bild des das Pixel
enthaltenden Blocks, die ganze Teilung der vertikalen Koordinate durch die vertikale
Größe eines Blocks liefert ihre vertikale (ADBLOCV) Position, die Nummer des Blocks
ist schließlich gleich der Summe der besagten horizontalen Position und des Produkts
der besagten vertikalen Position mal der Anzahl Blocke einer Bildzeile, der Rang und
die entspreche Spalte im Speicher werden für eine bestimmte Blocknummer im voraus
bestimmt.
2. Verfahren laut Anspruch 1, mit dem Merkmal, daß man die Inhalte der
verschiedenen Blöcke abspeichert, durch die Erhöhung der Spaltenadresse auf ihren
Grenzwert, und daraufhin diese Adresse auf Null gebracht und die Reihenadresse erhöht
wird usw. (Abb. 3).
3. Verfahren laut Anspruch 1, mit dem Merkmal, daß die Operationen zur
Berechnung der Speicheradresse des Beginns eines ein beliebiges Pixel enthaltenden
Blocks über die mit binären Wörtern dargestellten Werte vorgenommen werden, mittels
Dichotomien, die als Ergebnis einer gareen Teilung die Bits liefern, deren Rang höher
als die weiter oben genannte Potenz von zwei (m oder p) ist, und als Ergebnis einer
Modulo-Operation die Bits, deren Rang niederer oder gleich dieser selben Potenz von
zwei ist.
4. Mit einem Speicher dynamischen Typs versehene Vorrichtung, in Reihen
und Spalten mit Kettenzugriff angeordnet, um ein nach Blöcken verarbeitetes Bild zu
speichern, jeder dieser Blöcke ist quadratisch oder rechteckig und seine horizontalen H
und venen V, in der Anzahl Pixel ausgedrückten Abmessungen sind ganze Potenzen
von zwei, respektive m und p, wobei die Beschreibung der in einem Block enthaltenen
Pixel unter Betrachtung der paallel aufeinanderfolgenden Zeilen in einem Block
stattfindet, mit dem Merkmal, daß die verschiedenen abgespeicherten Pixel eines Blocks
an aufeinanderfolgenden Positionen im Speicher angeordnet werden, derart, daß die
Zeilen eines Blocks nacheinander in derselben Reihe des Speichers angeorndet werden
und auch die Beschreibungen einer Vielzahl an Blöcken ebenfalls nacheiner in der
Folge ihrer Nummern in derselben Reihe des Speichers angeordnet werden, wobei von
einer Reihe zur folgenden übergegangen wird, wenn eine Reihe voll ist, die Mittel zur
Berechnung der Blocknummer (NUMBLOC) im Speicher enthält, ausgehend von den
Koordinaten x, y eines Pixels dieses Blocks, die aus zwei materiellen Operatoren
(OP11, OP12) gebildet werden, die anhand der binären, die Werte x und y
darstellenden Wörter daraus die Bits höheren Stellenwerts zu jeweils m und p aus einem
Multiplikator (19) entnehmen, dem als Multiplikanden einerseits die Anzahl der Blöcke
pro Bildzeile (NBLOCH) und andererseits das binäre Wort geliefert wird, bestehend aus
den Bits, die von einem der obengenannten Operatoren aus dem binären, y darstellenden
Wort entnommen werden (diese Bits stellen die vertikale Koordinate (ADBLOCV) im
Bild des das Pixel enthaltenden Blocks dar), und einen Addierer (20), dem um darin
addiert zu werden einerseits das aus dem obengenannten Multiplikator kommende
Ergebnis und andererseits das binäre Wort zugeführt werden, bestehend aus den Bits,
die von dem anderen obengenannten Operatoren aus dem binären, x darstellenden Wort
entnommen werden (diese Bits stellen die horizontale Koordinate (ADBLOCH) im Bild
des das Pixel enthaltenden Blocks dar).
5. Vorrichtung laut Anspruch 4, mit dem Merkmal, daß die vollständige
Beschreibung jedes Blocks in der Folge der Beschreibung des Blocks im Speicher
angeordnet wird und die Blöcke aufeinanderfolgend im Speicher angeorndet werden, das
Mittel zur Berechnung der relativen Adresse (ADREL) eines Pixels in einem Block
anhand seiner Adresse x, y im Bild enthhlt, die aus zwei materiellen Operatoren (OP11,
OP12) gebildet werden und jeweils aus binären, die Werte x und y dargestellten
Wörtern die m und p Bits geringsten Stellenwerts entnehmen, die beiden entnommenen
Blockgruppen werden einem anderen materiellen Operator (CONC) zugeführt, der die
von einem der beiden obengenannten Operatoren aus y entnommene Gruppe Bits
(ADRELV) um m Bits nach links versetzt und sie mit der von x von dem anderen der
beiden obengenannten Operatoren entnommenen Gruppe Bits (ADRELH) verkettet.
6. Vorrichtung laut einem der Ansprüche 4 oder 5, mit dem Merkmal, daß
die vollständige Beschreibung jedes Blocks in der Folge der Beschreibung des Blocks im
Speicher angeordnet wird und die Blöcke aufeinanderfolgend im Speicher angeorndet
werden und der Zugriff zum Speicher auf der Grundlage der Adrsse des Beginns des
Blocks organisiert ist, die Mittel enthält, um die Spalten- und Zeilenadressen (ADRX,
ADRY) eines Pixels im Speicher anhand der Blocknummer (NUMBLOC) zu berechnen,
die dieses Pixel enthält, und der relativen (ADREL) Adresse des Pixels im Block, die
aus einem Operatoren (OP21) gebildet werden, der in einem binären, die Blocknummer
(NUMBLOC) darstellenden Wort die "e" Bits geringsten Stellenwerts trennt, wobei "e"
eine Ganzzahl ist, so daß zwei Potenz "e" gleich der Anzahl Blöcke pro Speicherzeile
ist, diese "e" Bits werden an ein Verkettungselement (CONC 22) geleitet, wo sie nach
links versetzt werden und mit den die relative Pixeladresse im Block darstellenden Bits
(ADREL) verkettet werden, um die Komponente (ADRX) der gesuchten Adresse in
horizontaler Richtung zu finden, d.h. die Nummer der Speicherspalte, die anderen Bits
(eines Stellenwerts über "e") liefern die Komponente (ADRY) der gesuchten Adresse in
vertiltaler Richtung, d.h. die Zeilennummer des Speichers.
7. Vorrichtung laut einem der Ansprüche 4 bis 6, mit dem Merkmal, daß die
vollständige Beschreibung jedes Blocks in der Folge der Beschreibung des Blocks im
Speicher angeordnet wird und die Blöcke aufeinanderfolgend im Speicher angeorndet
werden, um zur Berechnung der in einem Bildblock enthaltenen, in bezug auf einen
Block des obengenannten Netzes versetzten Pixelspeicheradresse (ADRELH, ADRELV)
die Berechnung ausgehend von der Adresse (ADBLOCH, ADBLOCV) dieses als
Referenzblock (A) bezeichneten Netzblocks und der Versetzung (DX, DY) des
versetzten Blocks in bezug auf diesen Referenzblock vorzunehmen, und unter Kenntnis
der Anzahl horizontal im Bild enthaltenen Blöcke (NBLOCH) sind in der Vorrichtung
eine oder mehrere der folgenden Einheiten enthalten:
- erste Mittel (OFCAL), um ausgehend von der Versetzung (DX, DY) des
versetzten Blocks zu berechnen, um wieviel der Block horizontal (OFBLKX) und
vertial (OFBLKY) in bezug auf den Referenzblock (A) versetzt ist, und um seine
relative Position in bezug zu dem seinen Ausgangspunkt enthaltenden Netzblock (B) zu
berechnen, horizontal (OFPELX) und verttital (OFPELY),
- zweite Mittel (NUMBLK), um ausgehend von der Versetzung des
versetzten Blocks (OFBLKX, OFBLKY), der Adresse des Referenzblocks (ADBLOCH,
ADBLOCV) und der Anzahl horizontaler Blöcke pro Bild im Bild (NBLOCH) die
Nummer des Blocks (B) zu berechnen, der den Ausgangspunkt des versetzten Blocks
(NUMBLOC) enthält,
- dritte Mittel (GENADR), um die beiden Komponenten der relativen
Pixeladresse (ADRELH, ADRELV) im Innern des Blocks zu erzeugen, dessen Nummer
von den vorhergehenden Mitteln (NUMBLK) gegeben wird,
- vierte Mittel (BLKADREL) zur Versetzung nach links der Bits der
vertikalen (ADRELV) Komponente der relativen Pixeladresse und ihre Verkettung mit
den Bits der horizontalen Komponente (ADRELH) dieser relativen Adresse, um eine
relative "lineare" Adresse (ADREL) im Speicherblock zu liefern,
- fünfte Mittel (MEMADR), bestehend aus einem Operator (OP), der im
binären, die Nummer des Blocks (NUMBLOCK) angebenden Wort die "e" Bits
geringsten Stellenwerts trennt, wobei "e" eine Ganzzahl ist, so daß zwei Potenz "e"
gleich der Anzahl Blöcke pro Speicherzeile ist, diese "e" Bits werden an ein
Verkettungselement (CONC) geleitet, wo sie nach links versetzt werden und mit den die
relative Pixeladresse im Block darstellenden Bits (ADREL) verkettet werden, um die
Komponente (ADRX) der gesuchten Adresse in horizontaler Richtung zu finden
(Nummer der Speicherspalte), die anderen Bits des besagten binären Worts liefern die
Komponente (ADRY) der gesuchten Adresse in vertikaler Richtung (Nummer der
Speicherreihe).
8. Vorrichtung laut Anspruch 7, mit dem Merkmal, daß die obengenannten
ersten Mittel (OFCAL) mit einem Block (0P31) zur Trennung der m Bits geringsten
Stellenwerts im binären Wort gebildet sind, der den Wert in horizontaler Richtung der
Versetzung (DX) des versetzten Block in bezug auf den Referenzblock gibt, und mit
einem Block (OP32) zur Trennung der p Bits geringsten Stellenwerts im binären Wort,
der den Wert (DY) in vertikaler Richtung der Versetzung des versetzten Blocks in
bezug auf den Referenzblock gibt.
9. Vorrichtung laut Anspruch 7, mit dem Merkmnl, daß die besagten zweiten
Mittel (NUMBIX) von einem ersten Addierer (33) gebildet werden, der die Summe des
Wertes der Adresse des Referenzblocks in vertikaler Richtung (ADBLOCV) und des
Werts der Versetzung des versetzten Blocks in vertikaler Richtung (OFBLKY)
berechnet, einem Multiplikator (34) zur Multiplikation des von diesem ersten Addierers
gelieferten Werts mit der Anzahl Blöcke pro Bild in horizontaler Richtung (NBLOCH),
einem zweiten Addierer (35), der die Summe des Werts der Adresse des Referenzblocks
in horizontale Richtung (ADBLOCH) und des Werts der Versetzung des versetzten
Blocks in horizontale Richtung (OFBLKX) berechnet, und einem dritten Addierer (36)
ersetzt werden, der die Summe des vom zweiten Addierer gelieferten Werts und des
vom Multiplikator gelieferten Werts berechnet.
10. Vorrichtung laut Anspruch 7, mit dem Merkmal, daß die dritten Mittel
(GENADR) aus einer oder mehrerer Gruppen folgender Elemente gebildet werden:
- einer Gruppe, die einen Multiplexer (MUX) enthält, der einen entweder
zwischen Null oder dem Wert (OFPELX) der relativen Position in horizontaler
Richtung des im Vergleich zum Block des Netzes, der seinen Ausgangspunkt enthält,
versetzten Blocks gewählten Wert liefert, und einen Zähler (A CNTR), der mit einem
Wert aktiviert werden kann, der vom Multiplexer geliefert wird und der im Zeittakt
(CPELX) die horizontale Komponente (ADRELH) einer relativen Adresse des Pixels
liefert,
- einer identisch zusammengestellten Gruppe (MUX, B CNTR), die die
entsprechenden Elemente in vertikaler Richtung behandelt,
- einer Gruppe, die eine arithmetische Schaltung enthält, die das
Komplement (2'COMPL) zu zwei des binären Worts liefert und den Wert (OFPELX)
der relativen Position in horizontaler Richtung des in bezug auf den seinen
Ausgangspunkt enthaltenden Block des Netzes versetzten Blocks liefert, einen
Multiplexer (MUX) zur Abgabe eines entweder zwischen Null oder der obengenannten
Ergänzung zu zwei gewählten Werts, und einen Zähler (C CNTR), der mit einem Wert
aktiviert werden kann, der vom Multiplexer geliefert wird und der im Zeittakt (CPELH)
die horizontale (BUFADRH) Komponente einer relativen Adresse des Pixels liefert,
- einer identisch zusammengestellten Gruppe (2'COMPL, MUX, D
CNTR), die die entsprechenden Elemente in vertikaler Richtung behandelt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9001241A FR2657978A1 (fr) | 1990-02-02 | 1990-02-02 | Procede de stockage en memoire pour le traitement d'images, et dispositif pour la mise en óoeuvre du procede. |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69127759D1 DE69127759D1 (de) | 1997-11-06 |
DE69127759T2 true DE69127759T2 (de) | 1998-03-26 |
Family
ID=9393350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69127759T Expired - Fee Related DE69127759T2 (de) | 1990-02-02 | 1991-01-30 | Abspeicherungsverfahren für die Bildverarbeitung und Gerät,um dieses einzusetzen |
Country Status (6)
Country | Link |
---|---|
US (1) | US5239512A (de) |
EP (1) | EP0440301B1 (de) |
JP (1) | JP3133087B2 (de) |
KR (1) | KR100233765B1 (de) |
DE (1) | DE69127759T2 (de) |
FR (1) | FR2657978A1 (de) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2062200A1 (en) * | 1991-03-15 | 1992-09-16 | Stephen C. Purcell | Decompression processor for video applications |
US5815646A (en) * | 1993-04-13 | 1998-09-29 | C-Cube Microsystems | Decompression processor for video applications |
JP3001763B2 (ja) * | 1994-01-31 | 2000-01-24 | 富士通株式会社 | 画像処理システム |
SG65064A1 (en) | 1997-04-09 | 1999-05-25 | Matsushita Electric Ind Co Ltd | Image predictive decoding method image predictive decoding apparatus image predictive coding method image predictive coding apparatus and data storage media |
US6687860B1 (en) | 1998-01-07 | 2004-02-03 | Matsushita Electric Industrial Co., Ltd. | Data transfer device and data transfer method |
US6300964B1 (en) * | 1998-07-30 | 2001-10-09 | Genesis Microship, Inc. | Method and apparatus for storage retrieval of digital image data |
KR20020020946A (ko) * | 2000-05-22 | 2002-03-16 | 다카토리 수나오 | 어드레스 변환기, 인터리버 및 디인터리버 |
CN1942870B (zh) * | 2004-04-15 | 2010-05-12 | 松下电器产业株式会社 | 信息处理装置及数据访问方法 |
WO2008114322A1 (ja) * | 2007-03-20 | 2008-09-25 | Fujitsu Limited | 半導体集積回路および半導体メモリのアクセス制御方法 |
WO2011108016A1 (en) | 2010-03-03 | 2011-09-09 | Sauro Bianchelli | Innovative domestic appliance with dual function |
JP5362915B2 (ja) * | 2010-06-24 | 2013-12-11 | 富士通株式会社 | 描画装置および描画方法 |
JP5829331B2 (ja) * | 2011-09-27 | 2015-12-09 | ルネサスエレクトロニクス株式会社 | Simdプロセッサシステムにおいて複数の対象領域(roi)を同時並列的にデータ転送するための装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0085210A1 (de) * | 1982-01-29 | 1983-08-10 | International Business Machines Corporation | Bildverarbeitungssystem |
GB2199678B (en) * | 1987-01-13 | 1990-11-14 | Ferranti Plc | Pixel memory arrangement for information display system |
US5131080A (en) * | 1987-08-18 | 1992-07-14 | Hewlett-Packard Company | Graphics frame buffer with RGB pixel cache |
-
1990
- 1990-02-02 FR FR9001241A patent/FR2657978A1/fr active Pending
-
1991
- 1991-01-30 DE DE69127759T patent/DE69127759T2/de not_active Expired - Fee Related
- 1991-01-30 EP EP91200185A patent/EP0440301B1/de not_active Expired - Lifetime
- 1991-01-31 US US07/649,518 patent/US5239512A/en not_active Expired - Lifetime
- 1991-02-01 KR KR1019910001728A patent/KR100233765B1/ko not_active IP Right Cessation
- 1991-02-02 JP JP03031485A patent/JP3133087B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0440301B1 (de) | 1997-10-01 |
EP0440301A1 (de) | 1991-08-07 |
JP3133087B2 (ja) | 2001-02-05 |
KR920000057A (ko) | 1992-01-10 |
JPH04213775A (ja) | 1992-08-04 |
FR2657978A1 (fr) | 1991-08-09 |
KR100233765B1 (ko) | 1999-12-01 |
DE69127759D1 (de) | 1997-11-06 |
US5239512A (en) | 1993-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3804938C2 (de) | Bildverarbeitungseinrichtung | |
DE3202365C2 (de) | Datenspeicher mit Fensterabtastung | |
DE2725395C3 (de) | Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordneten Wörter der Bitlänge n | |
DE3230679C2 (de) | Bildzeilen-Zwischenspeicher-Vorrichtung | |
DE69425847T2 (de) | Rechner für die inverse diskrete Cosinus-Transformation | |
DE1901343C3 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE3782756T2 (de) | Direktzugriffspeichereinrichtung. | |
DE69127759T2 (de) | Abspeicherungsverfahren für die Bildverarbeitung und Gerät,um dieses einzusetzen | |
DE3141196A1 (de) | Videobildverarbeitungsvorrichtung | |
DE2640157A1 (de) | Verfahren und anordnung zum redundanzvermindernden codieren von bildern | |
DE2549336B2 (de) | ||
DE2331589A1 (de) | Datenverarbeitungsanordnung | |
DE2525155A1 (de) | Verfahren und anordnung zur rasterpunktdarstellung von codierter - liniensegmente darstellende - information in computergesteuerten datensichtgeraeten, insbesondere in kathodenstrahlbildschirmstationen | |
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE3632639A1 (de) | Einrichtung zum verarbeiten von bilddaten durch faltung | |
DE1774682B2 (de) | Einrichtung zur sichtbaren Datenwiedergabe | |
DE3888891T2 (de) | Steuersystem zum Umdrehen von Seiten mit grosser Geschwindigkeit. | |
DE2510542A1 (de) | Digitale bildwiedergabevorrichtung mit mehreren bildschirmen | |
DE69109040T2 (de) | Verbesserungen bei den nach dem Rasterverfahren arbeitenden Sichtgeräten. | |
DE2213953C3 (de) | Schaltungsanordnung zum Darstellen von Zeichen auf dem Bildschirm eines Sichtgerätes | |
DE69615447T2 (de) | Serieller Zugriffspeicher mit reduzierter Kreisverzögerung | |
DE1222290B (de) | Binaere Recheneinrichtung zur Bildung und Akkumulation von Produkten | |
DE69030750T2 (de) | Datenmischungsschaltung | |
DE69010103T2 (de) | Vorrichtung zur Umwandlung einer Zeilenabtastung in eine streifenweise Vertikalsägezahnabtastung. | |
DE69120616T2 (de) | Graphisches Anzeigesystem enthaltend einen Video-Direktzugriffsspeicher mit geteiltem Schieberegister und ein Laufzähler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N |
|
8339 | Ceased/non-payment of the annual fee |