DE69127759T2 - Abspeicherungsverfahren für die Bildverarbeitung und Gerät,um dieses einzusetzen - Google Patents

Abspeicherungsverfahren für die Bildverarbeitung und Gerät,um dieses einzusetzen

Info

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
Application number
DE69127759T
Other languages
English (en)
Other versions
DE69127759D1 (de
Inventor
Thierry Fautier
Jean-Pierre Michel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of DE69127759D1 publication Critical patent/DE69127759D1/de
Publication of DE69127759T2 publication Critical patent/DE69127759T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing 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.
DE69127759T 1990-02-02 1991-01-30 Abspeicherungsverfahren für die Bildverarbeitung und Gerät,um dieses einzusetzen Expired - Fee Related DE69127759T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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