DE68929100T2 - Digitalsignalverarbeitungsverfahren - Google Patents

Digitalsignalverarbeitungsverfahren

Info

Publication number
DE68929100T2
DE68929100T2 DE68929100T DE68929100T DE68929100T2 DE 68929100 T2 DE68929100 T2 DE 68929100T2 DE 68929100 T DE68929100 T DE 68929100T DE 68929100 T DE68929100 T DE 68929100T DE 68929100 T2 DE68929100 T2 DE 68929100T2
Authority
DE
Germany
Prior art keywords
data
block
processing
input
output
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
DE68929100T
Other languages
English (en)
Other versions
DE68929100D1 (de
Inventor
Koh Kamizawa
Naoto Kinjo
Tokumichi Murakami
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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
Priority claimed from JP63037921A external-priority patent/JPH01211162A/ja
Priority claimed from JP63063695A external-priority patent/JPH01237838A/ja
Priority claimed from JP63298723A external-priority patent/JPH02145077A/ja
Priority claimed from JP63298722A external-priority patent/JPH02145079A/ja
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE68929100D1 publication Critical patent/DE68929100D1/de
Application granted granted Critical
Publication of DE68929100T2 publication Critical patent/DE68929100T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Color Television Systems (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Complex Calculations (AREA)

Description

    HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Digitalsignal-Verarbeitungsverfahren, welches Berechnungsvorgänge für Digitalsignale ausführt.
  • Beschreibung des Standes der Technik
  • Fig. 1 zeigt das in einem Beitrag mit dem Titel "A Real Time Video Signal Processor Suitable for Motion Picture Coding Applications", IEEE, GLOBCOM '87, Seite 453 beschriebenes Mehrfachprozessorsystem. In Fig. 1 werden Eingangsdaten 1 durch eine Datenübertragungssteuerung 3 empfangen und danach werden Daten 4 selektiv zu den Digitalsignalprozessoren 2 übertragen, d. h., DSP-1 bis DSP-N in Block-1. Nach der Verarbeitung durch die entsprechenden DSPn in Block- 1 werden die resultierenden Daten 5 zu Block-2 übertragen und durch die entsprechenden DSPn für den nächsten Verarbeitungsschritt verarbeitet.
  • Fig. 2(a) zeigt aufgeteilte Speicherbereiche der DSPn. Zur Vereinfachung der Erläuterung ist hier ein Beispiel einer Parallelverarbeitung unter Verwendung von drei DSPn 2 gezeigt, zu welchen Verarbeitungsbereiche A, B und C gleichförmig zugeordnet sind.
  • In dem Inter-Vollbild-Bildkodierungssystem und ähnlichem ist es eine allgemeine Konvention, den bedingten Bildpunkt-Ergänzungsvorgang zu verwenden, bei welchem nur Teile mit wenigstens einer bestimmten Differenz zwischen dem Eingangsvollbild und dem vorherigen Vollbild kodiert werden und die vorherigen Vollbilddaten werden für die verbleibenden Teile verwendet. Dementsprechend unterscheidet sich das für die Verarbeitung benötigte Berechnungsvolumen abhängig von der Häufigkeit der gültigen Bildpunkte, obwohl die Anzahl von Bildpunkten in dem Verarbeitungsbereich konstant ist. Das Volumen von erforderlicher Berechnung oder Berechnungszeit ist proportional zu der Häufigkeit gültiger Bildpunkte.
  • In dem Inter-Vollbild-Bildkodierungssystem oder ähnlichem, in dem angenommen wird, dass die Anzahl gültiger Bildpunkte sich auf sämtliche DSPn verteilt, um eine Verteilung EA, EB und EC zu erreichen, wie in Fig. 2(b) gezeigt, wird die für einen Block der parallelen DSP-Anordnung benötigte Berechnungszeit bestimmt aus der Verarbeitungszeit des DSP, welcher für den Bereich B mit der größten Menge von Verarbeitungen M wirkt, und die verbleibenden DSPn, welche in den Bereichen A und C früher fertig sind, haben Leerlaufzeit.
  • Bei der wie oben beschrieben angeordneten, konventionellen Digitalsignal-Verarbeitungsvorrichtung wird ihre Gesamtverarbeitungszeit bestimmt aus der längsten Verarbeitungszeit unter den DSPn, wenn die Informationsdichte, wie die Häufigkeit gültiger Bildpunkte, innerhalb eines Vollbildes ungleichförmig ist und die Verteilung der Information über der Zeit variiert, resultierend in einer verringerten Verarbeitungs-Effizienz pro DSP-Einheit.
  • Fig. 3 ist eine Darstellung, welche beispielhaft die Anordnung einer weiteren Digitalsignal-Verarbeitungsvorrichtung zeigt, welche in einem Beitrag mit dem Titel "Realtime Video Signal Processor Module" in dem Tagungsband von ICASSP '87, Seite 1961-1964, April 1987, Dallas, USA, offenbart ist. In der Figur ist mit 1 ein Eingangsanschluss bezeichnet, 4 ist ein Eingangsbus zum Verteilen der Eingangsdaten an dem Eingangsanschluss 1, 28a ist ein Rückkopplungsbus zum Verteilen des Ergebnis der vorherigen Verarbeitung und 20 sind Signalverarbeitungsmodule, die jedes einen Eingangsspeicher 21, eine Verarbeitungseinheit 22, einen Ausgangsspeicher 23 und eine Zeitsteuerungseinheit 24 beinhalten. Durch 25 sind fest verdrahtete OR-Schaltungen bezeichnet, durch welche Rückkopplungsdaten an Ausgangsanschlüssen 30 auf dem Rückkopplungsbus 28a platziert werden, 26 sind fest verdrahtete OR-Schaltungen, durch welche Ausgangsdaten an Ausgangsanschlüsse 29 über den Ausgangsbus 5a zu dem Ausgangsanschluss 5 geliefert werden, 27 sind Eingangsanschlüsse für die Eingangsdaten zu dem Signalverarbeitungsmodul 20 und 28 sind Eingangsanschlüsse für die Rückkopplungsdaten zu dem Signalverarbeitungsmodul 20.
  • Fig. 4 ist ein Blockschaltbild, das noch detaillierter eines der Signalverarbeitungsmodule in Fig. 3 zeigt. In der Figur ist mit 221 ein Adressgenerator (AGU A) bezeichnet, 211 ist ein Eingangs-Doppelspeicher (MEM A), welcher Daten an dem Eingangsanschluss 27 über den Eingangsbus 4 empfängt, 212 ist ein Eingangs- Doppelspeicher (MEM B), welcher Daten auf dem Rückkopplungsbus 28a durch den Eingangsanschluss 28 empfängt, 222 ist ein Adressgenerator (AGU B), 223 ist ein X-Bus, 224 ist ein Y-Bus und 225 ist eine Pipeline-Arithmetikeinheit (PAU), deren Eingangsanschluss EX1 an den X-Bus 223 angeschlossen ist, und ein weiterer Eingangsanschluss EX2 ist an den Y-Bus 224 angeschlossen. Mit 226 ist ein Datenspeicher [MEM P·Q)] bezeichnet, dessen Ausgang an den X-Bus angeschlossen ist, 227 ist ein Adressgenerator [AGU P(Q)], dessen Ausgang an den Y- Bus 224 und den Datenspeicher 226 angeschlossen ist, 228 ist ein Modusregister (MDR), dessen Ausgang an den X-Bus 223 und den Y-Bus 224 angeschlossen ist, und 241 ist ein Z-Bus, welcher an die Eingänge der Adressgeneratoren 221, 222 und 227, die Pipeline-Arithmetikeinheit 225 und den Datenspeicher 226 angeschlossen ist. Mit 242 ist ein Sequenzierer (SEQ) bezeichnet, 243 ist ein Befehlsspeicher (IRAM), angeschlossen an den Ausgang des Sequenzierers 242, und 245 ist ein Dekodierer (DEC), angeschlossen an den Ausgang des Befehlsspeichers 243, wobei der Ausgang des Dekodierers 245 an den Z-Bus 241 und den Ausgangsbus 231 angeschlossen ist. Der Ausgangsbus 231 ist an den Eingang des Modusregisters 228 und den Z-Bus 241 angeschlossen. Mit 232 ist ein FIFO- Speicher (MEM C) bezeichnet, angeschlossen an den Ausgangsbus 231, 233 ist ein FIFO (MEM D), angeschlossen an den Ausgangsbus 231, 29 ist ein Ausgangsanschluss des FIFO-Speichers 232 und 30 ist ein Ausgangsanschluss des FIFO- Speichers 233.
  • Fig. 5 ist eine Darstellung, welche beispielhaft den Algorithmus eines typischen Hochleistungskodierers für ein bewegtes Bild zeigt. In der Figur ist mit 250 ein Eingangsanschluss für das Eingangsvideosignal bezeichnet, 251 ist ein Eingangs- Vollbildpuffer mit wenigstens einer 1-Vollbild-Kapazität und mit einer gleichzeitigen Lese-Schreib-Fähigkeit, 252 ist ein Inter-Vollbild-Subtrahierer zum Bewerten der Differenz, 253 ist ein Block-Identifizierer, 254 ist ein Kodierer, 255 ist ein durch den Kodierer 254 erzeugter Kodierungsparameter, 256 ist ein längenveränderlicher Kodierer, 257 ist ein Videomultiplexer, 258 ist ein Sende-Pufferspeicher und 259 ist ein Ausgangsanschluss für die kodierten Daten. Zwischen dem Eingangsanschluss 250 und dem Ausgangsanschluss 259 sind kaskadiert die oben erwähnten funktionalen Blöcke 251-254 und 256-258 angeschlossen. Weiterhin ist mit 260 ein lokaler Dekodierer bezeichnet, welcher die Kodierungsparameter 255 empfängt, 261 ist ein Inter-Vollbild-Addierer, 262 ist ein Schleifenfilter, 263 ist ein Kodierungs-Vollbildspeicher, 264 sind vorher kodierte Vollbilddaten, 265 ist ein Bewegungs-Kompensierer, 266 sind gegenwärtige Vollbilddaten, welche von dem Eingangs-Vollbildpuffer 251 in den Bewegungs-Kompensierer 265 eingespeist werden, 267 sind Bewegungsvektordaten, 268 sind kompensierte, vorherige Vollbilddaten, welche von dem Bewegungs-Kompensierer 265 in den Inter-Vollbild- Subtrahierer 252 und den Inter-Vollbild-Addierer 261 eingespeist werden, 269 ist ein Rückkopplungssignal und 270 ist eine Kodierungssteuerung, welche Kodierungssteuerungsinformationen für den Videomultiplexer 257 bereitstellt, ein Vorwärtssignal für den Eingangs-Vollbildpuffer 251, ein Blockidentifizierungs-Steuerungssignal 273 für den Blockidentifizierer 253 und ein Kodierungssteuerungssignal 274 für den längenveränderlichen Kodierer 256.
  • Als nächstes wird die Wirkungsweise der konventionellen Digitalsignal-Verarbeitungsvorrichtung in Verbindung mit Fig. 3 beschrieben. Diese Vorrichtung ist vorgesehen zur Bewegtbildverarbeitung und basiert auf dem Parallelaufteilungs- Verarbeitungssystem, bei welchem ein Vollbild in kleine Vollbilder aufgeteilt wird und ein Signalverarbeitungsmodul 20 jedem der aufgeteilten Vollbildbereiche zugeordnet ist.
  • Anfangs arbeitet jedes Signalverarbeitungsmodul 20 auf der autonomen Basis durch Aufwenden einer Videovollbild-Zeit zum Holen eines aufgeteilten Vollbildbereiches, welcher ihm zugeordnet ist, aus den Eingangsdaten, welche vollbildweise in einer Rasterabtastung über den Eingangsbus 4 übertragen werden und speichert die Daten in dem Eingangsspeicher 21. Nach Ablauf der Zeit eines Videovollbildes führt die Verarbeitungseinheit 22 die vorgeschriebene Signalverarbeitung für die Eingangsdaten und die Rückkopplungsdaten, gespeichert in dem Eingangsspeicher 21 aus, und speichert das Ergebnis vorübergehend in dem Ausgangsspeicher 23. Die Rückkopplungsdaten, welche durch den Ausgangsanschluss 30 zu dem Ausgangsspeicher 23 ausgegeben werden, werden zur Synchronisierung mit anderen Signalverarbeitungsmodulen 20 zeitgesteuert und zu sämtlichen Rückkopplungsdaten durch die fest verdrahtete OR-Schaltung 25 zusammengefasst, welche auf dem Rückkopplungsbus 28a angeordnet ist. Ebenso werden die aus dem Ausgangsspeicher 23 durch den Ausgangsanschluss 29 ausgegebenen Ausgangsdaten zur Synchronisierung mit den anderen Signalverarbeitungsmodulen 20 zeitgesteuert und durch Zusammenfassen zu sämtlichen Ausgangsdaten durch die fest verdrahtete OR-Schaltung 26 über den Ausgangsbus 5a zu dem Ausgangsanschluss 5 geliefert.
  • Einzeln durch die Signalverarbeitungsmodule 20 verarbeitete, aufgeteilte Rahmenbereiche werden wieder zu einem Video-Vollbild zusammengefasst. Dadurch wird eine Parallelverarbeitung von aufgeteilten Bereichen verwirklicht. Aus dem oben beschriebenen Grund ist es für sämtliche Signalverarbeitungsmodule 20 erforderlich, dass ihre Verarbeitungen vollständig synchron miteinander ablaufen. Dazu stellt die Zeitsteuerungseinheit 24 sämtlichen Sektionen des Systems die Zeitsteuerung der Daten-Eingabe/Ausgabe und des Verarbeitungsbeginns synchron mit der Videovollbild-Zeitsteuerung bereit, welches der Synchronisierungs-Bezugspunkt ist.
  • Als Nächstes wird die Wirkungsweise eines Signalverarbeitungsmodules 20 in Verbindung mit Fig. 4 kurz dargestellt. Aus einem rahmenweise durch den Eingangsanschluss 27 synchron mit dem Video-Vollbild-Sync-Signal eingegebenen Video-Vollbild werden Daten des zugeordneten Bereiches in dem Eingangs-Doppelspeicher 211 gespeichert. Gleichzeitig werden aus den durch den Eingangsanschluss 28 eingegebenen vorherigen Vollbilddaten der Teil des zugeordneten Bereiches und seine peripheren Daten in dem Eingangs-Doppelspeicher 212 gespeichert.
  • Die Eingangs-Doppelspeicher 211 und 212 sind aus einer zweiseitigen Speichervorrichtung mit dem gleichen Aufbau an beiden Seiten gebildet und diese wirkt so, dass, während an einer Seite Daten geschrieben werden, die andere Seite mit dem X-Bus 223 und dem Y-Bus 224 zum Lesen für den Kodierungsvorgang durch die Pipeline-Arithmetikeinheit 225 verbunden ist. Die Lese/Schreib-Seiten der Eingangs- Doppelspeicher 211 und 212 werden durch das oben erwähnte Video-Vollbild- Sync-Signal umgeschaltet, so dass Eingangsdaten zugeordneter Bereiche an den Eingangsanschlüssen 27 und 28 vollbildweise ununterbrochen eingegeben werden.
  • Die zu dem X-Bus 223 und dem Y-Bus 224 ausgelesenen Daten sind diejenigen, die bei den Datenspeicheradressen gespeichert werden, welche für die Eingangs- Doppelspeicher 211 und 212 durch die Adressgeneratoren 221 und 222 angegeben werden, die durch Signale gesteuert werden, welche durch den Dekodierer 245 durch Dekodieren eines 80 Bit langen Horizon-Typ-Mikrokodes bereitgestellt werden, der entsprechend der Adresse des Befehlsspeichers 243 ausgelesen wird, welche durch den Sequenzierer 242 angegeben wird. Die auf dem X-Bus 223 und dem Y-Bus 224 platzierten Daten werden parallel in die Pipeline-Arithmetikeinheit 225 eingegeben, welche eine Reihe von Signalverarbeitungen einschließlich Kodierung und lokaler Dekodierung implementiert und das Ergebnis zu dem Z-Bus 241 ausgibt. Unter diesen auf dem Z-Bus platzierten Verarbeitungsausgaben wird das kodierte Ausgangssignal in dem FIFO-Speicher 232 gespeichert und das lokal dekodierte Ausgangssignal wird durch den Ausgangsbus 231 in dem FIFO-Speicher 233 gespeichert.
  • Die FIFO-Speicher 232 und 233 sind Pufferspeicher mit FIFO-Aufbau. Aus den Ausgangsdaten und lokal dekodierten Daten bestehende Rückkopplungsdaten werden aus den Ausgangsanschlüssen 29 und 30 zu den Lese-Steuerungszeitpunkten für den zugeordneten Bereich ausgelesen, erzeugt aus dem Video-Vollbildsignal, und ein Teil der lokal dekodierten Video-Vollbild-Daten und der kodierten Ausgangsdaten werden in Übereinstimmung mit der Abtastreihenfolge erzeugt.
  • Der Datenspeicher 226, welcher durch das Ausgangssignal des Adressgenerators 227 gesteuert wird, wird durch einen Arbeitsspeicher gesteuert, welcher für die Verarbeitung der Pipeline-Arithmetikeinheit 225 erforderlich ist, und eine Tabelle, welche Konstanten speichert. Das Modusregister 228 besteht aus einer Registerdatei einschließlich Registern zum Laden von direkten Werten von dem Dekodierer 245.
  • Diese Digitalsignal-Verarbeitungsvorrichtung basiert grundlegend auf der vorstehenden bereichsgeteilten Parallelverarbeitung und es ist vorgesehen, dass jedes Signalverarbeitungsmodul 20 einen aufgeteilten Rahmenbereich auf einer Echtzeitbasis unabhängig behandelt. Wenn die Digitalsignal-Verarbeitungsvorrichtung vorgesehen ist für die Verwirklichung eines Kodierers, wie in Fig. 5 gezeigt, können nur Teile ohne den längenveränderlichen Kodierer 256, den Videomultiplexer 257, den Übertragungspuffer 258 und die Kodierungssteuerung 270 verwirklicht werden. Es ist insbesondere nicht geeignet für eine kontinuierliche Verarbeitung in einem Video-Vollbild und ist begrenzt auf den Inter-Vollbild-Kodierungsschleifenvorgang im Bereich von dem Eingangs-Vollbild-Puffer 251 zu dem Blockidentifizierer 253, Kodierer 254, Lokal-Dekodierer 260, Kodierungs-Vollbild- Speicher 263 und den Bewegungskompensierer 265, der für Daten hilfreich ist, die vollständig innerhalb eines Vollbildes aufteilbar sind.
  • Da jedes Signalverarbeitungsmodul 20 die gleiche Verarbeitung für jedes Vollbild implementiert, kann das in dem Befehlsspeicher 243 gespeicherte Verarbeitungsprogramm ein einzelnes Programm sein. Wenn ein Vollbild in M Bereiche (M ist eine ganze Zahl größer oder gleich 1) aufgeteilt ist, ergibt sich die Anzahl der Verarbeitungszyklen Nc pro Bildpunkt, welche auf einer Echtzeitbasis durch ein Signalverarbeitungsmodul 20 ausführbar ist, durch die folgende Berechnung
  • Nc = Mc·Tf/Mp·Np (Takte/Bildpunkt),
  • wobei Mc die Frequenz der Maschinenzyklen (Hz) ist, Tf ist die Vollbild-Periode (s), Mp ist die Anzahl horizontaler Bildpunkte in dem zugewiesenen Bereich, und Np ist die Anzahl vertikaler Bildpunkte in dem zugewiesenen Bereich.
  • Wenn ein Vollbild zum Beispiel in vier Bereiche aufgeteilt ist, von denen jeder einem Signalverarbeitungsmodul 20 zugeordnet ist, wird in diesem Zusammenhang die Anzahl von Verarbeitungszyklen Nc um das Vierfache erhöht und es wird für die Videosignalverarbeitung, welche sehr schnell sein muss, möglich, dies auf einer Echtzeitbasis mit einer erhöhten Anzahl relativ langsamer Signalverarbeitungsmodule 20 zu handhaben.
  • Die wie oben beschrieben angeordnete konventionelle Digitalsignal-Verarbeitungsvorrichtung weist die folgenden Probleme bei der Verarbeitung von Videosignalen auf.
  • (a) Für die Verwirklichung einer sehr schnellen Verarbeitung muss ein Vollbild in mehrere kleine Bereiche aufgeteilt sein, bestimmte Signalverarbeitungsalgorithmen erlaubt jedoch keine unabhängigen Verarbeitungen für Bereiche und unterhalb einer bestimmten minimalen Aufteilungsgröße. Daher kann eine Echtzeitverarbeitung nicht durch Erhöhen der Parallelität verwirklicht werden.
  • (b) Wegen einer festen Verteilung der Belastung der Signalverarbeitungsmodule muss die Verarbeitungszeit so eingestellt sein, dass sie mit der längsten übereinstimmt, wenn jedes Signalverarbeitungsmodul unterschiedliche Verarbeitungszeiten aufweist. Daher weist das System eine unnötig erhöhte Parallelität relativ zu der Verarbeitungskapazität auf.
  • (c) Dateneingabe und Datenverarbeitung benötigen jeweils ein Vollbild Zeit und Dateneingabe und Ausgabe benötigen jeweils einen Vollbild Zeit-Vollbild-Pufferspeicher, resultierend in einer längeren Zeitverzögerung und einer erhöhten Speicherkapazität. Daher weist das System eine signifikante Schleifenverzögerung in der Rückkopplungssteuerung und ähnlichem auf, und es ist schwierig, zum Beispiel die Kodierungssteuerung in Fig. 5 zu verwirklichen.
  • (d) Da das System für eine vollständige Parallelverarbeitung vorgesehen ist, kann es nicht einen solchen Vorgang wie Abtasten der Gesamtheit eines gleichen Vollbildes horizontal ausführen.
  • Fig. 6 ist ein Blockschaltbild des konventionellen Digitalsignal-Verarbeitungssystems, offenbart in dem Tagungsband (Nr. S10-1) des jährlichen Kongresses 1986 der Kommunikations-Abteilung des The Institute of Electronics and Communications Engineers of Japan. In der Figur ist mit 31 ein Doppelanschluss- Intern-Datenspeicher bezeichnet (wird als 2P-RAM bezeichnet), welcher in der Lage ist, zwei Datensätze gleichzeitig zu lesen und zu schreiben, 32 ist ein Adressgenerator, welcher die Adresse der Lesedaten oder Schreibdaten berechnet, 33 ist ein Datenbus, welcher für die interne Übertragung von Daten für die Berechnung verwendet wird, 34 und 35 sind Selektoren, welche Daten in dem 2P-RAM 31 auswählen, 36 ist ein Register, welches durch den Auswähler 34 ausgewählte Berechnungsdaten hält, 37 ist ein Register, welches durch den Auswähler 35 ausgewählte Berechnungsdaten hält, 38 ist ein Multiplizierer, 39 ist ein Register, welches das Ausgangssignal des Multiplizierers 38 hält, 40 ist ein Auswähler, welcher das Ausgangssignal des Registers 36 oder von Akkumulatoren (ACCO- ACC3) 44 auswählt, 41 ist ein Auswähler, welcher das Ausgangssignal der Register 39 oder 37 auswählt, 42 ist eine Arithmetik/Logik-Einheit, welche Berechnungen für die Ausgangssignale der Auswähler 40 und 41 ausführt und 43 ist ein Auswähler, welcher das Ausgangssignal der Arithmetik/Logik-Einheit 42 oder Daten in einem externen Datenregister 46 auswählt. Die Akkumulatoren 44 werden verwendet, um die Ausgangssignale der Arithmetik/Logik-Einheit 42 für kumulative Berechnungen zu halten. Das externe Datenregister 46 ist vorgesehen zum Halten der Daten von einem externen Datenspeicher 47. Mit 45 ist ein externes Adressregister bezeichnet, welches die durch den Adressgenerator 32 bereitgestellten Adressdaten hält und sie zu dem externen Datenspeicher 47 überträgt.
  • Als Nächstes wird die Wirkungsweise beschrieben. Dieses auf einem Digitalsignalprozessor basierende Signalverarbeitungssystem führt ein Befehls-Holen und Dekodieren für das vorgegebene Mikroprogramm, Datenlesen, Berechnung und Berechnungsergebnis-Schreiben in einem Parallel-Pipelineverarbeitungsmodus aus. Das Folgende beschreibt die Wirkungsweise der 3-Eingaben-1-Ausgabe-Berechnung.
  • Die Arithmetik/Logik-Einheit, der Multiplizierer, Adressgenerator, Datenspeicher und Auswähler werden in dem Mikrobefehlsmodus gesteuert.
  • Arithmetikoperationen für zwei Eingänge, einschließlich Addition, Subtraktion, Maximalbewertung, Minimalbewertung, etc. werden generisch durch a b ausgedrückt und ein Multiplikationsvorgang für zwei Eingaben wird generisch ausgedrückt durch a · b, wobei a und b unabhängige Daten sind.
  • Die arithmetischen Vorgänge und die Multiplikation werden zum Bilden von 3- Eingaben-1-Ausgabe-Vorgängen zusammengefasst und sie sind durch die folgenden Ausdrücke definiert.
  • Z1i = (ai bi) · ci (1)
  • Z2i = (ai · b1) ci (2)
  • wobei i = 1 bis N und ai, bi und ci Sätze unabhängiger Daten sind, welche in dem 2P-RAM 31 gespeichert sind.
  • Fig. 7 zeigt die Folge der Verarbeitung zum Implementieren des 3-Eingaben- Vorganges der Form des Ausdruckes (1) durch das Digitalsignal-Verarbeitungssystem, das beispielhaft in Fig. 6 gezeigt ist.
  • Der Daten-Adressgenerator 32 stellt die Anfangsadressen für die zwei Datensätze A und B ein und wählt den einfachen inkrementalen Modus aus. Dann werden die zwei Datensätze A und B durch die Auswähler 34 und 35 in die Register 36 und 37 geladen. Die Auswähler 40 und 41 wählen die Register 36 und 37 aus, so dass die Arithmetik/Logik-Einheit 42 den arithmetischen Vorgang ai bi implementiert. Der Auswähler 42 wählt die Arithmetik/Logik-Einheit 42 aus, um das Verarbeitungsergebnis vorübergehend in einem der Akkumulatoren (ACCO-ACC3) 44 zu halten und die resultierenden Daten werden über den Datenbus 33 und durch das externe Register 46 gesendet und in dem externen Speicher 47 gespeichert, dessen Adressierungsmodus der einfache inkrementale Modus ist, da er mit einer der Adressen für den 2P-RAM 31 in dem Adressgenerator 32 verknüpft ist.
  • In dem nachfolgenden Schritt ST3 stellt der Datenadressgenerator 32 die Anfangsadressen des Datensatzes C und des Datensatzes ai bi ein und ci-Daten werden aus dem 2P-RAM 31 in das Register 36 ausgelesen. Der Auswähler 35 wählt den Datenbus zum Laden der Daten von ai bi in dem externen Speicher 47 in das Register 37. In diesem Fall muss, damit eine übereinstimmende Zeitsteuerung zum Lesen des Datensatzes C und des Datensatzes ai bi vorhanden ist, der Schritt ST4 zwei Zyklen nutzlosen Befehlslesens für den externen Speicher im voraus aufwenden.
  • Die zwei Datensätze werden in dem Schritt ST5 einer Multiplikation durch den Multiplizierer 38 unterworfen und das Ergebnis wird in dem Register 39 gespeichert. In dem nächsten Zyklus durchlaufen die resultierenden Daten die Arithmetik/Logik-Einheit 42 und werden, nachdem sie vorübergehend in einem der Akkumulatoren (ACCO-ACC3) 44 gehalten wurden, über den Datenbus 33 zu dem 2P-RAM 31 übertragen.
  • Diese Vorgänge werden parallel auf der Basis der Pipeline-Verarbeitung ausgeführt und die Vorgänge vom Lesen des 2P-RAM 31 bis zum Speichern des Verarbeitungsergebnisses im dem externen Speicher 47 für N Datenelemente-Sätze benötigt N + 3 Maschinenzyklen im Fall eines arithmetischen Vorganges.
  • Die Schritte der Vorgänge sind in den folgenden Tabellen 1 und 2 aufgelistet. Tabelle 1 ist für den Vorgang von ai bi und die Übertragung des Ergebnisses zu dem externen Speicher 47 und Tabelle 2 ist vorgesehen zum Lesen des resultierenden ai bi aus dem externen Speicher 47, den Vorgang von (ai bi) · ci, und die Übertragung des Ergebnisses zu dem 2P-RAM. In beiden Tabellen stellt das Zeichen "x" einen unbestimmten Wert dar. Das Speichern in dem externen Datenregister 46 vervollständigt im Maschinenzyklus N + 3 beide Tabellen und das externe Datenregister 46 wird im Maschinenzyklus 0 (zwei Maschinenzyklen) in Tabelle 2 nutzlos gelesen. Tabelle 1 Tabelle 2
  • Als Nächstes wird nach zwei nutzlosen Lesezyklen des externen Speichers 47 für Zeitsteuerungszwecke eine Multiplikation für N Stücke von Datensätzen ausgeführt und die Ergebnisse werden in dem 2P-RAM 31 gespeichert. Dieser Vorgang benötigt N + 3 Maschinenzyklen, welche zu den zwei Befehlszyklen für die Adress- Initialisierung addiert werden, und insgesamt werden 2N + 10 Zyklen aufgewendet. Ein Vorgang des Ausdruckes (2) beansprucht ebenfalls 2N + 10 Zyklen. Demnach ist erkennbar, dass ein 3-Eingaben-1-Ausgabe-Vorgang für N Stücke von Datensätzen unter Verwendung eines Prozessors mit der Fähigkeit von 2-Eingaben- Vorgängen ausgeführt wird, er benötigt bis zu 2N Maschinenzyklen (vorausgesetzt, dass N ausreichend groß ist).
  • Das Folgende beschreibt den kumulativen Vorgang für die Ergebnisse der vorstehenden 2-Eingaben-1-Ausgabe-Berechnung.
  • Im Fall des Ausdruckes (3) werden das Multiplikationsergebnis für ai bi und ci (Ausgang des Registers 39) und der kumulative Zwischenwert in die Arithmetik/Logik-Einheit 42 eingetragen und das Ergebnis der Summierung wird durch den Auswähler 43 zurück in den gleichen Akkumulator 44 eingegeben. Dadurch benötigt der Vorgang unverändert 2N + 10 Zyklen.
  • In dem Fall des Ausdruckes (4) werden die Datensätze (ai · bi) ci, welche vorübergehend in dem 2P-RAM 31 gespeichert wurden, sequentiell ausgelesen und durch die Arithmetik/Logik-Einheit 42 summiert und daher benötigt die Verarbeitung weitere N Zyklen, resultierend in insgesamt 3N + 10 Zyklen.
  • Das konventionelle Digitalsignal-Verarbeitungssystem ist ausgebildet, wie oben beschrieben, und daher führt es für einen 3-Eingaben-1-Ausgabe-Vorgang von drei unabhängigen Datensätzen zweimal einen 2-Eingaben-1-Ausgabe-Vorgang aus.
  • Zusätzlich wird die Verarbeitungszeit weiter ausgedehnt zur Adress-Steuerung, zur Speicherübertragen und für andere Verarbeitungen.
  • Fig. 8 ist eine Darstellung, welche kurz den Bildkodierungssender zeigt, welcher das konventionelle Bewegungs-Kompensations-Betriebsverfahren implementiert, das offenbart ist in einem Beitrag mit dem Titel "Dynamic Multistage Vector Quantization for Images", journal of The Institute of Electronics and Communication Engineers of Japan, Band J68-B, Nr. 1, Seiten 68-76, Januar 1985. In der Figur ist mit 51 ein Eingangssignal aus Bilddaten bezeichnet, welches aus einer Mehrzahl von aufeinanderfolgenden Vollbildern auf der Zeitachse aufgebaut ist, 52 ist ein Bewegungskompensierer, welche ein Vorhersagesignal auf der Basis der Neuanordnungsberechnung der Korrelation zwischen dem durch das Eingangssignal 51 dargestellten gegenwärtigen Vollbild und dem durch ein vorheriges Vollbildsignal 53 dargestellten vorherigen Vollbild erzeugt, welches das vorherige, verringerte Signal ist, 54 ist eine Bewegungsvektorinformation, bereitgestellt durch den Bewegungskompensierer 52, welcher die Position eines Vorhersage-Signalblockes anzeigt, 55 ist ein durch den Bewegungskompensierer 52 erzeugtes Vorhersagesignal, 56 ist ein Kodierer, welcher die Differenz zwischen dem Eingangssignal 51 und dem Vorhersagesignal 56 kodiert, 57 ist ein Dekodierer, welcher das durch den Kodierer 56 kodierte Signal dekodiert und 58 ist ein Vollbildspeicher, welcher durch die Summierung des Signales von dem Dekodierer 57 und des Signales von dem Bewegungskompensierer 52 wiedergegebene Daten speichert.
  • Die Leistung der vorstehenden Anordnung wird in Verbindung mit Fig. 9 beschrieben. Die Bewegungs-Kompensationsverarbeitung ist es, für das Eingangssignal 51 den Betrag der Verzerrung zwischen einem 11-zu-12-Block zu berechnen, der an einer bestimmten Position in dem in Fig. 9(A) gezeigten, gegenwärtigen Vollbild positioniert ist, und M Teilen von Blöcken in dem Suchbereich HS des in Fig. 9(B) gezeigten vorherigen Vollbildes, um die Position des Blockes y mit einer minimalen Verzerrung relativ zu der Position des Eingabeblockes zu bewerten, d. h., den Bewegungsvektor V, und um das Signal des Minimal-Verzerrungsblockes als ein Vorhersagesignal zu erkennen.
  • Die Anzahl von Bewegungsvektoren V bei der Suche innerhalb des Suchbereiches S in dem gegebenen Vollbild wird mit M (eine ganze Zahl größer als 1) angenommen. Der Betrag der Verzerrung der Position eines bestimmten Bewegungsvektors V zwischen dem vorherigen Vollbild-Blöcken und dem gegenwärtigen Eingabeblock wird als eine Summe von Absolutwerten von Differenzen wie folgt berechnet.
  • wobei Eingangsvektoren x = {x1, x2, ..., xk}, Suchobjektblöcke yi = {yi1, yi2, ..., yik}, i = 1, 2, ..., M und M und K feste Werte sind. Der Bewegungsvektor V wird wie folgt bewertet.
  • V = Vi {min di i = 1, 2, ..., M} (6)
  • Fig. 10 zeigt die Folge von Vorgängen zum Erfassen des Bewegungsvektors V. Der Schritt ST11 berechnet eine Verzerrung d1 bei jedem der K Stücke der Abtastpunkte auf der Basis des Ausdruckes (5) und der nächste Schritt ST12 vergleicht den di mit der minimalen Verzerrung D an der Position I, und, wenn di < D, werden die Variablen ersetzt als D = di und I = i. Diese Vorgänge werden für die Anzahl von Suchvektoren wiederholt, d. h., der Verarbeitungsablauf des Ausdruckes (6), um die letzte minimale Verzerrung D und ihre Position I zu bestimmen.
  • Diese Vorgänge müssen innerhalb der Periode jedes aufeinanderfolgend eingegebenen Vollbildes beendet werden, und daher ist ein Hochgeschwindigkeits-Digitalsignal-Prozessor erforderlich.
  • Als ein Beispiel wird das in Fig. 6 gezeigte Digitalsignal-Verarbeitungssystem verwendet, um den Bewegungskompensationsvorgang auszuführen. In diesem Fall findet der Multiplikations-Summen-Vorgang K · M mal für jeden Eingangsblock statt und die Anzahl von Maschinenzyklen ist die mit dem M-fachen der Bearbeitungen einschließlich Vergleiche und Aktualisierung aufgewendete Gesamtzeit. Allgemein ist die Anzahl von Zyklen zum Vergleich und Aktualisieren klein genug, verglichen mit demjenigen des Multiplikations-Summen-Vorganges und das Volumen des Bewegungskompensationsvorganges für einen Block ist im wesentlichen gleich K · M Maschinenzyklen.
  • Da diese Vorgänge jedoch bestimmt werden von der Zeit entsprechend der Periode von aufeinanderfolgend eingegebenen Vollbildern wird eine parallele Verarbeitung für die Masse von Multiplikations-Summen-Vorgängen benötigt, die in einer kurzen Zeit auszuführen sind, abhängig von der Verarbeitungsvorgangs-Zykluszeit eines bestimmten Digitalsignal-Prozessors.
  • Das konventionelle Bewegungs-Kompensationsschema wird implementiert, wie oben beschrieben, und um die Betriebszeit für ein beträchtliches Volumen von Abläufen sicherzustellen, wenn sie unter Verwendung eines Digitalsignalprozessors ausgeführt werden, muss der Prozessor parallele Verarbeitungen aufweisen, resultierend in einer gesteuerten Komplexität und Abmessung des Hardwareaufbaus.
  • Das US-Patent 4,661,849, eingetragen für die PicTel Corporation, betrifft ein Bildfolgen-Sendeverfahren, welches eine Abschätzung des Bewegungsversatzes zwischen aufeinanderfolgenden Vollbildern einer Sequenz enthält. Jedes Bild ist in nicht überlappende Blöcke aufgeteilt, wobei jeder Block eine Mehrzahl von Bildelementen beinhaltet. Das Verfahren enthält dann eine aufeinanderfolgende Auswahl von Anfangswerten eines Bewegungsvektorversatzes für jeden aufeinanderfolgenden Block entsprechend einer Abschätztechnik des steilsten Abstiegs. Danach werden aufeinanderfolgende Werte des Bewegungsversatzvektors für einen Block entsprechend dem steilst absteigenden Ansatz bestimmt und der Iterationsvorgang wird beendet, wenn ein Iterationsfehler gemessen wird, welcher dem Steilst-Abstiegs-Verfahren zugeordnet ist, der geringer ist als ein vorbestimmter Schwellwert. Ein adaptiver Ansatz wird verwendet, bei welchem der Schrittgrößen-Parameter entsprechend einem Gradientenfehler inkrementiert wird, welcher bei der Steilst-Abstiegs-Technik verwendet wird.
  • Eine wissenschaftliche Veröffentlichung von Yasuo Ariki und Toshiyuki Sakai, mit dem Titel "Moving Picture Analysis Based on a Hierarchical Model Approach", welche veröffentlicht wurde in "Systems-Computers-Controls", Band 12, Nr. 4, Juli 1981, Washington, USA, Seite 37-45, betrifft ebenfalls ein effizientes Verarbeitungsverfahren für ein bewegtes Bild. Entsprechend dieser Zitierung wird zur effizienten Auswahl von Vollbildern mit signifikanten Änderungen ein kleines Bild in mehrere Blöcke aufgeteilt und Korrelationen werden zwischen entsprechenden Blöcken unterschiedlicher Vollbilder errechnet. Wenn ein Block mit einer Korrelation unterhalb des Schwellwertes gefunden wird, wird dieses Vollbild ausgewählt. Dieses Verfahren verwendet ein hierarchisches Strukturmodell durch Auswählen von Vollbildern mit kleineren aufeinanderfolgenden Korrelationen. Der hierarchische Aufbau besteht aus Merkmalspunkten, Grenzlinien und Regionen, welche es ermöglichen sollen, den Merkmalspunkt und die Grenzlinie basierend auf einer Vorhersage zu verfolgen oder das gesamte Objektmuster zu verfolgen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung ist vorgesehen, um die vorstehenden Mängel im Stand der Technik zu beseitigen.
  • Die Aufgabe dieser Erfindung ist es, ein bewegungskompensierendes Verarbeitungsverfahren anzugeben, welches durch Aufbauen des Bewegungskompensierers eines Bildkodierungssystems mit einer Digitalsignal-Verarbeitungsvorrichtung eine geringere Anzahl von Parallelprozessoren erfordert, um dadurch die Einfachheit und Kompaktheit des Hardwareaufbaus zu verbessern.
  • Erfindungsgemäß wird diese Aufgabe verwirklicht durch ein bewegungskompensierendes Verarbeitungsverfahren, bei welchem ein gegenwärtig eingegebenes Vollbild aus digitalen Bilddaten aus einer Mehrzahl von Rahmen besteht, die aufeinanderfolgend eingegeben werden, aufgeteilt in eine Mehrzahl von Blöcken, und bei dem Erfassen eines Blockes, welcher eine minimale Verzerrung bietet, resultierend aus der Berechnung der Neuanordnung zwischen Mustern, basierend auf der Kumulation von differentiellen Absolutwerten oder differentiellen Quadratwerten von Bildpunkten im Block zwischen einem Block des gegenwärtig eingegebenen Vollbildes und Blöcken der Anzahl M in einem vorherigen Vollbild, ein Maximum von K Bildpunkten wird für die Muster-Neuanordnungsberechnung verwendet, Zwischenprüfungen werden n-fach während der Neuanordnungs-Berechnung zu Zeitpunkten ausgeführt, wenn die Anzahl von Referenzbildpunkten geringer als K ist, ein Block wird bestimmt als außerhalb des Bereiches zum Vergleich zum Finden eines minimalen verzerrten Blockes, wenn ein kumulativer Wert zu jedem Zeitpunkt größer als ein Schwellwert ist, welcher für jeden Zwischenprüfungs-Zeitpunkt voreingestellt wird, und ein Block mit einer minimalen Verzerrung wird erfasst durch Berechnen aus Blöcken, deren kumulative Werte unterhalb der Schwellwerte zu sämtlichen Zeitpunkten der Zwischenprüfungen sind, wobei M eine positive ganze Zahl ist, K ist eine ganze Zahl größer oder gleich Eins und kleiner oder gleich der Anzahl einer Gesamtanzahl von Bildpunkten in einem Block und n ist eine ganze Zahl größer oder gleich Eins.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockschaltbild, welches ein Mehrfachprozessorsystem einer konventionellen Digitalsignal-Verarbeitungsvorrichtung zeigt;
  • Fig. 2 ist eine Darstellung zum Erläutern der zugeordneten Bereiche der in Fig. 1 gezeigten Prozessoren;
  • Fig. 3 ist ein Blockschaltbild, welches die Anordnung einer weiteren konventionellen Digitalsignal-Verarbeitungsvorrichtung zeigt;
  • Fig. 4 ist ein Blockschaltbild, welches detailliert die Anordnung des in Fig. 3 gezeigten Signalverarbeitungsmodules zeigt;
  • Fig. 5 ist ein Blockschaltbild, welches den Algorithmus für einen hocheffizienten Kodierer für ein bewegtes Bild zeigt;
  • Fig. 6 ist ein Blockschaltbild, welches die Anordnung einer dritten, konventionellen Digitalsignal-Verarbeitungsvorrichtung zeigt;
  • Fig. 7 ist ein Flussdiagramm, welches die Verarbeitung von 3- Eingaben-Arithmetikvorgängen unter Verwendung der in Fig. 6 gezeigten Digitalsignal-Verarbeitungsvorrichtung zeigt;
  • Fig. 8 ist ein Blockschaltbild, welches kurz die Anordnung des Bildkodierungssenders zeigt, welcher das konventionelle Bewegungs-Kompensationsverfahren ausführt;
  • Fig. 9 ist eine Darstellung, die zum Erläutern des konventionellen Bewegungskompensationsverfahrens verwendet wird;
  • Fig. 10 ist ein Flussdiagramm, welches den Vorgang zum Erfassen eines Bewegungsvektors in dem konventionellen Bewegungskompensationsverfahren zeigt;
  • Fig. 11 ist ein Blockschaltbild, welches die Digitalsignal-Verarbeitungsvorrichtung basierend auf der ersten Ausführungsform dieser Erfindung zeigt;
  • Fig. 12 ist eine Darstellung zum Erläutern der Bereichszuordnung für die in Fig. 11 gezeigten Prozessoren;
  • Fig. 13 ist ein Blockschaltbild, welches die Anordnung der durch Verbinden einer Mehrzahl von Digitalsignalprozessoren (DSP-Blöcken) in Kaskaden gebildete Digitalsignal-Verarbeitungsvorrichtung, gezeigt in Fig. 11, zeigt;
  • Fig. 14 ist eine Darstellung, welche das Konzept der Verarbeitung jedes in Fig. 13 gezeigten DSP-Blockes zeigt;
  • Fig. 15 ist ein Blockschaltbild, welches die Digitalsignal-Verarbeitungsvorrichtung basierend auf der zweiten Ausführungsform dieser Erfindung zeigt;
  • Fig. 16 ist ein Blockschaltbild, welches den inneren Aufbau des in Fig. 15 gezeigten Signalprozessors zeigt;
  • Fig. 17 ist eine Darstellung zum Erläutern des Konzeptes des Steuerungsvorganges der in Fig. 15 gezeigten Digitalsignal-Verarbeitungsvorrichtung;
  • Fig. 18 ist eine Darstellung zum Erläutern der Beziehung zwischen Parameterdaten und Verarbeitungsblockdaten in der in Fig. 15 gezeigten Digitalsignal-Verarbeitungsvorrichtung;
  • Fig. 19 ist eine Darstellung, welche die Entsprechung zwischen Datenblöcken und einem Vollbild zeigt;
  • Fig. 20 ist ein Blockschaltbild der Anordnung, in welchem eine Mehrzahl von Digitalsignalprozessoren in der in Fig. 15 gezeigten Digitalsignal-Verarbeitungsvorrichtung enthalten ist;
  • Fig. 21 ist ein Blockschaltbild, welches die Digitalsignalverarbeitungsvorrichtung basierend auf einer weiteren Ausführungsform der Erfindung zeigt;
  • Fig. 22 ist ein Flussdiagramm, welches den Verarbeitungsvorgang der in Fig. 21 gezeigten Digitalsignal-Verarbeitungsvorrichtung zeigt;
  • Fig. 23 ist ein Flussdiagramm, welches eine Ausführungsform des erfinderischen Bewegungskompensations-Betriebsverfahrens unter Verwendung einer Digitalsignal-Verarbeitungsvorrichtung zeigt;
  • Fig. 24 ist eine zum Erläutern des Verfahrens der Zwischenprüfung der Berechnung von Verzerrungen in dem erfinderischen Bewegungskompensationsverfahren verwendete Darstellung; und
  • Fig. 25 ist eine Darstellung, welche die Anordnung von Bildpunkt- Abtastungen und Abtastpunkten in einem Block entsprechend dem Zwischenprüfungsverfahren für die Verzerrungsberechnung zeigt.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Besondere Ausführungsformen der vorliegenden Erfindung werden jetzt anhand der Zeichnungen beschrieben.
  • Fig. 11 zeigt als eine Ausführungsform dieser Erfindung ein Beispiel des Bildkodierers der Digitalsignal-Verarbeitungsvorrichtung. In der Figur werden Eingangsdaten 11 in erste bis dritte Eingangsspeicher 6 eingetragen. Eine Aufgabensteuerung 7 schätzt die Anzahl gültiger Bildpunkte auf der Basis der Inhalte des Eingangsspeichers 6 ab, bestimmt die Verteilung der Kodierungsverarbeitungen aus einem ersten, zweiten und dritten DSP 2 und gibt Steuerungssignale als Adress- Steuerungssignale 8 zu den DSPn 2 aus. Nach Empfang der Adress-Steuerungssignale 8 geben die ersten, zweiten und dritten DSPn 2 Adressen 9 zu entsprechend den ersten, zweiten und dritten Eingangsspeichern aus, um zur Verarbeitung zugeordnete Daten 10 zu holen und die Kodierungsvorgänge basierend auf dem Voreinstellungsprogramm zu implementieren. Nach Beendigung der Verarbeitungen speichern die ersten, zweiten und dritten DSPn 2 die verarbeiteten Daten in einem Ausgangsspeicher 11, welcher nach Lesen der gesamten Daten des DSP-Blockes die verarbeiteten Daten zu dem nächsten DSP-Block sendet.
  • In diesem Fall wird jeder DSP 2 durch die Aufgabensteuerung 7 gesteuert, so dass sämtlichen DSP 2 gleiche Anzahlen gültiger Bildpunkte zugeordnet sind, und daher wird die Bildkodierungs-Verarbeitungszeit so gesteuert, dass die Differenz der Verarbeitungszeiten zwischen den DSPn 2 minimal ist. Insbesondere im Fall der Kodierung eines Bildes mit Anzahlen gültiger Bildpunkte, wie in Fig. 12(b) gezeigt, wird ein Bereich A mit einer relativ kleinen Anzahl gültiger Bildpunkte zu A' vergrößert, und ein Bereich C mit einer relativ großen Anzahl von gültigen Bildpunkten wird ebenfalls zu C' vergrößert und ein Bereich B mit einer größeren Anzahl von gültigen Bildpunkten wird auf B' verringert, wie in Fig. 12(a) gezeigt, durch die Aufgabensteuerung 7. Die Aufgabensteuerung 7 gibt die Adress-Steuerungssignale 8 entsprechend der Zuordnungsverteilung zu ersten, zweiten und dritten DSPn 2 aus.
  • Zum Beispiel als Reaktion auf die Ausgabe des Adress-Steuerungssignales 8 zum Kodieren der Bilddaten des Bereiches A für den ersten DSP 2 erzeugt er die Adresse 9 für den Bereich A' in dem ersten Eingangsspeicher 6 zum Holen der Daten und implementiert den Bildkodierungsvorgang durch Folgen des vorgeschriebenen Programms. Ebenso werden die zweiten und dritten DSPn 2 angewiesen, die Bildkodierungsvorgänge für die Bereich B' und C' auszuführen. Demnach sind für die ersten, zweiten und dritten DSPn 2 die Anzahlen gültiger Bildpunkte EA', EB' und EC' zum Kodieren im wesentlichen angeglichen, d. h., die gleiche Menge zu verarbeitender Bilddaten, wie in Fig. 12(b) gezeigt. Als Ergebnis wird die maximale Menge der Verarbeitung M', welche durch die erfinderische Vorrichtung zu bearbeiten ist, ausreichend geringer als das M von der konventionellen Vorrichtung und die für jeden DSP-Block benötigte Verarbeitungszeit wird verringert.
  • Fig. 13 zeigt den Inter-Vollbild-Kodierer, aufgebaut aus einer seriellen Verbindung von DSP-Blöcken in drei Stufen. Jeder DSP-Block führt die in Fig. 14 gezeigte Verarbeitung aus. Der erste DSP-Block 12 beginnt mit den Eingangsdaten 1 und implementiert nach Erzeugen eines Differentialsignales die Gültig/Ungültig-Beurteilung, bewertet die Verteilung der Anzahl von gültigen Bildpunkten in den Bilddaten und sendet die Information zu der Aufgabensteuerung 7. Basierend auf der Information gibt die Aufgabensteuerung 7 Adress-Steuerungssignale 8 zum Vorschreiben dieser Adressanpassung aus, dass die DSPn in dem zweiten DSP-Block 13 gleiche Zuordnungen von Daten aufweisen. Jeder DSP in dem zweiten DSP- Block implementiert die Verarbeitung durch Anpassen der Leseadressen, wie oben beschrieben. Der dritte DSP-Block 14 ist so ausgebildet, dass er identisch arbeitet.
  • Obwohl in der vorstehenden Ausführungsform die DSP-Verarbeitungs-Zuordnungsbereiche auf der Basis der gültigen Bildpunktverteilung unter Bereichen in Bilddaten gesteuert werden, ist die vorliegende Erfindung nicht auf dieses Schema beschränkt, sondern eine Rückkopplungs-DSP-Zuordnungssteuerung, basierend auf der allgemeinen Mengenverteilung der gesendeten Information, ist zum Beispiel ebenfalls möglich.
  • Eine zweite Ausführungsform dieser Erfindung wird anhand der Zeichnungen beschrieben. Fig. 15 zeigt ein Beispiel des Aufbaus einer Digitalsignal-Verarbeitungsvorrichtung der zweiten Ausführungsform dieser Erfindung. In der Figur ist 301 ein Datenfluss-Steuerungsabschnitt (D F C), welcher als eine Steuerungseinrichtung wirkt; 302 sind Steuerungsparameterdaten, ausgegeben von dem Datenfluss-Steuerungsabschnitt 301; 303 ist ein gemeinsamer Speicher (C M), welcher Rückkopplungsdaten speichert, eine große Datenmenge und eine Tabelle etc. 304 ist eine Aufgabentabelle (T B), welche einen Verarbeitungszustand jedes Signalprozessorelementes (P E) 318 speichert; 305 ist ein gemeinsamer Bus (C-BUS), welcher die Funktion als Status-Kommunikationseinrichtung hat, bestehend aus wenigstens einem an den gemeinsamen Speicher 303, die Aufgabentabelle 304 und jedes Signalprozessorelement 318 angeschlossenen Bus; 306 ist ein Video- Vollbild-Snychronisierungssignal (F p), welches den Anfangspunkt eines Videovollbildes, das zu dem Datenfluss-Steuerungsabschnitt 301 zu liefern ist, im Fall der Eingabe von Videosignalen, etc. unterscheidet; 307 sind Rückkopplungsdaten (F b), welche den Datenfluss-Steuerungsabschnitt 301 über den Belegtzustand informieren, die Datenmenge eines sendenden Puffers, etc. und Beenden einer Vollbild-Datenverarbeitung, ausgegeben von einem später beschriebenen Ausgangs-Steuerungsabschnitt 308; 308 ist ein Ausgangs-Steuerungsabschnitt (O C), versehen mit einem Pufferspeicher zum Ausgeben von Daten mit einer bestimmten konstanten Geschwindigkeit beim Wiederherstellen verarbeiteter Blöcke, die von einer Mehrzahl von Signalprozessorelementen (P E) 318 zum Beispiel in der Abtastreihenfolge in einem Video-Vollbild ausgegeben werden; 309 ist ein Eingangsanschluss für Analogsignale; 310 ist ein A/D-Wandler; 311 sind digitalisierte Eingangsdaten; 312 ist ein Parameterspeicher (P M) aus Doppelanschluss-Speichern; 313 ist ein Eingangs-Vollbild-Puffer, bestehend aus Doppelanschluss-Speichern zum Wirken als Blockformatierungseinrichtung durch vorübergehendes Speichern von Eingangsdaten 311; 314 ist ein den Parameterspeicher 312 an die Signalprozessorelemente 318 anschließender Bus; 315 ist ein den Eingangs-Vollbild-Puffer an die Signalprozessorelemente 318 anschließender Bus, um Daten in einer Blockeinheit zu liefern; 316 ist ein an den gemeinsamen Bus 305 angeschlossener Eingangs/Ausgangs-Anschluss des gemeinsamen Busses; 317 ist ein Unterbrechungs-Steuerungsanschluss zum Senden/Empfangen von Zeitsteuerungssignalen von dem Datenfluss-Steuerungsabschnitt 301; 318 sind einzelne Signalverarbeitungselemente (P E) und diese Signalverarbeitungselemente sind versehen mit einer Software, welche als eine Anfangseinrichtung wirkt und diese Signalverarbeitungselemente sind untereinander verbunden durch die Busse 314 und 315, und das Signalverarbeitungselement 318 der letzten Stufe und der Ausgabe-Steuerungsabschnitt 308 sind ebenfalls mit den Bussen 314 und 315 verbunden; 319 ist ein Ausgangsanschluss, durch welchen Daten mit einer bestimmten konstanten Geschwindigkeit und Zeitsteuerung von dem Ausgabe-Steuerungsabschnitt 308 ausgegeben werden; 320 ist ein Mehrfachprozessormodul mit dem Parameterspeicher 312, dem Eingangs-Vollbild-Puffer 313 und einer Mehrzahl von Signalprozessoren 318, welche durch die Busse 314 und 315 in Reihe miteinander verbunden sind.
  • Der Datenfluss-Steuerungsabschnitt 301 weist eine Beurteilungseinrichtung auf, welche die Aufgabentabelle 304 mit einem bestimmten, konstanten Zyklus abtastet und die Verarbeitungsbedingungen der einzelnen Signalprozessorelemente 318 beurteilt. Der Datenfluss-Steuerungsabschnitt 301 weist ebenfalls eine Steuerungseinrichtung auf, welche basierend auf dem Ergebnis der Beurteilungseinrichtung entscheidet, ob jedes Signalverarbeitungsmodul den nächsten Signalverarbeitungsblock verarbeiten kann, und wenn die Verarbeitung als möglich gefunden wird, die Verarbeitung durch Senden eines Unterbrechungssignales zu dem Unterbrechungs- Steuerungsanschluss 317 in Gang setzt, und wenn die Verarbeitung als unmöglich gefunden wird, die Übertragung des Signalverarbeitungsblockes zu einem anderen Signalverarbeitungsmodul anweist, welches den Block verarbeiten kann. Wenn eine Parallelverarbeitung mit einem konstanten Zyklus, in welchem die Aufgabentabelle 304 abgetastet wird, ausgeführt ist, ist die Abtastperiode die Anzahl der Parallelitäten des Eingangszyklus des Signalverarbeitungsblockes und wenn eine Reihenverarbeitung ausgeführt wurde, ist die Abtastperiode 1/n des Eingangszyklus; somit kann durch die Synchronisierung mit dem Eingangsdaten-Vollbild (zum Beispiel einem Video-Vollbild) die Übereinstimmung mit der Echtzeit unterstützt werden.
  • Fig. 16 zeigt ein Beispiel des inneren Aufbaus des Signalprozessorelementes 318, wie in Fig. 15 gezeigt. In der Figur ist 330 ein Anschluss, an welchen der Eingangs/Ausgangs-Anschluss des gemeinsamen Busses 316 anzuschließen ist; 331 ist ein Anschluss, an welchen der Unterbrechungs-Steuerungsanschluss 317 anzuschließen ist; 332 ist ein Anschluss, an welchen die Busse 314 und 315 anzuschließen sind; 333 ist vergleichbar ein Anschluss, an welchen die Busse 314 und 315 zwischen den benachbarten Signalprozessoren anzuschließen sind; 334 ist ein Externbus-Steuerungsabschnitt (BUS-CONT) mit der Funktion als eine Wettbewerbs-Steuerungseinrichtung zum Steuern des Ausführens/Unterbrechens des gemeinsamen Busses 305 durch den Bus 316; 335 ist ein Bus zum Laden eines beschreibbaren Steuerungsspeichers (W C S) 336, welcher ein Signalverarbeitungsprogramm speichert, von dem Externbus-Steuerungsabschnitt 334 zu einem Anfangszeitpunkt; 337 ist eine BUSREQ, welche den Anschluss des gemeinsamen Busses 305 an den Externbus-Steuerungsabschnitt 334 erfordert; 338 ist ein BUSACK, welcher die Erlaubnis für den BUSREQ 337 bezeichnet; 339 sind Befehlskodierungen, welche entsprechend dem Signalverarbeitungsprogramm aufeinanderfolgend aus dem beschreibbaren Steuerungsspeicher 336 ausgelesen werden; 340 ist ein Digitalsignalprozessor (D S P), welcher eine Datenverarbeitung ausführt; 341 ist ein INTACK, welches einen Unterbrechungs-Steuerungsabschnitt (INTER-CONT) 345 vom Empfang einer Unterbrechung von dem Digitalsignalprozessor 340 informiert; 342 ist im Gegensatz dazu eine INTREQ, welche den Digitalsignalprozessor 340 von der Notwendigkeit einer Unterbrechung informiert;
  • 343 ist ein Bus zum Anschließen eines internen Busses 344 an den gemeinsamen Bus 305 durch den Externbus-Steuerungsabschnitt 334, und der interne Bus 344 ist direkt an den Digitalsignalprozessor 340 angeschlossen; 345 ist ein Unterbrechungs-Steuerungsabschnitt (INTR-CONT), welcher ein Unterbrechungssignal von dem Datenfluss-Steuerungsabschnitt 301 verarbeitet; 346 ist ein Bus, welcher den Parameter eines verarbeiteten Datenblockes durch den internen Bus 344 in einen Doppelanschluss-Speicher 349 schreibt; 347 ist vergleichbar ein Bus, welcher einen verarbeiteten Block in den Doppelanschluss-Speicher 349 schreibt; 348 ist ein Bus, welcher einen Arbeitsspeicher in dem Doppelanschluss-Speicher 349 und den internen Bus 344 verbindet; 349 ist ein Doppelanschluss-Speicher, der mit einem Parameterspeicher vorgesehen ist, einem Datenspeicher und einem Arbeitsspeicher, welche Daten durch den Anschluss 333 und die Busse 314 und 315 zu dem benachbarten Signalprozessorelement 318 ausgeben.
  • Fig. 17 erläutert den internen Ablauf der in Fig. 15 gezeigten Digitalsignal- Verarbeitungsvorrichtung und den gleichen Teilen wie denjenigen in Fig. 15 sind die gleichen Bezugszeichen zugeordnet; auf deren Erläuterung wird daher verzichtet.
  • In der Figur ist 351 ein Block, welcher einen analytischen Vorgang eines Parameters innerhalb des Signalprozessorelementes 318 zeigt; 352, 353, 354 sind Blöcke, welche die Wirkungsweise einzelner Signalverarbeitungs-Unterroutinen A, B und C entsprechend dem Parameter von jeder von diesen zeigen; 355 ist ein Block, welcher die Inhalte eines Parameters zeigt, der in dem Doppelanschluss- Speicher 349 gespeichert ist; 356 ist ein Block, welcher die Inhalte D von in dem Doppelanschluss-Speicher 349 gespeicherten, verarbeiteten Blockdaten zeigt.
  • Fig. 18 erläutert ein Beispiel der Beziehung zwischen den Parameterdaten und Verarbeitungsblockdaten, bis einem Datenblock aufeinanderfolgend eine Reihe von Funktionsverarbeitungen zugeordnet ist und ein Ausgangsergebnis erhalten wird durch Reihen- und Parallel-Verarbeitung von Blockeinheiten, welche in der in Fig. 15 gezeigten Digitalsignal-Verarbeitungsvorrichtung ausgeführt werden. In der Figur ist 360 eine Blockadresse (B A D), welche die Position eines Eingangsblockes in einem Vollbild zeigt; 361 ist eine Verarbeitungsnummer (PN), welche die Art einer dem Block zuzuordnenden Verarbeitung zeigt; 362 ist ein Flag (PFLG), welches das Ergebnis der Verarbeitung unterscheidet; 363 ist ein Datenblock, in welchem zum Beispiel acht Teilblöcke zusammengefasst sind, um einen Block zu bilden.
  • Fig. 19 zeigt ein Beispiel der Korrespondenz zwischen dem in Fig. 18 gezeigten Datenblock 363 und einem Video-Vollbild, wenn ein Bildkodierungsvorgang in diesem System ausgeführt wird. In der Figur ist 365 ein Video-Vollbild; 366 ist ein Datenblock, wenn ein Bild in 16 Zeilen · 16 Bildpunkte aufgeteilt ist; 367 ist ein Teilblock, welcher erhalten wird, wenn der Block weiterhin in 8 Blöcke aus 4 Zeilen · 4 Bildpunkten aufgeteilt ist.
  • Eine Erläuterung der Wirkungsweise basierend auf Fig. 15 ist im Folgenden gegeben. Durch einen A/D-Wandler 310 digitalisierte Eingangsdaten 311 werden in einem Eingangs-Vollbildpuffer 313 gespeichert, der in einer Rasterform synchron mit einem Video-Vollbild-Synchronisierungssignal 6 abgetastet wird. In dem Eingangs-Vollbildpuffer 313 gespeicherte Eingangsdaten 311 werden durch den Datenfluss-Steuerungsabschnitt 301 blockweise zu den Anfangs-Parameterdaten 302 addiert und die Parameterdaten 302 werden in dem Parameter-Speicher 312 gespeichert. Dieser Parameterspeicher 312 und der Eingangs-Vollbildpuffer 313 bestehen aus Doppelanschluss-Speichern und Schreiben/Lesen ist zwischen den zwei unabhängigen Anschlüssen gleichzeitig möglich.
  • Datenblöcke werden aus dem Eingangs-Vollbildpuffer 313 gelesen und der Parameter wird in einer Datenblockeinheit von dem Parameterspeicher 312 gelesen. Datenblöcke und Parameter werden durch die Busse 314 und 315 zu dem Signalprozessorelement 318 gesendet, wo sie der ersten Verarbeitung einer Reihe von funktionalen Verarbeitungen in einer Blockeinheit unterworfen werden. Als Nächstes werden die Ergebnisse und die neu geschriebenen Parameter in den Doppelanschluss-Speicher 349 in dem Signalprozessorelement 318 geschrieben. Es ist die Grundfunktion eines Prozessormodules 320, Prozesse aufeinanderfolgend zwischen den benachbarten Signalprozessorelementen 318 auszuführen und eine Pipeline- Verarbeitung für jede Blockeinheit auszuführen.
  • Wenn eine Verarbeitung für jede Blockeinheit ausgeführt ist, wenn Rückkopplungsdaten wie die kodierten, vorherigen Vollbilddaten einbezogen sind, werden Rückkopplungsdaten in den gemeinsamen Speicher 303 eingegeben, welcher an den gemeinsamen Bus 305 angeschlossen ist, und gespeichert. Die Verarbeitung eines neuen Video-Vollbildes wird durch solch eine Verarbeitung ausgeführt, dass der andere Signalprozessor 318 als der eine, welcher Daten durch den gemeinsamen Bus 305 geschrieben hat, den gemeinsamen Speicher 303 anspricht. Wenn das Schreiben der Rückkopplungsdaten des vorherigen Vollbildes nicht in der richtigen Position in dem gemeinsamen Speicher 303 beendet ist, soll die Ausführungszeit der Verarbeitung festgelegt werden.
  • Wenn die Verarbeitung einer Einheit (Blockverarbeitung) beendet ist, speichert jedes Signalprozessorelement 318 den die Beendigung der gegenwärtigen Verarbeitung zeigenden Status in der Aufgabentabelle 304 und wartet auf die nächste Verarbeitung. Der Datenfluss-Steuerungsabschnitt 301 tastet die Aufgabentabelle 304 ab, und wenn die Verarbeitung des Signalprozessorelementes 318 der vorherigen Stufe beendet ist, sendet er ein Unterbrechungssignal zu dem Signalprozessorelement 318 und beginnt mit der nächsten Verarbeitung. Durch Wiederholen dieses Vorganges wird die Ausführung der Ablaufsteuerung jedes Signalprozessorelementes 318 ausgeführt.
  • Um eine parallele Verarbeitung in einer Blockeinheit für jedes Prozessormodul 320 auszuführen, wird die Datenverarbeitungsbedingung in dem Eingangs-Vollbildpuffer 318 jedes Prozessormodules 320 mit der Statusinformation des Anfangsstufen- Signalprozessors 318 erfasst und individuelle Blockdaten werden durch eine einwandfreie Lastverteilung verteilt und in jedes Mehrfachprozessormodul 320 eingegeben.
  • Diese Ergebnisse werden durch die Steuerungsparameterdaten der Anfangsstufe gezeigt und das Signalprozessorelement 318 unterscheidet die Verarbeitung für den Block durch Entschlüsseln der obigen Ergebnisse und führt eine einwandfreie Verarbeitung aus. Unter diesen Verarbeitungen sind zum Beispiel Funktionsprozessoren wie ein Blockidentifizierer 253, ein Kodierer 254, ein örtlicher Dekodierer 260, ein Inter-Vollbild-Subtrahierer 252, ein Bewegungskompensierer 265, ein Inter-Vollbild-Addierer 261, ein längenveränderlicher Kodierer 246 und neben diesen ist eine Verarbeitung, welche nur eine Lastverteilung wie eine Verarbeitung der Übertragung von Blockdaten ausführt, enthalten.
  • In dem Datenfluss-Steuerungsabschnitt 301 ist es möglich, einen willkürlichen Signalprozessor 318 zu veranlassen, eine willkürliche Verarbeitung durch Steuern des ersten Stufenparameters auszuführen; um somit zu einer solchen Leistungsfähigkeit wie oben erwähnt beizutragen, kann die Belastung so auf die Signalprozessorelemente 318 verteilt werden, dass sie so effizient wie möglich arbeiten.
  • Der Ausgabe-Steuerungsabschnitt 308 bildet die verarbeiteten Blöcke neu, welche zu zufälligen Zeiten zum Beispiel in einer Abtastreihenfolge eines Eingangs-Videovollbildes ausgegeben werden, und erzeugt ein resultierendes Ausgangssignal für einen Ausgangsanschluss 319 und erzeugt ebenfalls Rückkopplungsdaten 307 um dem Datenfluss-Steuerungsabschnitt 301 diese Daten mitzuteilen.
  • Der Ausgabe-Steuerungsabschnitt 308 übernimmt die Belastung zum Beispiel eines Video-Multiplexabschnittes 257 und eines Sendepuffers 258, gezeigt in Fig. 5, und er gibt ein Rückkopplungssignal 269 von dem Sendepuffer 258 zu einem Kodierungs-Steuerungsabschnitt 270 aus, welcher die Belastung des in Fig. 15 gezeigten Datenfluss-Steuerungsabschnittes übernimmt.
  • Der Datenfluss-Steuerungsabschnitt 301 übernimmt die Belastung der Funktionen der oben erwähnten Lastverteilung und des Kodierungs-Steuerungsabschnittes 270, wie in Fig. 5 gezeigt und findet das Blockidentifizierungs-Steuerungssignal 273 und das Kodierungs-Steuerungssignal 274 und multiplext sie in den Steuerungsparameterdaten für die Ausführung der gesamten Merkmals-Steuerung. In Fig. 16 beginnt die Verarbeitung eines einzelnen Signalprozessorelementes 318 durch die Unterbrechung durch den Datenfluss-Steuerungsabschnitt 301 und die Inhalte des Parameterspeichers 312 werden durch einen internen Bus 344 darin eingegeben. Auf der Basis des Unterscheidungsergebnisses des Inhaltes wird die Verarbeitung einer Einheit von Blockdaten durch einen Digitalsignalprozessor 340 ausgeführt.
  • Das Ergebnis und die neu geschriebenen Parameter werden in einen Doppelanschluss-Speicher 349 geschrieben und der Status wird durch einen Externbus- Steuerungsabschnitt 334 in der Aufgabentabelle 304 gesetzt; somit ist die Vorbereitung für die nächste Verarbeitung beendet. Ein Unterbrechungs-Steuerungsabschnitt 345 passt die Unterbrechung von dem Datenfluss-Steuerungsabschnitt 301 an den Digitalsignalprozessor 340 an. Der Parameter und die Daten, die in den Doppelanschluss-Speicher 349 geschrieben sind, werden durch ein benachbartes Signalprozessorelement 318 gelesen, welches an einen Anschluss 333 angeschlossen ist, und die Verarbeitung der nächsten Stufe wird vorgegeben.
  • Fig. 17 zeigt den Ablauf dieser durch den Datenfluss-Steuerungsabschnitt 301 ausgeführten Verarbeitung und diese zeigt die Beziehung zwischen der Steuerung von Schreiben/Beziehen auf die Rückkopplungsdaten in den gemeinsamen Speicher 303 und die Steuerung des Status-Schreibens in der Aufgabentabelle 304 durch den Datenfluss-Steuerungsabschnitt 301 durch den gemeinsamen Bus 305 und die Verarbeitungs-Anfangssteuerung in dem Signalprozessorelement 318 durch einen Parameter-Analysierer 351.
  • Fig. 18 zeigt das Neuschreiben der Inhalte der Steuerungs-Parameterdaten 302, welche entsprechend Eingangs-Blockdaten 363 addiert werden, und den Ablauf dieser Verarbeitungen. Eine Blockadresse, welche zum Beispiel die Position in einem Vollbild oder eine zeitsequentielle Reihenfolge eines Blockes zeigt, und ein Flag 362, welches sich auf die Art der nächsten Verarbeitung und die Inhalte der nächsten Verarbeitung bezieht, sind in den Steuerungs-Parameterdaten 302 enthalten. Die Blockadresse 360 wird für die Unterscheidung einer besonderen Verarbeitung in einem bestimmten Fall verwendet, zum Beispiel bei einem Endpunkt in einem Bild oder für die Neuanordnung von Daten in dem Ausgabe-Steuerungsabschnitt 308, wenn eine Verarbeitung beendet ist. Das Flag 362 zeigt zum Beispiel die Ergebnisse, etc. der Kodierungs-Steuerungsinformation 271, eines Blockidentifizierungs-Steuerungssignales 273, eines Kodierungs-Steuerungssignales 274 und eines Blockidentifizierers 253, wie in Fig. 5 gezeigt. Eingangs-Blockdaten 363 werden gesetzt, um die in einer Einheitenverarbeitung gehandhabten Minimalgröße zu haben. Der in Fig. 5 gezeigte Bewegungskompensierer 265 weist einen Block mit einer Größe 16 · 16 auf und nach dem Blockidentifizierer 253 werden Blöcke mit einer Größe von 4 · 4 gehandhabt. In solch einem Fall, wie oben erwähnt, in welchem sich die Blockgröße für jede Einheitenverarbeitung unterscheidet, werden Blockgrößen angeordnet, um Übereinstimmungen zwischen einer maximalen Blockgröße und einer in ihr enthaltenen Teilblockgröße aufzuweisen. In diesem Fall werden acht Teile aus 4 · 4 Blöcken zusammengefasst, um einen 16 · 16 Block zu bilden. Wenn die Kodierung eines Bildes ausgeführt ist, entspricht dieser Block einem kleinen Bildelement, gebildet durch Aufteilen eines gewöhnlichen Vollbildes in kleine, quadratische Bildelemente.
  • Fig. 19 zeigt ein Beispiel, in welchem ein Video-Vollbild 365 in einem Block 366 und Teilblöcke 367 aufgeteilt ist.
  • In der obigen Ausführungsform ist ein Signalprozessorelement 318, welches einen einzelnen Digitalsignalprozessor 340 aufweist, gezeigt, wenn aber eine höhere Verarbeitungsgeschwindigkeit bevorzugt wird, kann ein hierarchischer Aufbau, kombiniert mit einer Mehrzahl von Digitalsignalprozessoren verwendet werden. Der Aufbau des Signalprozessorelementes 318 in dem Fall der hierarchischen Struktur ist in Fig. 20 gezeigt. In diesem Fall sind in dem Signalprozessor 318 ein örtlicher gemeinsamer Speicher 371 und eine örtliche Aufgabentabelle 372 vorgesehen, da die Belastung für den Datenfluss-Steuerungsabschnitt 301 zunimmt, um die optimale Lastverteilung innerhalb des Signalprozessors örtlich auszuführen. Der Datenfluss des Digitalsignalprozessors 340, welcher an den örtlichen, gemeinsamen Bus 373 angeschlossen ist, ist der gleiche wie der in Fig. 15 gezeigte, mit der Ausnahme, dass der Vorgang innerhalb des Signalprozessors 318 ausgeführt wird.
  • In der obigen Ausführungsform wird ein serieller/paralleler Aufbau angewendet, aber in einigen Fällen ist ein vollständig paralleler oder vollständig serieller Aufbau entsprechend dem Zweck einer Signalverarbeitung effektiv und eine Echtzeitverarbeitung ist möglich.
  • Die andere Ausführungsform dieser Erfindung wird anhand von Fig. 21 erläutert. In Fig. 21 sind 420, 421 und 422 Adressgeneratoren für Auslesedaten; 423 ist ein Adressgenerator zum Schreiben von Daten; 424, 425 und 426 sind Datenspeicher und durch den Adressgenerator 423 erzeugte Adressdaten werden in diese Speicher eingegeben; 427, 428 und 429 sind Datenbusse, welche Auslesedaten von den Datenspeichern 424, 425 und 226 übertragen; 430, 431 und 432 sind Register zum Halten von Daten, welche von den Datenbussen 427, 428 und 429 übertragen wurden; 433 ist ein Register zum Halten der Ausgaben des Registers 432; 434 ist ein Auswähler zum Auswählen des Ausgangssignales des Registers 430 oder desjenigen des Registers 433; 435 ist ein Auswähler zum Auswählen des Ausgangssignales des Registers 431 oder desjenigen des Registers 441; der Auswähler 434 und der Auswähler 435 bilden eine erste Auswählergruppe; 436 ist ein Auswähler zum Auswählen des Ausgangssignales des Registers 430 oder des Ausgangssignales eines Registers 439; 437 ist ein Auswähler zum Auswählen des Ausgangssignales des Registers 431 oder des Ausgangssignales des Registers 433; der Auswähler 436 und der Auswähler 437 bilden eine zweite Auswählergruppe; 438 ist ein Operator, welcher durch Eingeben der Ausgangssignale der Auswähler 434 und 435 wirkt; 440 ist eine Multiplizierer, welcher eine Multiplikation durch Eingeben der Ausgangsignale der Auswähler 436 und 437 ausführt; das Register 439 ist das Eine zum Halten des Ausgangssignales des Operators 438; ein Register 441 ist das Eine zum Halten des Ausgangssignales Multiplizierers 440; 442 ist ein Auswähler, welcher das Eingangssignal von dem Register 439 oder das Eingangssignal von dem Register 441 auswählt und es ausgibt; 443 ist ein Addierer, welcher das Ausgangssignal des Ausgangsauswählers 442 und das Ausgangssignal eines Akkumulators 444 addiert und zu dem Akkumulator 444 ausgibt; 445 ist ein Datenbus zum Übertragen der Ausgangsdaten des Akkumulators 444 und des Ausgangs-Auswählers 442; 446 ist eine Schnittstellenschaltung, welche ein Ausgeben/Eingeben von Daten in/aus externen Schaltungen ausführt; 451-453, 461-463, 471-473 bezeichnen Signalleitungen, welche die Ausgangssignale von Datenspeichern 424, 425 und 426 zu Datenbussen 427, 428 und 429 ausgeben.
  • Das Folgende ist die Erläuterung der Wirkungsweise. In Fig. 21 wird angenommen, dass Datenreihen mit N Elementen, A = (ai i = 1 bis N), B = (bi i = 1 bis N), C = (ci i = 1 bis N), vorher jeweils in dem Datenspeicher 424, dem Datenspeicher 425 und dem Datenspeicher 426 gespeichert wurden.
  • Unter den obigen Bedingungen wird der Vorgang, wenn der Vorgang der drei Eingaben und einer Ausgabe ausgeführt ist, unten gezeigt. Der Verarbeitungsvorgang ist in Fig. 22 gezeigt.
  • Am Anfang werden in dem Schritt ST31 die oberen Adressen der drei Reihen von Eingangsdaten und eines Ausgangsergebnisspeichers zuerst durch Adressgeneratoren 420, 421 und 422 gesetzt. Danach wird angenommen, dass die Adressgeneratoren einfache Inkrementierungen ausführen.
  • Der Datenspeicher 424 korrespondiert mit dem Adressgenerator 420; der Datenspeicher 425 korrespondiert mit dem Adressgenerator 421; der Datenspeicher 426 korrespondiert mit dem Adressgenerator 422. Die einzelnen Datenspeicher 424, 425 und 426 lesen Daten basierend auf den Adressen der Adressgeneratoren 420, 421 und 422 aus.
  • Daten werden in drei Datenbusse 427, 428 und 429 (X-BUS, Y-BUS, Z-BUS) entsprechend von den Datenspeichern 424, 425 und 426 eingegeben, so dass für das Ausgeben von jedem diesen Datenspeicher 424, 425 und 426 zu einem bestimmten Datenbus nur ein Bus von dreien effektiv zu steuern ist und die anderen zwei werden in dem Zustand einer hohen Impedanz gesteuert. In diesem Fall ist die Ausgabe von Datenbussen beschränkt auf denjenigen, welcher wirksam ist. Wenn zum Beispiel die A-Datenreihe in das Register 430 einzugeben ist, wird die A-Datenreihe zu der Signalleitung 451 ausgegeben und die Signalleitungen 461 und 471, welche Daten von den anderen Datenspeichern 425 und 426 zu dem Datenbus 427 ausgeben, sind in dem Zustand einer hohen Impedanz. Das Gleiche ergibt sich für die anderen Datenbusse.
  • Jede dieser Datenreihen wird jeweils in den Registern 430, 431 und 432 gesetzt. Drei Datenbusse 427, 428 und 429 können Daten aus den drei Datenspeichern 424, 425 und 426 auswählen, so dass 3³ Arten von Datensatzkombinationen zu den Registern 430, 431 und 432 geliefert werden können.
  • Zwei Ausdrücke, wie unten gezeigt, sind auf dem Wege von drei Eingabevorgängen definiert und das Verarbeitungsverfahren ist dann im Folgenden gezeigt:
  • (ai bi) · ci (7)
  • (ai · bi) ci (8)
  • wobei (x y) einen arithmetischen und logischen Vorgang zum Finden von Ergebnissen oder Werten von Addition, Subtraktion, Maximalwerten oder Minimalwerten für zwei Eingangsdaten wie x, y ausdrückt und (x · y) eine Multiplikation ausdrückt. Die Erläuterung des Verarbeitungsablaufes des Ausdruckes (7) ist in der Tabelle 3 gegeben. Das Zeichen von "X" in der Tabelle stellt eine Unbekannte dar. Tabelle 3
  • In einem Schritt ST32 wählt ein Auswähler 434 die Seite eines Registers 430 und ein Auswähler 431 wählt die Seite eines Registers 435 aus. Durch die Verwendung dieser zwei ausgewählten Daten (ai und bi) wird der Vorgang (ai bi) mit einem Operator 438 ausgeführt und das Ergebnis wird in einem Register 439 gespeichert. Dieser Wert wird in dem nächsten Schritt von dem Register 439 ausgegeben.
  • Die Daten ci in dem Register 432 werden durch das Register 433 um einen Schritt verzögert. In dem nächsten Schritt wählt ein Auswähler 436 die Seite des Registers 439 aus und ein Auswähler 437 wählt die Seite eines Registers 433 aus. Durch die Verwendung dieser zwei Daten wird (ai bi) mit ci mit dem Multiplizierer 440 multipliziert und das Ergebnis (ai bi) · ci wird in einem Register 441 gespeichert. Dieser Wert wird von dem Register 441 in den nächsten Schritt ausgegeben. Durch einen Ausgabe-Auswähler 442, der das Register 441 auswählt, werden die Daten (ai bi) · ci zu einem der Datenspeicher 424, 425 und 426 durch einen Datenbus 445 basierend auf der durch den Adressgenerator 423 gezeigten Adresse gesendet.
  • Bei dieser Erfindung wird das Auslesen von Daten, die Ausführung des Vorganges und das Schreiben von Daten fortlaufend durch eine Pipeline-Verarbeitung ausgeführt, so dass die Steuerung jedes Abschnittes parallel ausgeführt werden kann. Daher ist, wenn die Drei-Eingaben-Eine-Ausgabe-Operation für eine Datenreihe mit N Elementen ausgeführt ist, von dem Zeitpunkt an, wenn das erste Datum ausgelesen ist, bis zu dem Zeitpunkt, wenn das Verarbeitungsergebnis des letzten Datums in einen Speicher geschrieben ist, eine Periode von (N + 3) zu Zyklen erforderlich.
  • Die Erläuterung des Verarbeitungsablaufes des Ausdruckes (8) ist in Tabelle 4 gegeben. Die Markierung "x" in der Tabelle 4 stellt eine Unbekannte dar. Tabelle 4
  • Der Vorgang, in welchem drei Eingabedaten zu den Registern 430, 431 und 432 ausgelesen werden, ist der gleiche wie in dem Fall des Ausdruckes (7). Wenn der Vorgang des Ausdruckes (8) ausgeführt wird, wählt der Auswähler 436 die Seite des Registers 430 und der Auswähler 437 wählt die Seite des Registers 431 und die Operation (ai · bi) wird durch den Multiplizierer 440 ausgeführt und das Ergebnis wird in dem Register 441 gesetzt.
  • In dem nächsten Schritt wählt der Auswähler 434 die Seite des Registers 433 aus und der Auswähler 435 wählt die Seite des Registers 441 aus und die Operation (ai · bi) ci wird durch den Operator 438 ausgeführt und das Ergebnis wird in dem Register 439 gesetzt. In dem nächsten Schritt wird durch Auswählen der Seite des Registers 439 durch den Auswähler 442 das Auswahlergebnis in einen der Datenspeicher 424 bis 426 geschrieben.
  • Somit ist der Fall des Ablaufes bei dem Ausdruck (8) der Gleiche wie im Fall des Ausdruckes (7), die gesamte Verarbeitungszeit benötigt daher (N + 3) Zyklen.
  • In dem Fall des Vorganges von zwei Eingaben und einer Ausgabe kann der Wert (ai bi) erhalten werden durch den im Folgenden gezeigten Ablauf: Der Auswähler 434 wählt die Seite des Registers 430 aus und der Auswähler 435 wählt die Seite des Registers 431 aus und nachdem der Vorgang durch den Operator 438 ausgeführt ist, wird die Seite des Registers 39 in dem nächsten Schritt durch den Auswähler 442 ausgewählt. Der Wert von (ai · bi) kann erhalten werden durch die im Folgenden gezeigte Prozedur: Der Auswähler 436 wählt die Seite des Registers 430 aus, und der Auswähler 437 wählt die Seite des Registers 431 aus und nach der Ausführung des Vorganges mit dem Multiplizierer 440 wählt der Auswähler 442 die Seite des Registers 441 in dem nächsten Schritt aus.
  • Die Verarbeitungsgeschwindigkeit im Fall von drei Eingaben, einer Ausgabe ist (2N + 10/N + 7) mal derjeniges des Standes der Technik, das ist etwa die Hälfte, wenn N eine große Zahl ist.
  • Wenn ein kumulativer Wert in dem drei Eingaben-eine Ausgabe-Vorgang gefunden wird, wird ein kumulativer Wert bis zu einem Punkt auf dem Weg oder ein Anfangswert in dem Akkumulator 444 gespeichert und jedes der nachfolgenden Verarbeitungsergebnisse wird mit dem Addierer 443 zu dem kumulativen Wert in dem Akkumulator 444 addiert und das addierte Ergebnis wird wiederum in dem Akkumulator 444 gespeichert. Diese Verarbeitungen werden wiederholt ausgeführt. Verarbeitungszyklen werden daher in Folge des kumulativen Vorganges nicht erhöht.
  • Fig. 23 zeigt ein Flussdiagramm zum Verwirklichen eines Verfahrens zum bewegungskompensierenden Vorgang, welcher eine Ausführungsform dieser Erfindung betrifft. Fig. 24 ist eine Zeichnung für die Erläuterung eines Zwischenprüfungsverfahrens in dem Verzerrungsmengenvorgang dieser Erfindung. Fig. 25 ist eine Anordnungsdarstellung einer Bildpunktabtastung an einem Abtastungspunkt in einem Block bei dem Zwischenprüfungsverfahren zum Verzerrungsvorgang in dieser Erfindung.
  • Vor dem Verarbeitungsvorgang soll in dem ersten Block aus M Stücken aus möglichen Blöcken zur Suche in den vorherigen Vollbilddaten die Verzerrungsmenge sämtlicher Bildpunkte in dem Block gemessen werden; die Verzerrungsmenge ist in diesem Fall durch die minimale Verzerrung bestimmt. Für die Verzerrungsmenge wird eine differentielle Absolutwertsumme angenommen. Bei dem Verzerrungsmengenvorgang bei dem und nach dem zweiten Block ist die Berechnung von differentiellen Absolutwerten sämtlicher Bildpunkte nicht erforderlich, aber bei einem Zwischenprüfungspunkt, wenn die Zwischen-Verzerrungsmenge einen bestimmten Wert überschreitet, wird erkannt, dass die schließliche Verzerrungsmenge des Blockes nicht geringer als die minimale Verzerrung D sein kann und der Verzerrungsmengenvorgang wird für den verbleibenden Teil angehalten.
  • Ein Block, welcher die minimale Verzerrung ergibt, wird durch Berechnung des Grades der Annäherung zwischen den Mustern durch Verwendung der Differenz und der Umsetzung von Bildpunkten in den entsprechenden M Blöcken erfasst, welche aus dem gegenwärtigen Eingangs-Vollbild und dem vorherigen Eingangs- Vollbild ausgewählt werden (M ist eine positive ganze Zahl). Die Anzahl von für die Berechnung des Grades der Annäherung verwendeten Bildpunkten ist maximal K (K ist eine ganze Zahl größer oder gleich Eins und kleiner oder gleich der Gesamtanzahl der Bildpunkt ein einem Block). Während der Berechnung des Grades der Annäherung zu dem Zeitpunkt, wenn die Anzahl von Bildpunkten in der Referenz geringer als K ist, werden Zwischenprüfungen vier mal ausgeführt und ein Zwischenprüfungspunkt kann bei jedem 1/4 Abtastpunkt vorgesehen sein. Fig. 25 zeigt Beispiele der für den Verzerrungsmengenvorgang verwendeten Abtastpunkte. Die Markierung O drückt einen ersten zeitlichen Abtastpunkt für den Verzerrungsmengenvorgang aus; die Markierung x drückt einen zweiten Abtastzeitpunkt für den Verzerrungsmengenvorgang aus; die Markierung &Delta; drückt einen dritten Abtastzeitpunkt für den Verzerrungsmengenvorgang aus; die Markierung O drückt einen vierten Abtastzeitpunkt für den Verzerrungsmengenvorgang aus.
  • In Fig. 24 wird, wenn die Gesamtanzahl von Abtastpunkten als K angenommen wird, Schwellwerte an ersten, zweiten und dritten Zwischenprüfungspunkten als d1', d2' und d3' ausgedrückt werden,
  • d1' = D/4 + th1 (9-1)
  • d2' = D/2 + th2 (9-2)
  • d3' = 3D/4 + th3 (9-3)
  • gesetzt, wobei th1, th2, th3 unabhängig gesetzt werden können. Die Verzerrungsmenge an den ersten, zweiten und dritten Zwischenprüfungspunkten werden ausgedrückt als di1, di2 und di3.
  • In diesem Fall drückt di 1 den Wert für die Verzerrungsmenge zum ersten Zeitpunkt in Fig. 25 aus; di2 drückt einen kumulativen Wert, di1 + der Verzerrungsmenge zum zweiten Zeitpunkt aus; di3 drückt einen kumulativen Wert, di2 + der Verzerrungsmenge zum dritten Zeitpunkt aus. Daher wird der kumulative Wert, in welchem die Verzerrungsmenge zum vierten Zeitpunkt akkumuliert ist, die Verzerrungsmenge, in welchem sämtliche Abtastpunkte enthalten sind.
  • Auf der Basis einer Verzerrungsmengenbeurteilung an einem Zwischenprüfungspunkt wird, wenn ein Block so gewertet wird, dass er eine große Verzerrungsmenge aufweist, die Prüfung des Blockes abgebrochen, bevor der Block den letzten Prüfpunkt erreicht, um nutzlose Verarbeitungsvorgänge zu sparen. Mit anderen Worten, wenn eine Verzerrungsmenge di 1, welche durch eine Verzerrungsberechnung bei 1/4K Abtastpunkt in einem Schritt ST41 als di 1 > d 1' durch die Beurteilung in dem nächsten Schritt St42 gefunden wird, wird der Block gelöscht, wenn nicht, wird der Vorgang mit dem nächsten Schritt ST43 fortgesetzt und der Vorgang der Verzerrungsmenge di2 wird mit der Verzerrungsberechnung bei dem 1/2K Abtastpunkt ausgeführt. Wenn in der Beurteilung in dem nächsten Schritt ST44 festgestellt wird, dass di2 > d2' ist, wird der Block gelöscht und wenn nicht, wird der Vorgang in dem Schritt ST45 fortgesetzt. Der Vorgang der Verzerrungsmenge di3 wird mit der Berechnung an dem 3/4K Abtastpunkt ausgeführt, und wenn durch die Beurteilung in dem nächsten Schritt ST46 festgestellt wird, dass di3 > d3' ist, wird dieser Block gelöscht, wenn nicht, wird der Vorgang in dem Schritt ST47 fortgesetzt und die Verzerrungsmenge di an dem K Abtastpunkt wird zum Ausführen eines Vergleiches und Ersatz berechnet.
  • Wie oben gezeigt, wird, wenn die Verarbeitung bis zu dem letzten Schritt ausgeführt wird, das gleiche Ergebnis erhalten, wie das bei dem konventionellen Verfahren erhaltene, bei welchem sämtliche Bildpunkte für einen Verzerrungsvorgang verwendet werden. Wenn die Verzerrungsmenge di in diesem Fall geringer als die minimale Verzerrung D ist, wird der Wert der minimalen Verzerrung D durch di ersetzt und der Bewegungsvektorindex wird mit dem Index i erneuert. Der letzte Minimalwert der Verzerrung D und der Vektorindex I, welcher die Bewegung zum Geben von D zeigt, kann erhalten werden durch Wiederholen solcher Verarbeitungsvorgänge, wie oben erwähnt, mit der Anzahl der Häufigkeit entsprechend der Anzahl der Suchvektoren, bis die Verarbeitung bis zu dem M-ten Block fortgeschritten ist.
  • In der obigen Ausführungsform ist das Beispiel, in welchem eine differentielle Absolutwertsumme für den Verzerrungsmengenvorgang verwendet wird, gezeigt, es kann aber ebenfalls eine differentielle Quadratwertsumme verwendet werden.
  • In der obigen Ausführungsform wird eine Erläuterung für den Fall eines Bewegungskompensationsvorganges vorgenommen, die Ausführung eines inneren Produktvektor-Quantisierungsvorganges ist ebenfalls möglich und die gleiche Wirkung kann erhalten werden. Wenn ein Operationsergebnis mit einem Schwellwert an einem Zwischenprüfungspunkt verglichen wird, ist die Beziehung in der Höhe entgegengesetzt dem was in der obigen Ausführungsform erwähnt wurde.

Claims (1)

1. Bewegungs-kompensierendes Betriebsverfahren, bei welchem ein gegenwärtig eingegebenes Vollbild aus Digital-Bilddaten aus mehreren, aufeinanderfolgend eingegebenen Vollbildern in mehrere Blöcke aufgeteilt wird und beim Erfassen eines Blockes, welcher eine minimale Verzerrung bereitstellt, die aus einer Berechnung der Ähnlichkeit zwischen Mustern, basierend auf der Kumulierung differentieller Absolutwerte oder differentieller Quadratwerte von Bildpunkten im Block zwischen einem Block des gegenwärtig eingegebenen Vollbildes und einer Anzahl von M Blöcken des vorherigen Vollbildes resultiert, wird ein Maximum von K Bildpunkten zur Muster-Ähnlichkeits-Berechnung verwendet, Zwischen-Prüfungen werden während der Ähnlichkeits-Berechnung zu Zeitpunkten, wenn die Anzahl von Bezugs-Bildpunkten kleiner als K ist, n-mal ausgeführt, ein Block wird als außerhalb des Vergleichs-Bereiches zum Finden eines Minimal-Verzerrungs-Blockes bestimmt, wenn ein kumulativer Wert zu jedem Zeitpunkt größer als ein für jeden Zwischen- Prüf-Zeitpunkt voreingestellter Schwellwert ist, und ein Block mit einer minimalen Verzerrung wird durch Berechnung aus Blöcken erfaßt, deren kumulative Werte zu allen Zeitpunkten der Zwischen-Prüfungen unterhalb des Schwellwertes sind, wobei M eine positive ganze Zahl ist, K eine ganze Zahl größer oder gleich Eins und kleiner oder gleich der Anzahl der Gesamtanzahl der Bildpunkte in einem Block ist und n ist eine ganze Zahl größer oder gleich Eins.
DE68929100T 1988-02-19 1989-02-17 Digitalsignalverarbeitungsverfahren Expired - Fee Related DE68929100T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP63037921A JPH01211162A (ja) 1988-02-19 1988-02-19 実時間マルチプロセッサ型信号処理装置
JP63063695A JPH01237838A (ja) 1988-03-18 1988-03-18 ディジタル信号処理方式
JP63298723A JPH02145077A (ja) 1988-11-26 1988-11-26 情報符号化装置
JP63298722A JPH02145079A (ja) 1988-11-26 1988-11-26 動き補償演算方法

Publications (2)

Publication Number Publication Date
DE68929100D1 DE68929100D1 (de) 1999-12-16
DE68929100T2 true DE68929100T2 (de) 2000-07-13

Family

ID=27460495

Family Applications (3)

Application Number Title Priority Date Filing Date
DE68929101T Expired - Fee Related DE68929101T2 (de) 1988-02-19 1989-02-17 Digitalsignalverarbeitungsanlage
DE68929113T Expired - Fee Related DE68929113T2 (de) 1988-02-19 1989-02-17 Digitalsignalverarbeitungseinheit
DE68929100T Expired - Fee Related DE68929100T2 (de) 1988-02-19 1989-02-17 Digitalsignalverarbeitungsverfahren

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE68929101T Expired - Fee Related DE68929101T2 (de) 1988-02-19 1989-02-17 Digitalsignalverarbeitungsanlage
DE68929113T Expired - Fee Related DE68929113T2 (de) 1988-02-19 1989-02-17 Digitalsignalverarbeitungseinheit

Country Status (5)

Country Link
US (1) US5155852A (de)
EP (3) EP0690376B1 (de)
KR (1) KR920006283B1 (de)
CA (1) CA1317680C (de)
DE (3) DE68929101T2 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0442041A3 (en) * 1990-01-18 1991-09-04 National Semiconductor Corporation Integrated digital signal processor/general purpose cpu with shared internal memory
US5475770A (en) * 1990-09-24 1995-12-12 Cgk Computer Gesellschaft Konstanz Mbh Parallel recognition of document images with a time-elapsed processing abortion to improve overall throughput
JP2906792B2 (ja) * 1991-11-15 1999-06-21 日本電気株式会社 ディジタルプロセッサ及びその制御方法
KR100254956B1 (ko) * 1991-12-23 2002-12-18 코닌클리케 필립스 일렉트로닉스 엔.브이. 재귀비데오신호프로세서
US6965644B2 (en) * 1992-02-19 2005-11-15 8×8, Inc. Programmable architecture and methods for motion estimation
US5440721A (en) * 1992-03-24 1995-08-08 Sony Electronics, Inc. Method and apparatus for controlling signal timing of cascaded signal processing units
JPH05324583A (ja) * 1992-05-26 1993-12-07 Dainippon Screen Mfg Co Ltd 画像データ処理装置
US5499375A (en) * 1993-06-03 1996-03-12 Texas Instruments Incorporated Feedback register configuration for a synchronous vector processor employing delayed and non-delayed algorithms
JP3482660B2 (ja) * 1993-09-08 2003-12-22 ソニー株式会社 画像データ処理装置および画像データ処理方法
US5590350A (en) * 1993-11-30 1996-12-31 Texas Instruments Incorporated Three input arithmetic logic unit with mask generator
KR970002394B1 (ko) * 1994-05-09 1997-03-05 삼성전자 주식회사 산술 논리 연산장치와 다중 가산기들 사이의 데이타 전송회로
JPH0954761A (ja) * 1995-08-15 1997-02-25 Sony Corp デイジタル信号処理装置及び情報処理システム
JP3729540B2 (ja) * 1995-09-08 2005-12-21 株式会社ルネサステクノロジ 画像処理装置
US5987181A (en) * 1995-10-12 1999-11-16 Sharp Kabushiki Kaisha Coding and decoding apparatus which transmits and receives tool information for constructing decoding scheme
DE19625569A1 (de) * 1996-06-26 1998-01-02 Philips Patentverwaltung Signalprozessor
US5920353A (en) * 1996-12-03 1999-07-06 St Microelectronics, Inc. Multi-standard decompression and/or compression device
DE19703251A1 (de) * 1997-01-29 1998-11-05 Kuhn Peter Dipl Ing Eine flexible VLSI Architektur für Blockmatching mit variabler Blockgröße, für Teilblockkombinationen, beliebig berandete Objekte und Luminanzkorrektur
US5911082A (en) * 1997-02-25 1999-06-08 Audio Digitalimaging Inc. Parallel processing building block chip
US6047081A (en) * 1997-10-24 2000-04-04 Imation Corp. Image processing software system having configurable communication pipelines
JP2000020424A (ja) * 1998-06-26 2000-01-21 Class Technology:Kk アプリケーション間通信システム、アプリケーション間通信方法、及びアプリケーション間通信方法を記録したコンピュータ読み取り可能な記録媒体
US6349378B1 (en) * 1999-03-31 2002-02-19 U.S. Philips Corporation Data processing using various data processors
US6925641B1 (en) * 2000-02-04 2005-08-02 Xronix Communications, Inc. Real time DSP load management system
US6912576B1 (en) * 2000-05-04 2005-06-28 Broadcom Corporation System and method of processing data flow in multi-channel, multi-service environment by dynamically allocating a socket
US7016412B1 (en) 2000-08-29 2006-03-21 Koninklijke Philips Electronics N.V. System and method for dynamic adaptive decoding of scalable video to balance CPU load
US9800608B2 (en) 2000-09-25 2017-10-24 Symantec Corporation Processing data flows with a data flow processor
US20020165947A1 (en) * 2000-09-25 2002-11-07 Crossbeam Systems, Inc. Network application apparatus
US8010469B2 (en) 2000-09-25 2011-08-30 Crossbeam Systems, Inc. Systems and methods for processing data flows
US9525696B2 (en) 2000-09-25 2016-12-20 Blue Coat Systems, Inc. Systems and methods for processing data flows
US20070192863A1 (en) 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
JP3709553B2 (ja) * 2000-12-19 2005-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 演算回路および演算方法
EP1229445A1 (de) * 2001-02-02 2002-08-07 Cluster Labs GmbH Verfahren zum Betreiben eines Rechnersystems und Vorrichtung
JP2004186978A (ja) * 2002-12-03 2004-07-02 Sanyo Electric Co Ltd データ書込方法、装置およびデジタルカメラ
US7660469B2 (en) * 2003-10-30 2010-02-09 Nec Electronics Corporation Image decoding apparatus and image decoding method
DE102005020808B3 (de) * 2005-05-04 2006-07-20 Micronas Gmbh Nichtflüchtige Speichereinrichtung mit einer Programmier- und Löschkontrolle
US7979368B2 (en) 2005-07-01 2011-07-12 Crossbeam Systems, Inc. Systems and methods for processing data flows
US20080181210A1 (en) * 2007-01-31 2008-07-31 Finisar Corporation Processing register values in multi-process chip architectures
US8069385B1 (en) * 2008-07-14 2011-11-29 T-Ram Semiconductor, Inc. Programmable built-in self-test architecture
WO2010086907A1 (ja) * 2009-02-02 2010-08-05 富士通株式会社 パケットキャプチャシステム、パケットキャプチャ方法、情報処理装置およびプログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4169289A (en) * 1977-07-08 1979-09-25 Bell Telephone Laboratories, Incorporated Data processor with improved cyclic data buffer apparatus
US4202035A (en) * 1977-11-25 1980-05-06 Mcdonnell Douglas Corporation Modulo addressing apparatus for use in a microprocessor
JPS55105763A (en) * 1979-02-05 1980-08-13 Fanuc Ltd Address instruction system
US4484346A (en) * 1980-08-15 1984-11-20 Sternberg Stanley R Neighborhood transformation logic circuitry for an image analyzer system
US4363104A (en) * 1980-09-22 1982-12-07 Hughes Aircraft Company Imaging system having multiple image copying and hierarchical busing
US4528625A (en) * 1982-02-11 1985-07-09 Texas Instruments Incorporated Input/output instruction execution in microcomputer
US4484349A (en) * 1982-03-11 1984-11-20 Environmental Research Institute Of Michigan Parallel pipeline image processor
JPS5922165A (ja) * 1982-07-28 1984-02-04 Nippon Telegr & Teleph Corp <Ntt> アドレス制御回路
US4531200A (en) * 1982-12-02 1985-07-23 International Business Machines Corporation Indexed-indirect addressing using prefix codes
NL8304442A (nl) * 1983-12-27 1985-07-16 Koninkl Philips Electronics Nv Geintegreerde en programmeerbare processor voor woordsgewijze digitale signaalbewerking.
GB8407764D0 (en) * 1984-03-26 1984-05-02 Indep Broadcasting Authority Local movement detector
EP0169709B1 (de) * 1984-07-20 1990-06-13 Nec Corporation Realzeitverarbeitungssystem für Videosignale
CA1287161C (en) * 1984-09-17 1991-07-30 Akihiro Furukawa Apparatus for discriminating a moving region and a stationary region in a video signal
US4661849A (en) * 1985-06-03 1987-04-28 Pictel Corporation Method and apparatus for providing motion estimation signals for communicating image sequences
AU579550B2 (en) * 1985-06-10 1988-11-24 Nec Corporation Movement compensation predictive encoder for a moving picture signal with a reduced amount of information
JP2638774B2 (ja) * 1986-01-08 1997-08-06 ソニー株式会社 テレビジヨン受像機
US4709344A (en) * 1985-10-02 1987-11-24 Motorola, Inc. Programmable multifrequency digital tone receiver
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
DE3851655T2 (de) * 1987-06-09 1995-02-09 Sony Corp Verarbeitung des Bewegungsvektors in Fernsehbildern.
JP2521183Y2 (ja) * 1987-09-29 1996-12-25 ソニー株式会社 ディジタル信号処理回路

Also Published As

Publication number Publication date
EP0703533B1 (de) 1999-11-17
DE68929100D1 (de) 1999-12-16
KR890013558A (ko) 1989-09-23
DE68929101D1 (de) 1999-12-23
EP0690376A3 (de) 1996-01-17
EP0329151A3 (de) 1993-02-24
EP0703533A1 (de) 1996-03-27
EP0690376A2 (de) 1996-01-03
DE68929113T2 (de) 2000-11-09
KR920006283B1 (ko) 1992-08-03
DE68929101T2 (de) 2000-07-13
EP0690376B1 (de) 1999-11-10
EP0329151A2 (de) 1989-08-23
US5155852A (en) 1992-10-13
DE68929113D1 (de) 2000-01-13
CA1317680C (en) 1993-05-11

Similar Documents

Publication Publication Date Title
DE68929100T2 (de) Digitalsignalverarbeitungsverfahren
DE69803266T2 (de) Schaltung zur bewegungsschätzung in codierern für digitalisierte videosequenzen
DE4322343C2 (de) Mittel zum Erfassen eines Bewegungsvektors und Verfahren zum Bestimmen eines Bewegungsvektors
DE69431953T2 (de) Koprozessor zur bewegungsabschätzung
DE69217150T2 (de) Bewegungsvektorschätzung, Bewegungsbildkodierung- und -speicherung
DE69422266T2 (de) Verfahren, Vorrichtung und Schaltung zur Verbesserung von Bewegungskompensation bei digitaler Bildkodierung
DE69728247T2 (de) Pyramidenförmiger pipeline-prozessor für ein bildverarbeitungssystem
DE69524235T2 (de) Verfahren und vorrichtung zur global-zu-lokal-block-bewegungsschätzung
DE69520974T2 (de) Eine integrierte Halbleiterschaltung
DE69427801T2 (de) Verfahren und Gerät zur Bestimmung von Bewegungsvektorfelden durch die Unterdrückung lokaler Abweichungen
DE69803639T2 (de) Vorrichtung und Verfahren zur Detektion eines Bewegungsvektors
DE3789116T2 (de) Prozessor zur zweidimensionalen diskreten cosinustransformation.
DE3875979T2 (de) Schaltung zur berechnung des quantisierten koeffizienten der diskreten cosinustransformation von digitalen signalabschnitten.
DE68925381T2 (de) Bewegungserkennungsgerät
DE4206280C2 (de) Verfahren zum Aufzeigen eines Bewegungsvektors
DE69801209T2 (de) Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer
DE69736852T2 (de) Codierung- und Decodierungssystem für bewegte Bilder mit beliebig geformten Objekten
EP0368151A2 (de) Verfahren zur Bestimmung von Suchpositionen zur Bewegungsschätzung
DE68924043T2 (de) Verfahren und Schaltung zur Blockverarbeitung von zweidimensionalen Signalen in beweglichen Bildern.
DE69327223T2 (de) Vorrichtung zur Bewegungsschätzung in Echtzeit und Verfahren dafür
DE69031524T2 (de) Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen
DE3687789T2 (de) Bildsignalverarbeitungsgeraet.
DE69320461T2 (de) Bewegungskompensierte Videobildverarbeitung
DE69125874T2 (de) Generator für mehrdimensionale Adressen und Anordnung zum Steuern desselben
DE68924190T2 (de) Bildverarbeitungsmethode.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8339 Ceased/non-payment of the annual fee